
Месячная стратегия прорыва параллельной линии используется для выявления одноразового сигнала массового прорыва путем вычисления 36-месячных максимумов RSI и MACD. Сильный сигнал покупки возникает, когда RSI достигает 36-месячного максимума, а любой из MACD также достигает 36-месячного максимума.
Стратегия основана на двух показателях: RSI и MACD. RSI используется для определения того, находятся ли акции в состоянии перекупки. MACD используется для определения импульса и силы цены акций.
В частности, стратегия сначала производит ручное вычисление 14-дневного RSI. Затем вычисляет разницу между 4-дневным и 9-дневным EMA как MACD1, а разницу между 12-дневным и 26-дневным EMA как MACD2.
На этом основании были зафиксированы максимумы RSI, MACD1 и MACD2 за последние 36 месяцев. Сильный сигнал к покупке возникает, когда RSI превышает 36-месячные максимумы, а любой из MACD1 или MACD2 также превышает соответствующие 36-месячные максимумы.
Этот сигнал объединяет в себе временные максимумы RSI и MACD, что позволяет эффективно выявлять и использовать уникальные моменты, которые могут возникнуть в больших тенденциях.
Основная преимущество этой стратегии заключается в том, что она объединяет различные периоды времени для различных показателей, что позволяет эффективно обнаруживать лучшие точки покупки в долгосрочных тенденциях. Это значительно повышает вероятность получения прибыли.
Кроме того, стратегия напрямую дает позицию для покупки, которая может четко направлять торговые решения, что очень подходит для количественной торговли.
Самый большой риск этой стратегии заключается в том, что она слишком сильно зависит от временных максимумов показателя и может привести к ошибочным сделкам. Например, рынок может вновь подняться после прорывного нижнего уровня, что может вызвать сигнал. В этом случае есть возможность получить прибыль, пропустив подъем.
Кроме того, в стратегии непосредственно установлена стоп-аут через 30 дней, что может быть слишком консервативным для устойчивой прибыли в больших тенденциях.
Для снижения риска можно рассмотреть оптимизацию условий входа и остановки в сочетании с другими факторами, такими как прорыв в объеме торгов, измерение волатильности и т. д.
Эта стратегия может быть оптимизирована в следующих аспектах:
Параметры оптимизации. Можно проверить оптимизацию параметров, таких как RSI-цикл, MACD-цикл, чтобы найти оптимальную комбинацию параметров.
В сочетании с другими показателями или фундаментальными факторами. Например, в сочетании с прорывами в объеме оборота, чтобы подтвердить тенденцию или обратить внимание на важные фундаментальные новости.
Оптимизация входных и выходных механизмов. Можно установить более тонкую программу стоп-стоп, а не просто выйти из игры через 30 дней. Также можно использовать методы оценки, такие как трендовые линии и прорыв каналов.
Оценка устойчивости стратегии. Можно отслеживать более длительный исторический период, оценивать стабильность параметров. Также можно отслеживать многорыночные рынки, оценивать адаптивность стратегии.
Месячная стратегия прорыва параллельной линии успешно идентифицирует лучшие точки покупки в долгосрочных больших тенденциях с помощью многоциклической комбинации RSI и MACD. Она сочетает в себе тенденционное суждение и суждение о перекупе и перепродаже, имея очень сильную практическую ценность.
/*backtest
start: 2022-11-24 00:00:00
end: 2023-11-30 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("Stringent Strategy for Backtesting", overlay=true)
// Initialize RSI variables
rsiPeriod = 14
// Manually calculate RSI
delta = close - close[1]
gain = iff(delta > 0, delta, 0)
loss = iff(delta < 0, -delta, 0)
avgGain = sma(gain, rsiPeriod)
avgLoss = sma(loss, rsiPeriod)
rs = avgGain / avgLoss
rsiValue = 100 - (100 / (1 + rs))
// Manually calculate MACD1 and MACD2
emaShort1 = ema(close, 4)
emaLong1 = ema(close, 9)
macd1 = emaShort1 - emaLong1
emaShort2 = ema(close, 12)
emaLong2 = ema(close, 26)
macd2 = emaShort2 - emaLong2
// Find the highest values in the last 3 years (36 months)
highestRsi = highest(rsiValue, 36)
highestMacd1 = highest(macd1, 36)
highestMacd2 = highest(macd2, 36)
// Define buy signal conditions
buyCondition = (rsiValue >= highestRsi) and (macd1 >= highestMacd1 or macd2 >= highestMacd2)
// Plot the buy signal on the chart
plotshape(series=buyCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="Buy")
// Backtesting: Entry and Exit
if (buyCondition)
strategy.entry("Buy", strategy.long)
// Exit condition (Example: Exit after 30 bars)
strategy.exit("Sell", "Buy", bar_index[30])