Đây là một chiến lược giao dịch tự động đi dài hoặc ngắn dựa trên sự chéo chéo của hai đường trung bình động theo cấp số nhân (EMA) với các khoảng thời gian khác nhau. Nó sử dụng các chỉ số kỹ thuật đơn giản và rất phù hợp cho người mới bắt đầu học và thực hành.
Chiến lược này sử dụng hai EMA, một là EMA trên khung thời gian lớn hơn, và một là EMA trên khung thời gian hiện tại. Khi EMA hiện tại vượt qua trên EMA lớn hơn, nó sẽ dài. Khi EMA hiện tại vượt qua dưới EMA lớn hơn, nó sẽ ngắn.
Cụ thể, chiến lược đầu tiên xác định hai thông số EMA:
Sau đó nó tính toán hai EMA:
Cuối cùng, nó tham gia vào các hoạt động dựa trên:
Bằng cách đánh giá hướng xu hướng thông qua các chéo giữa hai EMA của các giai đoạn khác nhau, nó tự động hóa giao dịch.
Chiến lược có những lợi thế sau:
Chiến lược này cũng có một số rủi ro:
Rủi ro có thể được giảm bằng cách thiết lập dừng lỗ, tối ưu hóa các tham số, thêm các chỉ số khác v.v.
Chiến lược có thể được tối ưu hóa trong các khía cạnh sau:
Chiến lược chéo EMA nắm bắt xu hướng với các chỉ số đơn giản, phù hợp cho người mới bắt đầu học và thực hành. Có nhiều chỗ để tối ưu hóa bằng cách giới thiệu các chỉ số và mô hình kỹ thuật hơn để phát triển các chiến lược giao dịch định lượng hiệu quả hơn.
/*backtest start: 2023-09-16 00:00:00 end: 2023-10-16 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy("Noro's Singapore Strategy", shorttitle = "Singapore str", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0) //Settings needlong = input(true, defval = true, title = "Long") needshort = input(true, defval = true, title = "Short") capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot") tf = input("D", title = "Big Timeframe") len = input(3, minval = 1, title = "MA length") src = input(close, title = "MA Source") fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year") toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year") frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month") tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month") fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day") today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day") //MAs ma1 = request.security(syminfo.tickerid, tf, sma(src, len)) ma2 = sma(src, len) plot(ma1, linewidth = 2, color = blue, title = "Big TF MA") plot(ma2, linewidth = 2, color = red, title = "MA") //Trading size = strategy.position_size lot = 0.0 lot := size != size[1] ? strategy.equity / close * capital / 100 : lot[1] if ma2 > ma1 strategy.entry("L", strategy.long, needlong ? lot : 0, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))) if ma2 < ma1 strategy.entry("S", strategy.short, needshort ? lot : 0, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))) if time > timestamp(toyear, tomonth, today, 23, 59) strategy.close_all()