Đây là một chiến lược giao dịch thích nghi dựa trên tín hiệu chéo trung bình động kép. Chiến lược sử dụng Đường trung bình di chuyển đơn giản (SMA) 14 giai đoạn và 28 giai đoạn để tạo ra tín hiệu giao dịch, kết hợp với các cơ chế dừng lỗ và lấy lợi nhuận điều chỉnh để đạt được quản lý rủi ro-lợi nhuận cân bằng. Chiến lược sử dụng quản lý tiền cố định với vốn ban đầu là 2000 và 200 cho mỗi giao dịch.
Khái niệm cốt lõi dựa trên mối quan hệ chéo giữa hai SMA của các giai đoạn khác nhau. Một tín hiệu dài được tạo ra khi MA ngắn hạn (14 giai đoạn) vượt qua trên MA dài hạn (28 giai đoạn), và một tín hiệu ngắn được tạo ra khi MA ngắn hạn vượt qua dưới MA dài hạn. Chiến lược này kết hợp cơ chế dừng lỗ và lấy lợi nhuận dựa trên tỷ lệ phần trăm được đặt lần lượt là 2% và 4%, cho phép điều chỉnh tự động các điểm thoát dựa trên giá thị trường.
Đây là một chiến lược giao dịch có cấu trúc tốt và hợp lý. Nó nắm bắt các cơ hội giao dịch thông qua các đường chéo trung bình động kép trong khi kiểm soát rủi ro với các cơ chế dừng lỗ và lấy lợi nhuận thích nghi. Trong khi có chỗ cho tối ưu hóa, thiết kế tổng thể tuân thủ các nguyên tắc giao dịch định lượng cơ bản. Thông qua các hướng tối ưu hóa được đề xuất, tính ổn định và tiềm năng lợi nhuận của chiến lược có thể được tăng thêm.
/*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")