(Every要声明

Params Numeric ShortPeriod(12); // DIFF计算的短期周期 Numeric LongPeriod(26); // DIFF计算的长期周期 Numeric DEAPeriod(9); // DEA计算的周期 Numeric MA96Period(300); // MA96的周期 Numeric MIDPeriod(60); // MID的周期 Vars Series<Numeric> DIFF; // DIFF值 Series<Numeric> DEA; // DEA值 Series<Numeric> MACD; // MACD值 Series<Numeric> MA96; // 300日移动平均线 Series<Numeric> MID; // 60日移动平均线 Series<Numeric> TMP2; // 60日收盘价标准差 Series<Numeric> TOP; // 上轨线 Series<Numeric> BOTTOM; // 下轨线 Numeric A1; // 上次DIFF上穿DEA到当前的周期数 Numeric B1; // 满足特定条件的DIFF上穿DEA信号 Numeric C1; // 上次DEA上穿DIFF到当前的周期数 Numeric D1; // 满足特定条件的DEA上穿DIFF信号 Events OnBar(ArrayRef<Integer> indexs) { // 计算DIFF、DEA、MACD DIFF = EMA(Close, ShortPeriod) - EMA(Close, LongPeriod); DEA = EMA(DIFF, DEAPeriod); MACD = 2 * (DIFF - DEA); // 计算MA96 MA96 = MA(Close, MA96Period); // 计算MID、TMP2、TOP、BOTTOM MID = MA(Close, MIDPeriod); TMP2 = STD(Close, MIDPeriod); TOP = MID + 2 * TMP2; BOTTOM = MID - 2 * TMP2; // 计算A1、B1、C1、D1 A1 = BarsLast(Ref(Cross(DIFF, DEA), 1)); B1 = Ref(Close, A1 + 1) > Close && Ref(DIFF, A1 + 1) < DIFF && Cross(DIFF, DEA); C1 = BarsLast(Ref(Cross(DEA, DIFF), 1)); D1 = Ref(Close, C1 + 1) < Close && Ref(DIFF, C1 + 1) > DIFF && Cross(DEA, DIFF); // 开多仓条件 if (Every(Close > TOP, 1) && Close > MA96 && Close > Ref(HHV(High, 20), 10) && Ref(TOP, 1) < Ref(TOP, 2)) { BuyToOpen(1, Close); } // 开空仓条件 if (Every(Close < BOTTOM, 1) && Close < MA96 && Close < Ref(LLV(Low, 20), 10) && Ref(TOP, 1) > Ref(TOP, 2)) { SellToOpen(1, Close); } }

?灌水帖会被删的