我在图表程序化中使用下面的语句来控制当天卖出股票后满足买入条件不再买,能得到正常的控制。
VARIABLE:TZKC:=0;
IF HOLDING>0 THEN
BEGIN
TZKC:=1;
END
IF HOLDING=0 AND (TIME=150000 OR TIME=093000) THEN
BEGIN
TZKC:=0;
END
我在后台程序化中修改如下:
VARIABLE:TZKC:=0;
IF THOLDING>0 THEN
BEGIN
TZKC:=1;
END
IF TBUYHOLDINGEX('','',2)=0 AND (TIME=150000 OR TIME=093000) THEN
BEGIN
TZKC:=0;
END
if islastbar then
BEGIN
DEBUGFILE('D:\TEDT\TEST.TXT',STKLABEL&'TZKC:%.0f',TZKC);
end
检查输出结果,在股票平仓后,下一周期输出TZKC=0,没有等到收盘或者第二天开盘就重置为0 了,起不到控制当天不再开仓的作用。
请教:是否再后台程序化中需要把VARIABLE更换为GLOBALVARIABLE后,就与VARIABLE在图表程序化的效果一样了,不再被重置?
建议使用extgbdataset赋值和extgbdata取值,extgbdata初始值为0,两个成对使用
IF THOLDING>0 THEN
BEGIN
extgbdataset(stklabel&numtostr(period,2)&'ci',1);
END
IF TBUYHOLDINGEX('','',2)=0 TIME=093000 THEN
BEGIN
extgbdata(stklabel&numtostr(period,2)&'ci')=0
END
if 开仓条件 and extgbdata(stklabel&numtostr(period,2)&'ci')=0 then
begin
tbuy();
end