EMAは,EMAトレンド,ラウンドナンバーブレークアウト,およびトレーディングセッションフィルタリングを組み合わせた定量的なトレーディング戦略である.この戦略は主にEMAトレンド方向,および主要ラウンドナンバーレベルでの価格ブレークアウトパターンをトレーディングシグナルとして利用し,セッションフィルタリングを組み込み,取引品質を向上させる.この戦略はリスク管理のためにパーセントベースのストップ・ロストとテイク・プロフィートを採用する.
基本論理には次の主要な要素が含まれます. 1. 20 日間の EMA をトレンド識別ツールとして使用し,EMA を長距離上,以下を短距離下にする 2. 鍵 の 丸い 数字 の 近く に ある 包み込み の パターン を 探す (5 ドル の 間隔) 3. 低波動期を避けるため,ロンドンとニューヨークセッション中にのみ取引する. 4. ロング シグナルには,上昇傾向の格好,EMA の上位価格,活発な取引セッションが必要である. 5. ショートシグナルには,下落傾向の格好,EMAを下回る価格,活発な取引セッションが必要です. 6. 貿易管理のための1%ストップ・ロストと1.5%の利得リスク報酬比を実施
この戦略は,EMAトレンド,価格パターン,セッションフィルタリングを含む複数のメカニズムを組み合わせて論理的に厳格な取引システムを構築する.一定の制限があるものの,継続的な最適化と精製は戦略の安定性と収益性を向上させる可能性がある.この戦略は,特定の取引要件に基づいてカスタマイズするのに適した中長期トレンドフォローシステムのための堅牢な基盤として機能する.
/*backtest start: 2024-12-17 00:00:00 end: 2025-01-16 00:00:00 period: 1h basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}] */ //@version=6 strategy("The Gold Box Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=200) // Inputs roundNumberInterval = input.int(5, title="Round Number Interval ($)", minval=1) useEMA = input.bool(true, title="Use 20 EMA for Confluence") emaLength = input.int(20, title="EMA Length") // Session times for London and NY londonSession = input("0300-1200", title="London Session (NY Time)") nySession = input("0800-1700", title="New York Session (NY Time)") // EMA Calculation emaValue = ta.ema(close, emaLength) // Plot Round Number Levels roundLow = math.floor(low / roundNumberInterval) * roundNumberInterval roundHigh = math.ceil(high / roundNumberInterval) * roundNumberInterval // for level = roundLow to roundHigh by roundNumberInterval // line.new(x1=bar_index - 1, y1=level, x2=bar_index, y2=level, color=color.new(color.gray, 80), extend=extend.both) // Session Filter inLondonSession = not na(time("1", londonSession)) inNYSession = not na(time("1", nySession)) inSession = true // Detect Bullish and Bearish Engulfing patterns bullishEngulfing = close > open[1] and open < close[1] and close > emaValue and inSession bearishEngulfing = close < open[1] and open > close[1] and close < emaValue and inSession // Entry Conditions if bullishEngulfing strategy.entry("Long", strategy.long, comment="Bullish Engulfing with EMA Confluence") if bearishEngulfing strategy.entry("Short", strategy.short, comment="Bearish Engulfing with EMA Confluence") // Stop Loss and Take Profit stopLossPercent = input.float(1.0, title="Stop Loss (%)", minval=0.1) / 100 takeProfitPercent = input.float(1.5, title="Take Profit (%)", minval=0.1) / 100 strategy.exit("Exit Long", "Long", stop=close * (1 - stopLossPercent), limit=close * (1 + takeProfitPercent)) strategy.exit("Exit Short", "Short", stop=close * (1 + stopLossPercent), limit=close * (1 - takeProfitPercent))