資源の読み込みに... 荷物...

短期的定量的な取引戦略 双動平均クロスオーバー,RSI,ストカスティック指標に基づく

作者: リン・ハーンチャオチャン開催日:2024年6月17日15時35分40秒
タグ:SMARSIATR

img

概要

この戦略は,複数の技術指標の共同確認を通じて,短期取引における高確率取引機会を探すために,二重移動平均クロスオーバー,RSI,ストーカスティック指標を組み合わせます.この戦略は,20日間および50日間の移動平均値のクロスオーバーを主な取引信号として使用し,RSIとストーカスティック指標を補助判断として組み込み,取引信号をダブルチェックします.また,戦略は,STOP-LOSSとTAKE-PROFITの基礎としてATRを使用し,固定リスク・リターン比率を持つポジションを管理し,リスクを制御しながら安定したリターンを得ることを目指しています.

戦略の原則

  1. 20日間と50日間の移動平均を計算します.短期平均が長期平均を上回ると,それは長い信号を生成します.逆に,それは短い信号を生成します.
  2. RSI インディケーターを補助判断として導入し,RSI インディケーターが過買いまたは過売り範囲に達していない場合にのみポジションを確立することを検討する.
  3. ストキャスト指標を補助判断として導入し,ストキャスト指標のK線が過剰購入または過剰販売範囲に達していない場合にのみポジションを確立することを検討する.
  4. ATRを使用して,ストップ・ロースとテイク・プロフィートのレベルを計算し,ストップ・ロースとテイク・プロフィートの価格を1:2のリスク・リターン比で設定します.
  5. ロングに行くとき,ストップ・ロスのレベルは最低価格マイナスATRで,テイク・プロフィートのレベルは最高価格プラス2倍ATRで,ショートに行くとき,ストップ・ロスのレベルは最高価格プラスATRで,テイク・プロフィートのレベルは最低価格マイナス2倍ATRです

戦略 の 利点

  1. 二重移動平均クロスオーバーはシンプルで使いやすいトレンド判断指標で,RSIとストカストティック指標と組み合わせることで,誤った信号を効果的にフィルタリングすることができます.
  2. RSIとストカストティック指標は,極端な市場状況でポジションに入らないようにして,市場が過買いまたは過売状態にあるかどうかを判断するのに役立ちます.
  3. 固定リスク/リターン比を持つポジション管理方法は,全体的なリスクを制御するという前提で,比較的安定したリターンを得ることができる.
  4. パラメータは調整可能で,異なる市場環境や取引スタイルに適しています.

戦略リスク

  1. トレンドフォロー戦略は不安定な市場でより多くの誤った信号を生む傾向があり,頻繁に取引や資本損失につながる.
  2. 固定比率ストップ損失は,過剰な単一の損失を招き,株式曲線を弱体化させる可能性があります.
  3. ポジション管理や資本管理の配慮が不足しているため,極端な市場状況に対処することは困難です.

戦略の最適化方向

  1. 信号の精度と信頼性を向上させるため,より効果的な技術指標を導入する.
  2. ストップ・ロストとテイク・プロフィートの設定方法を最適化し,戦略の収益性を高めるため,よりダイナミックでスマートな方法を採用する.
  3. ポジション管理の観点から,ポジションの動的調整は,ATRなどの変動指標と連携して行えます.
  4. 資本管理の観点から,リスク予算化やケリー式などの方法が導入され,資本利用効率を向上させることができます.

概要

この戦略は,二重移動平均値,RSI,ストーカスティック指標に基づく短期取引戦略である.複数の技術指標の共同確認を通じてトレンド機会を把握しながら,取引リスクを制御する.戦略論理は明確で,パラメータは最適化が容易で,短期取引に従事する投資家に適している.しかし,戦略には,トレンド把握能力が限られ,ポジションと資本のダイナミックな管理が欠如するなどのいくつかの欠点もある.これらの問題は,より多くの技術指標,シグナル最適化,ポジション管理などを導入することで改善することができる.


/*backtest
start: 2024-05-17 00:00:00
end: 2024-06-16 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Cruce de Medias con Filtros de RSI y Estocástico", overlay=true)

// Definir parámetros de las medias móviles
fast_length = input(20, title="Periodo de Media Rápida")
slow_length = input(50, title="Periodo de Media Lenta")

// Calcular medias móviles
fast_ma = ta.sma(close, fast_length)
slow_ma = ta.sma(close, slow_length)

// Añadir filtro RSI
rsi_length = input(7, title="Periodo del RSI")
rsi = ta.rsi(close, rsi_length)
rsi_overbought = input(70, title="RSI Sobrecomprado")
rsi_oversold = input(30, title="RSI Sobrevendido")

// Añadir filtro Estocástico
k_period = input(7, title="K Periodo del Estocástico")
d_period = input(3, title="D Periodo del Estocástico")
smooth_k = input(3, title="Suavización del Estocástico")
stoch_k = ta.sma(ta.stoch(close, high, low, k_period), smooth_k)
stoch_d = ta.sma(stoch_k, d_period)
stoch_overbought = input(80, title="Estocástico Sobrecomprado")
stoch_oversold = input(20, title="Estocástico Sobrevendido")

// Definir niveles de stop-loss y take-profit con ratio 2:1
risk = input(1, title="Riesgo en ATR")
reward_ratio = input(2, title="Ratio Riesgo/Beneficio")
atr_length = input(14, title="Periodo del ATR")
atr = ta.atr(atr_length)
stop_loss = risk * atr
take_profit = reward_ratio * stop_loss

// Señal de compra
long_condition = ta.crossover(fast_ma, slow_ma) and rsi < rsi_overbought and stoch_k < stoch_overbought
if (long_condition)
    strategy.entry("Compra", strategy.long)

// Señal de venta
short_condition = ta.crossunder(fast_ma, slow_ma) and rsi > rsi_oversold and stoch_k > stoch_oversold
if (short_condition)
    strategy.entry("Venta", strategy.short)

// Configurar Stop-Loss y Take-Profit para posiciones largas
if (strategy.position_size > 0)
    strategy.exit("Take Profit/Stop Loss", from_entry="Compra", stop=low - stop_loss, limit=high + take_profit)

// Configurar Stop-Loss y Take-Profit para posiciones cortas
if (strategy.position_size < 0)
    strategy.exit("Take Profit/Stop Loss", from_entry="Venta", stop=high + stop_loss, limit=low - take_profit)

// Plotear las medias móviles en el gráfico
plot(fast_ma, title="Media Rápida (50)", color=color.blue)
plot(slow_ma, title="Media Lenta (200)", color=color.red)

// Plotear RSI y Estocástico en subgráficos
hline(rsi_overbought, "RSI Sobrecomprado", color=color.red)
hline(rsi_oversold, "RSI Sobrevendido", color=color.green)
plot(rsi, title="RSI", color=color.orange, linewidth=2)
hline(stoch_overbought, "Estocástico Sobrecomprado", color=color.red)
hline(stoch_oversold, "Estocástico Sobrevendido", color=color.green)
plot(stoch_k, title="Estocástico K", color=color.purple, linewidth=2)
plot(stoch_d, title="Estocástico D", color=color.purple, linewidth=1, style=plot.style_stepline)


関連性

もっと