バンドパスフィルタリングトレンド抽出戦略 (Bandpass Filtering Trend Extraction Strategy) は,バンドパスフィルタをベースにした株のトレンド追跡戦略である.これは指数的な重度の移動平均値とバンドパスフィルタリングを使用して価格シリーズを処理し,エントリーと出口の信号として価格のトレンドコンポーネントを抽出する.
この戦略は,まず移動平均の長さとスムーズさを制御するために長さとデルタパラメータを調整することによって,二重指数移動平均を構成する.その後,数学的変換のセットを使用して,価格シリーズからトレンドコンポーネントを抽出し,xBandpassFilter変数に保存する.最後に,エントリーと出口の指標としてxBandpassFilterの単純な移動平均,xMeanを計算する.
xMeanがTriggerレベルを超えると長くなって,Triggerレベルを下回ると短くなってしまいます.Triggerレベルを調節することで入力と出口の感度が制御できます.
短縮した長さは遅延問題を改善します 調節トリガーは感度を制御します
この戦略は,強いトレンド市場での良好なパフォーマンスで比較的安定している.複数の市場環境でのさらなる最適化により,より信頼性のある収益性を得ることができる.さらなる研究と適用を保証する.
/*backtest start: 2022-12-27 00:00:00 end: 2024-01-02 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version = 2 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 14/12/2016 // 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 // Please, use it only for learning or paper trading. Do not for real trading. //////////////////////////////////////////////////////////// strategy(title="Extracting The Trend Strategy Backtest") Length = input(20, minval=1) Delta = input(0.5) Trigger = input(0) reverse = input(false, title="Trade reverse") hline(Trigger, color=blue, linestyle=line) xPrice = hl2 beta = cos(3.1415 * (360 / Length) / 180) gamma = 1 / cos(3.1415 * (720 * Delta / Length) / 180) alpha = gamma - sqrt(gamma * gamma - 1) xBandpassFilter = 0.5 * (1 - alpha) * (xPrice - xPrice[2]) + beta * (1 + alpha) * nz(xBandpassFilter[1]) - alpha * nz(xBandpassFilter[2]) xMean = sma(xBandpassFilter, 2 * Length) pos = iff(xMean > Trigger, 1, iff(xMean < Trigger, -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(xMean, color=red, title="ExTrend")