Dalam bidang perdagangan kuantitatif, strategi mengikuti trend sentiasa menjadi salah satu kaedah perdagangan yang paling popular.
Strategi ini menggunakan purata bergerak eksponen 20 hari dan 200 hari (EMA) sebagai penunjuk utama, digabungkan dengan nisbah risiko-balasan 3: 1 untuk keputusan perdagangan. Isyarat beli dihasilkan apabila harga memecahkan di atas EMA 20 hari dan EMA 20 hari di atas EMA 200 hari. Setiap perdagangan mempunyai tahap stop-loss (-0.5%) dan mengambil keuntungan (1.5%) tetap untuk memastikan risiko terkawal.
Logik teras merangkumi beberapa elemen utama:
Ini adalah trend yang terstruktur dengan baik mengikuti strategi dengan logik yang jelas. Dengan menggabungkan sistem purata bergerak berganda dengan nisbah risiko-balasan tetap, strategi mencapai pulangan yang baik sambil mengekalkan kawalan risiko. Walaupun terdapat bidang untuk pengoptimuman, secara keseluruhan ia adalah sistem perdagangan yang layak untuk penyelidikan dan penambahbaikan lanjut.
/*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)