问题1 后台系统如何控制日内交易次数?
我大概知道是用全局变量~
比如extgbdata('num_trade',0);
然后每次平仓外生全局变量'num_trade'加1如何做到?
问题2 如何区分2个后台系统在一个品种上的持仓?
还是用外生全局变量~我记得在z7c9某个帖子上看到个类似的~结果没收藏现在找不到了...
TTOTALDAYTRADE 日内交易次数
有这么个函数
问题2的 估计应该是自己写全局变量然后记录本策略里的交易数据吧
否则取帐户数据的话,还是会相互干扰
input:max_trade(1,0,10);
variable:num_trade=0;
num_trade := EXTGBDATA('num_trade');
IF( date<>ref(date,1) or barstatus=1 ) THEN BEGIN
num_trade := 0;
EXTGBDATASET('num_trade', num_trade);
END
//开仓加次数限制
buy(开仓条件 and num_trade<max_trade,,,,,);
//开仓成功后设置全局变量
EXTGBDATASET('num_trade', num_trade+1);
第二个问题解决办法同第一个。
用不同变量记录即可。
input:max_trade(1,0,10);
variable:num_trade=0;
num_trade := EXTGBDATA('num_trade');
IF( date<>ref(date,1) or barstatus=1 ) THEN BEGIN
num_trade := 0;
EXTGBDATASET('num_trade', num_trade);
END
//开仓加次数限制
buy(开仓条件 and num_trade<max_trade,,,,,);
//开仓成功后设置全局变量
EXTGBDATASET('num_trade', num_trade+1);
我感觉你这样写会有点问题~
两个'num_trade'的全局变量运算似乎会出现循环出错...
虽然没调试...
runmode:1;
myholding:=stklabel+'_pcb';
tradenumber:=stklabel+'_num';
if extgbdata(tradenumber)>=3 then exit;
if extgbdata(myholding)=0 then begin
if true then begin
tbuy(1,1,lmt,close);
extgbdataset(myholding,1);
end
end
if extgbdata(myholding)>0 then begin
if true then begin
tsell(1,1,lmt,close);
extgbdataset(tradenumber,extgbdata(tradenumber)+1);
end
end