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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件金字塔软件问题提交 → buy函数怎么把重复信号屏蔽掉?

   

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


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

主题:buy函数怎么把重复信号屏蔽掉?

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


加好友 发短信
等级:罗宾汉 帖子:11808 积分:20695 威望:0 精华:10 注册:2009/8/18 8:15:13
  发帖心情 Post By:2016/5/16 20:41:44 [显示全部帖子]

1,开仓条件加入 holding 控制

2,你可以使用持仓同步功能,信号消失后进行与理论持仓的同步,不建议你的方案,因为会导致收益不可控,实盘交易无法与测评相吻合



金字塔—专业程序化软件提供商

金字塔-技术部

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

工作时间:周一至周五 08:30 - 17:30   周末及法定节假日休息

Email:service@weistock.com
 回到顶部
帅哥哟,离线,有人找我吗?
王锋
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:罗宾汉 帖子:11808 积分:20695 威望:0 精华:10 注册:2009/8/18 8:15:13
  发帖心情 Post By:2016/5/16 23:49:32 [显示全部帖子]

holding是图表上的理论持仓不是你的实际持仓,如果你希望有持仓后就不再开仓这个也简单,比如这样做在开仓的语句做这样的设置

 

if islastbar then

begin

  buy(cond and tholding = 0,....);

end;

else

begin

  buy(cond and holding = 0,....);

end;

 

这样来控制,当有持仓后,让最后一根K线上的的开仓信号不显示,这样就规避了当有持仓时的重复开仓情况,但是如果你图表4个窗格同时做一个品种这种方案就会有问题,所以只限不同图标做不同品种,不能重复



金字塔—专业程序化软件提供商

金字塔-技术部

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

工作时间:周一至周五 08:30 - 17:30   周末及法定节假日休息

Email:service@weistock.com
 回到顶部
帅哥哟,离线,有人找我吗?
王锋
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:罗宾汉 帖子:11808 积分:20695 威望:0 精华:10 注册:2009/8/18 8:15:13
  发帖心情 Post By:2016/5/17 13:13:29 [显示全部帖子]

DAYHOLDING 同样是图标的虚拟持仓,不是你真实持仓

tholding函数标准版也可以用的,不只局限于标准版,只是我们建议常规在后台中使用,图标不建议使用,本例中是特殊情况

tholding的确在股票里会遇到你说的T+1问题,我们可以用TBUYHOLDING(1),这样就能取到你的所有持仓股票数量了



金字塔—专业程序化软件提供商

金字塔-技术部

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

工作时间:周一至周五 08:30 - 17:30   周末及法定节假日休息

Email:service@weistock.com
 回到顶部
帅哥哟,离线,有人找我吗?
王锋
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:罗宾汉 帖子:11808 积分:20695 威望:0 精华:10 注册:2009/8/18 8:15:13
  发帖心情 Post By:2016/5/18 15:10:30 [显示全部帖子]

if barpos < datacount-1 then

begin

  buy(cond and TBUYHOLDING(1)= 0,....);

end;

else

begin

  buy(cond and holding = 0,....);

end;

 

这样就能控制在最后2根K线信号内实盘交易不会出现信号

编程需要一些技巧和逻辑思维的

[此贴子已经被作者于2016-5-18 15:11:00编辑过]


金字塔—专业程序化软件提供商

金字塔-技术部

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

工作时间:周一至周五 08:30 - 17:30   周末及法定节假日休息

Email:service@weistock.com
 回到顶部
帅哥哟,离线,有人找我吗?
王锋
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:罗宾汉 帖子:11808 积分:20695 威望:0 精华:10 注册:2009/8/18 8:15:13
  发帖心情 Post By:2016/5/18 15:12:52 [显示全部帖子]

另外有个东西我们不太明白,既然你是走完K线了,那么怎么还会出现信号消失,建议检查你的代码,是否存在未来数据和跨周期指标引用这样的问题



金字塔—专业程序化软件提供商

金字塔-技术部

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

工作时间:周一至周五 08:30 - 17:30   周末及法定节假日休息

Email:service@weistock.com
 回到顶部