マルチインジケータ複合取引戦略は,移動平均収束差 (MACD),相対強度指数 (RSI),コモディティチャネル指数 (CCI),ストコスタスティック相対強度指数 (StochRSI) の4つの主要指標を統合している.この4つの指標の信号を分析する複合取引戦略である.この戦略は,異なるタイムフレームの指標信号を判断することによって,市場エントリーと出口点をより正確に特定することができます.
この戦略は主に4つの指標に基づいて判断します.
MACD: 価格の動向とトレンドを判断するために,高速線と遅い移動平均線の違いを計算する.高速線がスローラインを超えると購入信号が生成される.
RSI: 期間中の価格変動の大きさを計算する. 70を超えるRSIは過買い状態と30未満の過売状態を示します.この戦略は70と30を
CCI: 移動平均値からの価格偏差を計算して価格の勢いを測定する.この戦略では100と-100を
StochRSI:ストーカスティクスとRSIを組み合わせます.ストーカスティックス%Kと%Dラインの間の黄金のクロスは購入を意味し,デッドクロスは売却を意味します.
この4つの指標が同時に基準を満たすときのみ,実際の買取・売却信号が生成される.
この多指標戦略の主要な利点は以下の通りです.
すべての指標が一致することを要求し,トップを追いかけるか,パニックで底を売り込むのを避けます.
異なる指標の視点を組み合わせることで,異なる次元を横切る主要な傾向を把握します.
パラメータの最適化スペースが大きく 各指標を最適化します
推移または平均逆転戦略に焦点を当てて,牛市場または熊市場に基づいて体重を調整することができます.
主なリスクは以下のとおりです.
インディケーターは同時に誤った信号を生成し,不正な取引を引き起こします.
価格はインディケーターの間で 偽信号を同時に送るのに 十分な勢いで動きます
インディケーターが順位を合わせると 買い合いが遅れる
多くのパラメータを最適化するのが難しい 過剰なフィットも可能だ
緩和にはパラメータ調節,ストップ損失,位置サイズ制御が含まれます.
改善の機会:
KD,ボリンジャーバンドなどの指標を組み合わせてテストして 最適なポートフォリオを見つけます
マシン学習によって 性能を最適化します
異なるストックや部門のパラメータを調整します.
ストップ・ロスのメカニズムを戦略コードに追加します 例えば価格がサポートを突破したときのセールスです
ポートフォリオリターンを向上させるため 部門内での強い業績を持つ株を選びます
この戦略は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)