
この定量取引戦略は,複数のフィルタリング条件と厳格なリスク管理機構を組み合わせたトレンドブレイクベースの取引システムである.戦略の核心設計は,価格と均線の交差を主要な入場信号として使用し,同時にATRの波動率指標を導入し,入場時間を最適化し,EMA50とEMA200の均線の組み合わせでトレンドフィルタリング機構を構築し,強いトレンド環境でのみポジションを開くことを保証する.この戦略は,固定した止損と利益の目標を設定し,市場の変動動向に応じて止損ポジションを調整する能力を有している.
この戦略は,多次元信号システムの動作に基づいており,コアエントリー条件は以下の通りである.
突破信号生成: 価格と高点/低点SMA平均線加減ATR値の交差によって潜在的トレンドブレイク機会を識別する. 多頭入場は価格の向上ブレイクによる (ta.crossover) 高点SMA平均線加減ATR調整値,空頭入場は価格の下方ブレイクによる (ta.crossunder) 低点SMA平均線加減ATR調整値による.
トレンドフィルター策略:EMA50とEMA200の均線組合せを用いてトレンド環境判断システムを構築する.多頭は価格がEMA50上位でEMA50はEMA200上位で上昇傾向を確認する;空頭は価格がEMA50下位でEMA50はEMA200下位で下降傾向を確認する.
タイムフィルター戦略は,市場活動と波動性の高い時期に焦点を当てて,ニューヨーク時間午前2時から午後2時までの取引時間を制限します.
取引の冷却装置: 取引の後に15本のK線を冷却する期間を設定し,過度取引を防止し,市場騒音による偽信号の影響を減らす.
リスク管理システム:
戦略は,pipSize (最小変動単位) を使って,ポイントを実際の価格変動に変換し,異なる品種にリスク管理のルールを正しく適用することを保証します.
複数のフィルタリングシステム価格突破,トレンド確認,タイムフィルタリング,取引冷却の仕組みを組み合わせて,偽信号を大幅に削減し,取引品質を向上させる. 戦略は,複数の条件を満たす場合にのみポジションを開くことで,信号の信頼性を大幅に向上させる.
リスク管理の自己適応: 固定ストップ/利益目標とATRの動的調整を組み合わせることで,戦略を異なる市場変動環境に適応させることができる.ATRの倍数 ((1.2)) 高い変動の間,保護範囲を自動的に拡大し,低い変動の間,保護範囲を縮小し,インテリジェントなリスク管理を実現する.
利益の均衡の仕組み: 取引の利益が特定のレベル ((50ポイント) に達すると,ストップローズは自動的にコストの近くに移動し,既得利益のを保護し,トレンドの継続を許可し,リスク・リターン比率を最適化します.
過剰な取引保護取引の冷却期を設定する (15 K 線) は,類似の市場条件下で連続してポジションを開くのを効果的に防止し,取引の頻度と取引コストを削減し,波動的な市場で頻繁に停止することを避ける.
高品質の取引時間制御取引をニューヨーク時間午前2時から午後2時までの間に制限し,流動性や波動性が理想的な市場時間に焦点を当て,低流動性や異常な波動性の時間を避けます.
優れた反省結果戦略は15分間の時間枠で74%以上の勝率と2.4の利潤因子を示し,安定した収益性と良好なリスク・リターン特性を示しています.
飛び降りる危険を防ぐ: 市場が急激に空飛ぶ場合,固定ストップは完璧に実行されない可能性があり,実際の損失は予想以上に増加する可能性があります. 解決策は,ストップの緩衝区域を増やすか,変動率に基づくダイナミックストップシステムを導入することを検討することです.
トレンド認識の遅延: EMA50とEMA200をトレンドフィルターとして使用すると,トレンドの初期段階で入場機会を逃すか,トレンド終了後にポジションを維持する可能性があります. より敏感なトレンド指標または多時間枠分析を導入することで最適化することができます.
パラメータ感度戦略の性能は,length (10) やcooldownBars (15) といった重要なパラメータの設定に高度に依存している.市場の条件の変化により,最適なパラメータが失効する可能性があるため,定期的に再最適化または自己適応パラメータ調整メカニズムを導入する必要がある.
固定利益目標の制限:00の固定利益目標は,強いトレンドの市場において,取引を早期に終了させ,利益の潜在能力を制限する可能性がある. 強いトレンドの状況でのパフォーマンスを最適化するために,部分利益または移動止損戦略を実施することを考慮する.
タイムフィルター制限:ニューヨーク時間2AM〜2PMの取引窓は,他の時間帯の取引機会を逃す可能性があります,特に世界中の24時間取引する市場のために.異なる時間帯または市場の特徴に合わせて取引時間窓の調整を検討することができます.
ATR調整の安定性:ATR値の突然の変動は,入場条件とストップ・ポジションの不安定化につながる可能性がある.より長期のATR計算を使用するか,ATR値の平らな処理を推奨し,短期的な変動が戦略に与える影響を減らす.
ダイナミックな収益目標システム: 固定利益目標 ((100ポイント) を波動率に基づく動的目標に置き換えて,市場条件に応じて利益目標のサイズを自動的に調整できます.具体的には,多倍ATR値を目標距離として使用して,高波動環境でより大きな目標,低波動環境でより保守的な目標を設定できます.
トレンド強度格付けシステム:既存のトレンドフィルタリング機構を最適化し,トレンド強度評価システムを導入し,異なるトレンド強度に応じてポジションサイズまたはリスクパラメータを調整します.均線角,価格と均線距離などの要因を組み合わせて総合評価を構築し,より精密な取引決定を実現できます.
複数時間枠確認:より高い時間枠のトレンド確認メカニズムを追加し,取引方向がより大きなトレンドと一致することを保証する.例えば,15分チャート取引前に1時間または4時間のチャートのトレンド方向を確認し,信号の質を向上させる.
部分利益の仕組み: 多層の利潤戦略を実現し,特定の利潤レベルに達したときに部分的に平仓を許可し,利潤の一部をロックしながら,利潤を継続する可能性を保持する.利潤が50点に達したときに50%平仓,残りは追跡ストップを活用して継続するように設計することができる.
冷却期に適応する: 固定15K線冷却期を市場変動に基づく動的冷却期に変更する. 高い波動の市場では冷却期を短縮してより多くの機会を捕獲することができるが,低い波動の市場では冷却期を延長して過度の取引を避ける.
強化された反測検証:反測の範囲を拡大し,異なる市場と時間周期で戦略の安定性を検証し,異なる市場条件のパフォーマンスに特に注目する. ステップアップ最適化とモンテカルロのシミュレーションを実施し,パラメータの感受性と戦略の不確実性を評価する.
多次元自己適応トレンド追跡とリスク管理戦略は,価格突破信号,トレンドフィルター,時間制御,多層リスク管理機構を統合することによって,高い勝利率と優れた利益因子を実現する,精巧に設計された量化取引システムである.この戦略は,リスク管理に特に注意し,固定ストップとATRの動的調整を組み合わせた固定ストップを使用し,資金を保護し,のバランスメカニズムを利用し,利益の一部をロックします.この戦略は,中短期トレンド取引に適しており,特に15分間の時間枠で優れている.
参数最適化と収益管理の改善の余地があるにもかかわらず,この戦略は,体系化された取引の核心的な利点を示しています: 規律性があり,リスクが制御され,重複可能な取引ロジックがあります. 推奨された最適化措置,特にダイナミックな収益目標と複数の時間枠の確認システムを実施することにより,この戦略は,異なる市場環境で安定したパフォーマンスを維持し,全体的な収益性をさらに向上させる見込みがあります.
/*backtest
start: 2025-01-26 00:00:00
end: 2025-02-24 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy("Optimized Target Trend Strategy v2", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
// Inputs
length = input.int(10, "Trend Length")
useTrendFilter = input.bool(true, "Use Trend Filter")
cooldownBars = input.int(15, "Cooldown Between Trades") // Increased cooldown to prevent overtrading
// Fixed Risk Management
fixedSL = 50 // 60 pips/ticks stop loss
fixedTP = 100 // 100 pips/ticks take profit
breakEvenTrigger = 50 // Move stop to break even after 50 pips/ticks in profit
// ATR Calculation for Dynamic Stop Buffer
atrMultiplier = 1.2
atr_value = ta.atr(14) * atrMultiplier
// Moving Averages for Trend Filter
ema50 = ta.ema(close, 50)
ema200 = ta.ema(close, 200)
strongTrendFilter = useTrendFilter ? (close > ema50 and ema50 > ema200) : true
weakTrendFilter = useTrendFilter ? (close < ema50 and ema50 < ema200) : true
// Time Filter - Trading Only Between 2 AM to 2 PM New York Time
timeAllowed = (hour >= 2 and hour < 14)
// Cooldown Logic (Prevents Overtrading)
var float lastTradeBar = na
canTrade = na(lastTradeBar) or (bar_index - lastTradeBar) > cooldownBars
// Entry Conditions with Stronger Filtering
longCondition = ta.crossover(close, ta.sma(high, length) + atr_value) and strongTrendFilter and timeAllowed and canTrade
shortCondition = ta.crossunder(close, ta.sma(low, length) - atr_value) and weakTrendFilter and timeAllowed and canTrade
// Convert Pips to Price Movement
pipSize = syminfo.mintick
SL_Price = fixedSL * pipSize
TP_Price = fixedTP * pipSize
BE_Price = breakEvenTrigger * pipSize
if (longCondition)
strategy.entry("Long", strategy.long)
lastTradeBar := bar_index
strategy.exit("Take Profit", from_entry="Long", limit=close + TP_Price, stop=close - SL_Price - atr_value)
if (shortCondition)
strategy.entry("Short", strategy.short)
lastTradeBar := bar_index
strategy.exit("Take Profit", from_entry="Short", limit=close - TP_Price, stop=close + SL_Price + atr_value)
// Move Stop Loss to Break Even After 50 Pips Profit
longBreakEven = close + BE_Price
shortBreakEven = close - BE_Price
if (strategy.position_size > 0 and high >= longBreakEven)
strategy.exit("Break Even Long", from_entry="Long", stop=close + 2 * pipSize) // Small buffer to avoid premature stop-out
if (strategy.position_size < 0 and low <= shortBreakEven)
strategy.exit("Break Even Short", from_entry="Short", stop=close - 2 * pipSize)
// Plot Trend Filter
plot(useTrendFilter ? ema50 : na, color=color.blue, title="EMA 50")
plot(useTrendFilter ? ema200 : na, color=color.red, title="EMA 200")