
ATRダイナミック・トラッキング・ストップに基づく三重反転模式定量取引戦略は,短期市場の枯渇信号を特定するために特別に設計された定量取引システムである.この戦略の核心思想は,連続した3つの同向線の後で発生する反転信号を捕捉し,平均真波幅 ((ATR)) に基づくダイナミック・トラッキング・ストップメカニズムによって利益を保護することである.この戦略は,15分,1時間,4時間などの短期間の時間周期に特に適用され,異なる市場環境の変動特性に自動的に適応することができ,固定ストップを設定する必要がなく,ダイナミック・ストップメカニズムによってリスクを制御することができる.
この戦略の入場論理は,明確な価格パターンの認識に基づいています.
連続した3つの同向線が方向性確認を形成している.
逆回転回線には,十分な大きさの実体があり,逆回転信号が十分に強さを確保するために,コードで少なくとも3パーセントの体積サイズに設定する必要があります.
逆転線の終了時に入場取引
戦略の出場論理はATRベースの動的追跡停止機構を採用している:
コード分析により,この戦略は固定ストップロスを設定せず,利益後の保護メカニズムに依存してリスクを管理することがわかります.この戦略は,最大5回のピラミッド加減を許可し,各取引に50%の口座権益を使用し,0.05%の取引手数料を考慮しています.
精密な反転識別機構:連続した3つの同方向の加反転の組み合わせモデルにより,真の反転の識別精度が向上し,偽信号の発生が減少する.
市場変動に動的に適応する:ATRを波動率指標として使用し,パラメータを手動で調整する必要なく,戦略が異なる市場と異なる期間の波動特性に自動的に適応できるようにする.
賢明な資金保護メカニズム:取引が一定の利益を得た後にのみ保護メカニズムを起動し,市場がわずかな揺れによって引き起こされる早期出場を避け,利益の撤回時に利益を間に合うようにロックします.
柔軟なポジション管理:トレンドが確認された後にポジションを増やすことができるピラミッド式加仓をサポートします.
適用幅広: 戦略設計は,変動する市場やトレンドの逆転点に特に有効であり,仮想通貨,金,外貨などの波動性の高い市場に適用されます.
パラメータは簡潔で簡単に調整できます.最小体積比率,ATRサイクルの長さ,追跡停止パラメータを設定するだけで,異なる市場環境に最適化して適応できます.
固定しないストップリスク:戦略は従来的な意味でのストップポイントを設定しない.追跡ストップが有効になる前に,市場が不利な動きを継続した場合,大きな損失を引き起こす可能性がある.このリスクに対して,トレーダーは時間または最大損失の割合に基づく緊急ストップメカニズムを追加することを検討することをお勧めします.
過度取引のリスク: 入場条件が比較的緩やかであるため (同向線3本と反向線1本のみが必要である) 波動的な市場では過剰な取引信号が生じる可能性がある.トレンド指数やサポートレジスタンス位との組み合わせなどの追加のフィルタリング条件を追加することで,不要な取引を減らすことができます.
ピラミッド加仓リスク:戦略は最大5回の加仓をサポートし,市場が突然逆転した場合,大量に蓄積された損失を引き起こす可能性があります.個人のリスク承受能力に応じて加仓の回数を適切に削減するか,より厳しい加仓条件を設定することが推奨されています.
市場条件依存性:戦略は,明らかに揺れ動いている市場やトレンドの末端で最高のパフォーマンスを発揮しますが,強いトレンドの市場では頻繁に誤ったシグナルを誘発することがあります.トレンドフィルターを追加することを検討し,適切な市場環境でのみこの戦略を適用してください.
パラメータの感受性:ATR倍数パラメータの微小な変化は,戦略の性能に大きく影響し,異なる市場と時間周期に合わせて,全般的なパラメータの最適化と反テストが必要である.
// 趋势过滤器示例
ema200 = ta.ema(close, 200)
adx = ta.adx(14)
inUptrend = close > ema200 and adx > 25
inDowntrend = close < ema200 and adx > 25
// 初始止损示例
initialStopLoss = strategy.position_size > 0 ? longEntry - 2 * atr :
strategy.position_size < 0 ? shortEntry + 2 * atr : na
取引時間フィルターを追加:特定の市場では,特定の時間帯で波動性が大きすぎたり小さすぎたりして,戦略のパフォーマンスに影響を与える可能性があります.取引時間フィルターを追加して,最適な時間帯のみで取引することができます.
回転確認条件の最適化:回転信号の信頼性を強化するために,交差量または動量指標を組み合わせることが考えられる.回転信号は理想的には交差量増幅または動量指標の背離と伴わなければならない.
動的調整パラメータ:市場状況に基づいてATR倍数パラメータを自動的に調整する仕組みを設計し,異なる市場段階に適合させることができる.例えば,高い波動期間に追跡距離を増やし,低い波動期間に追跡距離を減らす.
利益目標の増強: ストップを追跡するだけでなく,サポートレジスタンス位またはフィボナッチ逆位をベースに部分利益を得ることを設定して,重要な価格で部分利益をロックすることができます.
リスク管理の最適化:50%の利権の固定使用ではなく,単一取引のリスクを口座の固定パーセントに制限することは,次の方法で実現できます.
// 动态仓位大小计算
riskPerTrade = 1 // 风险1%账户
posSize = (strategy.equity * riskPerTrade / 100) / (atr * 2)
ATRの動的追跡ストップに基づく三重反転パターンの量化取引戦略は,連続した3つの同方向の線後の反転パターンを識別することによって市場の転換点を捕捉するための巧妙に設計された短期反転取引システムである.その最大の特徴は,ATRに基づく動的追跡ストップの仕組みを採用することで,戦略は,異なる市場条件の変動特性に適応し,十分な利得スペースを保持しながら,すでに達成された利潤をタイムリーにロックすることができます.
この戦略は,特に,仮想通貨,金,外為市場などの不安定な市場や波動的な市場環境で適用されます. トレンドフィルター,インテリジェント・ストップ・ローズ,ダイナミック・パラメータ調整などの最適化アドバイスを添加することで,トレーダーは,戦略の安定性と収益性をさらに向上させることができます.
注目すべきは,この戦略が市場変化に自動的に適応する能力があるにもかかわらず,特定の市場特性と個人リスクの好みに応じて,トレーダーによるパラメータの最適化と調整が必要であることです.実地での適用の前に,戦略が異なる市場環境下でのパフォーマンスを検証するために,十分な歴史の追溯と模擬取引を行うことが推奨されています.
/*backtest
start: 2024-05-19 00:00:00
end: 2025-04-11 00:00:00
period: 5d
basePeriod: 5d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDC"}]
*/
//@version=5
// ========================================================================
// 📌 CMA Technologies – 3-Bar Reversal Detection Bot (ATR Trailing TP)
// 🌐 Developed by CMA Technologies | Visit: cmatech.co
// 🔄 Short-term reversal entry with dynamic ATR-based trailing TP
// 🔍 Strategy by @CMATechnologies
// ========================================================================
strategy("CMA Technologies – 3-Bar Reversal Detection Bot", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=1, pyramiding=5, commission_type=strategy.commission.percent, commission_value=0.05)
// === INPUTS ===
minBodyPct = input.float(3, title="Minimum Body Size (%)")
atrLen = input.int(14, title="ATR Length")
trailStartATR = input.float(1.5, title="Start Trailing After (x ATR)")
trailOffsetATR = input.float(1.0, title="Trailing Offset (x ATR)")
// === ATR ===
atr = ta.atr(atrLen)
// === FUNCTION ===
isBearish(closeVal, openVal) =>
closeVal < openVal
isBullish(closeVal, openVal) =>
closeVal > openVal
bodyPct(closeVal, openVal) =>
math.abs(closeVal - openVal) / openVal * 100
// === CONDITIONS ===
bullishReversal = isBearish(close[3], open[3]) and isBearish(close[2], open[2]) and isBearish(close[1], open[1]) and isBullish(close, open) and bodyPct(close, open) > minBodyPct
bearishReversal = isBullish(close[3], open[3]) and isBullish(close[2], open[2]) and isBullish(close[1], open[1]) and isBearish(close, open) and bodyPct(close, open) > minBodyPct
// === ENTRY ===
if (bullishReversal)// and strategy.position_size == 0)
strategy.entry("3Bar Long", strategy.long)
if (bearishReversal)// and strategy.position_size == 0)
strategy.entry("3Bar Short", strategy.short)
// === ATR-BASED TRAILING TP ===
longEntry = strategy.opentrades.entry_price(0)
shortEntry = strategy.opentrades.entry_price(0)
maxHigh = ta.highest(close, 20)
minLow = ta.lowest(close, 20)
startTrailLong = longEntry + trailStartATR * atr
startTrailShort = shortEntry - trailStartATR * atr
longTrailExit = close < (maxHigh - trailOffsetATR * atr) and close > startTrailLong
shortTrailExit = close > (minLow + trailOffsetATR * atr) and close < startTrailShort
if (strategy.position_size > 0 and longTrailExit)
strategy.close("3Bar Long", comment="ATR Trailing TP Hit")
if (strategy.position_size < 0 and shortTrailExit)
strategy.close("3Bar Short", comment="ATR Trailing TP Hit")
// === PLOTS ===
plotshape(bullishReversal, title="3-Bar Bull Reversal", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.tiny)
plotshape(bearishReversal, title="3-Bar Bear Reversal", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.tiny)