
이 전략은 시장의 단기적 움직임을 포착하기 위해 두 개의 다른 주기의 지수 이동 평균 ((EMA) 의 교차 신호를 이용합니다. 빠른 선이 아래에서 위로 슬로우 라인을 통과할 때 다중 상점 포지션을 열고 빠른 선이 위에서 아래로 슬로우 라인을 통과할 때 빈 상점 포지션을 열습니다. 동시에 위험을 제어하고 이익을 잠금하기 위해 스톱 및 스톱을 설정합니다.
EMA 크로스 동적 단선 거래 전략은 초보자들에 적합한 간단한 사용 가능한 단선 거래 전략이며, 양적 거래에 익숙한 프로세스이다. 이 전략은 단기 동적 효과를 포착할 수 있으며, 시장의 추세 방향에 부합하며, 위험을 제어하기 위해 고정 비율의 스톱을 설정한다. 그러나 이 전략에는 빈번한 거래, 적지 않은 손실, 트렌드 식별 지연 등이 존재한다.
/*backtest
start: 2023-06-08 00:00:00
end: 2024-06-13 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Scalping Strategy", overlay=true)
// Parameters
length_fast = input.int(9, title="Fast EMA Length", minval=1)
length_slow = input.int(21, title="Slow EMA Length", minval=1)
stop_loss_pct = 0.7 // Risk 0.7% of capital
take_profit_pct = 0.5 // Target 0.5% of capital
// Calculate EMAs
ema_fast = ta.ema(close, length_fast)
ema_slow = ta.ema(close, length_slow)
// Plot EMAs
plot(ema_fast, color=color.blue, title="Fast EMA")
plot(ema_slow, color=color.red, title="Slow EMA")
// Trading logic
long_condition = ta.crossover(ema_fast, ema_slow)
short_condition = ta.crossunder(ema_fast, ema_slow)
// Calculate stop loss and take profit levels
stop_loss_long = strategy.position_avg_price * (1 - stop_loss_pct / 100)
take_profit_long = strategy.position_avg_price * (1 + take_profit_pct / 100)
stop_loss_short = strategy.position_avg_price * (1 + stop_loss_pct / 100)
take_profit_short = strategy.position_avg_price * (1 - take_profit_pct / 100)
// Enter and exit trades
if (long_condition)
strategy.entry("Long", strategy.long)
if (short_condition)
strategy.entry("Short", strategy.short)
// Exit long trades
if (strategy.position_size > 0)
strategy.exit("Take Profit Long", "Long", limit=take_profit_long)
strategy.exit("Stop Loss Long", "Long", stop=stop_loss_long)
// Exit short trades
if (strategy.position_size < 0)
strategy.exit("Take Profit Short", "Short", limit=take_profit_short)
strategy.exit("Stop Loss Short", "Short", stop=stop_loss_short)