双方向オシレーターパターン戦略

作者: リン・ハーンチャオチャン,日付: 2023-11-14 14:12:16
タグ:

img

概要

デュアルトラックオシレーター・パターンの戦略は,ボリンジャー・バンドとEMA指標に基づいた定量的な取引戦略である.ボリンジャー・バンドとEMAをベースとしたオシレーター・パターンを特定することによって,短期的な価格変動を把握しようと試みる.

戦略の論理

この戦略は,技術指標としてボリンジャーバンドとEMAの両方を使用する.ボリンジャーバンドは,価格が振動しているかどうかを判断するための上部,中部,下部バンドを含んでいる. EMAは価格傾向を決定するためのトレンドフォローインジケーターである.

まず,ボリンジャーバンドの中間帯は,価格のn日間の単純な移動平均値として計算され,nが20日間にデフォルトします.上と下の帯は,中間帯プラス/マイナス2つの標準偏差です.その後,9日間のEMAが計算されます.

価格がEMAを超えると,それは購入信号である.価格がEMAを下回ると,それは販売信号である.したがって,EMAは高速移動平均として短期トレンドを捉え,中間帯はゆっくり移動平均としていくつかの偽信号をフィルターする.

EMAとボリンジャー帯の中間線の二重帯を追跡することで,この戦略は短期的な価格振動を把握することを目的としています.EMAが中間線を超えると購入し,EMAが中間線を下回ると販売します.

利点分析

双方向戦略には以下の利点があります

  1. EMAとボリンガー帯の 中間線二重軌跡を用いて,トレンドと振動の両方を判断し,短期価格変動をより正確に捉えることができます.

  2. EMAは高速MAと中帯は遅いMAで 偽信号を効果的にフィルタリングし 信号品質を向上させるため 協働します

  3. インディケーターパラメータは調節可能である. n値とボリンジャー帯の標準偏差は,より良い適応性のために市場状況に応じて調整することができる.

  4. 戦略の論理はシンプルで明確で 短期的な変動市場には非常に適しています

  5. パラメータを調整し,安定性をさらに向上させるために他のフィルターを組み込むことで最適化できます.

リスク分析

この戦略にはいくつかの潜在的なリスクもあります.

  1. ボリンジャー・バンド 上下帯はサポートとレジスタンスを容易に形成し 早期ストップロスを引き起こすことができます

  2. EMA と 中間帯が交差するときに 差異が発生し,誤った信号が生じる可能性があります.

  3. 強いトレンド市場では,EMAはW底とM上位を形成し,トレンドを見逃す可能性があります.

  4. 振動が弱まり,収益性を維持できないとき,取引信号は著しく減少します.

  5. パラメータの調整が不十分である場合,過剰取引や機会を逃す可能性があります.

  6. トランザクションコストは実際の利益を損なう ポジションサイズ管理が必要

オプティマイゼーションの方向性

戦略は以下の側面で最適化できます.

  1. 低品質のクロスオーバー信号をフィルタリングするために音量を追加します.

  2. RSIを組み合わせると,買い過ぎ/売り過ぎのレベルでの買い/売りを避ける.

  3. ATR を使って,より合理的なストップ・ロスを設定し,利益を得ます.

  4. トレンド市場の間違った信号を避けるために 傾向判断を追加します

  5. EMA期間の設定やボリンジャー帯の設定などのパラメータを最適化して 異なる市場環境に対応します

  6. 機械学習を使用して 安定性のためのパラメータを動的に最適化します

  7. 厳格な入出ルールで アルゴリズムの取引を導入して 人間の干渉を最小限に抑える

概要

ダブルトラックオシレーターパターンの戦略は,EMAとボリンジャーバンドの中央線のダブルバンドを使用して価格を追跡する.EMAが中間バンドを超えると購入し,EMAが中間バンドを下回ると売却し,短期的な価格振動を把握する.この簡単な短期戦略は,誤った信号をフィルターし,トレンドを判断する利点がありますが,いくつかのリスクもあります.パラメータ,エントリー/エグジットルールなどを継続的に最適化することで,より堅牢になり,より多くの市場環境に適用可能になり,学び,適用する価値のある戦略アプローチになります.


/*backtest
start: 2022-11-07 00:00:00
end: 2023-11-13 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(shorttitle="BBXEMA", title="Bollinger Bands Cross EMA", default_qty_type=strategy.percent_of_equity, default_qty_value=100, overlay=true)
length = input(20, minval=1)
lengthEMA = input(9)
src = input(close, title="Source")
srcEMA = input(close, title="Source EMA")
//mult = input(2.0, minval=0.001, maxval=50)

// === INPUT BACKTEST RANGE ===
FromYear  = input(defval = 2019, title = "From Year", minval = 2009)
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
ToYear    = input(defval = 9999, title = "To Year", minval = 2009)
ToMonth   = input(defval = 12, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 31, title = "To Day", minval = 1, maxval = 31)

// === FUNCTION EXAMPLE ===
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
window()  => true
basis = sma(src, length)
EMA = ema(srcEMA,lengthEMA)
//dev = mult * stdev(src, length)
//upper = basis + dev
//lower = basis - dev

Buy = crossover(EMA,basis)
Sell = crossunder(EMA,basis)

bb = plot(basis, color=color.red)
signal = plot(EMA, color=color.green)
//p1 = plot(upper, color=color.blue)
//p2 = plot(lower, color=color.blue)
//fill(p1, p2)

strategy.entry("Buy",true,when=window() and Buy)
strategy.close_all(when=window() and Sell)

もっと