
Strategi ini adalah sistem perdagangan kuantitatif yang didasarkan pada sinyal crossover dua garis sejajar, untuk mengelola risiko dengan menggabungkan mekanisme stop-loss stop-loss dinamis. Strategi ini menggunakan rata-rata pergerakan indeks 20 siklus dan 50 siklus (EMA) sebagai indikator sinyal, dan menetapkan stop-loss 2.5% dan level stop-loss 4% yang relatif moderat untuk menyeimbangkan keuntungan dan risiko. Strategi ini dirancang khusus untuk pedagang dengan toleransi risiko sedang, mampu menangkap peluang dan mengendalikan risiko sewaktu-waktu ketika tren pasar berubah.
Logika inti dari strategi ini didasarkan pada elemen-elemen kunci berikut:
Ini adalah strategi perdagangan kuantitatif risiko menengah yang dirancang dengan baik, menangkap tren dengan melintasi garis rata, dan mengelola risiko dengan menggunakan stop-loss yang dinamis. Keuntungan utama dari strategi ini adalah tingkat sistematisasi yang tinggi, risiko dapat dikontrol, tetapi dalam aplikasi praktis perlu memperhatikan dampak lingkungan pasar pada kinerja strategi. Dengan terus-menerus mengoptimalkan dan menyempurnakan, strategi ini diharapkan dapat mempertahankan kinerja yang stabil di berbagai lingkungan pasar.
/*backtest
start: 2024-10-12 00:00:00
end: 2024-11-11 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Estrategia STX - Medias Móviles con Riesgo Medio", overlay=true)
// Parámetros configurables
mmr_period = input.int(20, title="Periodo Media Móvil Rápida (MMR)")
mml_period = input.int(50, title="Periodo Media Móvil Lenta (MML)")
stop_loss_percent = input.float(2.5, title="Stop-Loss (%)", step=0.1) // Stop-Loss moderado
take_profit_percent = input.float(4.0, title="Take-Profit (%)", step=0.1) // Take-Profit moderado
// Cálculo de medias móviles (Exponenciales)
mmr = ta.ema(close, mmr_period) // Media Móvil Rápida
mml = ta.ema(close, mml_period) // Media Móvil Lenta
// Señales de Compra y Venta
long_condition = ta.crossover(mmr, mml) // Señal de compra
short_condition = ta.crossunder(mmr, mml) // Señal de venta
// Calcular niveles de Stop-Loss y Take-Profit solo al activar la compra
var float entry_price = na
var float stop_loss_level = na
var float take_profit_level = na
if (long_condition)
entry_price := close
stop_loss_level := entry_price * (1 - stop_loss_percent / 100)
take_profit_level := entry_price * (1 + take_profit_percent / 100)
// Condiciones de salida (Stop-Loss y Take-Profit)
exit_condition = (close <= stop_loss_level) or (close >= take_profit_level)
// Ejecución de Órdenes
if (long_condition)
strategy.entry("Compra", strategy.long)
if (short_condition or exit_condition)
strategy.close("Compra")
// Trazar Medias Móviles y Niveles
plot(mmr, color=color.blue, linewidth=2, title="Media Móvil Rápida (MMR)")
plot(mml, color=color.orange, linewidth=2, title="Media Móvil Lenta (MML)")
plot(not na(entry_price) ? stop_loss_level : na, color=color.red, style=plot.style_line, linewidth=1, title="Stop-Loss")
plot(not na(entry_price) ? take_profit_level : na, color=color.green, style=plot.style_line, linewidth=1, title="Take-Profit")