
Strategi ini adalah sistem dagangan kuantitatif berdasarkan isyarat silang dua persamaan, untuk menguruskan risiko dengan menggabungkan mekanisme berhenti berhenti yang dinamik. Strategi ini menggunakan purata bergerak indeks 20 dan 50 kitaran ((EMA) sebagai petunjuk isyarat, dan menetapkan tahap berhenti 2.5% dan 4% yang agak sederhana untuk mengimbangi keuntungan dan risiko. Strategi ini direka khas untuk pedagang dengan toleransi risiko sederhana, yang dapat menangkap peluang dan mengawal risiko tepat pada masanya apabila trend pasaran berubah.
Logik teras strategi adalah berdasarkan elemen utama berikut:
Ini adalah strategi perdagangan kuantitatif risiko menengah yang dirancang dengan munasabah, menangkap trend dengan menyeberang rata-rata, sambil menggunakan risiko pengurusan hentian hentian dinamik. Kelebihan utama strategi adalah tahap sistematisasi yang tinggi, risiko boleh dikawal, tetapi dalam aplikasi praktikal perlu memperhatikan kesan persekitaran pasaran terhadap prestasi strategi. Dengan pengoptimuman dan penyempurnaan yang berterusan, strategi ini dijangka dapat mengekalkan prestasi yang stabil dalam pelbagai keadaan pasaran.
/*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")