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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 求组:收盘前最后一根k线出信号的问题

   

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


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

主题:求组:收盘前最后一根k线出信号的问题

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


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2021/3/5 13:18:44    Post IP:58.246.57.26[显示全部帖子]

 没发模拟你是指历史回测?还是实际用模拟账号交易测试不行?


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2021/3/5 15:32:17    Post IP:58.246.57.26[显示全部帖子]

 代码没问题,是不是你没用固定轮询模式或者固定轮询间隔太大了?你这个至少应该1s的轮询。


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2021/3/5 16:23:22    Post IP:58.246.57.26[显示全部帖子]

 那不行。这个提前多少秒必须固定轮询模式才行。
不过你可以尝试采用下面这种方式 在固定轮询下实现走完K下单:

http://www.weistock.com/bbs/dispbbs.asp?boardid=10&Id=151891


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2021/3/8 13:06:35    Post IP:58.246.57.26[显示全部帖子]

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

走完K只能这样了。但是这个下单是全部信号,任意K出信号 都提前N秒检测。


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2021/3/8 15:15:08    Post IP:58.246.57.26[显示全部帖子]

 不行。这个是软件功能了,程序代码无法干涉的。 能随意控制的提前下单 只能固定轮询。

另外你现在其实只是说无法解决最后一个K出信号的问题是吗?比如最后一个K满足某个条件,但是因为下单是按照ref来判断的,所以这样导致最后一个K满足条件不能下单是吗?



命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2021/3/8 15:55:38    Post IP:58.246.57.26[显示全部帖子]

 可以考虑下面这种做法。对收盘K额外处理:

(ref(a,1) and not(time=CLOSETIME(0))) or (time=CLOSETIME(0) and a)

上面逻辑就是如果是收盘k,当前满足当前下单。否则就是次个K开盘下单。


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2021/3/9 13:59:40    Post IP:58.246.57.26[显示全部帖子]

好像不用那么麻烦了,反过来改非收盘K下单的方式就行了。

ST:=TIME=113000;
XT:=TIME=150000;
TT1:=ST OR XT;
TT2:=TT1<>1;
TQ:=(TIME0-TIMETOT0(DYNAINFO(207))<=3) OR NOT(ISLASTBAR); //提前3秒
KDPK2:ref(KDPK,1);//ref不能在if内部,所以这里单独拎出来。
IF TT2 THEN SELLSHORT(KDPK2 AND HOLDING<=0,手数,MARKETR),ORDERQUEUE;//非最后一个K,判断上一个K是否满足条件来实现固定轮询模式下的走完K下单。
IF TT1  AND TQ THEN SELLSHORT(KDPK AND HOLDING<=0,手数,MARKETR),ORDERQUEUE;//如果是最后一个K,则是在最后N秒 如果有信号则下单。
1.必须用固定轮询模式。
2.代码修改如上红色部分。这个意思就是注释里说明的。非收盘K下单这里是在固定轮询下采用ref 的方式,这个和走完K下单是一样的效果的。

3.收盘的2个K,最后3秒有信号就下单。不等K线走完。  不过虽然只有三秒,但是也可能闪烁。这个没办法避免。

这是目前最好的解决方式了。


[此贴子已经被作者于2021/3/9 14:02:41编辑过]


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2021/3/10 8:53:09    Post IP:58.246.57.26[显示全部帖子]

固定轮询模式下,指令设置为限价然后 价格写open就是本周期开盘价下单了。


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2021/3/11 13:43:22    Post IP:58.246.57.26[显示全部帖子]

 1.“出信号是变成第二天开盘价”你这里是指回测吧?
2.“如果加入提前下单,能变成今天收盘前3秒成交单吗” 会的。


命数如织,当如磐石。
 回到顶部