
この記事では,枢軸点に基づく反転取引戦略を詳細に分析する.この戦略は,特定の周期の最高価格と最低価格を計算することによって,可能な枢軸のサポートとレジスタンス値を決定する.価格がこれらの枢軸点を横断すると,トレンドが反転することを示すので,反転取引を行うことができます.
この戦略は主に2つの指標に依存します. 枢軸高点 (Pivot High) と枢軸低点 (Pivot Low). 枢軸高低点は,周期内の最高値と最低値であり,pivothigh()そしてpivotlow()函数計算で得られる。 枢軸点を計算する際には左右の周期数を設定する必要がある.この戦略では左側の周期数は4で,右側の周期数は2。
最新の周期の最高点が前の周期の枢軸高点より低いとき,反転信号が発生していることを示している.このとき,もし以前はショートライン操作であったなら,今度は反転の機会を求めて多頭を作ることを考慮すべきである.同様に,最新の周期の最低点が前の周期の枢軸低点より高いとき,空頭を作ることは反転ポジションを作ることを考慮すべきである.
具体的には,この戦略の主な論理は以下の通りです.
この戦略の最大の利点は,潜在的トレンド反転点を識別することであり,これは反転トレーダーにとって特に重要です.他の指標と比較して,枢軸点は,頻繁に偽の信号が発生することなく,サポート抵抗をより明確に判断できます.
さらに,この戦略は,多額の取引と空調の条件を同時に構築し,異なる市場状況を最大限にカバーし,取引機会を逃さないようにする. リスクをコントロールするために,止損をすることで,損益比率が保証される.
総じて,これは非常に実用的な反転策である.
この戦略は,偽信号の確率を減らすことを目指しているにもかかわらず,突破に基づいたどんな戦略も,超前シグナルまたは超遅延シグナルが発生する事態は避けられない.これは,複数のポジションを計画して,市場がベアになり始めているか,または空きポジションを計画して,急に牛市が勃発する可能性がある.このような逆転を完璧に予測できない問題は,技術分析そのものの限界である.
また,枢軸は,決定的なサポート抵抗位を100%決定することはできません.これは参照のみです. 運が悪ければ,枢軸は,真のサポート位の形成を逃すかもしれません. この曖昧な区間の問題も完全に回避することはできません.
周期最適化 既存の左右周期数は4と2に設定されており,これは初期設定として使用できますが,異なる市場における異なる周期の枢軸はより効果が良いかもしれません.最適のパラメータの組み合わせを見つけるための最適化が試みられます.
他の指標のフィルタリングと組み合わせる.例えば,取引量指標を足すことができる.取引量が大きくなった場合にのみ,突破が有効であると考える.そうすれば,偽突破を減らすことができる.
ダイナミックストップ. 既存のストップは,枢軸上下各に最小の取引単位のスペースを残すものです. これは,市場の変動程度に応じて,ダイナミックストップを使用して最適なストップを試みることができます.
トレンド方向のみで操作する.現在,多空調条件は並行している.実際には,多頭市場での多空調の機会を探し,空頭市場での空調の機会を探し得る.トレンド指標と組み合わせれば,よりよい効果が得られるかもしれない.
この戦略は,全体として,シンプルで実用的な逆転戦略である. 枢軸を計算し,その突破を監視することによって,潜在的なトレンド転換を判断する,これがその核心思想である. この戦略は,同時に,多額の空調条件を確立し,逆転の機会を最大限に捉える. 止損設定は,リスクを制御するために使用される.
全体として,この戦略は明快で実行しやすい.パラメータ設定も比較的直接で,初心者向けにフレンドリーである.継続的なテストと最適化により,戦略のパフォーマンスを徐々に改善することが推奨される.
/*backtest
start: 2022-12-11 00:00:00
end: 2023-12-17 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)
// backtesting date range
from_day = input(defval = 1, title = "From Day", minval = 1)
from_month = input(defval = 3, title = "From Month", minval = 1)
from_year = input(defval = 2018, title = "From Year", minval = 1970)
to_day = input(defval = 1, title = "To Day", minval = 1)
to_month = input(defval = 1, title = "To Month", minval = 1)
to_year = input(defval = 2100, title = "To Year", minval = 1970)
time_cond = (time > timestamp(from_year, from_month, from_day, 00, 00)) and (time < timestamp(to_year, to_month, to_day, 23, 59))
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 and time_cond)
strategy.entry("PivRevLE", strategy.long, comment="PivRevLE", 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 and time_cond)
strategy.entry("PivRevSE", strategy.short, comment="PivRevSE", stop=lprice - syminfo.mintick)
//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)