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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 图表交易信号为何不稳定?

   

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


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

主题:图表交易信号为何不稳定?

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


加好友 发短信
等级:新手上路 帖子:71 积分:415 威望:0 精华:0 注册:2011/12/8 20:22:33
图表交易信号为何不稳定?  发帖心情 Post By:2012/3/10 22:13:02    Post IP:123.114.99.225[显示全部帖子]

为了实现新K线刚生成时根据上一根K线的交易条件交易,采用了1秒固定间隔轮询,通过K线位置判断新K线的产生,代码如下:

islast:=islastbar;
if islast then kpos:EXTGBDATA('KPOS');
if barpos>kpos then begin
 sell(lastshort and holding>0, 0, limitr, o);
 sellshort(lastlong and holding<0, 0, limitr, o);
 buy(lastlong and holding=0, 1, limitr, o);
 buyshort(lastshort and holding=0, 1, limitr, o);
 if islast then EXTGBDATASET('KPOS', barpos);
end

 

出现的问题是:

在刚加载上模型的时候交易信号总是出现并且正确,但如果进行窗口大小的缩放(几次后)、模拟操盘中的回退及模拟k线的增加等操作(只需一次),原K线上的交易信号就消失了,只有重新加载模型时才会再次正确显示。

 

可能的原因是什么呢?

 

 


 回到顶部
帅哥哟,离线,有人找我吗?
MMM
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:71 积分:415 威望:0 精华:0 注册:2011/12/8 20:22:33
  发帖心情 Post By:2012/3/11 20:39:30    Post IP:123.114.99.225[显示全部帖子]

可能是我对逐K线模式的理解出了大问题。我理解逐K线模式在每次刷新时,都是从第1根K线开始至当前最新的K线,并且每一根K线都执行一遍程序,所以一路刷新过来,过去K线上的信号应该被保留,比如共有100根K线,当从1刷新到100根时,第100根就是最后一根,而之前的49根都曾经成为最后一根,所以应该产生信号的地方还是会有信号的。

 

 

 


 回到顶部
帅哥哟,离线,有人找我吗?
MMM
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:71 积分:415 威望:0 精华:0 注册:2011/12/8 20:22:33
  发帖心情 Post By:2012/3/11 20:41:12    Post IP:123.114.99.225[显示全部帖子]

以下是引用王锋在2012-3-11 13:39:21的发言:

EXTGBDATA的使用,你只能用在最后实际交易时控制交易的,你把他都带到策略回放测试等环节,自然会引起很多问题。

建议楼主,将你的公式系统分成2个部分,测试时不要使用EXTGBDATA,而在实盘交易时,使用后台策略

后台策略是否只能在专业版才能用?我是标准版。


 回到顶部
帅哥哟,离线,有人找我吗?
MMM
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:71 积分:415 威望:0 精华:0 注册:2011/12/8 20:22:33
  发帖心情 Post By:2012/3/12 9:03:16    Post IP:123.114.99.225[显示全部帖子]

以下是引用MMM在2012-3-11 20:39:30的发言:

可能是我对逐K线模式的理解出了大问题。我理解逐K线模式在每次刷新时,都是从第1根K线开始至当前最新的K线,并且每一根K线都执行一遍程序,所以一路刷新过来,过去K线上的信号应该被保留,比如共有100根K线,当从1刷新到100根时,第100根就是最后一根,而之前的49根都曾经成为最后一根,所以应该产生信号的地方还是会有信号的。

 

上文中有笔误,不是49,是99。

 

又仔细琢磨了一下设计指南中提到islastbar的应用,我上面的代码是有问题,islastbar的条件决定了kpos总是最后一根K线的位置,在最后这个K线上最后一次刷新执行代码时,前面所有K线都不满足barspos>kpos这个条件。 如果是这样的话,重新加载模型后过去K线上的历史交易信号又总是正确的,这就很难理解了。

 


 回到顶部