
이 전략은 지수 이동 평균 (EMA) 과 상대적으로 약한 지수 (RSI) 의 교차를 결합한 자동화 된 거래 시스템입니다. 그것은 EMA의 빠른 선과 느린 선의 교차를 통해 트렌드 방향을 식별하고, RSI를 트렌드 확인 지표로 사용하며, 완전한 자금 관리 및 위험 제어 장치를 포함합니다. 시스템은 고정된 위험과 수익 목표를 사용하여 각 거래를 관리하며, 포지션 규모를 동적으로 계산하여 위험 일관성을 보장합니다.
전략의 핵심 논리는 다음과 같은 핵심 요소에 기초합니다.
이 전략은 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")