以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  平/开信号出现位置不同的问题!  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=56272)

--  作者:uranusmoon
--  发布时间:2013/9/5 10:06:06
--  平/开信号出现位置不同的问题!
交易函数,两种写法,平/开信号出现位置居然不同,实在想不明白
写法1:
PD:=aa1 and aa2 and aa2;  
PK:=bb1 and bb2 and bb3; 
KD:=cc1 and cc2 and cc3;
KK:=dd1 and dd2 and dd3; 
平多:=SELL(PD,0,market);
平空:=SELLSHORT(PK,0,market);图片点击可在新窗口打开查看
开多:=BUY(KD,10,market);
开空:=BUYSHORT(KK,10,market); 
写法2:
if (aa1 and aa2 and aa2) then sell(1,0,market);
if (bb1 and bb2 and bb3) then sellshort(1,0,market);
if (cc1 and cc2 and cc3) then buy(1,10,market);
if (dd1 and dd2 and dd3) then buyshort(1,10,market);

按说两种写法执行情况应该一样,写法1只是定义了PD、PK等中间变量。但实际执行情况是,写法2的平多和开空可能在一根K线上,而写法1的平多和开空在两个K线上,即开空信号在下一根K线上。如图:

图片点击可在新窗口打开查看此主题相关图片如下:1.jpg
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:2.jpg
图片点击可在新窗口打开查看



--  作者:jinzhe
--  发布时间:2013/9/5 10:13:02
--  
给出上面所有的条件,本地测试用了简单的条件,效果和写法2是一样的,同根k线反手
--  作者:uranusmoon
--  发布时间:2013/9/5 10:33:31
--  
PD:=every(0.99*ZHULIMAVOL>MAVOL,NHOUR)||BB||(CLOSE<ZSSP and holding>0);   //平多条件
PK:=every(0.99*ZHULIMAVOL>MAVOL,NHOUR)||DD||(CLOSE>ZSBP and holding<0);   //平空条件
KD:=EVERY(ZHULIMAVOL<=MAVOL,NHOUR+ADDHOUR) and AA and holding=0;
KK:=EVERY(ZHULIMAVOL<=MAVOL,NHOUR+ADDHOUR) and CC and holding=0;          //开空条件

平多:=SELL(PD,0,market);
平空:=SELLSHORT(PK,0,market);           
开多:=BUY(KD,5,market);  
开空:=BUYSHORT(KK,5,market); 
//==========================
条件里ZHULIMAVOL、MAVOL、aa、bb、cc、dd都是跨周期引用的变量。

--  作者:jinzhe
--  发布时间:2013/9/5 10:34:08
--  
都写出来,本地都重现不了
[此贴子已经被作者于2013/9/5 10:34:45编辑过]