
Chiến lược này tạo ra tín hiệu giao dịch giao dịch vàng và chết khi giao dịch giao dịch bằng cách tính toán sự giao nhau của EMA đường nhanh và EMA đường chậm. Khi giao dịch giao dịch trên EMA đường nhanh tạo ra tín hiệu mua; khi giao dịch dưới EMA đường nhanh tạo ra tín hiệu bán. Chiến lược này tận dụng lợi thế của đường trung bình di chuyển để theo dõi xu hướng thị trường một cách hiệu quả và tạo ra tín hiệu giao dịch trong giai đoạn bắt đầu xu hướng.
Các chỉ số cốt lõi của chiến lược này là đường EMA nhanh và đường EMA chậm. Chiến lược này được thiết lập bằng cách đặt hai tham số khác nhau của đường EMA, tham số EMA nhanh được đặt ở mức 10 và tham số EMA chậm là 20. Trong đó, đường EMA 10 ngày có thể phản ứng nhanh hơn với sự thay đổi giá, trong khi đường 20 ngày phản ứng chậm hơn.
Thông qua nguyên tắc giao thoa của đường EMA chậm và nhanh, chiến lược này nắm bắt đầy đủ thời gian chuyển đổi của xu hướng thị trường, có thể tạo ra tín hiệu giao dịch kịp thời. Đồng thời, chỉ số EMA có khả năng tạo ra tín hiệu giả mạo, tránh mở vị trí thường xuyên khi thị trường dao động. Điều này cho phép chiến lược này có thể nắm bắt các điểm biến đổi của thị trường, có khả năng lợi nhuận cao hơn trong khi giảm giao dịch sai.
Đối với các rủi ro trên, có thể tối ưu hóa bằng cách giới thiệu các chỉ số bổ sung, chẳng hạn như tăng điều kiện lọc giao dịch, tránh tín hiệu sai kết hợp với chỉ số MACD, sử dụng tốc độ phản ứng chỉ số EMA tự điều chỉnh. Ngoài ra, dừng hợp lý và dừng tích cực cũng là cần thiết.
Các hướng tiếp theo mà chiến lược này có thể được tối ưu hóa bao gồm:
Chiến lược này sử dụng nguyên tắc giao chéo đường nhanh chậm của hai EMA, nắm bắt các điểm biến động quan trọng của thị trường, có hiệu quả thực tế mạnh mẽ. Hợp tác với các chỉ số phụ trợ và tối ưu hóa dừng lỗ, có thể tăng cường sự ổn định của chiến lược. Ý tưởng chiến lược này đơn giản và rõ ràng, đáng để các nhà giao dịch định lượng học hỏi và sử dụng, và có nhiều tiềm năng mở rộng và tối ưu hóa.
/*backtest
start: 2023-01-15 00:00:00
end: 2024-01-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("Backtest single EMA cross", overlay=true)
qty = input(100000, "Buy quantity")
testStartYear = input(2019, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testStartHour = input(0, "Backtest Start Hour")
testStartMin = input(0, "Backtest Start Minute")
testPeriodStart = timestamp(testStartYear, testStartMonth, testStartDay, testStartHour, testStartMin)
testStopYear = input(2099, "Backtest Stop Year")
testStopMonth = input(1, "Backtest Stop Month")
testStopDay = input(30, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear, testStopMonth, testStopDay, 0, 0)
testPeriodBackground = input(title="Color Background?", type=input.bool, defval=true)
testPeriodBackgroundColor = testPeriodBackground and time >= testPeriodStart and time <= testPeriodStop ?
#00FF00 : na
testPeriod() => true
ema1 = input(10, title="Select EMA 1")
ema2 = input(20, title="Select EMA 2")
expo = ema(close, ema1)
ma = ema(close, ema2)
avg_1 = avg(expo, ma)
s2 = cross(expo, ma) ? avg_1 : na
//plot(s2, style=plot.style_line, linewidth=3, color=color.red, transp=0)
p1 = plot(expo, color=#00FFFF, linewidth=2, transp=0)
p2 = plot(ma, color=color.orange, linewidth=2, transp=0)
fill(p1, p2, color=color.white, transp=80)
longCondition = crossover(expo, ma)
shortCondition = crossunder(expo, ma)
if testPeriod()
strategy.entry("Long", strategy.long, when=longCondition)
strategy.entry("Short", strategy.short, when=shortCondition)
plotshape(longCondition, title = "Buy Signal", text ="BUY", textcolor =#FFFFFF , style=shape.labelup, size = size.normal, location=location.belowbar, color = #1B8112, transp = 0)
plotshape(shortCondition, title = "Sell Signal", text ="SELL", textcolor = #FFFFFF, style=shape.labeldown, size = size.normal, location=location.abovebar, color = #FF5733, transp = 0)