
Эта стратегия сочетает в себе два метода отслеживания тенденций и анализа динамики, используя показатели простого движущегося среднего ((SMA) и расхождения свертывания движущихся средних ((MACD) для выявления потенциальных торговых возможностей. Стратегия определяет тенденции на рынке в целом с помощью показателя Trendilo ((индикатор тренда, основанный на SMA), а также использует нулевую скрещивание MACD, чтобы улавливать изменения в краткосрочной динамике. Кроме того, стратегия использует диапазон среднего реального значения ((ATR) для динамического установления уровней стоп-лосса и прибыли, чтобы адаптироваться к изменению волатильности рынка.
Основная логика стратегии основана на следующих ключевых элементах:
В частности, когда MACD-линия пересекает нулевую линию сверху и выше, а цена закрытия превышает линию Трендило, вызывается многосигналный сигнал. Напротив, когда MACD-линия пересекает нулевую линию сверху и ниже, а цена закрытия ниже, чем линия Трендило, вызывается пустой сигнал. После входа в игру стратегия использует уровни остановки и прибыли, основанные на 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)