
Chiến lược này là một hệ thống giao dịch định lượng dựa trên tín hiệu giao chéo hai đường cong, quản lý rủi ro bằng cách kết hợp các cơ chế dừng dừng lỗ động. Chiến lược sử dụng đường trung bình di chuyển chỉ số 20 chu kỳ và 50 chu kỳ (EMA) làm chỉ số tín hiệu và đặt mức dừng 2.5% và 4% tương đối ôn hòa để cân bằng lợi nhuận và rủi ro. Chiến lược này được thiết kế đặc biệt phù hợp cho các nhà giao dịch có khả năng chịu rủi ro trung bình, có thể nắm bắt cơ hội và kiểm soát rủi ro khi xu hướng thị trường thay đổi.
Logic cốt lõi của chiến lược này dựa trên các yếu tố chính sau:
Đây là một chiến lược giao dịch định lượng rủi ro trung bình được thiết kế hợp lý, nắm bắt xu hướng bằng đường ngang, đồng thời sử dụng khả năng quản lý rủi ro dừng lỗ động. Ưu điểm chính của chiến lược là có mức độ hệ thống hóa cao, rủi ro có thể kiểm soát được, nhưng trong ứng dụng thực tế, cần chú ý đến ảnh hưởng của môi trường thị trường đối với hiệu suất chiến lược. Bằng cách tối ưu hóa và hoàn thiện liên tục, chiến lược này có thể duy trì hiệu suất ổn định trong các môi trường thị trường khác nhau.
/*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")