以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://www.weistock.com/bbs/index.asp)
--  金字塔软件问题提交  (http://www.weistock.com/bbs/list.asp?boardid=2)
----  重复下单  (http://www.weistock.com/bbs/dispbbs.asp?boardid=2&id=164615)

--  作者:shengweis
--  发布时间:2018/7/27 15:35:44
--  重复下单

老师,您好,

 

帮看一下为什么出现同一位置重复下单,而策略持仓数量不变?

 

Input:A(3500,1,25000,1), ZY(20,1,10000,1),qty(1,1,100,1),KCJC(15,1,10000,1);

 
ccs:=abs(holding);
 
if ABS(HOLDING)=0 and CLOSE>A THEN BUYSHORT (1,qty,LIMITR,CLOSE-10),IGNORECHECKPRICE;

if ABS(HOLDING)=1*qty and CLOSE>A+1*KCJC THEN BUYSHORT (1,qty,LIMITR,CLOSE-10),IGNORECHECKPRICE;
if ABS(HOLDING)=2*qty and CLOSE>A+2*KCJC THEN BUYSHORT (1,qty,LIMITR,CLOSE-10),IGNORECHECKPRICE;
if ABS(HOLDING)=3*qty and CLOSE>A+3*KCJC THEN BUYSHORT (1,qty,LIMITR,CLOSE-10),IGNORECHECKPRICE;
if ABS(HOLDING)=4*qty and CLOSE>A+4*KCJC THEN BUYSHORT (1,qty,LIMITR,CLOSE-10),IGNORECHECKPRICE;
if ABS(HOLDING)=5*qty and CLOSE>A+5*KCJC THEN BUYSHORT (1,qty,LIMITR,CLOSE-10),IGNORECHECKPRICE;
if ABS(HOLDING)=6*qty and CLOSE>A+6*KCJC THEN BUYSHORT (1,qty,LIMITR,CLOSE-10),IGNORECHECKPRICE;
if ABS(HOLDING)=7*qty and CLOSE>A+7*KCJC THEN BUYSHORT (1,qty,LIMITR,CLOSE-10),IGNORECHECKPRICE;

 

CCS2:=ABS(HOLDING)/qty-1;
 For W1=0 To CCS2 do 
 BEGIN
 F1:=A+W1*KCJC-ZY;
 If Close<F1 AND DAYHOLDING=0 THEN SELLSHORT (1,qty,LIMITR,CLOSE+10),IGNORECHECKPRICE;
 end

持仓:holding,linethick0;
资产:asset,noaxis;
可用现金:cash(0),linethick0;

 


--  作者:banzhuan
--  发布时间:2018/7/27 15:40:45
--  
提供一下重复下单那时候的日志,或者直接上传一下完整日志
--  作者:shengweis
--  发布时间:2018/7/27 15:44:58
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:pleaceorder.txt


--  作者:shengweis
--  发布时间:2018/7/27 15:46:06
--  
上传了,看得到吗?
--  作者:banzhuan
--  发布时间:2018/7/27 15:55:15
--  
上述日志是从14:18分开始的,您具体是哪个时间点重复下单的呢? 或者您直接把OrderLog文件夹压缩了上传
--  作者:shengweis
--  发布时间:2018/7/27 16:10:03
--  
这个日志是对的,是9:00, 9:03,9:10这三个时间点,谢谢
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:pleaceorder.txt2018-07-27 09#35#46.txt


--  作者:banzhuan
--  发布时间:2018/7/27 16:24:58
--  
您是指策略信号触发了多次,而实际只下单了一次是吧?   您的运行周期是什么呢? 
图表程序化的机制是:在同一根K线上,一句BUY(sell)语句只能下单一次,不会重复触发的,用for循环也不行的
[此贴子已经被作者于2018/7/27 16:26:34编辑过]

--  作者:shengweis
--  发布时间:2018/7/27 17:57:14
--  
信号触发一次,但下单了三次,运行周期是一分钟,我也认为只应该下单一次才对,结果多下了两次,而且,策略的持仓数还没计入后面多出来的两张单子
--  作者:banzhuan
--  发布时间:2018/7/30 8:45:52
--  
根据日志记录的信号有触发了3次,也委托下单了3次;该现象可能是信号闪烁造成的,信号在盘中满足条件并触发了信号,然后又消失了;
您说的策略持仓数是holding吧? 从历史K上去查看只有1次信号,但盘中的确是满足了3次条件,触发了开仓指令。您的代码中是否有跨周期引用呢?

--  作者:shengweis
--  发布时间:2018/7/30 10:23:27
--  
没有引用别的周期,奇怪的是多出来的那两个开仓还不改变持仓数量。我的代码就贴在上面,很简单的,但持仓数量每次提取会影响计算