この戦略は"Detrended Price Oscillator Quantitative Trading Strategy"と呼ばれる.これは典型的な技術指標戦略である"Detrended Price Oscillator"指標に基づいて取引信号を生成する.
この戦略の核心は,デトレンデッド価格オシレーター (DPO) インジケーターである.DPOは移動平均値に類似しており,周期的な変動をより顕著にするため,価格の長期的傾向をフィルタリングすることができる.具体的には,DPOは価格をN日間の単純な移動平均値と比較する.価格が移動平均値以上になると,DPOは正である.価格が移動平均値以下になると,DPOは負である.その結果,オシレーターは0軸の周りに変動する.我々は傾向との関係で価格の上昇/下落を判断するためにDPOの正/負を使用することができます.
この戦略では,パラメータNを14に設定し,14日間のDPO指標を構築する.DPOが正であれば,長い信号が発信される.DPOが負であれば,短い信号が発信される.
リスクを軽減するために,最適化は以下の側面から検討できます.
単一の損失を制御するストップ損失メカニズムを追加します.
パラメータNの値を調整して最適なパラメータを見つけます.
トレンドインジケーターを組み込み,重要なトレンドに対して取引を避ける.
この戦略は,Detrended Price Oscillator指標に基づいて取引信号を生成する.移動平均値と比較することで,この指標は価格の周期的な特徴をより顕著にするために,価格の長期的傾向をフィルタリングする.これは,いくつかの隠された取引機会を発見するのに役立ちます.同時に,パラメータの感度,フィルタリングなどの問題にも直面しています.継続的な最適化を通じて有効性の向上にはまだ大きな余地があります.
/*backtest start: 2023-11-16 00:00:00 end: 2023-11-20 08:00:00 period: 30m basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 31/03/2017 // The Detrend Price Osc indicator is similar to a moving average, // in that it filters out trends in prices to more easily identify // cycles. The indicator is an attempt to define cycles in a trend // by drawing a moving average as a horizontal straight line and // placing prices along the line according to their relation to a // moving average. It provides a means of identifying underlying // cycles not apparent when the moving average is viewed within a // price chart. Cycles of a longer duration than the Length (number // of bars used to calculate the Detrend Price Osc) are effectively // filtered or removed by the oscillator. // // 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="Detrended Price Oscillator", shorttitle="DPO") Length = input(14, minval=1) Series = input(title="Price", defval="close") reverse = input(false, title="Trade reverse") hline(0, color=green, linestyle=line) xPrice = close xsma = sma(xPrice, Length) nRes = xPrice - xsma pos = iff(nRes > 0, 1, iff(nRes < 0, -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(nRes, color=red, title="Detrended Price Oscillator")