ダイナミックEMAクロスオーバーとRSI共同取引システム

EMA RSI SL/TP RR TWL
作成日: 2025-02-18 14:57:55 最終変更日: 2025-02-18 14:57:55
コピー: 1 クリック数: 367
1
フォロー
1617
フォロワー

ダイナミックEMAクロスオーバーとRSI共同取引システム

概要

この戦略は,指数移動平均 ((EMA) の交差と相対的に強い指標 ((RSI) の交差を組み合わせた自動取引システムである.それは,EMAの快線と慢線の交差によってトレンドの方向性を識別し,同時にRSIをトレンド確認指標として使用し,また,完全な資金管理とリスク制御の仕組みを含んでいる.システムは,固定されたリスクと利益目標の方法で,各取引を管理し,ポジションの規模を動的に計算することによって,リスクの一貫性を確保する.

戦略原則

戦略の中核となるロジックは、次の主要な要素に基づいています。

  1. 9周期と21周期のEMAを使用してトレンドの転換点を識別します. 快線でスローラインを横切ると上昇傾向が始まり,下落すると下降傾向が始まります.
  2. RSI指標は,トレンド確認ツールとして,買取シグナルが出現するときにRSI>50を要求し,売出シグナルが出現するときにRSI<50を要求します.
  3. リスク管理システムは,取引ごとに最大損失額を1000で,目標利益額を5000と設定し,保有規模を調整することで,固定リスク/利益の比率を実現します.
  4. システムは,固定ポイント数 (25ポイント) の止損設定を採用し,リスク金額の動向に基づいて開設されたポジションの数を計算します.
  5. 取引失敗検出メカニズムは,オフショットの取引を早期に発見し,失敗した点をグラフにマークします.

戦略的優位性

  1. トレンド追跡と動力の確認を組み合わせた二重検証メカニズムにより,取引シグナルの信頼性が向上
  2. 優れた資金管理システム,取引ごとに固定されたリスク,過度の損失を避ける
  3. 明確なリスク/利益の比率設定 ((1:5),長期的な利益に有利
  4. システムには自動取引の実行能力があり,感情的な干渉を減らすことができます.
  5. 失敗した取引のビジュアルマークは,戦略の最適化と反転分析に役立ちます.

戦略リスク

  1. EMAの交差策は,波動的な市場において頻繁に偽信号を生成する可能性があります.
  2. 固定ポイントストップは柔軟性がなく,波動的な変化に適応することが困難である
  3. より大きなリスク/利益比 (RRR) は,勝率の低下につながる可能性があります.
  4. RSIは,極端な市場条件で失効する可能性があります.
  5. 固定取引数では,すべての市場条件が適用されない可能性があります.

戦略最適化の方向性

  1. ATR ベースの動的止損のような自己適応的な止損メカニズムを導入
  2. 市場波動性のフィルターを追加し,波動性の高い時期に戦略パラメータを調整する
  3. 取引量指標の追加を検討する
  4. 市場状況に適応するダイナミックな時計調整メカニズムを開発する
  5. MACDやブリンバンドのようなトレンド確認ツールが導入される

要約する

この戦略は,EMAクロスとRSI指標を組み合わせて,信号生成,リスク管理,取引実行などの重要な環を含む完全な取引システムを構築しています. 最適化が必要な部分があるものの,全体的な枠組みの設計は合理的で,特に資金管理の観点から考慮すると,慎重です. この戦略は,さらなる最適化と改善により,実際の取引でより良いパフォーマンスを期待しています.

ストラテジーソースコード
/*backtest
start: 2024-02-18 00:00:00
end: 2025-02-16 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Lukhi24

//@version=6
strategy("Lukhi EMA Crossover_TWL Strategy" , overlay=true)

// Input Parameters
capital = 15000  // Capital: ₹15,000
risk_per_trade = 1000  // Risk per Trade: ₹1,000
target_per_trade = 5000  // Take Profit per Trade: ₹5,000
lot_size = input.int(1, title="Lot Size")  // Nifty option lot size (adjust as per your instrument)
stop_loss_distance = input.float(25, title="Stop Loss Distance (Points)")  // Fixed stop-loss in points (adjustable)

// EMA Parameters
short_ema_length = input.int(9, title="Short EMA Length")
long_ema_length = input.int(21, title="Long EMA Length")

// RSI Parameters
rsi_length = input.int(14, title="RSI Length")
rsi_overbought = input.float(70, title="RSI Overbought Level")
rsi_oversold = input.float(30, title="RSI Oversold Level")

// Calculations
ema_short = ta.ema(close, short_ema_length)
ema_long = ta.ema(close, long_ema_length)
rsi = ta.rsi(close, rsi_length)

// Buy and Sell Signals
buy_signal = ta.crossover(ema_short, ema_long) and rsi > 50
sell_signal = ta.crossunder(ema_short, ema_long) and rsi < 50

// Plot EMAs on the chart
plot(ema_short, color=color.blue, title="EMA 9")
plot(ema_long, color=color.orange, title="EMA 21")

// Risk Management: Position size based on stop-loss distance
position_size = risk_per_trade / stop_loss_distance

// Stop Loss and Take Profit Levels
long_stop_loss = close - stop_loss_distance
long_take_profit = close + (target_per_trade / position_size)

short_stop_loss = close + stop_loss_distance
short_take_profit = close - (target_per_trade / position_size)

// Strategy Logic: Entry, Stop Loss, and Take Profit
if (buy_signal)
    strategy.entry("Buy", strategy.long, qty=lot_size)
    strategy.exit("Exit Buy", "Buy", stop=long_stop_loss, limit=long_take_profit)

if (sell_signal)
    strategy.entry("Sell", strategy.short, qty=lot_size)
    strategy.exit("Exit Sell", "Sell", stop=short_stop_loss, limit=short_take_profit)

// Track Trade Result and Detect Failures
long_trade_loss = strategy.position_size > 0 and close <= long_stop_loss
short_trade_loss = strategy.position_size < 0 and close >= short_stop_loss

// Plot Buy and Sell signals on the chart
plotshape(buy_signal, location=location.belowbar, color=color.green, style=shape.labelup, title="Buy Signal", text="BUY")
plotshape(sell_signal, location=location.abovebar, color=color.red, style=shape.labeldown, title="Sell Signal", text="SELL")

// Plot Failure Signals
plotshape(long_trade_loss, location=location.belowbar, color=color.red, style=shape.cross, title="Long Trade Failed", text="Failed")
plotshape(short_trade_loss, location=location.abovebar, color=color.red, style=shape.cross, title="Short Trade Failed", text="Failed")