runmode:1;
if tisremain(0) then exit;
if tholding=0 then
tbuy(1,1,lmt,close,0,'',stklabel),allowrepeat;

此主题相关图片如下:aaa.png
[此贴子已经被作者于2012-2-17 9:16:36编辑过]
估计是持仓还没有刷新过来导致继续下单,建议你在TBUY的条件参数位置加上对未成交单、指定方向持仓量的判断
应该可以解决这个问题
以下是引用董小球在2012-2-17 9:30:45的发言:估计是持仓还没有刷新过来导致继续下单,建议你在TBUY的条件参数位置加上对未成交单、指定方向持仓量的判断
应该可以解决这个问题
不是说tisremain(0)在没收到成交回报前为true么?那怎么还会继续向下运行?
tisremain在没有收到成交回报之前是返回1的,但是如果连下单委托回报都还没收到,那么他是返回0的,所以如果你在高频模式下连续下单,那么
if tisremain(0) then exit;
if tholding=0 then
上述的条件,是会有问题的
也就是说,从你下单,到收到委托回报之前这段时间,你要控制他不能连续下单
反正,我觉得通过在各个地方加入对未成交单和已经持仓的判断基本可以解决这个问题,完全抛弃依赖网络,只根据账户的实际情况来判断
IF KONGCOND AND TSELLHOLDINGEX('' ,PZ,0 )=0 AND TREMAINQTY( 1, '',PZ )=0 AND TREMAINQTY( 4, '',PZ )=0 THEN BEGIN
TBUYSHORT(TSELLHOLDINGEX('' ,PZ,0 )+TREMAINQTY( 3, '',PZ )<KX1,KX1,LMT,DYNAINFO( 20)),ALLOWREPEAT;
END
你看 我写这种REPEAT语句的时候,在多个点反复加入对这两点的判断,基本就问题不大了!当然也不能完全保证没问题,不行就稍微降低点刷新指标的频率吧~否则就改善网络情况,走专线,让回报们快点~
以下是引用王锋在2012-2-17 10:28:34的发言:tisremain在没有收到成交回报之前是返回1的,但是如果连下单委托回报都还没收到,那么他是返回0的,所以如果你在高频模式下连续下单,那么
if tisremain(0) then exit;
if tholding=0 then
上述的条件,是会有问题的
也就是说,从你下单,到收到委托回报之前这段时间,你要控制他不能连续下单
金字塔和柜台系统交互过程中的回报除了委托回报和成交回报,就没别的回报了吧?
以下是引用董小球在2012-2-17 10:33:26的发言:反正,我觉得通过在各个地方加入对未成交单和已经持仓的判断基本可以解决这个问题,完全抛弃依赖网络,只根据账户的实际情况来判断
IF KONGCOND AND TSELLHOLDINGEX('' ,PZ,0 )=0 AND TREMAINQTY( 1, '',PZ )=0 AND TREMAINQTY( 4, '',PZ )=0 THEN BEGIN
TBUYSHORT(TSELLHOLDINGEX('' ,PZ,0 )+TREMAINQTY( 3, '',PZ )<KX1,KX1,LMT,DYNAINFO( 20)),ALLOWREPEAT;
END
你看 我写这种REPEAT语句的时候,在多个点反复加入对这两点的判断,基本就问题不大了!当然也不能完全保证没问题,不行就稍微降低点刷新指标的频率吧~否则就改善网络情况,走专线,让回报们快点~
tremainqty在没收到委托回报前还是0呀,同样解决不了这个问题
所以别非用0来判断,可以用小于某个值大于某个值也一样可以做出同样的判断效果来的