a1:=barssince(a);
b1:=barssince(b);
.....
f1:=barssince(f);
nn:=max(a1,max(b1,max(c1,max(d1,ma(e1,f1)))));
n:=if(nn=a1,a1,if(nn=b1,b1,if(nn=c1,c1,if(nn=d1,d1,if(nn=e1,e1,f1))))));
sss:ref(x,n);
a1:=barssince(a);
b1:=barssince(b);
.....
f1:=barssince(f);
nn:=max(a1,max(b1,max(c1,max(d1,ma(e1,f1)))));
n:=if(nn=a1,a1,if(nn=b1,b1,if(nn=c1,c1,if(nn=d1,d1,if(nn=e1,e1,f1))))));
sss:ref(x,n);
谢谢老师。这个是日K间的。当根K内也可以用吗?
因为往往是某天平仓条件1成立而平仓,之后同天(同根K)又可能另一条件2也成立了再平仓信号(实际上已无仓位可平),这个计算盈利只能按首次成立的条件计算的。
如果一天之内你讲的好几个平仓条件都成立了
那么信号触发在你写的最前面的那句
首次成立需要配合后台交易判断了
图表上无法记录
后台记录办法
if 条件a then extgbdataset('atime',dynainfo(207));
if 条件b then extgbdataset('btime',dynainfo(207));
if 条件c then extgbdataset('ctime',dynainfo(207));
最后判断extgbdata('atime'),extgbdata('btime'),extgbata('ctime')那个小,最小的且不等于0的是最先触发的
还要重置下变量为0
if time=closetime(0) then beg
if 条件a then begin
extgbdataset('atime',0);
extgbdataset('btime',0);
extgbdataset('ctime',0);
end