求助
想求助一下,第一个问题是当指标发出买入信号后,并不马上进场,等5根k线之后再进场,该如何写?还有一个问题就是如何记录某一根k线的指标数值,目前是每个k线都有指标数值,但是我只想记录一个某一个k线的指标数值。就是取到想要的数值就停止取值,该如何去写?谢谢了
想求助一下,第一个问题是当指标发出买入信号后,并不马上进场,等5根k线之后再进场,该如何写?还有一个问题就是如何记录某一根k线的指标数值,目前是每个k线都有指标数值,但是我只想记录一个某一个k线的指标数值。就是取到想要的数值就停止取值,该如何去写?谢谢了
这样写是否附合你的要求Params //此处添加参数Vars //此处添加变量 Numeric O1; Numeric O2; Numeric O3; Numeric O4; Numeric O5; Numeric MMM; Series<Numeric> Mybar1; Series<Numeric> Mybar2; Series<Bool> VAR1; Series<Bool> VAR2; Series<Bool> VAR3; Series<Bool> VAR4; Series<Bool> VAR5; Series<Bool> VAR6; Series<Bool> VAR7; Series<Bool> VAR8; Series<Bool> VAR9; Series<Bool> VARA; Series<Bool> VARB; Series<Bool> VARC; Series<Bool> VARD; Series<Bool> VARE; Series<Bool> VARF; Series<Bool> VAR10; Series<Bool> VAR11; Series<Bool> VAR12; Series<Bool> VAR13; Series<Bool> VAR14; Series<Bool> VAR15; Series<Bool> VAR16; Series<Bool> VAR17; Series<Bool> VAR18; Series<Bool> VAR19; Series<Bool> VAR1A;Events//此处实现事件函数 onInit()//设置周期 { } //Bar更新事件函数,参数indexs表示变化的数据源图层ID数组OnBar(ArrayRef<Integer>indexs) { //====== 策略逻辑 ====== Range[0:DataCount - 1] { // 计算O1序列 O1 = Summation(EMA((Close + Low) / 2, 1) / 3, 3); // 计算O2和O3 O2 = EMA(O1, 3); O3 = EMA(O2, 3); // 计算VAR1-VAR18序列 VAR1 = Close > Close[1] And Close > Close[2]; VAR2 = VAR1[1] And Close <= Close[1] And Close >= Close[2]; VAR3 = VAR2[1] And Close >= Close[1] And Close <= Close[2]; VAR4 = VAR3[1] And Close <= Close[1] And Close >= Close[2]; VAR5 = VAR4[1] And Close >= Close[1] And Close <= Close[2]; VAR6 = VAR5[1] And Close <= Close[1] And Close >= Close[2]; VAR7 = VAR6[1] And Close >= Close[1] And Close <= Close[2]; VAR8 = VAR7[1] And Close <= Close[1] And Close >= Close[2]; VAR9 = VAR8[1] And Close >= Close[1] And Close <= Close[2]; VARA = VAR9[1] And Close <= Close[1] And Close >= Close[2]; VARB = VARA[1] And Close >= Close[1] And Close <= Close[2]; VARC = VARB[1] And Close <= Close[1] And Close >= Close[2]; VARD = Close < Close[1] And Close < Close[2]; VARE = VARD[1] And Close >= Close[1] And Close <= Close[2]; VARF = VARE[1] And Close <= Close[1] And Close >= Close[2]; VAR10 = VARF[1] And Close >= Close[1] And Close <= Close[2]; VAR11 = VAR10[1] And Close <= Close[1] And Close >= Close[2]; VAR12 = VAR11[1] And Close >= Close[1] And Close <= Close[2]; VAR13 = VAR12[1] And Close <= Close[1] And Close >= Close[2]; VAR14 = VAR13[1] And Close >= Close[1] And Close <= Close[2]; VAR15 = VAR14[1] And Close <= Close[1] And Close >= Close[2]; VAR16 = VAR15[1] And Close >= Close[1] And Close <= Close[2]; VAR17 = VAR16[1] And Close <= Close[1] And Close >= Close[2]; VAR18 = VAR17[1] And Close >= Close[1] And Close <= Close[2]; // 计算VAR19和VAR1A VAR19 = (VARD[1] || VARE[1] || VARF[1] || VAR10[1] || VAR11[1] || VAR12[1] || VAR13[1] || VAR14[1] || VAR15[1] || VAR16[1] || VAR17[1] || VAR18[1]) And VAR1; VAR1A = (VAR1[1] || VAR2[1] || VAR3[1] || VAR4[1] || VAR5[1] || VAR6[1] || VAR7[1] || VAR8[1] || VAR9[1] || VARA[1] || VARB[1] || VARC[1]) And VARD; } // 绘制信号 IF(VAR19==True) { Mybar1 = CurrentBar; } If(VAR19==True AND ((CurrentBar - Mybar1) == 5)) { Buy(1, Low); PlotString("信号", "B", LOW, Magenta); Mybar1 = CurrentBar; } If(VAR1A==True AND ((CurrentBar - Mybar2) == 5)) { SellShort(1, Low); PlotString("信号", "S", Low, Magenta); Mybar2 = CurrentBar; } }
例如用macd上穿0轴后,我不想追高,想等回调再进场