Стратегия преобразования MACD Moving Average Bull Bear рассчитывает линии DIFF и DEA индикатора MACD, чтобы определить, изменилась ли тенденция рынка, тем самым генерируя торговые сигналы.
Среди них DIFF представляет собой разницу между краткосрочной EMA и долгосрочной EMA, DEA - это EMA DIFF, используемая для проверки сигналов DIFF, а MACD представляет собой разницу между DIFF и DEA, используемую для выявления расхождений.
Когда DIFF превышает DEA, это означает, что краткосрочная скользящая средняя начинает укрепляться, и рынок становится бычьим. Когда DIFF превышает DEA, это означает, что краткосрочная скользящая средняя становится слабой, и рынок становится медвежьим. Поэтому эта стратегия длится, когда DIFF пересекает DEA, и становится короткой, когда пересекает ниже.
Кроме того, стратегия включает в себя фильтры ценовой EMA для предотвращения ложных прорывов. Она длится только тогда, когда DIFF превышает DEA, а цена ниже предыдущей длинной цены, и становится короткой только тогда, когда DIFF превышает DEA, а цена выше предыдущей короткой цены.
Стратегия конверсии MACD Moving Average Bull Bear сочетает в себе индикатор MACD и фильтры цены EMA для предотвращения ложных сигналов, генерируемых только MACD, тем самым улучшая результативность торговли.
К основным преимуществам относятся:
Стратегия конверсии MACD Moving Average Bull Bear также сопряжена с некоторыми рисками:
Основными способами оптимизации рисков являются:
Стратегия конверсии MACD Moving Average Bull Bear может быть дополнительно оптимизирована в следующих аспектах:
Стратегия конверсии MACD Moving Average Bull Bear идентифицирует бычье/медвежье вхождение на рынок с помощью перекрестных сигналов DIFF и DEA и использует фильтры EMA цены для удаления ложных сигналов, эффективно определяя точки обратного движения рынка. С простой и ясной логикой она быстро идентифицирует точки конверсии, подходящие для краткосрочной и среднесрочной торговли. Следующие шаги для оптимизации включают корректировку параметров, улучшение фильтров и контроль частоты торговли, чтобы сделать стратегию более надежной.
/*backtest start: 2022-12-01 00:00:00 end: 2023-12-07 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy("macd_strategy", shorttitle="macd", overlay=true, pyramiding=1, max_bars_back=5000, calc_on_order_fills = false, calc_on_every_tick=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type =strategy.commission.percent, commission_value=0.00075) [diff, dea, _] = macd(close, 12, 26, 7) dea_close = ema(diff, 3) price = ema(close, 9) plot(price) cross_over_price = na cross_over_signal = na cross_over_price := cross_over_price[1] cross_over_signal := cross_over_signal[1] cross_under_price = na cross_under_signal = na cross_under_price := cross_under_price[1] cross_under_signal := cross_under_signal[1] if (crossover(diff,dea)) cross_over_price := price[1] cross_over_signal := diff if (crossunder(diff,dea)) cross_under_price := price[1] cross_under_signal := diff if dea > 0 cross_over_price = na cross_over_signal = na else cross_under_price = na cross_under_signal = na if diff > 0 if cross_under_price > cross_under_price[1]*1 and cross_under_signal < cross_under_signal[1]*0.95 strategy.entry("S", strategy.short, comment="S") else if cross_over_price < cross_over_price[1]*1 and cross_over_signal > cross_over_signal[1]*0.95 strategy.entry("B", strategy.long, comment="B") // strategy.exit("exit_s", "S", stop = strategy.position_avg_price*1.05, when=strategy.position_size < 0) // strategy.exit("exit_b", "B", stop = strategy.position_avg_price*0.95, when=strategy.position_size > 0) strategy.close_all(when=(strategy.position_size < 0 and (dea < 0 or diff > cross_under_signal*1 or crossover(diff, dea)) or (strategy.position_size > 0 and (dea > 0 or diff < cross_over_signal*1 or crossunder(diff, dea)))))