ピボット逆転キャンドルスティック戦略は,ピボットポイントに基づいて取引信号を生成する定量的な取引戦略である.この戦略は,ピボットエリアを決定するために左側にある一定の数のキャンドルスティックの最高価格と最低価格を計算する.価格がピボットエリアを突破すると,対応するロングまたはショートポジションを開始する.
この戦略の基本論理は,左側の4本のキャンドルスタイルの最高価格をロングピボットとして,左側の4本のキャンドルスタイルの最低価格をショートピボットとして計算することです.右側の2本のキャンドルスタイルは,価格がピボットエリアを突破したかどうかを判断するために使用されます.価格がロングピボットを超えると,ロングします.価格がショートピボット以下になると,ショートします.
戦略は,まず,最も高い価格を計算します.swh
長いピボットとして左の4キャンドルスタイルの. 同時に,それは最低価格を計算します.swl
左の4個のキャンドルスタイクがショートピボットです.ピボットを決定した後,右の2つのキャンドルスタイクを使用して,価格がピボットエリアを突破するかどうかを判断します.価格が超過した場合swh
価格が低くなればswl
短縮する
ロング・ショート・シグナルが発信された後,ロング・ショート・オーダーを出し,ストップ・ロスをピボットエリアの外に設定してリスクを制御します.
ピボット逆転戦略の最大の利点は,価格逆転のタイミングを把握できるということです.価格が長期間範囲内に留まる場合,しばしばピボットエリアの周りに振動します.この時点でピボットブレイクアウト戦略を使用すると,価格逆転の最適なタイミングを把握し,利益を得ることができます.
他の逆転戦略と比較して,ピボット逆転戦略は,操作が簡単,リスクが制御可能,などという利点があります.左と右のキャンドルスタイク番号の設定は,異なる製品と市場環境に適応するために自由に調整できます.また,ピボットエリアの外にストップロスを設定することで,リスクは効果的に制御できます.
ピボット逆転戦略の主なリスクは,ピボットエリアの誤った判断である.左側のキャンドルスタイクが明確なピボットエリアを決定できない場合,右側のキャンドルスタイクのブレイクが誤った信号であり,損失を引き起こす可能性があります.
さらに,急激なトレンドの変化もリスクをもたらす可能性があります.ストップ・ロスは設定されていますが,価格ギャップやスキップなどの異常な状況が発生した場合,ストップ・ロスは良い保護を提供しない可能性があります.
リスクを減らすために,同時にロングとショートの両方の戦略を採用することを検討することができます.つまり,価格が上昇するとロング,価格が下がるとショート,いくつかのリスクをヘッジします.また,他の指標を組み合わせてトレンドを判断し,潜在的な逆転点での取引機会を逃さないようにすることができます.
戦略は以下の側面で最適化できます.
左と右のキャンドルスタイルの数値設定を最適化します.最適なパラメータを見つけるために左と右のキャンドルスタイルのより多くの組み合わせをテストします.
インディケーターフィルターを追加します. 不確実な状況で市場に参入するのを避けるためにポジションを取るときにMA,MACDなどのフィルターを追加します.
ストップ・ロスのレベル設定を最適化する.異なる製品の特徴に応じてより良いストップ・ロスのポジションを選択する.
トレイリングストップロスを追加します.ポジションを取った後,シンプルなストップロスの出口ではなく,トレリングストップロスは利益をロックするために使用できます.
ピボットリバーサル戦略は,ピボット領域における価格逆転のタイミングを把握することによって取引を行う.容易な操作,制御可能なリスクなどに優れている.主なリスクは,ピボット領域の誤った識別と急激なトレンドの変化にある.パラメータ最適化,フィルターを追加,ストップロスの戦略を改善するなどの方法により,リスクは軽減され,戦略の安定性は向上することができる.一般的に,ピボットリバーサル戦略は,レンジ・バインド市場での短期間の取引機会を把握するのに非常に適している.
/*backtest start: 2022-12-08 00:00:00 end: 2023-12-14 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy("Pivot Reversal Strategy", overlay=true) leftBars = input(4) rightBars = input(2) swh = pivothigh(leftBars, rightBars) swl = pivotlow(leftBars, rightBars) swh_cond = not na(swh) hprice = 0.0 hprice := swh_cond ? swh : hprice[1] le = false le := swh_cond ? true : (le[1] and high > hprice ? false : le[1]) if (le) strategy.entry("Long", strategy.long, comment="Long", stop=hprice + syminfo.mintick) swl_cond = not na(swl) lprice = 0.0 lprice := swl_cond ? swl : lprice[1] se = false se := swl_cond ? true : (se[1] and low < lprice ? false : se[1]) if (se) strategy.entry("Short", strategy.short, comment="Short", stop=lprice - syminfo.mintick) //plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)