Эта стратегия сочетает в себе методы анализа тренда и импульса, используя индикаторы Simple Moving Average (SMA) и Moving Average Convergence Divergence (MACD) для выявления потенциальных торговых возможностей. Стратегия использует индикатор Trendilo (индикатор тренда, основанный на SMA) для определения общей тенденции рынка, используя перекрестки нулевой линии MACD для улавливания краткосрочных изменений импульса. Кроме того, стратегия включает средний истинный диапазон (ATR) для динамического установления уровней стоп-лосса и прибыли, адаптируясь к изменениям волатильности рынка.
Основная логика стратегии основана на следующих ключевых элементах:
Конкретно, длинный сигнал запускается, когда линия MACD пересекает ниже нуля, а цена закрытия выше линии Trendilo. И наоборот, короткий сигнал запускается, когда линия MACD пересекает ниже нуля, а цена закрытия ниже линии Trendilo. После входа стратегия использует уровни стоп-лосса и прибыли на основе ATR для управления рисками и блокировки прибыли.
Эта стратегия умело сочетает в себе тренд-следующий и анализ импульса, предоставляя трейдерам относительно полную структуру анализа рынка через синергию Trendilo и MACD. Динамический подход к управлению рисками повышает адаптируемость стратегии, позволяя ей поддерживать стабильность в различных рыночных условиях. Тем не менее, трейдеры все равно должны быть осторожны при использовании этой стратегии, особенно с точки зрения оптимизации параметров и контроля риска. Благодаря постоянному мониторингу и оптимизации эта стратегия имеет потенциал стать надежным инструментом торговли, особенно подходящим для инвесторов, стремящихся воспользоваться возможностями на трендовых рынках.
/*backtest start: 2019-12-23 08:00:00 end: 2024-09-24 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("NNFX Trendilo + Zero MACD Strategy", overlay=true) // --- Inputs --- atrPeriod = input.int(14, title="ATR Period") stopLossMultiplier = input.float(1.5, minval=0.0, maxval = 20.0, step = 0.1 ,title="Stop Loss Multiplier") takeProfitMultiplier = input.float(2.0, minval=0.0 , maxval = 20.0, step = 0.1,title="Take Profit Multiplier") // --- Trendilo --- trendiloPeriod = input.int(50, title="Trendilo Period") trendilo = ta.sma(close, trendiloPeriod) // --- MACD --- [macdLine, signalLine, _] = ta.macd(close, 12, 26, 9) macdZeroCrossUp = ta.crossover(macdLine, 0) macdZeroCrossDown = ta.crossunder(macdLine, 0) // --- ATR for Stop Loss and Take Profit --- atr = ta.atr(atrPeriod) stopLoss = atr * stopLossMultiplier takeProfit = atr * takeProfitMultiplier // --- Trading Logic --- longCondition = macdZeroCrossUp and close > trendilo shortCondition = macdZeroCrossDown and close < trendilo // --- Execute Long Trades --- if (longCondition) strategy.entry("Buy", strategy.long) strategy.exit("Take Profit/Stop Loss", "Buy", limit=close + takeProfit, stop=close - stopLoss) // --- Execute Short Trades --- if (shortCondition) strategy.entry("Sell", strategy.short) strategy.exit("Take Profit/Stop Loss", "Sell", limit=close - takeProfit, stop=close + stopLoss) // --- Plot Signals --- plotshape(series=longCondition, location=location.belowbar, color=color.green, style=shape.labelup, text="Buy") plotshape(series=shortCondition, location=location.abovebar, color=color.red, style=shape.labeldown, text="Sell") // --- Plot Trendilo --- plot(trendilo, color=color.blue, linewidth=2)