ディナポリ・デトレンドオシレーター戦略


作成日: 2023-09-23 15:48:40 最終変更日: 2023-09-23 15:48:40
コピー: 2 クリック数: 725
1
フォロー
1617
フォロワー

概要

この戦略は,ダイナポリー (DiNapoli) のトレンドオシャラーによる取引信号判断を行う.この指標は,価格と移動平均の差値によって,価格の超買い超売り領域を反映して,反転の機会を識別する.この戦略は,特定の門檻を突破することで取引信号を与える.

戦略原則

この戦略は主に以下の要素から構成されています.

  1. 移動平均:一定の周期の平均線を計算し,価格の傾向を判断する.

  2. 差値指数: 価格を平均線の差値から引いて,振動指数を形成する.

  3. 門限線:差値指標が門限値を超えると取引シグナルを生成する.

  4. 差値の限界線を越える際にもっとする.

  5. 空き信号:差値の下の門限線を通過する際空きする.

  6. 逆行オプション:多/空の信号を逆行して取引信号として使うことができる.

この戦略は,価格とトレンドの間の逸脱を判断し,短期的な反転の機会を捉えるためのものです. 論理はシンプルで直感的です.

優位分析

この戦略は,他の反転戦略と比べて,以下の利点があります.

  1. 原則はシンプルで,直観的に理解しやすい. 実行の難しさは少ない.

  2. 微量パラメータ,回測最適化便利.

  3. 異なる周期に適用するためにパラメータを自分で調整できます.

  4. 逆のオプションが提供され,異なる市場に対して柔軟に利用できます.

  5. 危険を制御する明確な止損策

  6. 撤回は比較的小さいので,パラメータを調整することで曲線の振動を減らすことができます.

  7. 機械学習を導入してパラメータを最適化する.

  8. 概して,リスクと利益のバランスが良く,ショートライン取引に適しています.

リスク分析

しかし,この戦略には以下の主要なリスクがあります.

  1. パラメータ最適化に過度に依存し,過度に適合するリスクがある.

  2. 移動平均と指標は遅滞している.

  3. 価格以外の補助変数の検証がない.

  4. 市場環境の変化により,タイミングの効果が弱まる可能性があります.

  5. アルファは長期にわたって維持できないので,頻繁に調整する必要があります.

  6. 利回り率に注目し,曲線が太くならないようにしましょう.

  7. 取引の頻度が高く,取引コストに影響する.

  8. パラメータの多市場での安定性を検証する.

最適化の方向

分析の結果,この戦略の最適化方向は以下の通りです.

  1. 異なる均線パラメータの効果をテストする.

  2. 取引量指数への加入を検証する.

  3. リスク管理のための止損止めを設定する.

  4. 多種多周期性強さを評価する

  5. ローラー回転で再確認する.

  6. ポジション管理を調整し,取引頻度を下げる.

  7. 機械学習の導入により優れたパラメータが生成されます.

  8. 資金管理戦略を最適化する

  9. 市場変化に適応する戦略を継続的に展開する.

要約する

この戦略は,全体として,より単純な逆転戦略の考え方であり,パラメータ調整によって良い効果を得ることができる.しかし,いかなる戦略も,長期にわたって安定した収益を上げるために,過適合を防止する必要があります.これは,継続的に反測と最適化,より多くの次元から戦略の改善を必要とします.

ストラテジーソースコード
/*backtest
start: 2023-08-23 00:00:00
end: 2023-09-22 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version = 2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 05/12/2016
// DiNapoli Detrended Oscillator Strategy
// 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="DiNapoli Detrended Oscillator Strategy Backtest")
Length = input(14, minval=1)
Trigger = input(0)
reverse = input(true, title="Trade reverse")
hline(Trigger, color=gray, linestyle=line)
xSMA = sma(close, Length)
nRes = close - xSMA
pos = iff(nRes > Trigger, 1,
	   iff(nRes <= 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)	   	    
plot(nRes, color=blue, title="DiNapoli")
barcolor(possig == -1 ? red: possig == 1 ? green : blue )