Strategi ini adalah sistem mengikuti trend yang menggabungkan beberapa penunjuk teknikal, termasuk Ichimoku Cloud, penunjuk MACD, dan purata bergerak jangka panjang (EMA200). Melalui penyelarasan penunjuk ini, ia membentuk sistem perdagangan lengkap yang bukan sahaja menangkap trend pasaran dengan tepat tetapi juga mengawal risiko dengan berkesan melalui pengurusan berhenti dinamik berasaskan ATR.
Strategi ini menggunakan mekanisme pengesahan tiga kali untuk mengenal pasti isyarat perdagangan. Pertama, ia menggunakan Awan Ichimoku untuk menilai kedudukan harga, memihak kepada kedudukan panjang apabila harga berada di atas awan dan kedudukan pendek apabila berada di bawah. Kedua, ia menggunakan penunjuk MACD, mengesahkan arah trend melalui garis MACD dan persilangan garis isyarat. Akhirnya, ia menggabungkan EMA 200 tempoh sebagai penapis trend untuk memastikan arah perdagangan sejajar dengan trend jangka panjang. Untuk kawalan risiko, strategi menggunakan penunjuk ATR untuk menetapkan tahap stop-loss dan mengambil keuntungan secara dinamik, yang membolehkan mereka menyesuaikan diri dengan turun naik pasaran.
Strategi ini membina sistem trend berikut yang agak lengkap melalui aplikasi gabungan penunjuk teknikal berbilang dimensi. Kelebihan utamanya terletak pada mekanisme pengesahan isyarat berbilang dan kaedah pengurusan risiko dinamik, walaupun pengoptimuman parameter berdasarkan keadaan pasaran sebenar masih diperlukan. Reka bentuk keseluruhan strategi ini jelas dan praktikal, sesuai untuk digunakan di pasaran dengan trend yang jelas.
/*backtest start: 2019-12-23 08:00:00 end: 2025-01-16 00:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}] */ //@version=6 strategy("JOJO长趋势", overlay=true, shorttitle="JOJO长趋势") // Ichimoku 云图 conversionLine = ta.sma(high, 9) // 转换线 baseLine = ta.sma(low, 26) // 基准线 leadingSpanA = (conversionLine + baseLine) / 2 // 领先跨度A leadingSpanB = (ta.sma(high, 52) + ta.sma(low, 52)) / 2 // 领先跨度B laggingSpan = close[26] // 滞后跨度 // MACD 指标 macdLine = ta.ema(close, 12) - ta.ema(close, 26) // MACD 线 signalLine = ta.ema(macdLine, 9) // 信号线 macdHist = macdLine - signalLine // MACD 柱状图 // 长期均线 longTermEMA = ta.ema(close, 200) // 200周期EMA,用于确认长期趋势 // 声明多单和空单条件变量 var bool longCondition = false var bool shortCondition = false // 声明平仓条件变量 var bool exitLongCondition = false var bool exitShortCondition = false // 仅在K线完成后计算 if barstate.isconfirmed longCondition := (close > leadingSpanA) and (macdLine > signalLine) and (close > longTermEMA) // 多单条件 shortCondition := (close < leadingSpanB) and (macdLine < signalLine) and (close < longTermEMA) // 空单条件 // 平仓条件 exitLongCondition := macdLine < signalLine or close < leadingSpanB // 多单平仓条件 exitShortCondition := macdLine > signalLine or close > leadingSpanA // 空单平仓条件 // 执行策略进入市场 if longCondition strategy.entry("Long", strategy.long) // 多单进场 if shortCondition strategy.entry("Short", strategy.short) // 空单进场 // 设置止损和止盈,使用 ATR 倍数动态调整 stopLoss = input.float(1.5, title="止损 (ATR 倍数)", step=0.1) * ta.atr(14) // 止损基于 ATR takeProfit = input.float(3.0, title="止盈 (ATR 倍数)", step=0.1) * ta.atr(14) // 止盈基于 ATR // 执行平仓 if exitLongCondition strategy.exit("Exit Long", from_entry="Long", stop=close - stopLoss, limit=close + takeProfit) // 多单平仓 if exitShortCondition strategy.exit("Exit Short", from_entry="Short", stop=close + stopLoss, limit=close - takeProfit) // 空单平仓 // 绘制买入和卖出信号 plotshape(series=barstate.isconfirmed and longCondition, location=location.belowbar, color=color.green, style=shape.labelup, text="BUY") plotshape(series=barstate.isconfirmed and shortCondition, location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")