パターン反転戦略


作成日: 2023-10-16 08:58:12 最終変更日: 2023-10-16 08:58:12
コピー: 0 クリック数: 1019
1
フォロー
1617
フォロワー

概要

形状逆転戦略は,K線形状を検知し,価格が上昇から下落,または下落から上昇する転換点を認識し,転換点の近くで買入または販売を行う.この戦略は,主に影線と実体との比率関係を使用して,価格逆転信号を判断する.

戦略原則

この戦略の核心的な論理は,K線の影線部分と实体部分の比率的関係を検知し,価格逆転形態が存在するかどうかを判断することである.

下落のK線が発生すると,K線の下影線が長く,上影線と実体が短い場合は,K線に強い買入道があることを示し,上昇に逆転する可能性がある.具体的には,閉盘価格が開盤価格より高く,下影線の長さが上影線と実体長さの一定の倍数より大きいことを検出することで,多頭信号が生成される.

逆に,上方K線が現れたとき,K線の上影線が長く,下影線と実体が短ければ,K線が強い売り出力道を持っていることを示し,下落に転じることがある.具体的には,閉盘価格が開盘価格より低いことを検出し,上影線の長さが下影線と実体長さの一定の倍数より大きいことが,空頭信号を生成する.

また,開盘価格と閉盘価格の差が小さいが,影線が長い場合も反転信号が生じることがあります.

逆転信号を検出する際には,平均K線範囲と組み合わせてフィルタリングも行われ,K線範囲が平均値より大きい場合にのみ信号が生成される.

戦略的優位性

  • 影線と実体との比率関係を利用して,反転形状を捉え,反転点を識別する
  • 複数の頭と空頭反転形状を同時に検出する
  • K線平均範囲のフィルタリングと組み合わせて,波動的な市場での誤信号を回避する
  • シンプルでわかりやすい形状認識ロジック,理解しやすい実装

戦略リスク

  • 影線と実体比のパラメータ設定は経験が必要で,不適切な設定は,漏れ捕捉反転や偽信号を生成する可能性がある
  • 単一のK線形状の判断だけで反転し,局所振動に誤導されやすい
  • トレンド判断を組み込まないと逆行操作で損失が生じる可能性

トレンド指標を組み合わせて逆転操作を避けることも考えられる。また,他の技術指標と組み合わせて逆転信号を確認することもできる。パラメータ設定は,反射最適化によってより良いパラメータセットを得ることができる。

戦略最適化の方向性

  • トレンド指標と組み合わせて,逆転方向がトレンドと一致していることを確認し,逆転操作を避ける
  • 磁力線,ブリン帯などの他の技術指標と組み合わせて,反転信号を確認できます.
  • 影線と実体比のパラメータを自動的に最適化するために,機械学習の方法を使用できます.
  • 逆転後,停止と停止条件を設定し,退出メカニズムを最適化できます.

要約する

形状転換戦略は,比較的単純な形状識別方法によって,価格逆転の形状を効果的に識別し,ターニングポイントを捕獲する.しかし,単一のK線形状にのみ依存すると,誤判が容易になり,他の技術指標と組み合わせて使用する必要があり,傾向判断を加えることで,逆転操作を避け,戦略の安定性を向上させることができる.

ストラテジーソースコード
/*backtest
start: 2023-10-08 00:00:00
end: 2023-10-15 00:00:00
period: 3m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © adiwajshing

//@version=4
strategy("Wick Reversal Signal", overlay=true)

wickMultiplier = input(3.25)
bodyPercentage = input(0.35)
barsBack = input(50)
bodyMultiplier = input(1.1)

myCandleSize = high-low
averageCandleSize = rma(myCandleSize, barsBack)

longSignal = close > open and open-low >= (close-open)*wickMultiplier and high-close <= (high-low)*bodyPercentage and high-low >= averageCandleSize*bodyMultiplier
longSignal := longSignal or (close < open and close-low >= (open-close)*wickMultiplier and high-close <= (high-low)*bodyPercentage and high-low >= averageCandleSize*bodyMultiplier)
longSignal := longSignal or (abs(close-open) < 0.01 and close != high and high-low >= (high-close)*wickMultiplier and high-close <= (high-low)*bodyPercentage and high-low >= averageCandleSize*bodyMultiplier)

shortSignal = close < open and high-open >= (open-close)*wickMultiplier and close-low <= (high-low)*bodyPercentage and high-low >= averageCandleSize*bodyMultiplier
shortSignal := shortSignal or (close > open and high-close >= (close-open)*wickMultiplier and close-low <= (high-low)*bodyPercentage and high-low >= averageCandleSize*bodyMultiplier)
shortSignal := shortSignal or (abs(close-open) < 0.01 and close != low and high-low >= (close-low)*wickMultiplier and close-low <= (high-low)*bodyPercentage and high-low >= averageCandleSize*bodyMultiplier)

plotshape(longSignal, style=shape.triangleup, size=size.normal)
plotshape(shortSignal, style=shape.triangledown, size=size.normal)

strategy.entry("LONG", strategy.long, when=longSignal)
strategy.entry("SHORT", strategy.short, when=shortSignal)