以文本方式查看主题
- 金字塔客服中心 - 专业程序化交易软件提供商 (http://222.73.7.161/bbs/index.asp)
-- 公式模型编写问题提交 (http://222.73.7.161/bbs/list.asp?boardid=4)
---- 无回报 (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=148324)
|
-- 作者:林华强
-- 发布时间:2017/2/28 15:26:32
-- 无回报
红色框是我的一单平多的追单,为什么后面一直就没有回报了,导致我15手多单一直没法平掉?这是我的代码:{撤单追单} n1:=TREMAINQTY(1,\'\',\'\'); if TSUBMIT(1)>秒数 then begin tcancel(1,1); if abs(TORDERPRICE(1,1)-dynainfo(7))<=5*mindiff then tbuy(1,n1,lmt,DYNAINFO(34)); end n2:=TREMAINQTY(2,\'\',\'\'); if TSUBMIT(2)>秒数 then begin tcancel(1,2); if abs(TORDERPRICE(2,1)-dynainfo(7))<=5*mindiff then tsell(1,n2,lmt,DYNAINFO(28)); end n3:=TREMAINQTY(3,\'\',\'\'); if TSUBMIT(3)>秒数 then begin tcancel(1,3); if abs(TORDERPRICE(3,1)-dynainfo(7))<=5*mindiff then tbuyshort(1,n3,lmt,DYNAINFO(28)); end n4:=TREMAINQTY(4,\'\',\'\'); if TSUBMIT(4)>秒数 then begin tcancel(1,4); if abs(TORDERPRICE(4,1)-dynainfo(7))<=5*mindiff then tsellshort(1,n4,lmt,DYNAINFO(34)); end;
此主题相关图片如下:qq截图20170228152329.png

|
-- 作者:jinzhe
-- 发布时间:2017/2/28 15:38:01
--
你圈的地方往下数10行,这里显示了被撤掉了
|
-- 作者:林华强
-- 发布时间:2017/2/28 15:46:56
--
撤单应该是上面那一单吧!我未成交委托超时5秒才让它撤单
此主题相关图片如下:回报.png

[此贴子已经被作者于2017-2-28 15:47:55编辑过]
|
-- 作者:jinzhe
-- 发布时间:2017/2/28 15:57:58
--
从上面的日志看,顺序是这样的:
有25手单,系统平仓15手-----这15手未成交但同时还剩10手-----系统触发撤单和平仓---平掉剩下的10手,同时撤单之前未成交的15手---10手平仓是成交的,然后剩下15手
[此贴子已经被作者于2017-2-28 15:58:17编辑过]
|
-- 作者:jinzhe
-- 发布时间:2017/2/28 16:00:18
--
n1:=TREMAINQTY(1,\'\',\'\');
if TSUBMIT(1)>秒数 then begin
tcancel(1,1),orderqueue;
if abs(TORDERPRICE(1,1)-dynainfo(7))<=5*mindiff then tbuy(1,n1,lmt,DYNAINFO(34)),orderqueue;
end
n2:=TREMAINQTY(2,\'\',\'\');
if TSUBMIT(2)>秒数 then begin
tcancel(1,2),orderqueue;
if abs(TORDERPRICE(2,1)-dynainfo(7))<=5*mindiff then tsell(1,n2,lmt,DYNAINFO(28)),orderqueue;
end
n3:=TREMAINQTY(3,\'\',\'\');
if TSUBMIT(3)>秒数 then begin
tcancel(1,3),orderqueue;
if abs(TORDERPRICE(3,1)-dynainfo(7))<=5*mindiff then tbuyshort(1,n3,lmt,DYNAINFO(28)),orderqueue;
end
n4:=TREMAINQTY(4,\'\',\'\');
if TSUBMIT(4)>秒数 then begin
tcancel(1,4),orderqueue;
if abs(TORDERPRICE(4,1)-dynainfo(7))<=5*mindiff then tsellshort(1,n4,lmt,DYNAINFO(34)),orderqueue;
end; 加一个顺序下单你试试
|
-- 作者:林华强
-- 发布时间:2017/2/28 16:27:29
--
这10手和25手分别是两个策略下的单:我是这样理解的,你看看对不对: 我原本仓位有25手,这时撤单15手,可是撤单回报还没回来,实际持仓只有10手,此时追单平仓15手不够,只能报单10手,接着才收到撤单回报,实际持仓变为15
|
-- 作者:jinzhe
-- 发布时间:2017/2/28 16:30:50
--
原本25手,触发平仓15手但是不成交。接着是上面的问题了:先触发撤单,然后几乎同时触发平仓,但是此时只剩下10手,所以进行报单平仓10手,之后接着撤单成功,再接着平仓10手成功
我加了一个顺序下单,让撤单成功后再平仓,你可以试试看
|
-- 作者:林华强
-- 发布时间:2017/3/1 15:22:14
--
加了ORDERQUEUE后出现这个问题:未成交超时5秒后,第一次撤单追单没问题,但是追单后又超时5秒,接着撤单追单就出问题了! 14:37:25.102 【后台】T06 TCancel 出现信号 类型:4 之后不断等待 14:37:40.124 【回报】616268 : T06 10年国债1706 - 已撤单 量:15 过了15秒才收到回报 接着应该继续追单的 TSellShort ,可是并没有,导致我仓位15手没平掉。
此主题相关图片如下:回报.png

此主题相关图片如下:等待.png

此主题相关图片如下:回报2.png

|
-- 作者:jinzhe
-- 发布时间:2017/3/1 15:23:29
--
那就没有好办法了,你用系统自带的追单撤单功能
|
-- 作者:林华强
-- 发布时间:2017/3/1 15:41:08
--
还有一个问题,只是我其中一个模型的代码,在开平仓的出现下面这个问题:因为是金叉做多,死叉做空,所以开平仓信号是同时出现的,TBuy 跟TSellShort 超时5秒,第一次撤单追单是没问题的,可是后面只有TBUY的回报,TSellShort 的回报怎么没了?input:a(5),b(10);
{全局变量} variable:手数=10, 秒数=5;
{指标调用} ma1:ma(c,a); ma2:ma(c,b);
{时间控制} TRADETIME:TIME>=093000 and TIME<=150000; STOPTIME:TIME>=151000;
开多条件:=cross(ma1,ma2); 开空条件:=cross(ma2,ma1);
if REF(开多条件,1) and TRADETIME then begin tsellshort(EXTGBDATA(\'JUNXIAN\')<0,手数,LMT,CLOSE,0); tbuy(1,手数,LMT,CLOSE,0); EXTGBDATASET(\'JUNXIAN\',手数); DEBUGOUT(\'双均线开多啦%.0f\',EXTGBDATA(\'JUNXIAN\')); end; if REF(开空条件,1) and TRADETIME then begin tsell(EXTGBDATA(\'JUNXIAN\')>0,手数,LMT,CLOSE,0); tbuyshort(1,手数,LMT,CLOSE,0); EXTGBDATASET(\'JUNXIAN\',-1*手数); DEBUGOUT(\'双均线开空啦%.0f\',EXTGBDATA(\'JUNXIAN\')); end;
IF STOPTIME THEN BEGIN TSELL(EXTGBDATA(\'JUNXIAN\')>0,手数,MKT); TSELLSHORT(EXTGBDATA(\'JUNXIAN\')<0,手数,MKT); EXTGBDATASET(\'JUNXIAN\',0); END;
此主题相关图片如下:均线.png

此主题相关图片如下:均线1.png

|