複数のEMA移動RSI戦略

作者: リン・ハーンチャオチャン,日付: 2023-09-14 16:28:04
タグ:

戦略の論理

この戦略は,複数の移動平均値とRSIを組み合わせて取引を行う.より速いEMAがより遅いEMAを下回り,RSIが過剰に売れていることが確認された場合,ショートになります.

論理的には

  1. 異なる期間の 4 つの EMA を計算します.例えば 9, 26, 100 および 55 期間の EMA

  2. 9 期間の EMA が 26 期間の EMA 以下の値を超えるとショート信号が発信されます

  3. RSI が値を下回る場合 (例えば 40) のみショートアクティベーションを行う.

  4. 短いエントリー後,価格が55または100 EMAを超えると終了

  5. パラメータ最適化のために異なるEMA組み合わせを設定できます.

この戦略はトレンドのために複数の EMA を利用し,信号確認のために RSI を追加し,過売りレベルではショートになります.

利点

  • 複数のEMAは正確性を向上させる

  • RSI は 過売度 の 跳ね返り リスク を 避ける

  • ストップ・ロスの EMA は,エントリーで速く,ストップ・ロスの EMA は遅い.

リスク

  • 最適なパラメータを見つけるために広範な試験が必要

  • RSI パラメータの注意深く評価

  • 短く,長い機会を逃した

概要

この戦略は,複数のEMAの力を RSIの確認とフィルタリングと組み合わせます.パラメータ最適化とストップロスは重要です.しかし,ショートのみであることは重要な制限です.


/*backtest
start: 2023-08-14 00:00:00
end: 2023-09-13 00:00:00
period: 3h
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/
// © YukalMoon

//@version=5
strategy(title="EMA SCALPEUR", overlay=true, initial_capital = 1000)


//// input controls

EMA_L = input.int (title = "EMA_L", defval = 9, minval = 1, maxval = 100, step =1)
EMA_L2 = input.int (title = "EMA_L2", defval = 26, minval = 1, maxval = 100, step =1)
EMA_S = input.int (title = "EMA_S", defval = 100, minval = 1, maxval = 100, step =1)
EMA_S2 = input.int (title = "EMA_S2", defval = 55, minval = 1, maxval = 100, step =1)
RSI1 = input.int (title = "RSI", defval = 5, minval = 1, maxval = 20 , step = 1)

/// mise en place de ema

RSI = ta.rsi(close, RSI1)

shortest = ta.ema(close, 9)
short = ta.ema(close, 26)
longer = ta.ema(close, 100)
longest = ta.ema(close, 55)

plot(shortest, color = color.red)
plot(short, color = color.orange)
plot(longer, color = color.aqua)
plot(longest, color = color.yellow)

plot(close)

//// trading indicators

EMA1 = ta.ema (close,EMA_L)
EMA2 = ta.ema (close,EMA_L2)
EMA3 = ta.ema (close, EMA_S)
EMA4 = ta.ema (close, EMA_S2)


//buy = ta.crossover(EMA1, EMA2) and RSI > 60 and RSI <70
sell = ta.crossunder(EMA1, EMA2) and RSI > 40

//buyexit = ta.crossunder(EMA3, EMA4)
sellexit = ta.crossover(EMA3, EMA4)

/////strategy


strategy.entry ("short", strategy.short, when = sell, comment = "ENTER-SHORT")


///// market exit


strategy.close ("short",  when = sellexit, comment = "EXIT-SHORT")













もっと