多指標複合取引戦略

作者: リン・ハーンチャオチャン開催日: 2024-01-29 10:06:25
タグ:

img

概要

マルチインジケータ複合取引戦略は,移動平均収束差 (MACD),相対強度指数 (RSI),コモディティチャネル指数 (CCI),ストコスタスティック相対強度指数 (StochRSI) の4つの主要指標を統合している.この4つの指標の信号を分析する複合取引戦略である.この戦略は,異なるタイムフレームの指標信号を判断することによって,市場エントリーと出口点をより正確に特定することができます.

戦略の論理

この戦略は主に4つの指標に基づいて判断します.

  1. MACD: 価格の動向とトレンドを判断するために,高速線と遅い移動平均線の違いを計算する.高速線がスローラインを超えると購入信号が生成される.

  2. RSI: 期間中の価格変動の大きさを計算する. 70を超えるRSIは過買い状態と30未満の過売状態を示します.この戦略は70と30を値として使用します.

  3. CCI: 移動平均値からの価格偏差を計算して価格の勢いを測定する.この戦略では100と-100を値として使用する.

  4. StochRSI:ストーカスティクスとRSIを組み合わせます.ストーカスティックス%Kと%Dラインの間の黄金のクロスは購入を意味し,デッドクロスは売却を意味します.

この4つの指標が同時に基準を満たすときのみ,実際の買取・売却信号が生成される.

利点

この多指標戦略の主要な利点は以下の通りです.

  1. すべての指標が一致することを要求し,トップを追いかけるか,パニックで底を売り込むのを避けます.

  2. 異なる指標の視点を組み合わせることで,異なる次元を横切る主要な傾向を把握します.

  3. パラメータの最適化スペースが大きく 各指標を最適化します

  4. 推移または平均逆転戦略に焦点を当てて,牛市場または熊市場に基づいて体重を調整することができます.

リスク

主なリスクは以下のとおりです.

  1. インディケーターは同時に誤った信号を生成し,不正な取引を引き起こします.

  2. 価格はインディケーターの間で 偽信号を同時に送るのに 十分な勢いで動きます

  3. インディケーターが順位を合わせると 買い合いが遅れる

  4. 多くのパラメータを最適化するのが難しい 過剰なフィットも可能だ

緩和にはパラメータ調節,ストップ損失,位置サイズ制御が含まれます.

増進 の 機会

改善の機会:

  1. KD,ボリンジャーバンドなどの指標を組み合わせてテストして 最適なポートフォリオを見つけます

  2. マシン学習によって 性能を最適化します

  3. 異なるストックや部門のパラメータを調整します.

  4. ストップ・ロスのメカニズムを戦略コードに追加します 例えば価格がサポートを突破したときのセールスです

  5. ポートフォリオリターンを向上させるため 部門内での強い業績を持つ株を選びます

結論

この戦略は4つの主要指標 (MACD,RSI,CCI,StockRSI) のシグナルを統合している.マルチタイムフレーム分析に基づく厳格なエントリーと出口基準を設定することで,市場のターニングポイントを効果的に特定することができる.パラメータ最適化,株式宇宙の更新,ストップを追加などの改良によりパフォーマンスをさらに向上させることができる.全体として効果的な定量的な取引戦略である.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("MACD RSI CCI StochRSI Strategy", shorttitle="MRCSS", overlay=true)

// MACD göstergesi
fastLength = input(12, title="Fast Length")
slowLength = input(26, title="Slow Length")
signalLength = input(9, title="Signal Length")
[macdLine, signalLine, _] = macd(close, fastLength, slowLength, signalLength)

// RSI göstergesi
rsiLength = input(14, title="RSI Length")
rsiLevel = input(70, title="RSI Overbought Level")
rsiValue = rsi(close, rsiLength)

// CCI göstergesi
cciLength = input(8, title="CCI Length")
cciLevel = input(100, title="CCI Overbought Level")
cciValue = cci(close, cciLength)

// Stochastic Oscillator göstergesi
stochLength = input(14, title="Stoch Length")
stochK = input(3, title="Stoch K")
stochD = input(3, title="Stoch D")
stochValue = stoch(close, high, low, stochLength)
stochDValue = sma(stochValue, stochD)

// Alış ve Satış Sinyalleri
buySignal = crossover(macdLine, signalLine) and rsiValue < rsiLevel and cciValue < cciLevel and stochValue > stochDValue
sellSignal = crossunder(macdLine, signalLine) and rsiValue > (100 - rsiLevel) and cciValue > (100 - cciLevel) and stochValue < stochDValue

// Ticaret stratejisi uygula
strategy.entry("Buy", strategy.long, when = buySignal)
strategy.close("Buy", when = sellSignal)
strategy.entry("Sell", strategy.short, when = sellSignal)
strategy.close("Sell", when = buySignal)

// Göstergeleri çiz
hline(rsiLevel, "RSI Overbought", color=color.red)
hline(100 - rsiLevel, "RSI Oversold", color=color.green)
hline(cciLevel, "CCI Overbought", color=color.red)
hline(100 - cciLevel, "CCI Oversold", color=color.green)

// Grafik üzerinde sinyal okları çiz
plotshape(series=buySignal, title="Buy Signal", color=color.green, style=shape.triangleup, location=location.belowbar, size=size.small)
plotshape(series=sellSignal, title="Sell Signal", color=color.red, style=shape.triangledown, location=location.abovebar, size=size.small)


もっと