この戦略は,トレンドフォローとモメンタム分析方法を組み合わせ,潜在的な取引機会を特定するためにシンプル・ムービング・アベア (SMA) とムービング・アベア・コンバージェンス・ディバージェンスの指標 (MACD) を利用する.この戦略は,トレンドイロ指標 (SMAに基づいたトレンド指標) を使用して,全体の市場傾向を決定し,MACDゼロラインクロスオーバーを使用して,短期的なモメンタム変化を把握する.さらに,この戦略は,市場変動の変化に適応して,ストップ・ロストとテイク・プロフィートのレベルを動的に設定するために,平均真の範囲 (ATR) を組み込む.
戦略の基本論理は次の主要な要素に基づいています
MACDラインがゼロを超え,閉じる価格がトレンドローラインを超えると,ロングシグナルが発動する.逆にも,MACDラインがゼロを超え,閉じる価格がトレンドローラインを下回ると,ショートシグナルが発動する.エントリー後,戦略はリスクを管理し,利益をロックするためにATRベースのストップ・ロストとテイク・プロフィートレベルを使用する.
この戦略は,トレンドフォローとモメント分析を巧みに組み合わせ,トレンドイロと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)