この戦略は,移動平均値,CCI指標,PSAR指標およびADXトレンドインデックスを組み合わせて,典型的な突破戦略を実装する.明瞭な上昇信号がある場合,長行し,明瞭な下落信号がある場合,短行する.これは中期および短期間の取引に非常に適しています.
戦略の導入条件には,次の側面が含まれます.
移動平均線: 5日間の線が 10日間の線を突破し, 10日間の線が 20日間の線を突破し, 20日間の線が 40日間の線を突破し,ほとんどの偽の突破を効果的にフィルタリングすることができます.
CCI インディケーター:長信号では -100未満,短信号では -100以上であるCCI インディケーターが必要です.
PSAR指標:PSAR指標の方向性が価格によって決定されたトレンド方向と一致することを要求する.
ADX指標: ADXが20以上である場合,市場が現在トレンド状態にあることを示し,突破型システムを使用するのに適しています.
同時に,離脱条件は複数の指標も考慮します.
移動平均:入場条件の逆である.例えば,5日線が10日線を分解することは,ポジションの閉じる信号である.
CCIとPSARの指標は入場条件とは反対の意味を持つ.例えば,CCIが100を超えると,ロングポジションを閉じる信号となる.
この戦略は比較的高い収益率を得ることができます この戦略は比較的高い収益率を得ることができます
この典型的な多指標の組み合わせた突破戦略には以下の利点があります
厳格な入国条件では フィルタリングのための複数の指標が採用され 誤った発見のリスクを減らすことができます
指標のパラメータは,市場への適応性を確保するために最適化されています.
トレンド判断指標は,ショック市場に囚われないために採用されています.
移動平均値は,中期および短期間の傾向を安定的に決定するために使用されます.
CCI指標は,短期間の過剰購入と過剰売却現象を把握できる.
PSAR指標は市場の動向の方向性を決定する強力な能力を持っています.
この戦略には次のリスクもあります
極端な市場では,複数の指標の組み合わせによる影響が損なわれ,リスクは完全にフィルタリングできない.
傾向が大きい場合 タイミングを判断するために 中期・短期指標を使うことは失敗し 傾向を完全に把握することはできません
CCIのような局所指標のパラメータ設定が不適切であれば 機会が失われる可能性があります
傾向の転換点では PSAR インディケーターの効果は低い.
対策:
適正に入国条件を緩和し リスクの低さに対して 高いコストを支払う
60日またはそれ以上移動平均値などの長期指標に対する判断を高めます
CCIのようなパラメータを動的に最適化します
ボリンジャー・バンドなどの傾向を判断するためにより多くの指標を組み合わせます
戦略には,以下のような最適化方向性があります.
リアルタイムパラメータ最適化を実現し,適応性を向上させるための機械学習アルゴリズムを増やす.
モデル組み合わせの技術を増やし 安定性を高めるために より多くの非関連戦略を組み合わせます
ストップ損失戦略などのリスク管理メカニズムを導入し,単一のストップ損失を効果的に制御する.
トレンド判断モジュールを増やして ショック市場に入らないようにする
インディケーターの質を最適化して,最適なインディケーターが異なる市場環境で主導的な役割を果たすようにする.
一般的には,この戦略は典型的なクラシックなマルチインジケータ突破戦略である.その利点は厳格なエントリー条件,緩やかな退出条件,そしてトレンド判断モジュールも含んでいる.しかし,いくつかのリスクも伴う.より複雑な市場環境に適応するために継続的な最適化が必要です.モデル組み合わせとパラメータ最適化は開発方向です.
/*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)