图表策略如下:
开多:kd;
平多:pd;
开空:kk;
平空:pk;
sell((pd or kk) and holding>0,limitr,价格);
buyshort(kk and holding=0,limitr,价格);
sellshort((kd or pk) and holding<0,limitr,价格);
buy(kd and holding=0,limitr,价格);
假如把它改成在后台运行在2分钟到21分钟的20个周期上,限制每个周期最多开平仓1手,限价下单,10秒钟不成交追单保证成交,怎么修改呢?
怎么改成后台,来运行这20个周期呢?怎样保持持仓同步呢?
我说的是单个策略运行在后台多个周期上,每个周期只允许开仓1手,怎么保证总持仓与各周期的持仓保持一致呢?
1.限制每个周期一天最多开平仓1手(多单or空单,一天最多一手),后台使用全局变量控制
//平空
if (kd or pk) and extgbdata('flag2')=2 then
begin
sellshort(1,1,lmt,价格);
extgbdataset('flag2',3);
end
//开多,全局变量为0才开多
if kd and extgbdata('flag2')=0 then
begin
tbuy(1,1,lmt,价格);
extgbdataset('flag2',1);
end
//平多
if (pd or kk) and extgbdata('flag2')=1 then
begin
tsell(1,1,lmt,价格);
extgbdataset('flag2',3);
end
//开空,全局变量为0才开空
if kk and extgbdata('flag2')=0 then
begin
tbuyshort(1,1,lmt,价格);
extgbdataset('flag2',2);
end
//每天收盘前,将全局变量赋值为0,否则第二天不开仓
if DYNAINFO(207)>=closetime(0) then extgbdataset('flag2',0);
2.10秒钟不成交追单保证成交
就用2楼说的功能
6楼是以2分钟周期为例
如果运行在3分钟周期上,就把全局变量改为flag3
1.限制每个周期一天最多开平仓1手(多单or空单,一天最多一手),后台使用全局变量控制
//平空
if (kd or pk) and extgbdata('flag2')=2 then
begin
sellshort(1,1,lmt,价格);
extgbdataset('flag2',3);
end
//开多,全局变量为0才开多
if kd and extgbdata('flag2')=0 then
begin
tbuy(1,1,lmt,价格);
extgbdataset('flag2',1);
end
//平多
if (pd or kk) and extgbdata('flag2')=1 then
begin
tsell(1,1,lmt,价格);
extgbdataset('flag2',3);
end
//开空,全局变量为0才开空
if kk and extgbdata('flag2')=0 then
begin
tbuyshort(1,1,lmt,价格);
extgbdataset('flag2',2);
end
//每天收盘前,将全局变量赋值为0,否则第二天不开仓
if DYNAINFO(207)>=closetime(0) then extgbdataset('flag2',0);
2.10秒钟不成交追单保证成交
就用2楼说的功能
我说的是每个周期开平下单,每次最多1手,而不限制日总手数1手。
用全局变量GLOBALVARIABL或variable变量不行吗?
没人回答?
每次最多1手
那还限制啥,直接在策略里写,具体的开平仓手数就行了