以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  请教下单语句的次序  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=13534)

--  作者:hd006
--  发布时间:2012/8/8 10:40:52
--  请教下单语句的次序

老师您好!

发现开单命令的次序对测试结果有直接影响,例如:

AA:="macd.macd"(26,12,9);
BBB:= AA > 0 and AA > ref(AA,1) ;
SSS:= AA < 0 and AA < ref(AA,1) ;
多止赢: = HOLDING > 0  AND H > ENTERPRICE + 5;     //5个点固定止盈
空止赢: = HOLDING < 0  AND L < ENTERPRICE - 5;      //5个点固定止盈

 

if holding<0 and BBB then sellshort(1,0,thisclose),ORDERQUEUE;                        // (1)
if holding=0 and BBB then buy(1,1,thisclose),ORDERQUEUE;                               // (2)

if holding>0 and SSS then sell(1,0,thisclose),ORDERQUEUE;                               // (3)
if holding=0 and SSS then buyshort(1,1,thisclose),ORDERQUEUE;                       // (4)

空赢:SELLSHORT(空止赢 ,0,LIMITR,TRIMPRICE(ENTERPRICE-5)),ORDERQUEUE;  // (5)

多赢:SELL(多止赢,0,LIMITR,TRIMPRICE(ENTERPRICE+5)),ORDERQUEUE;             // (6)

 

如果将上述语句的次序改成:

(5)、(6)、(1)、(2)、(3)、(4),

发现两种测试结果很不一致,百思不得其解。

 

问题是:

止盈(平仓)语句(5)(6)应该放在什么位置才是对的。比如说“多赢”是应该放在开出多单之后,还是之前。

另外,语句“多止赢”中:   H > ENTERPRICE + 5   使用了“H”是否合适?模拟或实盘中是否换为thiscolse ?

 

百忙之中希望得到您的解答。谢谢!

 

 


 


 


--  作者:jinzhe
--  发布时间:2012/8/8 13:14:23
--  

你把开多平空写一起,把开空平多写一起比如

 

if  aaa then begin

sellshort;

buy;

end

 

if bbb then begin

sell;

buyshort;

end

 


--  作者:hd006
--  发布时间:2012/8/8 14:03:19
--  

谢谢您的回答。

你说的平空,开多,平多,开空的次序吧。这和上面的(1)(2)(3)(4)是一致的。

我想知道的是下面的两句该放在哪里才合适:

空赢:SELLSHORT(空止赢 ,0,LIMITR,TRIMPRICE(ENTERPRICE-5)),ORDERQUEUE; 

多赢:SELL(多止赢,0,LIMITR,TRIMPRICE(ENTERPRICE+5)),ORDERQUEUE; 

     

这两句并不能插进你上面的IF块里面,因为条件完全不一样。而且位置不同结果影响很大。

 


--  作者:jinzhe
--  发布时间:2012/8/8 14:17:23
--  

完全可以写一起啦

if sss then begin

sell(holding>0,);

buyshort(holding=0,);

end

 

if bbb then begin

sellshort(holding<0,);

buy(holding=0,);

end


--  作者:hd006
--  发布时间:2012/8/8 15:20:15
--  

谢谢您。您说的我了解啦。

呵呵。我说的是止盈(止损)语句啊。