这是先生上次给写的模板,我用了,非常感谢。
这实际想问反手仓的写法,目前模拟仓,基本没有出错。但是因为虚拟资金比较充裕。我很想知道,如果是对冲的做法,完整的,不易出错的反手仓应该怎样设计。比方我们准备40万的资金,根据上面的写法,如果每次开一手多,一手空,反向的时间,另外一手空,一手多,保证金刚好是两手的钱。如何可以不出错。看了您的秘籍,因为是单手反向,和我这个有些区别,有点不知所措。请指导一下,谢谢您了。
我的条件依旧是逐k下,轮训,分笔,触位就动作,图表不同于后台(无历史)该怎么写。向上面的这样操作的话。真不好意思,总麻烦您,谢谢阿火
if islastbar then begin
if bb and EXTGBDATA('ax')<=0 and EXTGBDATA('bx')<=0 then begin
tsellshort(1,0,lmt,远期卖一+3,0,'802089','zjif09'),orderqueue;
tsell(1,0,lmt,近期买一-3,0,'802089','zjif06'),orderqueue;
EXTGBDATASET( 'ax',1);
end
sleep(10000);
if bb and EXTGBDATA('ax')>=0 and EXTGBDATA('bx')<=0 then begin
tbuy(1,1,lmt,远期卖一+3,0,'802089','zjif09'),orderqueue;
tbuyshort(1,1,lmt,近期买一-3,0,'802089','zjif06'),orderqueue;
EXTGBDATASET( 'bx',1);
end
if ss and EXTGBDATA('ax')>=0 and EXTGBDATA('bx')>=0 then begin
tsell(1,0,lmt,远期买一-3,0,'802089','zjif09'),orderqueue;
tsellshort(1,0,lmt,近期卖一+3,0,'802089','zjif06'),orderqueue;
EXTGBDATASET( 'ax',-1);
end
sleep(10000);
if ss and EXTGBDATA('ax')<=0 and EXTGBDATA('bx')>=0 then begin
tbuyshort(1,1,lmt,远期买一-3,0,'802089','zjif09'),orderqueue;
tbuy(1,1,lmt,近期卖一+3,0,'802089','zjif06'),orderqueue;
EXTGBDATASET( 'bx',-1);
end
end
上面的是我自己写的,很粗糙,请您指导。
我用两个全局变量是因为考虑到一个问题:在bb点我们总共要做4步操作,分别是平仓(09空,06多)06没有问题,09有个小问题,因为09盘口一般就一张单子。我的平仓操作就把盘口卖一给吃掉了。之后如果根据条件,还要开09多单,但此时09多单对应的卖一盘口不是bb出现时间的盘口了。因为卖一被我前面的平仓单吃掉了。所以此时的卖一不是刚才出现信号的卖一了。我实际是想满足这样的需求:满足条件先无条件平仓。之后再判定是否还属于bb即盘口被自己打掉后的价格改变是否还满足开仓需要。是的话,开仓。不是就等待,没有就放弃。一旦满足,仍旧是一张多单,一张空单。
昨晚上想了3个小时,拼凑出上面的东西,实际自己完全绕晕了。可能完全不对。请您看看,实现我的希望应该怎样的写,才是正解呢。
sleep函数的加入是因为,我做的是模拟,模拟是不会改变盘口的。所以,基本发出信号和您的单变量效果一样。所以我用sleep函数替代。
谢谢谢谢,阿火
不是有带了“orderqueue” 了吗
而且你下单都是加了3个点了,基本上会立即成交,直接就可以用了