モメンタムブレイクアウトGetString戦略


作成日: 2023-11-22 15:31:26 最終変更日: 2023-11-22 15:31:26
コピー: 0 クリック数: 590
1
フォロー
1617
フォロワー

モメンタムブレイクアウトGetString戦略

概要

この戦略は,移動平均,CCI指数,PSAR指数,ADX動向指数などの複数の指標を用い,比較的に典型的な突破策を実現している.市場が明確な多頭シグナルが出るときは多行し,明確な空頭シグナルが出るときは空行し,中短線操作に適している.

原則

この戦略の入学条件は以下の通りです.

  1. 移動平均の側面: 5日線に10日線,10日線に20日線,20日線に40日線を穿戴することを要求する.この方法で,偽突破の多くを効果的にフィルタリングすることができる.
  2. CCI指数方面:CCI指数が100時より小さいのは多頭入場シグナルで100時より大きいのは空頭入場シグナルである.
  3. PSAR点状方向指標の側面:PSAR点状指標の方向が価格区分トレンドの方向と一致することを要求する.
  4. ADXダイナミック指標の側面:ADXが20より大きいことを要求し,現在トレンド市場にあり,突破システムを使用するのに適しています.

試合の条件は,以下の指標を考慮した.

  1. 移動平均の側面:入場条件とは対照的に,第5日線の下の10日線を穿越すると,ポジション平仓の信号である.
  2. CCI指数,PSAR点状指数も入場条件の反対である.CCI指数が100以上であれば,多平仓である.

この戦略は,入場を厳しく,出場を緩やかにすることで,より高い利益率を得ることができます.

利点

これは典型的な多指標組合せの突破策で,以下の利点があります.

  1. 入場条件は厳格で,複数の指標のフィルタリングにより,偽侵入のリスクを減らすことができます.
  2. この指標のパラメータは最適化され,市場への適応性が良好である.
  3. 市場が揺れ動いている時に,トレンド判断の指標を活用して,市場が揺れ動いているときに,その指数に縛られずに済むようにする.
  4. 移動平均を用いて中短線の動きを決定し,比較的安定している.
  5. CCIは,短期的な超買いと超売りを捉えます.
  6. PSARの点状指標は,市場のトレンドの方向を判断する能力が強い.

リスク

この戦略には以下のリスクもあります.

  1. 極端な状況では,複数の指標の組み合わせが効果を減らし,リスクを完全にフィルターすることはできません.
  2. トレンドが大きい場合,中短期の指標の判断は時効を損なう可能性があり,トレンドを完全に捉えることはできません.
  3. CCIなどの局所指標のパラメータを正しく設定しないことは,見逃すチャンスを引き起こす可能性があります.
  4. PSARはトレンドの転換点ではあまり効果的ではない.

対策として

  1. 適当な条件の緩和により,リスクの軽減に代わって,より高いコストを支払うことができます.
  2. 60日またはそれ以上の移動平均など,より長い線段の指標判断を追加します.
  3. CCIなどのパラメータを動的に最適化します.
  4. ブルインラインなどの指標を組み合わせて判断する.

最適化の方向

この戦略には,以下の改善策があります.

  1. 機械学習アルゴリズムを追加し,パラメータをリアルタイムで最適化し,パラメータの自己適応性を向上させる.
  2. モデル・ポートフォリオの技術を増やし,非関連性の策略を組み合わせて,安定性を向上させる.
  3. ストップ・ストップ戦略のような風力制御の導入により,単一ストップを効果的に制御できます.
  4. 傾向判断モジュールを追加して,震を回避する.
  5. 指標の重みを最適化して,異なる市場環境で最適の指標が主導的な役割を果たす.

要約する

この戦略は,全体として典型的な,古典的な多指標突破策である.入場条件が厳格で,出場条件が緩やかであり,トレンド判断モジュールが含まれているという利点がある.しかし,一定のリスクも存在し,より複雑な市場環境に適応できるように継続的に最適化する必要がある.モデルポートフォリオとパラメータ最適化は,その発展方向である.

ストラテジーソースコード
/*backtest
start: 2023-11-14 00:00:00
end: 2023-11-21 00:00:00
period: 3m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title="Bukan Kaleng Kaleng Li", shorttitle="BKKL", overlay=true)

psarDot = sar(0.01, 0.01, 0.2)
up = change(high)
down = -change(low)
plusDM = na(up) ? na : (up > down and up > 0 ? up : 0)
minusDM = na(down) ? na : (down > up and down > 0 ? down : 0)
trur = rma(tr, 14)
plus = fixnan(100 * rma(plusDM, 14) / trur)
minus = fixnan(100 * rma(minusDM, 14) / trur)
sum = plus + minus
adx = 100 * rma(abs(plus - minus) / (sum == 0 ? 1 : sum), 14)

longConditionSMA4020 = sma(close, 40) > sma(close, 20)
longConditionSMA2010 = sma(close, 20) > sma(close, 10)
longConditionSMA105 = sma(close, 10) > sma(close, 5)
longConditionSMA = longConditionSMA4020 and longConditionSMA2010 and longConditionSMA105
longConditionCCI = cci(close, 20) < -100
longConditionPSAR = psarDot > close
longConditionDMI = plus < 10
adxCondition = adx > 20

longCondition = longConditionSMA and longConditionCCI and longConditionPSAR and longConditionDMI
if (longCondition and adxCondition)
    strategy.order("Long Signal", true)

shortConditionSMA4020 = sma(close, 40) < sma(close, 20)
shortConditionSMA2010 = sma(close, 20) < sma(close, 10)
shortConditionSMA105 = sma(close, 10) < sma(close, 5)
shortConditionSMA = shortConditionSMA4020 and shortConditionSMA2010 and shortConditionSMA105
shortConditionCCI = cci(close, 20) > 100
shortConditionPSAR = psarDot < close
shortConditionDMI = minus < 10

shortCondition = shortConditionSMA and shortConditionCCI and shortConditionPSAR and shortConditionDMI
if (shortCondition and adxCondition)
    strategy.order("Short Signal", false)