
三重指標衝突戦略 (Triple Indicator Collision Strategy) は,非常に古典的な量化取引戦略である.移動平均,MACD指標,RSI指標の3つの古典的な技術指標を組み合わせて,その3つが同時に買入または売却の信号が発生したときに,対応する取引操作を行う.
この戦略は20日EMA,MACD ([12,26,9]),14日RSIの3つの指標を同時に使用しています. 具体的な取引論理は以下の通りです.
価格が20日EMA,MACD線が信号線を穿過し,RSIが20日EMAを穿過するときは,多めにする.価格が20日EMA,MACD線が信号線を穿過し,RSIが20日EMAを穿過するときは,空きにする.
この方法では,3つの指標が同時に取引シグナルを発信し,偽のシグナルの一部をフィルタリングして,戦略をより安定して信頼できます.
この多指標衝突戦略には以下の利点があります.
雑音をフィルターし,偽信号を減らす.単一の指標は市場雑音に容易に影響され,大量に偽信号を生成する.三重指標は,効率的に騒音をフィルターし,信号をより信頼性のあるものにする.
トレンドの転換点を捕捉する.異なる指標は価格の変動に対して反応する時間が異なる.近期に同方向のシグナルが三つ出現すると,しばしばトレンドの逆転が示唆される.これは,戦略の転換点を捕捉する可能性を提供する.
多次元判断市場。3つの指標は,異なる次元から市場を判断し,互いに検証し,市場動向をより全面的に正確に判断することができる。
ポジションリスクを減らす.多指標フィルタリングは,無効取引の回数を減らす,無意味な資金回転を減らす,リスク管理に有利である.
この戦略にはいくつかのリスクがあります.
パラメータ最適化のリスク.移動平均の長さ,MACDのパラメータ,RSIのパラメータは,戦略のパフォーマンスを影響する可能性がある.不適切なパラメータの組み合わせは,戦略の不良状態を引き起こす可能性がある.したがって,パラメータの組み合わせを全面的にテストし,最適化して最適なパラメータを見つける必要があります.
取引機会を逃した. 三重指数戦略は比較的保守的で,一部の取引機会を逃す可能性があります. 主要なトレンドを捕まえることができなければ,戦略の収益に影響を与えます.
實盤滑点制御 實盤の取引コストと滑点も戦略に一定の影響を及ぼし,取引頻度を制御し,取引コストよりも大きな利益の余地を確保する必要があります.
この戦略は以下の点で最適化できます.
異なるパラメータの組み合わせをテストし,最適なパラメータを見つけます.移動平均の長さ,MACDパラメータ,RSIパラメータなどを変えることができ,反射で最適なパラメータの組み合わせを見つけます.
損失の増減メカニズム. 移動的損失を設定するか,単一の損失を有効に制御する.
他の指標のフィルタリング信号と組み合わせて.ブリン帯,KDJなどの指標も信号を検証して,偽信号をフィルタリングするために使用できます.
異なる品種,周期に応じてパラメータを調整する。パラメータは取引品種および周期に応じて調整・最適化することができる。
三重指標衝突戦略は,移動平均,MACDおよびRSIの3つの指標の信号を同時に利用して,多空の意思決定を行う.それは,ノイズ信号を効果的にフィルターし,潜在的なトレンドの転換点を識別し,信号の信頼性を向上させる.パラメータ最適化,ストップダスト設定,信号フィルタリングなどの手段によって,この戦略を継続的に改善して,その信号をより明確にし,収益をより信頼できるようにすることができる.
/*backtest
start: 2023-12-29 00:00:00
end: 2024-01-28 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © fangdingjun
//@version=4
strategy("MACD_RSI strategy", overlay=false)
_ema_len = input(20, title="EMA length")
_macd_fast = input(12, title="MACD Fast")
_macd_slow = input(26, title="MACD Slow")
_macd_signal_len = input(20, title="MACD Signal length")
_rsi_len = input(14, title="RSI length")
_rsi_signal_len = input(20, title="RSI signal length")
_ema = ema(close, _ema_len)
_macd = ema(close, _macd_fast) - ema(close, _macd_slow)
_macd_signal = ema(_macd, _macd_signal_len)
_rsi = rsi(close, _rsi_len)
_rsi_signal = ema(_rsi, _rsi_signal_len)
plot(_rsi, color=color.orange)
plot(_rsi_signal, color=color.purple)
longCondition = close > _ema and _macd > _macd_signal and _rsi > _rsi_signal
if (longCondition)
strategy.entry("Buy", strategy.long)
shortCondition = close < _ema and _macd < _macd_signal and _rsi < _rsi_signal
if (shortCondition)
strategy.entry("Sell", strategy.short)