
この戦略は,古典的な落形状の認識に基づいた定量取引システムで,市場における2つの重要な反転信号を識別することに専念しています.落形状と流星形状.落形状は,通常,下方トレンドの末端に現れ,潜在的看板反転信号と見なされます.そして流星形状は,上昇トレンドの頂端にしばしば現れ,潜在的看板反転信号と見なされます.戦略は,これらの形状を定義するために精密な数学パラメータを使用し,信号の正確性と一致性を確保します.
この戦略の核心原則は,特定のK線形状の精密な数学的な定義と識別に基づいています:
の形状認識:
流星形状識別:
トランザクション実行論理:
この戦略の実行は,信号が出現した後の次のK線に基づいている.これにより,反測における先見性偏差を回避し,実際の取引における戦略の実行性を確保することができる.
シンプルで明快な入口信号: この戦略は,明確に定義されたK線形状に基づいており,入場信号は明確であり,主観的な判断の要素を減らす.
リスク管理の改善: 取引ごとに明確なストップ・ロズとターゲット・価格があり,単一の取引の最大損失を制限し,資金の長期保全に貢献する.
パラメータの可変性: 戦略は,さまざまな市場と時間枠に応じて最適化できるいくつかの重要なパラメータ (例えば,影線比率,最小実体比率など) を提供します.
市場逆転に適応すると流星は,市場情緒の変化を視覚的に表現し,市場動向の潜在的転換点を捉えることができます.
合理的な位置での止まり点: 戦略のストップロスは,形状K線の極限点に設定され,これは通常,市場のこの方向への最後の試みを代表し,破られた場合,反転信号は無効になる可能性があります.
日内取引に適している戦略の入場と出場は比較的迅速で,日中トレーダーに適しており,短期市場の波動を有効に利用できる.
偽の突破の危険性: 市場が条件形を産み出す可能性があり,その後予想された逆転が起こらず,取引が止損に達する.
パラメータ感度: 策略性能はパラメータ設定 (wickFactorやminBodyRangePctなど) に非常に敏感であり,パラメータ設定を誤って設定すると,偽信号が過剰に発生したり,重要な信号が逃れることもあります.
適用範囲は制限されています: この戦略は,波動的な市場や明確なトレンドがない市場において,不良な結果をもたらし,連続した負債取引を引き起こす可能性があります.
トレンド確認の欠如: 戦略は単根のK線形状のみに基づいており,より広範な市場トレンドの背景を考慮していないため,逆向きの取引を引き起こす可能性があります.
ストップポイントは保守的: 戦略のストップは,信号K線の極限点に設定されていて,これはあまりにも保守的であり,真の反転トレンドを充分利用できないかもしれない.
資金管理のリスク戦略: 固定比率の資金 ((10%の利権) を使って取引し,連続的な損失の場合,大きなアカウントの撤回につながる可能性があります.
トレンドフィルターを追加: 移動平均線や他のトレンド指標と組み合わせて,順勢方向のみで取引を行う.例えば,下向きのトレンドのみで形を多めに探す,上向きのトレンドでは流星形を空っぽに探す.
音量を上げる確認: 要求信号K線は,取引量の増加に伴い,形状の信頼性を高め,反転は通常取引活動の増加に伴います.
止装置の最適化動的ストップ戦略を導入します.例えば,移動ストップやATRに基づくストップポイントを導入します.
複数の時間枠分析: より大きな時間枠で市場トレンドの方向を確認し,大きなトレンドと一致する反転信号のみを実行する.
信号の強度評価を実現する:形状の完璧さに基づいて信号を評価する (影線比,K線位置,前期走行など),高得点信号のみを実行する.
市場環境のフィルターに: 市場の騒音が大きいときに誤ったシグナルを生じないように,高波動性のある環境でパラメータを調整するか取引を一時停止する.
他のテクニカル指標を統合する: RSI,MACDなどの指標の異動信号を組み合わせて,複数の指標が共同で確認された場合にのみ取引を行う.
双反転台盤モデル定量取引戦略は,クラシック技術分析に基づく自動取引システムで,と流星台盤の形状を精密に定義し,識別することで,市場の潜在的反転機会を捕捉する.この戦略は,明確な入場信号と完善したリスク管理機構を備えており,日中トレーダーの適用に適しています.しかし,純粋に形状認識に基づくシステムであるため,偽の突破やトレンド確認の欠如などのリスクにも直面しています.
戦略の最大の利点は,その簡潔さと明瞭性であり,トレーダーは各取引の論理を明確に理解することができます.戦略の安定性を高めるために,トレンドフィルター,取引量確認,および停止メカニズムの最適化などの要素を追加することが推奨されています.これらの最適化により,偽信号を減らすことができ,戦略の全体的な収益性とリスク対報酬率を向上させることができます.
最終的には,すべての取引戦略と同様に,トレーダーは実際に適用する前に十分な反省と前向きなテストを行い,特定の市場条件と個人のリスクの好みに合わせてパラメータを調整する必要があります. この戦略は,基本的な枠組みとして,継続的な最適化と個別化によって,個々の取引スタイルに適した有効なツールとして発展することができます.
/*backtest
start: 2024-08-11 00:00:00
end: 2025-08-09 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy("Hammer & Shooting Star — Strategy", overlay=true, pyramiding=0,
default_qty_type=strategy.percent_of_equity, default_qty_value=10, initial_capital=10000, calc_on_every_tick=true)
// === Inputs ===
wickFactor = input.float(0.9, "Min wick : body ratio", step=0.1)
maxOppositeWickFactor = input.float(0.45, "Max opposite-wick : body", step=0.05)
minBodyRangePct = input.float(0.2, "Min body as % of bar range", step=0.01)
// === Candle parts ===
o = open
c = close
h = high
l = low
body = math.abs(c - o)
barRange = h - l
upperWick = h - math.max(c, o)
lowerWick = math.min(c, o) - l
bodyNonZero = barRange > 0 and body > 0
// === Pattern detection (on the bar itself) ===
// Hammer: bearish candle (o > c), long lower wick, small upper wick
isHammer = bodyNonZero and (o > c) and (lowerWick >= wickFactor * body) and (upperWick <= maxOppositeWickFactor * body) and (body / barRange >= minBodyRangePct)
// Shooting star: bullish candle (o < c), long upper wick, small lower wick
isShootingStar = bodyNonZero and (o < c) and (upperWick >= wickFactor * body) and (lowerWick <= maxOppositeWickFactor * body) and (body / barRange >= minBodyRangePct)
// === Use previous-bar signals so entry executes at NEXT bar open ===
hammerSignal = isHammer[1]
ssSignal = isShootingStar[1]
// === Entries & exits: based on the signal bar (index [1]) ===
canEnter = strategy.position_size == 0
if hammerSignal and canEnter
// Enter long on current bar (this is the bar AFTER the hammer)
strategy.entry("Long_Hammer", strategy.long)
// Exit using the hammer-bar's low/high (signal bar is [1])
strategy.exit("Long_Exit", from_entry="Long_Hammer", stop=low[1], limit=high[1])
if ssSignal and canEnter
strategy.entry("Short_SS", strategy.short)
strategy.exit("Short_Exit", from_entry="Short_SS", stop=high[1], limit=low[1])
// === Visuals: show where patterns occurred ===
//barcolor(isHammer ? color.red : isShootingStar ? color.green : na)
plotshape(isHammer, title="Hammer", style=shape.triangleup, location=location.belowbar, color=color.green, size=size.tiny, text="HAM")
plotshape(isShootingStar, title="Shooting Star", style=shape.triangledown, location=location.abovebar, color=color.red, size=size.tiny, text="SS")