Chiến lược giao thức chéo vàng EMA đôi


Ngày ra đời: 2024-01-22 Sau khi sửa đổi: 2024-01-22
Tác giả: 0 Số lần nhấp: 303
1
Quan tâm
1105
Người quan tâm

双EMA黄金交叉算法策略

Thông tin chi tiết

Chiến lược này tạo ra các tín hiệu giao dịch chéo vàng và chéo chết bằng cách tính toán sự giao thoa giữa đường EMA nhanh và đường EMA chậm. Khi đường EMA nhanh vượt qua đường EMA chậm, nó tạo ra tín hiệu mua; khi đường EMA nhanh vượt qua đường EMA chậm, nó 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 hiệu quả xu hướng thị trường và tạo ra tín hiệu giao dịch trong giai đoạn khởi động xu hướng.

Nguyên tắc chiến lược

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 thực hiện bằng cách thiết lập hai đường EMA khác nhau, đường EMA nhanh được thiết lập thành 10, đường EMA chậm được thiết lập thành 20. Trong đó, đường EMA 10 ngày phản ứng nhanh hơn với biến động giá, trong khi đường 20 ngày phản ứng chậm hơn. Khi đường EMA ngắn đi qua đường EMA dài, đường trung bình ngắn bắt đầu dẫn đường trung bình dài lên, báo hiệu rằng thị trường có thể đi vào trạng thái tăng giá, khi đó tín hiệu mua được tạo ra; ngược lại, khi đường trung bình ngắn đi qua đường trung bình dài, đường trung bình ngắn bắt đầu mất ưu thế dẫn đường trung bình dài, báo hiệu thị trường có thể đi vào trạng thái giảm giá, khi đó tín hiệu bán được tạo ra.

Thông qua nguyên tắc giao thoa của đường EMA chậm, chiến lược này có thể nắm bắt đầy đủ thời điểm chuyển đổi xu hướng thị trường và tạo ra tín hiệu giao dịch kịp thời. Đồng thời, chỉ số EMA có khả năng lọc tín hiệu giả mạo để tránh mở cửa thường xuyên khi thị trường biến động. Điều này cho phép chiến lược này nắm bắt các điểm chuyển đổi thị trường, có khả năng lợi nhuận cao trong khi giảm các giao dịch sai.

Phân tích ưu thế

  • Sử dụng EMA để nắm bắt điểm chuyển đổi thị trường và có lợi nhuận cao hơn
  • Đường EMA nhanh và đường EMA chậm được sử dụng cùng nhau để tận dụng những ưu điểm của nhau
  • EMA tự nó có tác dụng lọc và có thể làm giảm các giao dịch sai
  • Thực hiện đơn giản, dễ hiểu và tối ưu hóa
  • Có thể mở rộng, thêm các chỉ số hỗ trợ

Phân tích rủi ro

  • Sự giao thoa của hai EMA có thể tạo ra tín hiệu sai thường xuyên trong thị trường bất ổn
  • EMA không được thiết lập đúng có thể bỏ lỡ điểm chuyển đổi thị trường
  • Có một số sự chậm trễ và có thể bỏ lỡ cơ hội hoạt động đường ngắn.
  • Không thể đối phó với sự biến đổi mạnh mẽ

Đối với các rủi ro trên, tối ưu hóa có thể được thực hiện bằng cách đưa ra các chỉ số bổ sung, chẳng hạn như tăng điều kiện lọc giao dịch, kết hợp chỉ số MACD để tránh tín hiệu sai, sử dụng tốc độ phản ứng EMA tăng tốc tự điều chỉnh, v.v.

Định hướng tối ưu

Các phương án có thể được tối ưu hóa hơn trong chiến lược này bao gồm:

  • Tăng độ lọc đầu tư: ví dụ như kết hợp các chỉ số khối lượng giao dịch để tránh phá vỡ giả ở mức thấp
  • Kết hợp với các chỉ số hỗ trợ như MACD, tránh thêm các tín hiệu sai
  • Tạo EMA thích nghi, điều chỉnh dynamically các thông số EMA theo tình hình thị trường
  • Hoạt động phối hợp nhiều khung thời gian để tận dụng lợi thế của EMA khác nhau
  • Tối ưu hóa chiến lược dừng lỗ, khóa lợi nhuận bằng cách di chuyển dừng lỗ, tỷ lệ dừng lỗ, v.v.
  • Kết hợp các công nghệ như học sâu để tối ưu hóa các thông số tự động

Tóm lại

Chiến lược này có hiệu quả thực tế mạnh mẽ bằng cách nắm bắt các điểm biến đổi quan trọng của thị trường thông qua nguyên tắc giao thoa đường chậm nhanh của hai EMA. Kết hợp với các chỉ số phụ trợ và tối ưu hóa dừng lỗ, có thể tăng cường thêm sự ổn định của chiến lược. Ý tưởng chiến lược đơn giản, rõ ràng, đáng được học và sử dụng theo định lượng, cũng có nhiều khả năng mở rộng và tối ưu hóa.

Mã nguồn chiến lược
                
                    /*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)


                
            
Nhiều hơn nữa