Эта стратегия представляет собой торговую систему, основанную на нескольких экспоненциальных скользящих средних (EMAs). Используя три EMA с различными периодами (10, 30, 50), в сочетании с ценовыми кроссоверами и анализом направления тренда, она создает полную систему сигналов покупки и продажи. Стратегия тщательно рассматривает формирование тренда, подтверждение и обратное движение, эффективно захватывая основные трендовые возможности на рынке.
Стратегия использует иерархический механизм оценки для определения торговых сигналов: 1. Установление тренда: использует относительные позиции трех EMA (10/30/50) для определения направления тренда. 2. Лейер сигнального триггера: как только тренд установлен, торговые сигналы запускаются ценовыми перекрестками с EMA30. Условия управления позициями: когда EMA30 пересекает EMA50 в противоположном направлении, он запускает соответствующие сигналы закрытия позиции, обеспечивая систематический механизм выхода.
Это хорошо продуманный тренд, следующий за стратегией с четкой логикой. Комбинация нескольких EMA обеспечивает как стабильность стратегии, так и четкие торговые сигналы. Хотя есть некоторые внутренние риски задержки, стратегия демонстрирует хорошую практическую ценность благодаря разумным мерам оптимизации и контроля рисков. Она особенно подходит для трейдеров, ищущих стабильную отдачу с контролируемым риском.
/*backtest start: 2019-12-23 08:00:00 end: 2024-12-09 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © banyat6913 //@version=5 strategy("EMA Trend Strategy", overlay=true) // Input Parameters ema_short_length = input.int(10, title="EMA Short Length", minval=1) ema_mid_length = input.int(30, title="EMA Mid Length", minval=1) ema_long_length = input.int(50, title="EMA Long Length", minval=1) // Calculate EMA ema_short = ta.ema(close, ema_short_length) ema_mid = ta.ema(close, ema_mid_length) ema_long = ta.ema(close, ema_long_length) // **TREND UP** // 1. EMA 10 > EMA 30 > EMA 50 uptrend_condition = ema_short > ema_mid and ema_mid > ema_long // 2. Bullish Candle Crossing Up EMA 30 bullish_candle = close > open cross_up_ema_mid = ta.crossover(close, ema_mid) // 3. If EMA 30 crosses down EMA 50 -> Close Buy Order ema_30_cross_down_50 = ta.crossunder(ema_mid, ema_long) // Buy Signal buy_signal = uptrend_condition and cross_up_ema_mid // Sell Signal for closing Buy Order close_buy_signal = ema_30_cross_down_50 // **TREND DOWN** // 1. EMA 50 > EMA 30 > EMA 10 downtrend_condition = ema_long > ema_mid and ema_mid > ema_short // 2. Bearish Candle Crossing Down EMA 30 bearish_candle = close < open cross_down_ema_mid = ta.crossunder(close, ema_mid) // 3. If EMA 30 crosses up EMA 50 -> Close Sell Order ema_30_cross_up_50 = ta.crossover(ema_mid, ema_long) // Sell Signal sell_signal = downtrend_condition and cross_down_ema_mid // Buy Signal for closing Sell Order close_sell_signal = ema_30_cross_up_50 // Backtesting Logic if (buy_signal) strategy.entry("Buy", strategy.long) if (close_buy_signal) strategy.close("Buy") if (sell_signal) strategy.entry("Sell", strategy.short) if (close_sell_signal) strategy.close("Sell") // Plot EMA Lines plot(ema_short, color=color.blue, title="EMA 10") plot(ema_mid, color=color.orange, title="EMA 30") plot(ema_long, color=color.green, title="EMA 50") // Plot Buy and Sell Signals on Chart plotshape(buy_signal, style=shape.labelup, location=location.belowbar, color=color.new(color.green, 0), text="BUY", title="Buy Signal") plotshape(close_buy_signal, style=shape.labeldown, location=location.abovebar, color=color.new(color.red, 0), text="CLOSE BUY", title="Close Buy Signal") plotshape(sell_signal, style=shape.labeldown, location=location.abovebar, color=color.new(color.red, 0), text="SELL", title="Sell Signal") plotshape(close_sell_signal, style=shape.labelup, location=location.belowbar, color=color.new(color.green, 0), text="CLOSE SELL", title="Close Sell Signal")