
Strategi ini menggabungkan dua kaedah untuk mengesan trend dan analisis momentum, menggunakan purata bergerak sederhana (SMA) dan purata bergerak berhampiran (MACD) untuk mengenal pasti peluang perdagangan yang berpotensi. Strategi ini menggunakan indikator Trendilo (indikator trend berasaskan SMA) untuk menentukan trend pasaran keseluruhan, sambil menggunakan garis nol MACD untuk menangkap perubahan momentum jangka pendek.
Logik utama strategi ini adalah berdasarkan kepada beberapa elemen utama:
Khususnya, apabila garis MACD melintasi garis nol dari bawah (<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
Strategi ini dengan cerdik menggabungkan trend tracking dan analisis dinamik, menyediakan pedagang dengan kerangka analisis pasaran yang agak komprehensif melalui sinergi Trendilo dan MACD. Kaedah pengurusan risiko yang dinamik meningkatkan kesesuaian strategi dan membolehkan ia kekal stabil dalam pelbagai persekitaran pasaran. Walau bagaimanapun, pedagang masih perlu berhati-hati dalam menggunakan strategi ini, terutamanya dalam pengoptimuman parameter dan kawalan risiko.
/*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)