欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件金字塔软件问题提交 → 测试问题

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有3121人关注过本帖树形打印复制链接

主题:测试问题

帅哥哟,离线,有人找我吗?
董小球
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 大哥
等级:超级版主 帖子:2837 积分:13237 威望:0 精华:2 注册:2010/7/14 17:31:54
  发帖心情 Post By:2013/7/30 15:00:19 [显示全部帖子]

以下是引用jsh578在2013/7/29 11:32:27的发言:

RUNMODE:0;  
    
variable:aa=0; 

M1:MA(C,5);
M2:MA(C,10);

KD:=REF(CROSS(M1,m2),1);    //开多条件
PD:=REF(CROSS(m2,M1),1);    //平多条件

IF aa=0 and holding=0 and TIME<=150000 and kd THEN 
begin 
aa:=1;
buy(1,1,limitr,o);
end

if aa=1 and holding=1 and pd then 
begin
aa:=0;
sell(1,1,limitr,c);
end

这位朋友你用这个代码测一下,你只要起始时间不是20100416,你的回测就是零!!!
[此贴子已经被作者于2013/7/29 11:33:06编辑过]

这个代码运行的问题在于,你使用了全局变量,而全局变量只在第一根K初始化为0,其余的就都不是0了,所以比如你本地第一根K是股指的20100416时,如果你从非0416这一天开始测试也就变成了,aa始终都是等于1的,因此也就没有任何测试结果了,这不是软件BUG。
了解了全局变量的运行机制后,应当避免这种情况,比如你写的这段代码应该是为了区分第一次开仓的不同吧,直接用普通变量就行了,不需要全局变量。



金字塔—专业程序化交易量化投资平台

客户服务部

-----------------------------------------------------------

欢迎您参加我公司的技术培训,具体培训需求请发邮件到

service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com

 回到顶部