デュアルバンドパスフィルタ戦略は,2010年にBroderがStocks & Commodities誌に発表した戦略から改訂されたもので,Broder
この戦略の主要なステップは次のとおりです.
バンドパス長を含むパラメータを初期化するLength
変動係数Delta
ショートゾーンの限界値SellZone
長期ゾーン上限BuyZone
.
ブロダーバンドパスフィルターを計算するBP
trigonometric関数を使って
位置方向を決定する:BP
上にあるSellZone
低くなれば長くなってBuyZone
; そうでなければ,現在の位置を維持します.
出力信号:位置方向に基づいて長/短信号を生成する.
信号結果に基づいてバーの色を設定します.
バンドパスフィルター曲線をグラフ化します
この戦略は,ブロダーバンドパスフィルターを使用して短期変動を捕捉し,変動が特定の大きさに達するとトレンドに従う取引信号を生成します.
短期的な動向を把握できるブロダー・バンドパスフィルターに基づく市場の変動に敏感です
センシビリティはパラメータ調整によって調整され,異なる市場環境に対応できます.
シンプルで明快な戦略論理 分かりやすく実行できます
パラメータを最適化して 最適な組み合わせを見つけることができます
視覚的帯域フィルター曲線は直感的に市場の変動を示します
過剰に最適化された帯域パスのフィルターは過度に敏感になり,誤った信号を生成する可能性があります.
波動の終点を特定できず 損失が増える可能性があります
高い取引頻度はコストと滑りリスクを増やす可能性があります.
ブラック・スワン事件に脆弱で 誤った信号を誘発します
パラメータは異なる製品や市場に合わせて調整する必要があります.
ストップ・ロスを取引ごとにコントロール・ロストに設定することを検討する.
退出時間を延長したり 偽信号を減らすためにフィルターを追加したり
最良の組み合わせを見つけるためにパラメータを最適化し 勝率,利益率,シャープ比率などを評価します
移動平均のクロスや価格パターンのようなフィルターを追加して,トレンドではない領域での取引を避けるのです.
リスクの多様化のために,バスケ取引のための複数のインstrumentのパラメータを組み合わせることを検討する.
ダイナミックストップやトライリングストップのような 取引ごとに損失を制御するストップ・ロジックを追加します
利益をロックするために移動利益ストップのような利益を取りを追加します.異なるトレンド段階のために異なるレベルを設定できます.
エントリー・シグナルを最適化して,変動市場での誤ったシグナルを避ける.より長い保持期間やブレイクアウト・シグナルを検討する.
クロス・アセット・アービタージ・システムに拡大し,価格差をヘッジに利用する.
バックテストの最適化により 最適な資産選択と再バランス戦略が実現できます
デュアルバンドパスフィルター戦略は,ブロダー
/*backtest start: 2022-10-17 00:00:00 end: 2023-10-23 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 18/09/2018 // The related article is copyrighted material from // Stocks & Commodities Mar 2010 // You can use in the xPrice any series: Open, High, Low, Close, HL2, HLC3, OHLC4 and ect... // // You can change long to short in the Input Settings // WARNING: // - For purpose educate only // - This script to change bars colors. //////////////////////////////////////////////////////////// strategy(title="Bandpass Filter Strategy ver 2.0") Length = input(20, minval=1) Delta = input(0.5) SellZone = input(5, step = 0.01) BuyZone = input(-5, step = 0.01) reverse = input(false, title="Trade reverse") hline(BuyZone, color=green, linestyle=line) hline(SellZone, color=red, linestyle=line) xPrice = hl2 hline(0, color=blue, linestyle=line) beta = cos(3.14 * (360 / Length) / 180) gamma = 1 / cos(3.14 * (720 * Delta / Length) / 180) alpha = gamma - sqrt(gamma * gamma - 1) BP = 0.5 * (1 - alpha) * (xPrice - xPrice[2]) + beta * (1 + alpha) * nz(BP[1]) - alpha * nz(BP[2]) pos = iff(BP > SellZone, 1, iff(BP <= BuyZone, -1, nz(pos[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) barcolor(possig == -1 ? red: possig == 1 ? green : blue ) plot(BP, color=red, title="Bandpass Filter Strategy")