你要用ref回溯到开仓K的位置的。你这个是开仓以来的最低价。
ref(l,ENTERBARS+1)
这个取值一般要写在开仓语句下面位置。否则这ENTERBARS+1 后面的1就要调整下了。
平空:SELLSHORT(PK,1,THISCLOSE); //平空信号
开多:BUY(KD AND HOLDING=0,1,THISCLOSE); //开多信号
if holding>=1 and c <ax then
止损多:sell(1,1,THISCLOSE);
平多:SELL(PD,1,THISCLOSE); //平多信号
开空:BUYSHORT(KK AND HOLDING=0,1,THISCLOSE); //开空信号
if holding<=-1 and c>as then
止损空:sellshort(1,1,THISCLOSE);
这么写对吗 为什么都是刚开仓就同一个k线止损了
ax:ref(l,ENTERBARS+1);
as:ref(h,ENTERBARS+1);
平空:SELLSHORT(PK,1,THISCLOSE); //平空信号
开多:BUY(KD AND HOLDING=0,1,THISCLOSE); //开多信号
if holding>=1 and c <ax then
止损多:sell(1,1,THISCLOSE);
平多:SELL(PD,1,THISCLOSE); //平多信号
开空:BUYSHORT(KK AND HOLDING=0,1,THISCLOSE); //开空信号
if holding<=-1 and c>as then
止损空:sellshort(1,1,THISCLOSE);
这么写对吗 为什么都是刚开仓就同一个k线止损了,不管多还是空
老师看图理解,每个 b点做多 同时开仓的最低点或最高点做止损 ,但写出都根本不是我想要啊
平空:SELLSHORT(PK,1,THISCLOSE); //平空信号
开多:BUY(KD AND HOLDING=0,1,THISCLOSE); //开多信号
ax:ref(l,ENTERBARS);
if holding>=1 and c <ax then
止损多:sell(1,1,THISCLOSE);
平多:SELL(PD,1,THISCLOSE); //平多信号
开空:BUYSHORT(KK AND HOLDING=0,1,THISCLOSE); //开空信号
as:ref(h,ENTERBARS);
if holding<=-1 and c>as then
止损空:sellshort(1,1,THISCLOSE);
调整下代码位置。另外因为你用的 THISCLOSE 所以
ENTERBARS 也不用加1了。