この戦略は,イチモク・クラウド,MACD指標,および長期移動平均 (EMA200) を含む複数の技術指標を組み合わせたトレンドフォローシステムです.これらの指標の調整を通じて,市場傾向を正確に把握するだけでなく,ATRベースのダイナミックストップ管理を通じてリスクを効果的に制御する完全な取引システムを形成します.
この戦略は,トレードシグナルを識別するために三重確認メカニズムを使用している.まず,価格ポジションを判断するためにイチモク・クラウドを使用し,価格がクラウド上に,ショートポジションがダウンしているときにロングポジションを好む.次に,MACD指標を使用し,MACDラインとシグナルラインクロスオーバーを通じてトレンド方向を確認する.最後に,トレンド方向が長期トレンドに一致することを確保するために200期EMAをトレンドフィルターとして組み込む.リスク管理のために,戦略はATR指標を使用して,ストップ・ロストとテイク・プロフィートのレベルを動的に設定し,市場の変動に適応できるようにする.
この戦略は,多次元的な技術指標の組み合わせによる比較的完全なトレンドフォローシステムを構築する.その主な利点は,複数の信号確認メカニズムと動的なリスク管理方法にあるが,実際の市場状況に基づくパラメータ最適化はまだ必要である.この戦略の全体的なデザインは明確で実践的で,明らかなトレンドのある市場で適用するのに適している.
/*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")