移動平均とRSIに基づく機会追従戦略


作成日: 2024-01-18 15:46:35 最終変更日: 2024-01-18 15:46:35
コピー: 0 クリック数: 556
1
フォロー
1617
フォロワー

移動平均とRSIに基づく機会追従戦略

概要

この戦略は,移動平均線,ハル移動平均線,および相対的に強い指数 ((RSI)) をベースに取引信号を構築し,典型的な機会追跡戦略の1つである.これは,市場機会を自動的に識別し,長空の切り替えを行い,中短期の取引に適用することができる.

戦略原則

  1. 50周期の指数移動平均 ((EMA) を計算し,トレンドを判断する平均線指標とする.
  2. 7日間のハル移動平均は,より敏感で先入りの平均線指標として計算され,EMAと金叉デッドフォークを形成する.
  3. RSIの超買線と超売り線をそれぞれ60と45に設定し,60より高いRSIは超買のシグナルであり,45より低いRSIは超売り領域である.
  4. 超買い状態が同時に上方へEMAを横切るときは空調の信号となる.
  5. オーバーセールゾーンが同時に下向きにEMAを横切るときは,多信号を行う.

戦略的優位性

  1. EMA,Hull,RSIの3つの指標を組み合わせて,市場の傾向,動力,超買超売り領域を総合的に判断し,信号の正確性を向上させる.
  2. EMAは中長期のトレンドを判断し,Hullは短期先導的指標を判断し,RSIは超買い超売り領域を判断し,異なる周期指標が配合して使用され,異なるレベルの取引機会を把握する.
  3. 取引信号は,トレンド,動力,オーバーバイオーバーセール領域の3つの条件を同時に満たした後にトリガーされ,偽信号を効果的にフィルターすることができます.

戦略リスク

  1. この3つの指標の組み合わせだけで判断すると,取引の機会を逃してしまうかもしれません.
  2. EMAとHullの周期設定は繰り返しテスト・最適化が必要で,不適切なパラメータ選択は応答質に影響する可能性がある.
  3. RSIのパラメータも調整が必要で,異なる株式や外貨の過剰買いと過剰売り判断基準は異なる.

戦略の最適化

  1. ブリン線,KC線など,より多くの補助指標を導入して,複数の共鳴を決定させることができる.
  2. 異なる品種設定の異なるパラメータの組み合わせを最適化することができる.
  3. 短期的な偽の突破によって 誤解されないように 高級レベルの時間周期を組み合わせて 意思決定を行うことができます.
  4. リスク管理のためのストップ・ロスの戦略を導入できます.

要約する

この戦略は,EMA,Hull,RSIの3つの指標の組み合わせを使用して,中短期の取引機会を捉えます.戦略信号の生成は,トレンド,モナティズム,オーバーバイ,オーバーセールの3つの次元を満たす必要があります.これにより,多くの偽信号をフィルタリングできます.同時に,パラメータの最適化やより多くの補助指標の導入などによって,戦略の安定性と取引パフォーマンスをさらに向上させることができます.

ストラテジーソースコード
/*backtest
start: 2023-01-11 00:00:00
end: 2024-01-17 00:00:00
period: 1d
basePeriod: 1h
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/
// © Bitduke

//@version=4
strategy(shorttitle="EHR", title="Simple EMA_Hull_RSI", overlay=false, 
     calc_on_every_tick=false, pyramiding=0, default_qty_type=strategy.cash, 
     default_qty_value=1000, currency=currency.USD, initial_capital=1000,
     commission_type=strategy.commission.percent, commission_value=0.075)

// EMA
len = input(minval=1, title="EMA Length", defval=50)
src = input(close, title="EMA Source")
final_ema = ema(src, len)
plot(final_ema, color=color.red, title="EMA")

overbought = input(60, title="overbought value")
oversold = input(45, title="oversold value")

overbought_signal = rsi(close, 14) > overbought
oversold_signal = rsi(close, 14) < oversold
barcolor(overbought_signal ? color.black : na)
barcolor(oversold_signal ? color.blue : na)
// Hull MA
n = input(title="Hull Length", defval=7)
n2ma=2*wma(close,round(n/2))
nma=wma(close,n)
diff=n2ma-nma
sqn=round(sqrt(n))

n2ma1=2*wma(close[1],round(n/2))
nma1=wma(close[1],n)
diff1=n2ma1-nma1
sqn1=round(sqrt(n))

n1=wma(diff,sqn)
n2=wma(diff1,sqn)
c=n1>n2?color.green:color.red
ma=plot(n1,color=c)

// Strategy Logic
longCondition =  overbought_signal and crossover(n1,final_ema) 
shortCondition = oversold_signal and crossover(final_ema,n1) 

strategy.entry("EHR_Long", strategy.long, when=longCondition)
strategy.entry("EHR_Short", strategy.short, when=shortCondition)