ダブル・トップス・スマート・ブレイクアウト戦略は,123反転戦略とピボット検出器振動器戦略を併用した組み合わせ戦略である. 主に潜在的なトレンド逆転点を特定するためにダブル・トップパターンを利用し,重要な技術レベルでのトレンド逆転を捕捉するために,ピボット検出器指標を使用して偽のブレイクアウトをフィルタリングする.
戦略は2つの部分からなる.
123 逆転戦略
123の逆転戦略は,ウルフ・ジェンセンによる"フューチャー市場での私のお金の倍増"という本 (183ページ) から由来する.これは反トレンド逆転戦略である.
論理はこうです 閉店価格が前回の閉店価格より 2 日連続で高く,9 日間のストーカスティック・スローラインが 50 未満の場合はロング; 閉店価格が前回の閉店価格より 2 日連続で低く,9 日間のストーカスティック・ファストラインが 50 以上の場合はショート.
ピボット検出器オシレーター戦略
ピボット探知器振動器戦略は,ジョルゴス・E・シリガルドスによって提案された.関連する記事は2009年9月号のストック&コモディティズ誌に掲載された.
この戦略は,価格が上位または下位帯に近づくときに振動を測定するために移動平均値とRSI指標の組み合わせを使用します. 具体的な計算式は以下のとおりです.
When price > moving average:
Indicator value = (RSI value - 35) / (85 - 35)
When price <= moving average:
Indicator value = (RSI value - 20) / (70 - 20)
If indicator value > 50, go long
If indicator value < 50, go short
この2つの戦略を組み合わせると,ダブルトップパターンが出現すると,同じ方向に信号を出せば,ブレイクアウトオペレーションが実行されます.これは,統合範囲内の偽ブレイクを回避しながら,重要な技術レベルでの新しいトレンドを把握することができます.
リスク管理と最適化
戦略は以下の側面で最適化できます.
最適なパラメータ組み合わせを見つけるために異なる移動平均系をテストする
誤った信号を減らすために RSI パラメータを最適化
正確なブレイクアウトを保証するためにボリュームフィルターを追加
傾向を決定する指標を組み込み,反傾向の破裂を避ける
自動パラメータ調整のために機械学習を使用する
リスク管理のためにストップ・ロスの戦略を追加する
脱出の持続可能性を評価し,利益目標を設定する
パラメータ調整のために異なる製品特性を分析する
パラメータの最適化,ブレイクアウト効果の評価,ストップ損失戦略の調整などを通じて,戦略はさまざまな市場環境で安定した利益を得るために継続的に改善することができます.
ダブルトップススマートブレークアウト戦略は,重要な技術レベルでの潜在的なトレンド逆転点を捕捉するために,逆転パターンと指標確認メカニズムを組み合わせます.純粋にブレークアウトを追いかける場合と比較して,実行タイミングはより正確で,範囲の市場でのウィップソウを避けます.一方,戦略はリスク管理を強調し,ストップロスのメカニズムで使用する必要があります.パラメータ最適化と技術指標を組み合わせることで,安定したブレークアウト信号を取得してブレークを捕捉し,トレンド逆転点で大きな利益を得ることができます.要約すると,戦略は正確なタイミング選択と健全なリスク管理を持っています.熟練度があれば,取引パフォーマンスを達成することができます.
/*backtest start: 2023-09-30 00:00:00 end: 2023-10-03 00:00:00 period: 45m basePeriod: 5m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 20/04/2021 // This is combo strategies for get a cumulative signal. // // First strategy // This System was created from the Book "How I Tripled My Money In The // Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies. // The strategy buys at market, if close price is higher than the previous close // during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50. // The strategy sells at market, if close price is lower than the previous close price // during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50. // // Second strategy // The Pivot Detector Oscillator, by Giorgos E. Siligardos // The related article is copyrighted material from Stocks & Commodities 2009 Sep // // WARNING: // - For purpose educate only // - This script to change bars colors. //////////////////////////////////////////////////////////// Reversal123(Length, KSmoothing, DLength, Level) => vFast = sma(stoch(close, high, low, Length), KSmoothing) vSlow = sma(vFast, DLength) pos = 0.0 pos := iff(close[2] < close[1] and close > close[1] and vFast < vSlow and vFast > Level, 1, iff(close[2] > close[1] and close < close[1] and vFast > vSlow and vFast < Level, -1, nz(pos[1], 0))) pos PDO(Length_MA,Length_RSI,UpBand,DownBand,MidlleBand) => pos = 0.0 xMA = sma(close, Length_MA) xRSI = rsi(close, Length_RSI) nRes = iff(close > xMA, (xRSI - 35) / (85-35), iff(close <= xMA, (xRSI - 20) / (70 - 20), 0)) pos:= iff(nRes * 100 > 50, 1, iff(nRes * 100 < 50, -1, nz(pos[1], 0))) pos strategy(title="Combo Backtest 123 Reversal & Pivot Detector Oscillator)", shorttitle="Combo", overlay = true) line1 = input(true, "---- 123 Reversal ----") Length = input(14, minval=1) KSmoothing = input(1, minval=1) DLength = input(3, minval=1) Level = input(50, minval=1) //------------------------- line2 = input(true, "---- Pivot Detector Oscillator ----") Length_MA = input(200, minval=1) Length_RSI = input(14, minval=1) UpBand = input(100, minval=1) DownBand = input(0) MidlleBand = input(50) reverse = input(false, title="Trade reverse") posReversal123 = Reversal123(Length, KSmoothing, DLength, Level) posPDO = PDO(Length_MA,Length_RSI,UpBand,DownBand,MidlleBand) pos = iff(posReversal123 == 1 and posPDO == 1 , 1, iff(posReversal123 == -1 and posPDO == -1, -1, 0)) possig = iff(reverse and pos == 1, -1, iff(reverse and pos == -1 , 1, pos)) if (possig == 1 ) strategy.entry("Long", strategy.long) if (possig == -1 ) strategy.entry("Short", strategy.short) if (possig == 0) strategy.close_all() barcolor(possig == -1 ? #b50404: possig == 1 ? #079605 : #0536b3 )