この戦略は,指数的な移動平均値 (EMA) のクロスオーバーに基づいたトレンドフォローシステムで,動的ポジションサイジングとリスク管理を組み込む.これは,市場動向を特定するために迅速かつ遅いEMAクロスオーバー信号を使用し,割合リスクの計算を通じてトレードサイズを動的に調整し,利益を保護するためにトライリングストップを使用する.
基本論理は,異なる期間の2つのEMA (デフォルト9と21) に基づいています.速いEMAがスローEMAを超えるとロングエントリー信号が生成され,速いEMAがスローEMAを下回るとポジションが閉鎖されます.各取引サイズは,総口座資本の固定パーセントリスク (デフォルト1%) をベースに動的に計算され,リスク・リターン比率とパーセントベースのトラリングストップに基づいて利益の引き上げレベルが設定されます.
EMAは,クラシックな技術分析方法と近代的なリスク管理のコンセプトを組み合わせた完全な取引システムである.この戦略は,動的なポジションサイジングとトレーリングストップを通じてリスクを制御し,EMAクロスオーバーを使用してトレンド機会を把握する.いくつかの固有の制限があるが,提案された最適化方向は戦略の強度と適応性をさらに高めることができる.この戦略は,制御リスクのある長期トレンド取引に特に適している.
/*backtest start: 2019-12-23 08:00:00 end: 2024-12-18 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Bitcoin Exponential Profit Strategy", overlay=true) // User settings fastLength = input.int(9, title="Fast EMA Length", minval=1) slowLength = input.int(21, title="Slow EMA Length", minval=1) riskPercent = input.float(1, title="Risk % Per Trade", step=0.1) / 100 rewardMultiplier = input.float(2, title="Reward Multiplier (R:R)", step=0.1) trailOffsetPercent = input.float(0.5, title="Trailing Stop Offset %", step=0.1) / 100 // Calculate EMAs fastEMA = ta.ema(close, fastLength) slowEMA = ta.ema(close, slowLength) // Plot EMAs plot(fastEMA, color=color.blue, title="Fast EMA") plot(slowEMA, color=color.red, title="Slow EMA") // Account balance and dynamic position sizing capital = strategy.equity riskAmount = capital * riskPercent // Define Stop Loss and Take Profit Levels stopLossLevel = close * (1 - riskPercent) takeProfitLevel = close * (1 + rewardMultiplier * riskPercent) // Trailing stop offset trailOffset = close * trailOffsetPercent // Entry Condition: Bullish Crossover if ta.crossover(fastEMA, slowEMA) positionSize = riskAmount / math.max(close - stopLossLevel, 0.01) // Prevent division by zero strategy.entry("Long", strategy.long, qty=positionSize) strategy.exit("TakeProfit", from_entry="Long", stop=stopLossLevel, limit=takeProfitLevel, trail_offset=trailOffset) // Exit Condition: Bearish Crossunder if ta.crossunder(fastEMA, slowEMA) strategy.close("Long") // Labels for Signals if ta.crossover(fastEMA, slowEMA) label.new(bar_index, low, "BUY", color=color.green, textcolor=color.white, style=label.style_label_up) if ta.crossunder(fastEMA, slowEMA) label.new(bar_index, high, "SELL", color=color.red, textcolor=color.white, style=label.style_label_down)