以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  求助高手写一个高低价均线交易的策略  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=25197)

--  作者:qazplm
--  发布时间:2012/9/4 12:31:14
--  求助高手写一个高低价均线交易的策略

N:=barslast(date<>ref(date,1))+1;

(最高价平价均线):=MA(HIGH,N);

(最低价平价均线):=MA(LOW,N);

在一分钟周期图中,每天都重新计算均线

当最高价上穿(最高价平价均线)买开一手,买开后开始记录(最低价平价均线)的最高点,当最低价下穿买开后的(最低价平价均线)的最高点,平掉一手多单,卖开一手空单。卖开后开始记录(最高价平价均线)的最低点,当最高价上穿卖开后的(最高价平价均线)的最低点,平掉一手空单,买开一手多单。。。循环交易。

或者当最低价下穿(最低价平价均线)卖开一手,卖开后开始记录(最高价平价均线)的最低点,当最高价上穿卖开后的(最高价平价均线)的最低点,平掉一手空单,买开一手多单。买开后开始记录(最低价平价均线)的最高点,当最低价下穿买开后的(最低价平价均线)的最高点,平掉一手多单,卖开一手空单。。。循环交易。

在收盘前一分钟,多单空单全部平仓


--  作者:just
--  发布时间:2012/9/4 15:28:40
--  
工作人员在处理,稍后回复。
--  作者:jinzhe
--  发布时间:2012/9/4 15:33:11
--  

写了第一个循环的,第二循环的你反过来写就可以了。收盘前平仓不难,自己写下吧

 

N:=barslast(date<>ref(date,1))+1;

gaojunxian:=MA(HIGH,N);

dijunxian:=MA(LOW,N);
variable:gao=0,di=1000000;

if cross(h,gaojunxian) then begin
 buy(holding=0,1,market);
 gao:=gaojunxian;
 end
 
if gaojunxian>gao then gao:=gaojunxian;

if cross(gao,l) then begin
 sell(holding>0,0,market);
 buyshort(holding=0,1,market);
 di:=dijunxian;
 
end

if dijunxian<di then di:=dijunxian;

if cross(h,di) then begin
 sellshort(holding<0,0,market);
 buy(holding=0,1,market);
end


--  作者:qazplm
--  发布时间:2012/9/4 18:58:27
--  
谢谢高人指点
--  作者:漫步金字塔
--  发布时间:2012/9/6 20:33:18
--  

老师,楼上要求的买入后,计算买如后dijunxian的最高点,老师直接计算的是每日低均线的最低点,好像有点不符合要求啊!

 

这样写对吗?

N:=BARSLAST(HOLDING>0)+1;

GAO:=HHV(DIJUNXIAN,N);

M:=BARSLAST(HOLDING<0)+1;

DI:=LLV(GAOJUNXIAN,M);

当持有多单时,地均线的最高值。

当持有空单时,高均线的最低值。


--  作者:jinzhe
--  发布时间:2012/9/7 8:55:22
--  
以下是引用漫步金字塔在2012-9-6 20:33:18的发言:

老师,楼上要求的买入后,计算买如后dijunxian的最高点,老师直接计算的是每日低均线的最低点,好像有点不符合要求啊!

 

这样写对吗?

N:=BARSLAST(HOLDING>0)+1;

GAO:=HHV(DIJUNXIAN,N);

M:=BARSLAST(HOLDING<0)+1;

DI:=LLV(GAOJUNXIAN,M);

当持有多单时,地均线的最高值。

当持有空单时,高均线的最低值。

思路正确,该这么写,我的写法逻辑不严密


--  作者:qazplm
--  发布时间:2012/9/7 15:44:07
--  大家觉得这个策略如何?

N:=barslast(date<>ref(date,1))+1;

gaojunxian:=MA(HIGH,N);

dijunxian:=MA(LOW,N);
variable:gao=0,di=1000000;

N:=BARSLAST(HOLDING>0)+1;

GAO:=HHV(DIJUNXIAN,N);

M:=BARSLAST(HOLDING<0)+1;

DI:=LLV(GAOJUNXIAN,M);

if cross(h,gaojunxian) then begin
 buy(holding=0,1,market);
 gao:=gaojunxian;
 end
 
if gaojunxian>gao then gao:=gaojunxian;

if cross(gao,l) then begin
 sell(holding>0,0,market);
 buyshort(holding=0,1,market);
 di:=dijunxian;
 
end

if dijunxian<di then di:=dijunxian;

if cross(h,di) then begin
 sellshort(holding<0,0,market);
 buy(holding=0,1,market);
end

 

 

这样写对吗?


--  作者:jinzhe
--  发布时间:2012/9/7 15:47:57
--  
可以这么写
--  作者:qazplm
--  发布时间:2012/9/8 15:26:57
--  

好像不对啊,根本没有交易信号

请高手重新写一下


--  作者:qazplm
--  发布时间:2012/9/10 12:26:39
--  

请高手重新写一下