
この戦略は、リスク管理メカニズムと組み合わせた、デュアル移動平均チャネルに基づく動的トレンド追跡システムです。この戦略では、2 つの単純移動平均 (SMA) を使用して取引チャネルを構築します。上部のレールでは最高価格で計算された移動平均を使用し、下部のレールでは最低価格で計算された移動平均を使用します。このシステムは、5回連続のKライン終値が上限トラックを突破した場合をエントリーシグナル、5回連続のKライン終値が下限トラックを下回った場合または最高値から25%下がった場合をエグジットシグナルとして使用し、ダイナミックトレンドを実現します。追跡とリスク管理。
この戦略の基本原則は、二重移動平均チャネルを通じて価格動向を捉え、厳格なエントリーとエグジットのメカニズムを確立することです。
この戦略は、厳格なエントリー確認とダブルエグジットメカニズムを組み合わせた二重移動平均チャネルを通じて完全なトレンド追跡取引システムを構築し、効果的なトレンド追跡と効果的なリスク管理を実現します。この戦略の利点は、明確な実行ロジックと完璧なリスク管理ですが、さまざまな市場環境に合わせてパラメータを最適化する必要があり、市場環境フィルタリング、複数期間の確認などを追加することでさらに改善できます。全体として、これは完全な構造と厳密なロジックを備えた定量的な取引戦略であり、明らかなトレンドのある市場環境での適用に適しています。
/*backtest
start: 2025-01-02 00:00:00
end: 2025-01-09 00:00:00
period: 10m
basePeriod: 10m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}]
*/
//@version=5
strategy("Moving Average Channel (MAC)", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
// Parameters for Moving Averages
upperMALength = input.int(10, title="Upper MA Length")
lowerMALength = input.int(8, title="Lower MA Length")
stopLossPercent = input.float(25.0, title="Stop Loss (%)", minval=0.1) / 100
// Calculate Moving Averages
upperMA = ta.sma(high, upperMALength)
lowerMA = ta.sma(low, lowerMALength)
// Plot Moving Averages
plot(upperMA, color=color.red, title="Upper Moving Average")
plot(lowerMA, color=color.green, title="Lower Moving Average")
// Initialize variables
var int upperCounter = 0
var int lowerCounter = 0
var float entryPrice = na
var float highestPrice = na
// Update counters based on conditions
if (low <= upperMA)
upperCounter := 0
else
upperCounter += 1
if (high >= lowerMA)
lowerCounter := 0
else
lowerCounter += 1
// Entry condition: 5 consecutive bars above the Upper MA
if (upperCounter == 5 and strategy.position_size == 0)
strategy.entry("Long", strategy.long)
highestPrice := high // Initialize highest price
// Update the highest price after entry
if (strategy.position_size > 0)
highestPrice := na(highestPrice) ? high : math.max(highestPrice, high)
// Exit condition: 5 consecutive bars below the Lower MA
if (lowerCounter == 5 and strategy.position_size > 0)
strategy.close("Long", comment="Exit: 5 bars below Lower MA")
// Stop-loss condition: Exit if market closes below 25% of the highest price since entry
stopLossCondition = low < highestPrice * (1 - stopLossPercent)
if (stopLossCondition and strategy.position_size > 0)
strategy.close("Long", comment="Exit: Stop Loss")