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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件金字塔软件问题提交 → 如何控制开仓次数

   

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


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

主题:如何控制开仓次数

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


加好友 发短信
等级:论坛游侠 帖子:388 积分:0 威望:0 精华:0 注册:2014/11/22 18:13:16
如何控制开仓次数  发帖心情 Post By:2020/11/20 15:58:45 [只看该作者]

开仓次数  发帖心情 Post By:2018/4/4 9:13:52 [只看该作者]

我想请问一下
金字塔一句buy语句只能执行一次。
因为每次重新启动程序化的,语句都会重置,或者单根K线采用固定间隔时间轮询时,会应为tick数据反复出现而满足开平仓条件就会不停开平仓。
那有没有办法来限制开仓的次数?

采用以下方法,使用GETREGVAL()EXTGBDATASET()

mholding:=GETREGVAL'mholding');
IF HOLDING=0 THEN BEGIN //若持仓为0
 IF ENTRYLONGCOND&&mholding=0 THEN BEGIN //且满足开多条件
    mholding:=mholding+1;
    EXTGBDATASET('mholding',mholding);
    BUY(1,手数,LIMITR,KDL),IGNORECHECKPRICE;//开多单  KPJ:=MAX(OPEN,UPPERBAND);
 END   
END
这样在5分钟K线下,即使采用固定1秒轮询(Tick)下反复满足ENTRYLONGCOND,也会因为开一次仓后mholding>=1而在一根K线下开一次仓!谢谢

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


加好友 发短信
等级:超级版主 帖子:16558 积分:0 威望:0 精华:0 注册:2017/6/1 10:24:09
  发帖心情 Post By:2020/11/20 16:04:13 [只看该作者]

1、在程序化运行中,5分钟周期K线上,一个buy语句无论触发多少次,只会开仓一次;

2、重新启动程序化后,建议勾选“重复信号交易检测”,如果该根K有信号则会弹出提示框,点否即可;

图片点击可在新窗口打开查看此主题相关图片如下:temp.png
图片点击可在新窗口打开查看

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


加好友 发短信
等级:论坛游侠 帖子:388 积分:0 威望:0 精华:0 注册:2014/11/22 18:13:16
  发帖心情 Post By:2020/11/20 16:16:27 [只看该作者]

开仓次数  发帖心情 Post By:2018/4/4 9:13:52 [只看该作者]

或者单根K线采用固定间隔时间轮询时,会应为tick数据反复出现而满足开平仓条件就会不停开平仓。
那有没有办法来限制开仓的次数?

采用以下方法,使用GETREGVAL()SETREGVAL()

mholding:=GETREGVAL('J8','mholding',0);
IF HOLDING=0 THEN BEGIN //若持仓为0
 IF ENTRYLONGCOND&&mholding=0 THEN BEGIN //且满足开多条件
    mholding:=mholding+1;
    SETREGVAL('J8','mholding',mholding);
    BUY(1,手数,LIMITR,KDL),IGNORECHECKPRICE;//开多单  KPJ:=MAX(OPEN,UPPERBAND);
 END   
END
这样在5分钟K线下,即使采用固定1秒轮询(Tick)下反复满足ENTRYLONGCOND,也会因为开一次仓后mholding>=1而在一根K线下开一次仓!谢谢


老师,我问的是5分钟K线,信号采用的是固定间隔1秒轮询下,而不是走完K。所以经常出现反复开仓,现在我才用上面的方法,老师看看能不能控制开仓次数。
[此贴子已经被作者于2020/11/20 16:18:00编辑过]

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


加好友 发短信
等级:超级版主 帖子:16558 积分:0 威望:0 精华:0 注册:2017/6/1 10:24:09
  发帖心情 Post By:2020/11/20 16:26:19 [只看该作者]

不用控制,图表的机制就是单根K上一个开仓语句,不管是不是固定轮询,都只会开仓一次,您可以用c>o试试,哪怕信号重复触发了N次,但是只会下单一次。

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


加好友 发短信
等级:论坛游侠 帖子:388 积分:0 威望:0 精华:0 注册:2014/11/22 18:13:16
  发帖心情 Post By:2020/11/20 16:33:44 [只看该作者]

那就有点奇怪了,为何我的实盘反复会开仓呢?金字塔版本5.21,我用IF HOLDING=0 THEN BEGIN //若持仓为0在K线走完模式下保证只能信号只要出现一次,不管以后K线出现多少次同向信号都只开一次仓,但是在固定轮询下却反复开仓呢?所以才想到限制
 IF ENTRYLONGCOND&&mholding=0 THEN BEGIN //且满足开多条件

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


加好友 发短信
等级:超级版主 帖子:16558 积分:0 威望:0 精华:0 注册:2017/6/1 10:24:09
  发帖心情 Post By:2020/11/20 16:42:48 [只看该作者]

1、不管哪个版本都不会同根K上反复开仓,也有可能代码里不止一个buy语句,有多个开多语句。

2、您可以在盘中用最简单的策略去测试下

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


加好友 发短信
等级:论坛游侠 帖子:388 积分:0 威望:0 精华:0 注册:2014/11/22 18:13:16
  发帖心情 Post By:2020/11/20 16:45:12 [只看该作者]

我是实盘喔,老师,我用的是holding=0限制只开一手,棉花同向开了24手!难道固定轮询holding起不了作用!

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


加好友 发短信
等级:超级版主 帖子:16558 积分:0 威望:0 精华:0 注册:2017/6/1 10:24:09
  发帖心情 Post By:2020/11/20 17:02:18 [只看该作者]

一般测试都建议用simnow模拟交易,等策略稳定后才上实盘

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


加好友 发短信
等级:论坛游侠 帖子:388 积分:0 威望:0 精华:0 注册:2014/11/22 18:13:16
  发帖心情 Post By:2020/11/20 18:51:03 [只看该作者]

谢谢老师提醒采用simnow模拟交易。但是为何holding=0在固定轮询中限制不了开仓呢?求解!

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


加好友 发短信
等级:管理员 帖子:26631 积分:0 威望:0 精华:7 注册:2015/4/9 14:59:07
  发帖心情 Post By:2020/11/22 16:55:30 [只看该作者]

图表不支持是用注册表这类没有历史值的函数,会造成历史信号闪烁。自然holding作为图表的历史理论持仓,自然无法有效控制,因为它一直在变化。



编程无捷径,技巧靠积累。
 回到顶部