양적 거래 분야에서 트렌드 다음 전략은 항상 가장 인기있는 거래 방법 중 하나입니다. 이 기사는 최적화된 위험 보상 비율을 통해 거래 효율성을 향상시키는 이중 이동 평균 시스템에 기반한 트렌드 다음 전략을 소개합니다.
이 전략은 20일 및 200일 기하급수적 이동 평균 (EMA) 을 주요 지표로 사용하고, 거래 결정에 3: 1의 리스크-어워드 비율과 결합합니다. 가격은 20일 EMA를 넘어서고 20일 EMA가 200일 EMA를 넘었을 때 구매 신호가 생성됩니다. 각 거래에는 제어된 위험을 보장하기 위해 고정 스톱 로스 (-0.5%) 및 영업 수익 (1.5%) 수준이 있습니다.
핵심 논리는 몇 가지 핵심 요소를 포함합니다.
이것은 명확한 논리를 가진 전략을 따르는 잘 구성된 추세입니다. 고정된 위험-상금 비율과 함께 이중 이동 평균 시스템을 결합함으로써 전략은 위험 통제를 유지하면서 좋은 수익을 달성합니다. 최적화 할 수있는 영역이 있지만 전반적으로 추가 연구와 개선을받을 가치가있는 거래 시스템입니다.
/*backtest start: 2019-12-23 08:00:00 end: 2024-11-27 00:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Estrategia de Compra con Ratio 3:1", overlay=true) // Parámetros de la temporalidad diaria y las EMAs ema20 = ta.ema(close, 20) ema200 = ta.ema(close, 200) // Condiciones para la entrada en largo cierre_por_encima_ema20 = close > ema20 ema20_mayor_ema200 = ema20 > ema200 // Variable para registrar si ya se realizó una compra var bool compra_realizada = false // Condición para registrar una compra: primera vez que cierra por encima de EMA 20 con EMA 20 > EMA 200 if (cierre_por_encima_ema20 and ema20_mayor_ema200 and not compra_realizada) // Abrir una operación de compra strategy.entry("Compra", strategy.long) compra_realizada := true // Registrar que se realizó una compra // Definir los niveles de stop loss y take profit basados en el ratio 3:1 stop_loss = strategy.position_avg_price * 0.995 // -0.50% (rendimiento) take_profit = strategy.position_avg_price * 1.015 // +1.50% (3:1 ratio) // Establecer el stop loss y take profit strategy.exit("Take Profit / Stop Loss", from_entry="Compra", stop=stop_loss, limit=take_profit) // Condición para resetear la compra: cuando el precio cierra por debajo de la EMA de 20 if (close < ema20) compra_realizada := false // Permitir una nueva operación // Ploteo de las EMAs plot(ema20, title="EMA 20", color=color.blue, linewidth=2) plot(ema200, title="EMA 200", color=color.red, linewidth=2) // Colorear el fondo cuando el precio está por encima de ambas EMAs bgcolor(cierre_por_encima_ema20 and ema20_mayor_ema200 ? color.new(color.green, 80) : na)