以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  老师,这样写可以吗?  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=75280)

--  作者:aa
--  发布时间:2015/2/2 15:53:32
--  老师,这样写可以吗?
老师,下面这个模型,只有多头信号,没有任何空头信号,我已经检查了20遍了,麻烦您帮我看看吧。

主体思路:
①,开多:日线上 当前价格>过去4周期开盘或者收盘价中最大值,且cross(ma5,ma10)。
②,开空:日线上 当前价格<过去4周期开盘或者收盘价中最小值,且cross(ma10,ma5)。
③,平多:日线上 当前价格<过去4周期开盘或者收盘价最小值,或者cross(ma10,ma5)。
④,平空条件:日线上 当前价格>过去4周期开盘或者收盘价中最大值,或者cross(ma5,ma10)。


INPUT:XD(1,1,10,2);

MA5:=MA(CLOSE,5);
MA10:=MA(CLOSE,10);
AA001:=CROSS(MA5,MA10);//上穿
BB001:=CROSS(MA10,MA5);//下穿

昨日开盘:=callstock(\'STKLABEL()\',vtopen,6,-1) ;
昨日收盘:=callstock(\'STKLABEL()\',vtCLOSE,6,-1);
前日开盘:=callstock(\'STKLABEL()\',vtopen,6,-2) ;
前日收盘:=callstock(\'STKLABEL()\',vtCLOSE,6,-2);
大前开盘:=callstock(\'STKLABEL()\',vtopen,6,-3) ;
大前收盘:=callstock(\'STKLABEL()\',vtCLOSE,6,-3);
前四开盘:=callstock(\'STKLABEL()\',vtopen,6,-4) ;
前四收盘:=callstock(\'STKLABEL()\',vtCLOSE,6,-4);

ZD001:=MAX(昨日开盘 OR 昨日收盘 OR 前日开盘 OR 前日收盘 , 大前开盘 OR 大前收盘 OR 前四开盘 OR 前四收盘) ;//过去4周期开盘或者收盘价中最大值
ZX001:=MIN(昨日开盘 OR 昨日收盘 OR 前日开盘 OR 前日收盘 , 大前开盘 OR 大前收盘 OR 前四开盘 OR 前四收盘) ;//过去4周期开盘或者收盘价中最小值

AA002:=CLOSE>ZD001 AND AA001;//开多:日线上 当前价格>过去4周期开盘或者收盘价中最大值,且cross(ma5,ma10)。
BB002:=CLOSE<ZX001 AND BB001;//开空:日线上 当前价格<过去4周期开盘或者收盘价中最小值,且cross(ma10,ma5)。

PD001:=CLOSE<ZX001 OR BB001;//平多:日线上 当前价格<过去4周期开盘或者收盘价最小值,或者cross(ma10,ma5)。
PK001:=CLOSE>ZD001 OR AA001;//平空:日线上 当前价格>过去4周期开盘或者收盘价中最大值,或者cross(ma5,ma10)。

开多:BUY(AA002 AND HOLDING=0,XD,MARKET);          //开多信号
开空:BUYSHORT(BB002 AND HOLDING=0,XD,MARKET);     //开空信号
平空:SELLSHORT(PK001 AND HOLDING<0,XD,MARKET);                  //平空信号
平多:SELL(PD001 AND HOLDING>0,XD,MARKET);                       //平多信号

--  作者:jinzhe
--  发布时间:2015/2/2 15:59:14
--  

INPUT:XD(1,1,10,2);


MA5:=MA(CLOSE,5);
MA10:=MA(CLOSE,10);
AA001:=CROSS(MA5,MA10);//上穿
BB001:=CROSS(MA10,MA5);//下穿


昨日开盘:=callstock(STKLABEL(),vtopen,6,-1) ;
昨日收盘:=callstock(STKLABEL(),vtCLOSE,6,-1);
前日开盘:=callstock(STKLABEL(),vtopen,6,-2) ;
前日收盘:=callstock(stklabel,vtCLOSE,6,-2);
大前开盘:=callstock(stklabel,vtopen,6,-3) ;
大前收盘:=callstock(stklabel,vtCLOSE,6,-3);
前四开盘:=callstock(stklabel,vtopen,6,-4) ;
前四收盘:=callstock(stklabel,vtCLOSE,6,-4);


ZD001:=MAX(昨日开盘 ,max( 昨日收盘 ,max( 前日开盘 ,max( 前日收盘 , max(大前开盘 ,max( 大前收盘 ,max( 前四开盘 ,前四收盘))))))) ;//过去4周期开盘或者收盘价中最大值
ZX001:=MIN(昨日开盘 ,min( 昨日收盘 ,min(前日开盘 ,min( 前日收盘 , min(大前开盘 ,min(大前收盘 ,min( 前四开盘 , 前四收盘))))))) ;//过去4周期开盘或者收盘价中最小值


AA002:=CLOSE>ZD001 AND AA001;//开多:日线上 当前价格>过去4周期开盘或者收盘价中最大值,且cross(ma5,ma10)。
BB002:=CLOSE<ZX001 AND BB001;//开空:日线上 当前价格<过去4周期开盘或者收盘价中最小值,且cross(ma10,ma5)。


PD001:=CLOSE<ZX001 OR BB001;//平多:日线上 当前价格<过去4周期开盘或者收盘价最小值,或者cross(ma10,ma5)。
PK001:=CLOSE>ZD001 OR AA001;//平空:日线上 当前价格>过去4周期开盘或者收盘价中最大值,或者cross(ma5,ma10)。

平空:SELLSHORT(PK001 AND HOLDING<0,XD,MARKET);
开多:BUY(AA002 AND HOLDING=0,XD,MARKET);         

平多:SELL(PD001 AND HOLDING>0,XD,MARKET);
开空:BUYSHORT(BB002 AND HOLDING=0,XD,MARKET);    


--  作者:aa
--  发布时间:2015/2/2 16:32:01
--  
谢谢 老大,改天请您喝酒啊。
--  作者:jinzhe
--  发布时间:2015/2/2 16:41:04
--  
应该做的,不要客气
--  作者:惊弓之鸟
--  发布时间:2015/2/2 21:00:25
--  
图片点击可在新窗口打开查看