
この戦略は,RSIとMACDの指標に基づいて,サポートと抵抗面の組み合わせで取引シグナル判断を行う.この戦略は,熊猫吐舌戦略と呼ばれる.この戦略は,RSIの指標を判断し,超売りを判断し,MACDの指標を判断し,多空のトレンドを判断し,100サイクル内の最高価格と最低価格を組み合わせて,サポートと抵抗の近くで買取シグナルを生成し,抵抗の近くで売り出しシグナルを生成する,一般的なトレンド追跡型の戦略に属します.
この戦略は主にRSIとMACDの2つの指標に基づいています.RSIは超買超売状態を判断し,MACDは空白のトレンド状態を判断します.まず,14サイクルRSI値を計算し,超買線を70で,超売線を30で指定します.それから,12日快線,26日遅線のMACD値を計算し,そして9日信号線.RSIが30を下回ると超売とみなされ,RSIが70を超えると超買とみなされます.
さらに,この戦略は,100サイクル間の最高価格と最低価格をサポートレジスタンスとして計算する. 購入シグナルが生じる時,価格がサポートレベルに近く,つまり,閉店価格がサポートレベルより1%以内に実際に購入を発行する. 販売シグナルが生じる時,閉店価格が抵抗レベルより1%以内に実際に販売を発行する.
この戦略は,トレンド分析と超買超売判断を組み合わせ,単一の指標のみに依存することで引き起こされる偽信号を回避する.同時に,支柱の抵抗点を波として導入することで,よくある支柱の抵抗位置の反転によって引き起こされる誤った取引を減らすことができる.MACD速走線は,RSI指標と組み合わせて,価格の動きと超買超売状態を比較的に正確に判断することができる.この戦略は,単純な移動平均線戦略と比較して,価格の長期的な傾向をより柔軟に捉えることができる.
この戦略には以下のリスクがあります.
戦略は,反転期が終わった後に入場する傾向があるため,強気な状況では,利益のほとんどを逃す可能性があります.
RSIとMACDのパラメータの不適切な設定は,取引信号のエラーを引き起こす可能性があります.
サポート抵抗検出アルゴリズムは単純で,実際のサポート抵抗位を過大評価または過小評価する可能性があります.
損失防止機構の欠如. 極端な状況では,損失を効果的に制御することができない.
これらのリスクに対して,適応MACDを導入し,RSIパラメータを異なる品種の特性に近いものに最適化し,サポート抵抗判断アルゴリズムの改善,市場モデリング判断の追加などの方法で最適化することができます.
この戦略は,以下の側面から最適化できます.
画布AMO指数と移動式止損を組み合わせるような止損メカニズムを導入する
MACDのパラメータをリアルタイムに最適化するために,自主的なMACDを使用する
市場分類判断を導入し,より科学的なサポートの抵抗点を決定する
より多くのデータを組み合わせて,市場の状況判断を確立し,異なる状態は異なるパラメータを使用します.
機械学習アルゴリズムによる戦略の端末最適化
これらの改善により,撤退をさらに減らし,戦略的安定性を高めることができます.
この戦略は,RSIとMACDの指標を総合的に使用して,超買い超売り状態を判断し,サポートとレジスタンス近くで取引を行う,トレンド追跡戦略の良い表現である.同時に,サポートとレジスタンス判断を組み合わせてリスクを減らす.この戦略の優点は,戦略の信号が安定し,リスクが制御可能であり,中長期にわたって保持するのに適している.しかし,指標パラメータ,サポートレジスタンス範囲などの一部のパラメータは,収益レベルを向上させるためにさらに最適化することができます.全体的に言えば,この戦略は,トレンドを追跡するのに良好なパフォーマンスを発揮し,実行し易く,リスクが制御可能な量化戦略である.
/*backtest
start: 2023-12-28 00:00:00
end: 2024-01-04 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("RSI + MACD with Support and Resistance", shorttitle="RSI_MACD_SR", overlay=true)
// Input for RSI and MACD values
rsiOverbought = input(70, title="RSI Overbought Threshold")
rsiOversold = input(30, title="RSI Oversold Threshold")
macdFastLength = input(12, title="MACD Fast Length")
macdSlowLength = input(26, title="MACD Slow Length")
macdSignalSmoothing = input(9, title="MACD Signal Smoothing")
// Calculating RSI and MACD
rsiValue = ta.rsi(close, 14)
[macdLine, signalLine, _] = ta.macd(close, macdFastLength, macdSlowLength, macdSignalSmoothing)
// Support and Resistance
support = ta.lowest(100)
resistance = ta.highest(100)
// Drawing support and resistance lines
// line.new(x1=bar_index[0], y1=support, x2=bar_index[-1], y2=support, color=color.green, width=1)
// line.new(x1=bar_index[0], y1=resistance, x2=bar_index[-1], y2=resistance, color=color.red, width=1)
// Buy Condition: If RSI is oversold and MACD line crosses above the signal line
// Additionally, check if price is near the support line
longCondition = ta.crossover(macdLine, signalLine) and rsiValue < rsiOversold and (close - support) < (close * 0.01)
strategy.entry("Long", strategy.long, when=longCondition, comment="Buy")
// Sell Condition: If RSI is overbought and MACD line crosses below the signal line
// Additionally, check if price is near the resistance line
shortCondition = ta.crossunder(macdLine, signalLine) and rsiValue > rsiOverbought and (resistance - close) < (close * 0.01)
strategy.entry("Short", strategy.short, when=shortCondition, comment="Sell")
// Plot values on the chart for visualization
plotshape(series=longCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="Buy")
plotshape(series=shortCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="Sell")