
Đây là một chiến lược giao dịch tự điều chỉnh dựa trên tín hiệu giao chéo hai đường cong. Chiến lược này sử dụng trung bình di chuyển đơn giản (SMA) 14 chu kỳ và 28 chu kỳ để tạo ra tín hiệu giao dịch và kết hợp với cơ chế dừng và dừng có thể điều chỉnh để quản lý cân bằng rủi ro và lợi nhuận. Chiến lược này sử dụng phương pháp quản lý vốn cố định, vốn ban đầu 2000 và đầu tư 200 mỗi giao dịch.
Lập luận cốt lõi của chiến lược dựa trên mối quan hệ chéo giữa hai trung bình di chuyển đơn giản của hai chu kỳ khác nhau. Khi đường trung bình ngắn hạn (khoảng 14) đi lên trên đường trung bình dài hạn (khoảng 28), nó tạo ra tín hiệu nhiều; Khi đường trung bình ngắn hạn đi xuống trên đường trung bình dài hạn, nó tạo ra tín hiệu hỏng. Đồng thời, chiến lược giới thiệu cơ chế dừng và dừng dựa trên tỷ lệ phần trăm, được thiết lập lần lượt là 2% và 4%, được thiết kế để tự động điều chỉnh vị trí dừng và dừng dựa trên giá thị trường.
Đây là một chiến lược giao dịch có cấu trúc rõ ràng, logic nghiêm ngặt. Nó cung cấp tín hiệu giao dịch thông qua giao lộ hai đường bằng phẳng, kết hợp với cơ chế dừng lỗ thích nghi, thực hiện việc nắm bắt cơ hội giao dịch và kiểm soát rủi ro. Mặc dù có một số không gian tối ưu hóa trong chiến lược, nhưng thiết kế tổng thể phù hợp với các nguyên tắc cơ bản của giao dịch định lượng.
/*backtest
start: 2024-10-01 00:00:00
end: 2024-10-31 23:59:59
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy('My Custom Strategy', overlay = true)
// Parámetros de las SMAs (Medias Móviles Simples)
sma14 = ta.sma(close, 14)
sma28 = ta.sma(close, 28)
// Stop Loss y Take Profit configurables
stop_loss_percent = input.float(2, title="Stop Loss %", minval=0.1, step=0.1)
take_profit_percent = input.float(4, title="Take Profit %", minval=0.1, step=0.1)
// Cálculo de stop loss y take profit
stop_loss = close * (1 - stop_loss_percent / 100)
take_profit = close * (1 + take_profit_percent / 100)
// Condiciones de entrada para compra (long)
longCondition = ta.crossover(sma14, sma28)
if (longCondition)
strategy.entry('Long', strategy.long, stop=stop_loss, limit=take_profit)
plotshape(series=longCondition, color=color.new(color.blue, 0), style=shape.labelup, location=location.belowbar, text="BUY")
// Condiciones de entrada para venta (short)
shortCondition = ta.crossunder(sma14, sma28)
if (shortCondition)
strategy.entry('Short', strategy.short, stop=stop_loss, limit=take_profit)
plotshape(series=shortCondition, color=color.new(color.red, 0), style=shape.labeldown, location=location.abovebar, text="SELL")
// Visualización de las SMAs en el gráfico
plot(sma14, color=color.blue, title="SMA 14")
plot(sma28, color=color.red, title="SMA 28")