
Chiến lược này sử dụng các đường chéo của chỉ số trung bình di chuyển (EMA) để tạo ra tín hiệu giao dịch, đồng thời động thiết lập mức dừng và dừng lỗ. Khi EMA ngắn hơn (EMA 12) vượt qua EMA dài hơn (EMA 26) từ phía dưới, tạo ra tín hiệu mua; ngược lại, khi EMA 12 vượt qua EMA 26 từ phía trên, tạo ra tín hiệu bán. Chiến lược này thiết lập các mức dừng và dừng lỗ động khác nhau cho các vị trí đầu nhiều và đầu trống. Đối với các vị trí đầu nhiều, dừng được đặt ở trên giá vào thị trường 8% và dừng lỗ ở dưới giá vào thị trường 2.5%; đối với các vị trí trống, dừng được đặt ở dưới giá vào thị trường 8% và dừng lỗ ở trên giá vào thị trường 2.5%.
Cốt lõi của chiến lược này là sử dụng chéo của chỉ số di chuyển trung bình ((EMA) của hai chu kỳ khác nhau để tạo ra tín hiệu giao dịch. EMA là một chỉ số theo dõi xu hướng, có thể làm mịn dữ liệu giá, giảm nhiễu tiếng ồn.
Trong khi đó, chiến lược này sử dụng phương pháp dừng lỗ động, đặt các mức dừng và dừng lỗ khác nhau tùy theo hướng của vị trí hiện tại ((multihead hoặc void)). Phương pháp dừng lỗ động này cho phép lợi nhuận mở rộng đầy đủ khi có xu hướng mạnh mẽ, đồng thời dừng lỗ kịp thời khi có sự đảo ngược giá, do đó kiểm soát rủi ro tốt hơn.
Dễ sử dụng: Chiến lược này chỉ sử dụng sự giao nhau của hai đường EMA để tạo ra tín hiệu giao dịch, logic rõ ràng, dễ hiểu và thực hiện.
Theo dõi xu hướng: Chỉ số EMA có khả năng theo dõi xu hướng tốt, có thể nắm bắt hiệu quả xu hướng chính của giá cả.
Động thái dừng lỗ: Động thái điều chỉnh mức dừng và dừng lỗ theo hướng vị trí, cho phép lợi nhuận mở rộng đầy đủ khi xu hướng mạnh, đồng thời dừng lỗ kịp thời khi giá đảo ngược, kiểm soát rủi ro tốt hơn.
Khả năng thích ứng: Chiến lược này có khả năng thích ứng và linh hoạt với các môi trường thị trường và các loại giao dịch khác nhau.
Rủi ro tối ưu hóa tham số: Lựa chọn chu kỳ EMA và thiết lập tỷ lệ dừng lỗ cần được tối ưu hóa theo môi trường thị trường cụ thể và loại giao dịch, thiết lập tham số không phù hợp có thể dẫn đến hiệu suất chiến lược kém.
Rủi ro giao dịch thường xuyên: Khi thị trường đang trong trạng thái biến động, giao dịch EMA có thể xảy ra thường xuyên, dẫn đến việc chiến lược tạo ra nhiều tín hiệu giao dịch hơn, tăng chi phí giao dịch và rủi ro.
Rủi ro đảo ngược xu hướng: Chiến lược này có thể tạo ra tín hiệu giao dịch sai khi xu hướng thị trường đột ngột đảo ngược, dẫn đến tổn thất.
Nhập các chỉ số kỹ thuật khác: Có thể xem xét việc đưa ra các chỉ số kỹ thuật khác, chẳng hạn như RSI, MACD, để hỗ trợ xác nhận tín hiệu giao dịch EMA, tăng độ tin cậy của tín hiệu giao dịch.
Cài đặt tham số tối ưu hóa: Tìm ra sự kết hợp tham số tối ưu nhất phù hợp với môi trường thị trường và loại giao dịch cụ thể bằng cách kiểm tra tối ưu hóa chu kỳ EMA và tỷ lệ dừng lỗ.
Nhập các biện pháp kiểm soát rủi ro: Xem xét việc đưa ra các biện pháp kiểm soát rủi ro, chẳng hạn như quản lý vị trí, quản lý tiền, v.v., để kiểm soát tốt hơn rủi ro giao dịch.
Kết hợp phân tích cơ bản: Kết hợp phân tích kỹ thuật với phân tích cơ bản, xem xét các yếu tố như môi trường thị trường, dữ liệu kinh tế để tăng độ chính xác của quyết định giao dịch.
Chiến lược này sử dụng giao dịch EMA để tạo tín hiệu giao dịch và sử dụng phương pháp dừng lỗ động để kiểm soát rủi ro. Nó có những ưu điểm như dễ sử dụng, theo dõi xu hướng và khả năng thích ứng mạnh mẽ, nhưng đồng thời cũng đối mặt với những thách thức như rủi ro tối ưu hóa tham số, rủi ro giao dịch thường xuyên và rủi ro đảo ngược xu hướng. Bằng cách giới thiệu các chỉ số kỹ thuật khác, thiết lập tham số tối ưu hóa, giới thiệu các biện pháp kiểm soát rủi ro và kết hợp với các phương pháp phân tích cơ bản, bạn có thể tối ưu hóa hơn nữa hiệu suất của chiến lược, nâng cao khả năng áp dụng và khả năng lợi nhuận của nó trong giao dịch thực tế.
/*backtest
start: 2023-05-23 00:00:00
end: 2024-05-28 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("CDC Action Zone Trading Bot with Dynamic TP/SL", overlay=true)
// ดึงข้อมูลราคาปัจจุบัน
current_price = close
// คำนวณเส้น EMA 12 และ EMA 26
ema12 = ta.ema(current_price, 12)
ema26 = ta.ema(current_price, 26)
// กำหนดเปอร์เซ็นต์ Take Profit และ Stop Loss
takeProfitPercent = 0.080
stopLossPercent = 0.025
// คำนวณระดับ Take Profit และ Stop Loss
longTakeProfit = strategy.position_avg_price * (1 + takeProfitPercent)
longStopLoss = strategy.position_avg_price * (1 - stopLossPercent)
shortTakeProfit = strategy.position_avg_price * (1 - takeProfitPercent)
shortStopLoss = strategy.position_avg_price * (1 + stopLossPercent)
// สัญญาณ Buy
buySignal = (ema12 > ema26) and (ema12[1] <= ema26[1])
// สัญญาณ Sell
sellSignal = (ema12 < ema26) and (ema12[1] >= ema26[1])
// เปิด Position Long
if (buySignal)
strategy.entry("Long", strategy.long)
// เปิด Position Short
if (sellSignal)
strategy.entry("Short", strategy.short)
// ปิด Position Long เมื่อถึง Take Profit หรือ Stop Loss
if (strategy.position_size > 0)
strategy.exit("Long TP/SL", from_entry="Long", limit=longTakeProfit, stop=longStopLoss, comment="TP/SL")
// ปิด Position Short เมื่อถึง Take Profit หรือ Stop Loss
if (strategy.position_size < 0)
strategy.exit("Short TP/SL", from_entry="Short", limit=shortTakeProfit, stop=shortStopLoss, comment="TP/SL")
// ปิด Position Long เมื่อเกิดสัญญาณขาย
if (strategy.position_size > 0 and sellSignal)
strategy.close("Long", comment="Sell Signal")
// ปิด Position Short เมื่อเกิดสัญญาณซื้อ
if (strategy.position_size < 0 and buySignal)
strategy.close("Short", comment="Buy Signal")
// Debugging messages to plot the calculated levels for visual verification
//plot(longTakeProfit, title="Long Take Profit", color=color.green, linewidth=1, style=plot.style_line)
//plot(longStopLoss, title="Long Stop Loss", color=color.red, linewidth=1, style=plot.style_line)
//plot(shortTakeProfit, title="Short Take Profit", color=color.green, linewidth=1, style=plot.style_line)
//plot(shortStopLoss, title="Short Stop Loss", color=color.red, linewidth=1, style=plot.style_line)