Dalam bidang perdagangan kuantitatif, strategi pelacakan tren telah menjadi salah satu metode perdagangan yang paling populer. Artikel ini akan memperkenalkan strategi pelacakan tren berdasarkan sistem dua garis lurus, yang meningkatkan efisiensi perdagangan dengan mengoptimalkan rasio risiko / keuntungan.
Strategi ini menggunakan 20 hari dan 200 hari indeks moving average (EMA) sebagai indikator utama, dikombinasikan dengan 3: 1 RRR untuk membuat keputusan perdagangan. Ketika harga menembus 20 hari rata-rata dan 20 hari rata-rata berada di atas 200 hari rata-rata, sistem akan mengirimkan sinyal beli. Setiap perdagangan ditetapkan dengan tingkat stop loss (-0.5%) dan profit (-1.5%) yang tetap untuk memastikan risiko dapat dikendalikan.
Logika inti dari strategi ini mencakup elemen-elemen kunci berikut:
Ini adalah strategi pelacakan tren yang terstruktur, logis dan jelas. Dengan menggabungkan sistem dua garis lurus dan rasio risiko / imbalan yang tetap, strategi ini mengontrol risiko dengan baik sambil menjamin keuntungan. Meskipun masih ada beberapa tempat yang perlu dioptimalkan, secara keseluruhan ini adalah sistem perdagangan yang layak untuk diteliti dan ditingkatkan lebih 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)