Эта стратегия использует сочетание двойных систем EMA и индикаторов RSI для определения рыночных тенденций при генерировании торговых сигналов. Она относится к следующей стратегии тренда. Эта простая и простая в использовании стратегия применима к различным основным индексам и криптовалютам.
Эта стратегия использует два MACD с различными параметрами в качестве основных торговых индикаторов. Первый MACD использует 10-периодную короткую EMA, 22-периодную длинную EMA и 9-периодную сигнальную линию. Второй MACD использует 21-периодную короткую EMA, 45-периодную длинную EMA и 20-периодную сигнальную линию.
Первый MACD генерирует сигналы покупки, когда линия DIFF пересекается выше нуля, и сигналы продажи, когда она пересекается ниже нуля.
Кроме того, стратегия использует формулу импульса цены для определения тренда. Последнее закрытие + максимум, деленное на предыдущее закрытие + максимум выше 1, указывает на восходящую тенденцию и генерирует сигналы покупки, и наоборот для сигналов продажи.
Наконец, линия RSI K выше 20 помогает подтвердить сигналы продажи.
Двойной механизм EMA в этой стратегии может эффективно фильтровать ложные прорывы. Дополнительная формула импульса также избегает неправильных сигналов, вызванных волатильностью.
Эта стратегия использует только простые комбинации нескольких общих индикаторов без чрезмерно сложных логических отношений, что делает ее очень легкой для понимания и модификации.
Согласно результатам обратных тестов, эта стратегия достигла приличной накопительной доходности и максимального контроля за снижением на различных продуктах, таких как фондовые индексы и криптовалюты.
Основной риск этой стратегии заключается в использовании скользящих средних для определения, которые могут легко вызвать сбои и убытки при резких колебаниях цен.
Эффективность Stoch RSI в обнаружении уровней перекупа/перепродажи не идеальна.
Если цены резко упадут, но MACD еще не сформировал крест смерти, эта стратегия будет удерживать проигрышные позиции и продолжать принимать убытки.
Рассмотреть возможность добавления стоп-лосса для контроля потерь на одной позиции, например, стоп-лосса ATR или стоп-лосса на основе более низких скользящих средних.
Добавить другие индикаторы для подтверждения, такие как сочетание KD или Bollinger Bands с Stoch RSI для более надежного обнаружения перекупленности/перепроданности.
Включите анализ объема, например, увеличение стоп-лосса при появлении значительного объема продаж или избегание новых позиций при слабом объеме.
Тестировать различные комбинации параметров и оптимизировать периоды MACD. Также тестировать добавление MACD других временных рамок для многократного подтверждения.
Двойная стратегия количественного трейдинга MACD имеет простую и ясную логику, используя двойные перекрестки EMA для определения тенденций, дополненные индикаторами импульса для избежания неправильных сигналов. Она может отфильтровывать высоковероятные торговые возможности. Универсальные параметры настройки и прочная производительность делают ее хорошей базовой стратегией для строительства. Следующими шагами является дальнейшее повышение ее стабильности и прибыльности путем улучшения механизмов стоп-лосса, добавления анализа объема, объединения других индикаторов и т. д.
/*backtest start: 2023-10-13 00:00:00 end: 2023-11-12 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy("Multiple MACD RSI simple strategy", overlay=true, initial_capital=5000, default_qty_type=strategy.percent_of_equity, default_qty_value=80, pyramiding=0, calc_on_order_fills=true) fastLength = input(10) slowlength = input(22) MACDLength = input(9) MACD = ema(close, fastLength) - ema(close, slowlength) aMACD = sma(MACD, MACDLength) delta = MACD - aMACD fastLength2 = input(21) slowlength2 = input(45) MACDLength2 = input(20) MACD2 = ema(open, fastLength2) - ema(open, slowlength2) aMACD2 = sma(MACD2, MACDLength2) delta2 = MACD2 - aMACD2 uptrend = (close + high)/(close[1] + high[1]) downtrend = (close + low)/(close[1] + low[1]) smoothK = input(2, minval=1, title="K smoothing Stoch RSI") smoothD = input(3, minval=1, title= "D smoothing for Stoch RSI") lengthRSI = input(7, minval=1, title="RSI Length") lengthStoch = input(8, minval=1, title="Stochastic Length") src = input(close, title="RSI Source") rsi1 = rsi(src, lengthRSI) k = sma(stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK) d = sma(k, smoothD) h0 = hline(80) h1 = hline(20) yearin = input(2018, title="Year to start backtesting from") if (delta > 0) and (year>=yearin) and (delta2 > 0) and (uptrend > 1) strategy.entry("buy", strategy.long, comment="buy") if (delta < 0) and (year>=yearin) and (delta2 < 0) and (downtrend < 1) and (d > 20) strategy.entry("sell", strategy.short, comment="sell") //plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)