
マルチ指標融合取引戦略は,移動平均の平均線交差,相対的に強い指標,商品経路指標およびランダム指数平滑移動平均の四大指標分析を統合した複合取引戦略である.この戦略は,異なる時間周期上のトレンド指標信号を判断することにより,市場での買賣点をより正確に判断する機能を実現する.
この戦略は主に4つの指標に基づいて判断されます.
MACD: 速動平均と遅動平均の差値を計算し,価格運動の傾向と動力を判断する. 速線が遅線を横切るときに買い信号である.
RSI:一期間にわたる株価の落下幅を計算する. RSIが70以上なら超買い,30未満なら超売りである. この戦略は70と30を買い売り基準として用いる.
CCI: 価格の動きを,移動平均から価格の偏差の割合を計算して測定する.この戦略は,100と-100を買い売り基準として使用する.
StochRSI:ランダム指数指標とRSI指標を組み合わせる. K線とD線の金交差は買入シグナルで,死交差は売却シグナルである.
この戦略は,上記の4つの条件が同時に満たされると,実際の買入と売却のシグナルを生成する.
この多指標融合戦略の最大の利点は,市場内の複数の次元を組み合わせて,買賣点を判断できることです.具体的には,主に以下のいくつかの利点があります.
偽信号をフィルタリングして,高位で追尾落を避ける.指標が同時に信号を発する確率は小さいので,いくつかの偽信号をフィルタリングすることができる.
市場の主なトレンドを把握できる.異なる指標によって市場を判断する角度が異なるため,市場トレンドを比較して全体的に判断できる.
戦略パラメータの最適化スペースは大きい. 各指標のパラメータを調整することで,戦略の効果を最適化することができる.
市場に応じて重量を調整できます.牛市ではトレンド型指標の重量を上げることができ,熊市では逆転指標の重量を上げることができます.
この戦略には以下のリスクがあります.
指数が誤信号を発するリスク.複数の指数が同時に誤信号を発すると,この戦略は誤取引を生じます.
株式価格の急激な変動のリスク. 市場が異常な波動を起こしたとき,複数の指標が同時に誤った信号を発する可能性があります.
購入信号の遅延のリスク。複数の指標を総合判断すると,購入信号の発送に一定の遅延がある。
パラメータ最適化の難しさのリスク。多指標組合の最適化パラメータはより複雑であり,不適切な最適化は反作用を引き起こす可能性がある。
対策は,指標パラメータを調整し,ストップを設定し,単一の投資額を減らすことでリスクを制御する.
この戦略は,次のいくつかの側面からさらに最適化できます.
KD,BOLLなどの他の指標をテストできます.
各指標のパラメータを最適化して,全体的な戦略の効果を最適化します.機械学習などの方法を使用して自動的に最適化できます.
異なる株や業界に異なるパラメータセット.
戦略にストップ・メカニズムを加える.価格がサポート値を突破すると自動的にストップする.
株池を更新し,部門内の優れたパフォーマンスを示す個人を選択する.株池の調整は,全体的な収益を向上させることができる.
この戦略は,MACD,RSI,CCIおよびStochRSIの4つのクラシック指標を統合し,複数の時間次元上の信号を判断し,厳格な買入販売基準を設定し,市場での買入販売点を効果的に識別できます. この戦略は,利益の確率を効果的に高め,停止の確率を減らすことができます.パラメータの最適化,株式池の更新,停止などの方法で戦略の効果をさらに改善し,非常に効果的な量化取引戦略の1つです.
/*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)