if bb then begin
tsellshort(1,0,lmt,远期卖一+3,0,'802089','zjif09'),orderqueue;
tsell(1,0,lmt,近期买一-3,0,'802089','zjif06'),orderqueue;
tbuy(1,1,lmt,远期卖一+3,0,'802089','zjif09'),orderqueue;
tbuyshort(1,1,lmt,近期买一-3,0,'802089','zjif06'),orderqueue;
end
if ss then begin
tsell(1,0,lmt,远期买一-3,0,'802089','zjif09'),orderqueue;
tsellshort(1,0,lmt,近期卖一+3,0,'802089','zjif06'),orderqueue;
tbuyshort(1,1,lmt,远期买一-3,0,'802089','zjif09'),orderqueue;
tbuy(1,1,lmt,近期卖一+3,0,'802089','zjif06'),orderqueue;
end
大家好!请教一个关于全局变量的问题。
上面的例子。比方出现了bb,于是我们执行bb之后的4步,之后产生的bb不继续开仓。一直等到ss出现,执行ss的四步。之后的ss不执行,直到bb出现
希望通过全局变量来控制。请知道的同志教我一下。
//EXTGBDATASET( 'k1',0);
//EXTGBDATASET( 'h1',0);
if bb and EXTGBDATA('k1' )=0 then begin
tsellshort(1,0,lmt,远期卖一+3,0,'802089','zjif09'),orderqueue;
tsell(1,0,lmt,近期买一-3,0,'802089','zjif06'),orderqueue;
tbuy(1,1,lmt,远期卖一+3,0,'802089','zjif09'),orderqueue;
tbuyshort(1,1,lmt,近期买一-3,0,'802089','zjif06'),orderqueue;
EXTGBDATASET( 'k1',1);
EXTGBDATASET( 'h1',0);
end
if ss and EXTGBDATA('h1' )=0 then begin
tsell(1,0,lmt,远期买一-3,0,'802089','zjif09'),orderqueue;
tsellshort(1,0,lmt,近期卖一+3,0,'802089','zjif06'),orderqueue;
tbuyshort(1,1,lmt,远期买一-3,0,'802089','zjif09'),orderqueue;
tbuy(1,1,lmt,近期卖一+3,0,'802089','zjif06'),orderqueue;
EXTGBDATASET( 'h1',1);
EXTGBDATASET( 'k1',0);
end
谢谢金先生,我去试试
EXTGBDATASET( 'k1',0);
EXTGBDATASET( 'h1',0);
2楼的写法没符合楼主要求吗?
逐K线模式的话,还要加islastbar控制
if bb and EXTGBDATA('k1' )=0 then begin
tsellshort(1,0,lmt,远期卖一+3,0,'802089','zjif09'),orderqueue;
tsell(1,0,lmt,近期买一-3,0,'802089','zjif06'),orderqueue;
tbuy(1,1,lmt,远期卖一+3,0,'802089','zjif09'),orderqueue;
tbuyshort(1,1,lmt,近期买一-3,0,'802089','zjif06'),orderqueue;
if islastbar then begin
EXTGBDATASET( 'k1',1);
EXTGBDATASET( 'h1',0);
end
end
if ss and EXTGBDATA('h1' )=0 then begin
tsell(1,0,lmt,远期买一-3,0,'802089','zjif09'),orderqueue;
tsellshort(1,0,lmt,近期卖一+3,0,'802089','zjif06'),orderqueue;
tbuyshort(1,1,lmt,远期买一-3,0,'802089','zjif09'),orderqueue;
tbuy(1,1,lmt,近期卖一+3,0,'802089','zjif06'),orderqueue;
if islastbar then begin
EXTGBDATASET( 'h1',1);
EXTGBDATASET( 'k1',0);
end
end
以上面的为例,比方存在
1.不开仓,明明满足条件了,不开仓,为什吗说条件满足了呢,因为两点a,全局变量已经改变。b。我用了另外一个帐号,不使用全局变量,即原始信号,是有信号。
2.当bb满足,正常k1应该变成1,但是奇怪的是k1会来回跳,一会是1,一会是0.这就怪了呀,正常情况,k1变回0只可能触及了ss,问题是此时并没有执行ss,而是仍旧保留这bb的仓位。过一会,它又跳回来1了。
如果你的条件是“可历史记忆”的话,用variable就行了吧
逐K线模式
variable:abb=0;
if bb and abb>=0 then begin
abb:=-1;
tsellshort(1,0,lmt,远期卖一+3,0,'802089','zjif09'),orderqueue;
tsell(1,0,lmt,近期买一-3,0,'802089','zjif06'),orderqueue;
tbuy(1,1,lmt,远期卖一+3,0,'802089','zjif09'),orderqueue;
tbuyshort(1,1,lmt,近期买一-3,0,'802089','zjif06'),orderqueue;
end
if ss and abb<=0 then begin
abb:=1;
tsell(1,0,lmt,远期买一-3,0,'802089','zjif09'),orderqueue;
tsellshort(1,0,lmt,近期卖一+3,0,'802089','zjif06'),orderqueue;
tbuyshort(1,1,lmt,远期买一-3,0,'802089','zjif09'),orderqueue;
tbuy(1,1,lmt,近期卖一+3,0,'802089','zjif06'),orderqueue;
end