RSI50_EMAロングポジション戦略

EMA RSI ATR
作成日: 2024-05-11 11:49:29 最終変更日: 2024-05-11 11:49:29
コピー: 3 クリック数: 586
1
フォロー
1617
フォロワー

RSI50_EMAロングポジション戦略

概要

この戦略は”RSI50_EMAロングポジション戦略”と呼ばれ,その主な考えは,相対的に強い指数 ((RSI) と指数移動平均 ((EMA) の2つの技術指標の交差信号を利用して取引決定を行うことである.価格が上下からEMA上線を突破し,RSIが50より大きいときにポジションを多く開く,価格が上下からEMA下線を突破し,またはRSIが50を下回る時にポジションを平らにする.この戦略は,空っぽではなく,多めに行う,追尾戦略である.

戦略原則

  1. EMAとATRを計算して,EMAを軌道上下する.
  2. RSIを計算する
  3. 閉店価格でEMAが軌道に乗って,RSIが50を超えると,ポジションを開けます.
  4. EMA下落またはRSIが50を下回ると,すべての多項を平準化します.
  5. 余分な時間を無駄にしてはいけない.

戦略的優位性

  1. 強力な市場での使用に適し,強力な株式の上昇を効果的に捉える.
  2. 同時に,EMAとRSIの2つの指標を使用することで,トレンドシグナルをよりよく確認でき,信号の信頼性を向上させることができる.
  3. ポジションマネジメントは,パーセンテージ・ストップ・ロースを採用し,リスクはコントロールできます.
  4. コードロジックは明快でシンプルで,理解し,実装しやすい.

戦略リスク

  1. 市場が揺れ動いている場合,取引が頻繁になり,大きな撤退が起こる可能性があります.
  2. パラメータの選択が不適切である場合,シグナルの無効性が生じます.例えば,EMAの長さの選択が不適切である場合,トレンド判断が遅れる可能性があります.RSIの上下限界の選択が不適切である場合,開平のポジションポイントが望ましくない可能性があります.
  3. 戦略は,一方的な上昇を捉えるだけで,下降や揺れを捉えることができず,空飛ぶことができます.

戦略最適化の方向性

  1. MACDなどのトレンド確認指標を導入し,トレンド判断の正確性を向上させる.
  2. RSIのパラメータ最適化,またはRSI偏差などの改善信号の導入.
  3. 移動止損または波動率止損を加え,風制御を改善することを検討する.
  4. 市場が揺れ,下落する傾向に逆転してポジションを開く論理も考えられます.

要約する

RSI50_EMAロングポジション戦略は,RSIとEMAをベースにしたシンプルで使いやすいトレンド追跡戦略で,一面的なの状況で使用するのに適しています.この戦略の論理は明確で,優位性は明らかですが,いくつかの欠陥とリスクもあります.より多くの補助指標,最適化パラメータ,リスク管理の改善などの措置を導入することにより,この戦略の安定性と収益性をさらに向上させることができます.しかし,実際のアプリケーションでは,市場の特徴,個人のリスク好みなどの要因に応じて柔軟な調整と改善が必要です.

ストラテジーソースコード
/*backtest
start: 2023-05-05 00:00:00
end: 2024-05-10 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("RSI50_EMA Long Only Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

len = input(11, type=input.integer, minval=1, title="Length")
mul = input(2, type=input.float, minval=0, title="Multiplier")
rsicap = input(50, type=input.integer, minval=1, title="rsicap")
rsi_1 = rsi(close,20)
price = sma(close, 2)
average = ema(close, len)
diff = atr(len) * mul
bull_level = average + diff
bear_level = average - diff
bull_cross = crossover(price, bull_level) 
RENTRY = crossover(rsi_1,rsicap)
bear_cross = crossover(bear_level, price)
EXIT = crossunder(rsi_1,50)

strategy.entry("Buy", strategy.long, when=bull_cross)
strategy.close("Buy", when=bear_cross)  //strategy.entry("Sell", strategy.short, when=bear_cross)
if (RENTRY)
    strategy.entry("RSI", strategy.long, when=bull_cross)
if (EXIT)
    strategy.close("RSICLose", when=bull_cross)  //strategy.entry("Sell", strategy.short, when=bear_cross)

plot(price, title="price", color=color.black, transp=50, linewidth=2)
a0 = plot(average, title="average", color=color.red, transp=50, linewidth=1)
a1 = plot(bull_level, title="bull", color=color.green, transp=50, linewidth=1)
a2 = plot(bear_level, title="bear", color=color.red, transp=50, linewidth=1)
fill(a0, a1, color=color.green, transp=97)
fill(a0, a2, color=color.red, transp=97)