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

作者: リン・ハーンチャオチャン開催日:2023年12月26日 (日) 15:21:45
タグ:

img

概要

この戦略は,長期サポート/レジスタンスブレイクに基づいてトレンド方向を判断し,サポート/レジスタンスが破られたときのポジションに入ります. 2バーでピーク/バレーを確認し,2バーの遅延があるため,ピークとバレーを定義するためにジグザックを使用します. 定義された期間のピークとバレーのSMAの違い (21をデフォルトで) を代替SRレベルとして計算します. このアイデアは,synapticExのNebula-Advanced-Dynamic-Support-Resistance指標から得られました. 抵抗が破られたとき,長くなり,サポートが破られたとき,短くなります.

戦略の論理

戦略は,トレンドと取引信号を決定するために次の論理を使用します.

  1. シグザックでピーク/バレーを確認します.最後の5バーで,バー5ピーク <バー4ピーク <バー3ピーク >バー2ピーク >バー1ピーク,バー3バレーを最低のバレーとして確認します.最も高いピークを同様に確認します.

  2. 定義された期間のピーク hn とバレー ln の数を計算する (デフォルト21).もし hn>0 と ln>0 の場合,ピーク hsum/hn の平均レベルとバレー lsum/ln の平均レベルを計算する.それらの差 r を代替 SR レベルとして使用する.

  3. 接近価格と動的レジスタンスの値とサポート値を比較してトレンド方向を決定します.レジスタンスのブレイクまたはサポートのブレイクは有効なブレイクとみなされます.

  4. サポートの有効なブレイクが起こる場合 ショートします.

利点分析

この戦略の利点は

  1. シグザックで SR を確認することで 誤った突破を回避する精度が 得られます

  2. 長期統計に基づいた SR はリスク削減に より価値があります

  3. 代替 SR は,突破信号の有効性を向上させる.

  4. 論理はシンプルで 簡単に理解できます 量子取引に適しています

  5. 調整可能な統計期間は,異なるサイクルと製品に適しています.

リスク分析

この戦略のリスク:

  1. 2バーの遅延とジグザグで 最良のエントリーポイントを逃す可能性があります

  2. 予測されたSRは 参照のためです 異常な脱出は起こり得ます

  3. 誤った統計期間が SR を無効にします

  4. ブレイク後の値引きはストップロスを引き起こす可能性があります.

  5. 入国後の激烈な価格変動は大きな損失をもたらす.

解決策は次のとおりです

  1. 遅延を減らすために統計期間を適切に短縮します

  2. SRを予測するために より多くの要素を組み合わせます

  3. 異なる期間における試験安定性

  4. 合理的なストップ損失レベルを設定する

  5. 単一の損失を制限するために位置サイズを使用します.

オプティマイゼーションの方向性

戦略は以下の側面から最適化できます.

  1. 機械学習を使って SRを予測し 突破信号の成功率を向上させます

  2. CONFのボリュームを組み合わせて ブレイクシグナルの有効性を確認します. 高いオープン・インテレスは ブレイクシグナルをより説得力があります.

  3. 異なるサイクルに基づいて SR の統計を分類し, SR の効率を向上させる.

  4. 利益に対するポジションを追加し,利益/損失をバランスするためにトレイルストップを設定します. 利益をロックしながらより多くの利益を得ます.

  5. トレンドを決定するためにMAを組み合わせ,トレンドなしの盲目的な長/短を避ける.

結論

結論として,これは強力なトレンドフォロー戦略です.トレンド方向を決定し,適切なリスク制御に高い精度を持っています. しかし,遅延は,すべてのロング/ショート信号から利益を得ることを不可能にします. したがって,経験豊富な量子トレーダーに適合し,独自の戦略と組み合わせることができます. 統計期間を最適化し,他の指標またはモデルを統合することで,効率的なトレンドフォロー戦略になることができます.


/*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)

もっと