以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  不能测试  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=6641)

--  作者:剑神一笑
--  发布时间:2011/5/25 10:52:04
--  不能测试
请问老师 我尝试编了个KD线的模型,群里的朋友帮我改了下,但不能测试,不知道错在哪里? RSV:(CLOSE-LLV(LOW,26))/(HHV(HIGH,26)-LLV(LOW,26))*100; K:SMA(RSV,3,1); D:SMA(K,3,1); if cross(k,d) then begin sellshort(holding<0,0,market); buy(1,1,market); end if cross(d,k) then="then" begin SELL( HOLDING="HOLDING" >0,0,MARKET); BUYSHORT(1,1,MARKET); end 请老师帮忙看看。谢谢了
--  作者:剑神一笑
--  发布时间:2011/5/25 10:58:20
--  
请问老师 我尝试编了个KD线的模型,群里的朋友帮我改了下,但不能测试,不知道错在哪里? RSV:(CLOSE-LLV(LOW,26))/(HHV(HIGH,26)-LLV(LOW,26))*100; K:SMA(RSV,3,1); D:SMA(K,3,1); if cross(k,d) then begin sellshort(holding<0,0,market); buy(1,1,market); end if cross(d,k) then begin SELL( HOLDING="HOLDING" >0,0,MARKET); BUYSHORT(1,1,MARKET); end 请老师帮忙看看。谢谢了
--  作者:剑神一笑
--  发布时间:2011/5/25 11:00:00
--  
为什么不能分行啊???
--  作者:jinzhe
--  发布时间:2011/5/25 11:03:26
--  
测试了下,可以的,你的参数怎么设置的?
--  作者:剑神一笑
--  发布时间:2011/5/25 11:17:02
--  
怎么分行呢?


 

RSV:=(CLOSE-LLV(LOW,26))/(HHV(HIGH,26)-LLV(LOW,26))*100;
K:=SMA(RSV,3,1);
D:=SMA(K,3,1);

 

SELLSHORT((CROSS(K,D) AND HOLDING<0),HOLDING,MARKET),TFILTER;
SELL((CROSS(D,K)  AND HOLDING>0),HOLDING,MARKET),TFILTER;
BUY((CROSS(K,D)  AND HOLDING=1),1,MARKET),TFILTER;
BUYSHORT((CROSS(D,K) AND HOLDING=1),1,MARKET),TFILTER;

 

我的模型是这个,其实是从设计指南上抄来的。为什么这个不能测试?错在哪里?


--  作者:fly
--  发布时间:2011/5/25 11:26:44
--  

1.TFILTER;  只能用于ENTERLONG之类的系统.

请用以下进行测试

RSV:=(CLOSE-LLV(LOW,26))/(HHV(HIGH,26)-LLV(LOW,26))*100;
K:=SMA(RSV,3,1);
D:=SMA(K,3,1);

 

{开多}ENTERLONG:CROSS(K,D) ,TFILTER;
{平多}EXITLONG:CROSS(D,K) ,TFILTER;
{开空}ENTERSHORT:CROSS(D,K) ,TFILTER ;
{平空}EXITSHORT:CROSS(K,D) ,TFILTER;


--  作者:jinzhe
--  发布时间:2011/5/25 11:34:46
--  

1.tfilter不能与buy,sell等混用;

2.你的开仓条件不对,需要holding=1才能开仓,而交易测试的默认是不持仓的。


--  作者:admin
--  发布时间:2011/5/25 11:35:05
--  

http://www.weistock.com/bbs/dispbbs.asp?boardid=4&Id=332 

问题12


--  作者:剑神一笑
--  发布时间:2011/5/25 11:37:49
--  

明白了。就是说TFILTER; 是旧交易系统用的。我现在把它删除,改成下面这样。

 


RSV:=(CLOSE-LLV(LOW,26))/(HHV(HIGH,26)-LLV(LOW,26))*100;
K:=SMA(RSV,3,1);
D:=SMA(K,3,1);

 

SELLSHORT((CROSS(K,D) AND HOLDING<0),0,MARKET);
SELL((CROSS(D,K)  AND HOLDING>0),0,MARKET);
BUY((CROSS(K,D)  AND HOLDING=1),1,MARKET);
BUYSHORT((CROSS(D,K) AND HOLDING=1),1,MARKET);

 

但照样不行,还要请老师指点。


--  作者:剑神一笑
--  发布时间:2011/5/25 11:59:39
--  
搞定了!谢谢大家!!!