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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件金字塔软件问题提交 → 关于分笔刷新的问题,重复下单

   

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


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

主题:关于分笔刷新的问题,重复下单

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


加好友 发短信
等级:标准版用户 帖子:97 积分:0 威望:0 精华:0 注册:2016/5/20 15:15:48
关于分笔刷新的问题,重复下单  发帖心情 Post By:2016/6/3 23:29:48 [只看该作者]

问题一:
交易的时候碰到连续发出相同的buy指令如图,我用的是3个分笔数据为一根K线(因为怕机器太卡),我能否理解为因为用了3笔的分笔数据,所以HOLDING要3笔数据走完形成K线后holding才变成1,造成第1笔刷过后holding还是0,第二笔满足条件也下了同样的buy指令?
如果改成1笔的分笔数据会否解决这个问题,但是这个更耗CPU,又或者是用filter过滤?


问题二:
下单记录里面的“【图表】HSI06 运行完毕”,是否是代表刷新一次?如果是的话那么为什么我在分笔明细里面查看,刷新的次数远比我的分笔多?也就是刷新频率比分笔还快?不是说来一笔刷一笔吗?如果频率太高,怎么降到来一笔刷一笔呢?
图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看

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


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


加好友 发短信
等级:标准版用户 帖子:97 积分:0 威望:0 精华:0 注册:2016/5/20 15:15:48
  发帖心情 Post By:2016/6/3 23:31:14 [只看该作者]

另外补充一下,我用的是IB的TWS数据,分笔的明细应该是准确的。

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


加好友 发短信
等级:罗宾汉 帖子:11808 积分:20695 威望:0 精华:10 注册:2009/8/18 8:15:13
  发帖心情 Post By:2016/6/4 0:09:40 [只看该作者]

3个分笔数据为一个K线?那就是你是用的3笔周期做的了?

你的前后2次交易已经过去了一秒多,也就是会产生新的K线,你要检查你的策略是不是出现信号闪烁了



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

金字塔-技术部

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

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

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


加好友 发短信
等级:标准版用户 帖子:97 积分:0 威望:0 精华:0 注册:2016/5/20 15:15:48
  发帖心情 Post By:2016/6/4 12:43:45 [只看该作者]

是的3笔一根K线;
我公式里面有用全局变量做标记了,轮询一遍后全局变量已经改变,换K线后应该不满足BUY的要求。

有没有像文华里面的autofilter这样的过滤重复信号的方法?  或者:

我看filter函数后面要跟条件的(这样表述太麻烦),可否:buy(1,1,marketr),filter;   这样表述能过滤吗?

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


加好友 发短信
等级:罗宾汉 帖子:11808 积分:20695 威望:0 精华:10 注册:2009/8/18 8:15:13
  发帖心情 Post By:2016/6/4 21:07:12 [只看该作者]

日志上已经很明确的标明了,你应该是在一根K线下单后,出现一根新的K线又出现下单信号了。

建议你贴出来你的下单代码,我们可以帮你看一下。另外如果你的策略中含有可能造成信号闪烁的问题,那么这个主要的原因还需要你来进行排查的,你可以认真参考一下

 

DEBUGFILE----使用日志方式完善您的策略

http://www.weistock.com/bbs/dispbbs.asp?boardid=4&Id=49428



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

金字塔-技术部

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

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

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


加好友 发短信
等级:标准版用户 帖子:97 积分:0 威望:0 精华:0 注册:2016/5/20 15:15:48
  发帖心情 Post By:2016/6/5 16:08:43 [只看该作者]

第一个满足buy命令的3笔k线是由54秒的2笔和55秒的第1笔组成的。第一个buy信号是54秒的第一个轮询产生的,第二个buy信号是55秒的第一个轮询产生的,所以这个重复开仓应该是1根K线内的第一笔和第三笔触发的,我用的是CROSS命令和全局变量来触发买的条件,而且cross是用H和L的,应该不会有信号闪烁吧.

全部比较长,贴出来出问题的那部分:

记录全局变量......F31=0,HD=0;//HD是我用来记录仓位的全局变量,F31是我用来记录之前有否经过设定的阻力线,F31=0为没有经过,1为经过并开仓中,2表示经过已平仓.
//策略31
C315ZS:=CROSS(H,P31+10);//冲破31+10
D31:=CROSS(P31,L);//跌破31
D315ZS:=CROSS(P31-10,L);//跌破31-10
D31ZS:=CROSS(P31-20,L);//跌破31-20

//策略3多头31 F31
IF D31=1&&F31=0 THEN BEGIN  //第一次跌破31开始循环
IF HD<0 THEN BEGIN   //如果全局变量记录的持仓小于0
SELLSHORT(1,1,MARKETR); //如果第一次空头跌破31,那么空头平仓
BUY(1,1,MARKETR); //无持仓时买入
F31:=1; //记录31多头开过仓
HD:=1; //全局变量持仓变为1
END;
IF HD=0&&F31=0 THEN BEGIN//加上F31=0是为了预防91条成交但是92条还没有成交时HD=0,到本条的时候重复提交市价买入
BUY(1,1,MARKETR);        《《《出现重复开仓命令的82行命令
F31:=1; //记录31多头开过仓
HD:=1; //全局变量持仓变为1
END;
IF HD>0 THEN BEGIN
F31:=1; //全局变量持仓变为1
END;
END;
IF F31=1&&((C32=1&&F32=0) OR D31ZS=1)&&HD>0 THEN BEGIN   //策略3多头持仓时冲破32或者跌破31的止损位置
SELL(1,1,MARKETR);  // 如果破策略3空头或者破止损,则平仓
F31:=2; 
HD:=0;  //全局变量持仓变为0
END;





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


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
  发帖心情 Post By:2016/6/6 8:55:57 [只看该作者]

buy(holding=0,1,marketr);

软件里使用holding=0这个来做到不加仓的过滤机制


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


加好友 发短信
等级:标准版用户 帖子:97 积分:0 威望:0 精华:0 注册:2016/5/20 15:15:48
  发帖心情 Post By:2016/6/6 9:49:11 [只看该作者]

我考虑过了,是否是这个原因?请帮我分析下:

因为我采用的是全局变量,而这个普通全局变量是会与前一根全局变量比较的,所以当前分笔为3笔的lastbar在刷新的时候,第一笔信号出现下单,而再有信号出现的时候,全局变量是和前一个BAR的全局变量做比较而不是和前一笔的全局变量做比较,而前一格BAR的全局变量还没有变过来,所以还是会发出买入的信号。
如果是这个原因的话,我就选K线走完再下单,就可以解决了吧?


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


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
  发帖心情 Post By:2016/6/6 10:20:19 [只看该作者]

你是用的variable的全局变量吗?如果是的话没有问题,是可以记录你那个状态的。

你要看之前历史信号是否会闪烁,全局变量每次都是从头开始刷新,和holding很类似,有信号开仓就会加1,如果信号消失那么持仓就是0


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


加好友 发短信
等级:标准版用户 帖子:148 积分:0 威望:0 精华:0 注册:2016/5/24 17:13:14
  发帖心情 Post By:2016/6/6 14:38:53 [只看该作者]

原来如此~!

 回到顶部
总数 14 1 2 下一页