ダイナミックサポートレジスタンスブレイクアウトトレンド戦略


作成日: 2023-12-26 15:21:45 最終変更日: 2023-12-26 15:21:45
コピー: 0 クリック数: 712
1
フォロー
1621
フォロワー

ダイナミックサポートレジスタンスブレイクアウトトレンド戦略

概要

この策略は,長期サポート抵抗の突破に基づいてトレンドの方向を判断し,サポート抵抗の突破を入場時とする.それは,高点と低点を定義し,高点/低点を2つのK線で確認し,したがって2つのK線の遅れがある.それは,サポート抵抗の位置を補助する,一定の周期 (デフォルト21) の内にある高点と低点のSMA差値を計算する.この考えは,synapticExのNebula-Advanced-Dynamic-Support-Resistance指標から来ている.

戦略原則

この戦略は,トレンドと取引シグナルの判断に以下の論理を用いる.

  1. 折線を用いて高低点を判断する.現在の5根K線のうち,5根K線の低点は4根より低く,4根は3根より低く,3根は2根より高く,2根は1根より高く,第3根K線の低点は最低低点であると確認する.高点を判断する 同理である.

  2. 計算一定周期 (デフォルト21) 内の高点数hnと低点数ln.hn>0とln>0の場合,一定周期内の高点の平均値hsum/hnと低点の平均値lsum/lnを計算する.それらの間の差分rを補助サポート抵抗位として使う.

  3. 閉盤価格と動的抵抗lvalrとサポート位hvalrを比較して,トレンド方向を判断する.閉盤価格が2つ以上である場合,有効な突破である.

  4. 動的抵抗線を有効に突破するときは,多めに;動的サポート線を有効に突破するときは,空いてください.

優位分析

この戦略の利点は以下の通りです.

  1. 折線を用いてサポート抵抗を判断する方が正確で,誤った突破を避けることができる。

  2. 長期統計に基づくサポート・レジスタンスが,より参考価値を持ち,ポジションリスクを軽減する.

  3. 突破の有効性を高める補助的な抵抗を導入する.

  4. 戦略の論理はシンプルで明快で,実装が分かりやすく,量化取引に適しています.

  5. 耐力統計周期をカスタマイズして,異なる周期と品種に対応する.

リスク分析

この戦略にはいくつかのリスクがあります.

  1. 折線は,サポート抵抗点が2K線で遅れていることを確認し,最適な入場点を逃す可能性があります.

  2. 予想されたサポート・レジスタンスは参考にのみ,価格には説明できない突破が発生する可能性が残っています.

  3. 統計サイクルの長さが不適切である場合,サポート抵抗が無効になる可能性があります.

  4. 突破後の価格調整は,ストップ・ローズを引き起こす可能性があります.

  5. 価格が急激に波動し,さらに大きな損失を招く可能性があります.

リスク管理と最適化手段は次のとおりです.

  1. 統計の周期を短縮し,遅滞を減らす

  2. 予想されるレジスタンス値のサポートと,他の要因を組み合わせる.

  3. 異なる周期パラメータの安定性をテストする.

  4. 合理的なストップを設定する.

  5. ポジションコントロールによる単一損失の制限

最適化の方向

この戦略は以下の点で最適化できます.

  1. 機械学習の方法を使用して,サポートレジスタンスを予測する. サポートレジスタンス突破の成功率を向上させる.

  2. 取引量CONF指数と組み合わせて,突破の有効性を判断する.大量未平仓契約が突破に参加したほうが説得力がある.

  3. 異なる周期による統計的支持抵抗を分類する.例えば,日線,周線などによって統計的に支持抵抗位の有効性を高める.

  4. 利回りポジションで加仓し,フリー・ストップ・ローズをセットして平衡の利回りをする.これは利回りを保証しながら,より大きな利益を争うことができる.

  5. 平均線指数でトレンドを判断し,明確なトレンドがない場合,盲目的に空白を避ける.

要約する

この戦略は,全体として,より安定した信頼性の高いトレンド追跡戦略である.それは,トレンドの方向を正しく判断する確率が高く,ある種のリスク制御策がある.しかし,ある程度の遅れがあるため,すべての空白が利益をもたらすことを100%保証することはできません.したがって,経験豊富な量化トレーダーは,独自の戦略と組み合わせて適用する.統計周期パラメータを最適化し,他の指標またはモデルと組み合わせることで,この戦略は,高効率のトレンド追跡戦略になることができます.

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

//@version=4
strategy("SR TREND STRATEGY", shorttitle="SR TREND", overlay=true, calc_on_order_fills=true)
//based on by synapticEx SR indicator https://www.tradingview.com/script/O0F675Kv-Nebula-Advanced-Dynamic-Support-Resistance/
length = input(title="SR lookbak length", type=input.integer, defval=21)
h = bar_index>5 and high[5]<high[4] and high[4]<high[3] and high[3]>high[2] and high[2]>high[1] ? 1 : 0
l = bar_index>5 and low[5]>low[4]   and low[4]>low[3]   and low[3]<low[2]   and low[2]<low[1]   ? 1 : 0
ln = sum(l, length)
hn = sum(h, length)
hval =  h>0 ? high[3] : 0
lval =  l>0 ? low[3]  : 0
lsum = sum(lval, length)
hsum = sum(hval, length)
r = ln>0 and hn>0 ? abs((hsum/hn) - (lsum/ln)): 0
float lvalc = na
float lvalr = na
float hvalc = na
float hvalr = na
lvalc := lval and r>0 ? lval   : lvalc[1]
lvalr := lval and r>0 ? lval+r : lvalr[1]
hvalc := hval and r>0 ? hval   : hvalc[1]
hvalr := hval and r>0 ? hval-r : hvalr[1]
int trend=0
trend:=close > lvalr and close > hvalr ? 1 : close < lvalr and close < hvalr ? -1 : trend[1]
strategy.close("Long", when=trend==-1)
strategy.close("Short", when=trend==1)
strategy.entry("Long", strategy.long, when=trend==1 and close>hvalc)
strategy.entry("Short", strategy.short, when=trend==-1 and close<lvalc)
int long=0
int short=0
long:= trend==1 and close>hvalc ? 1 : trend==-1 ? -1 : long[1]
short:= trend==-1 and close<lvalc ? 1 : trend==1 ? -1 : short[1]
barcolor(long>0? color.green : short>0? color.red : trend>0? color.white: trend<0 ? color.orange : color.blue)