Chiến lược này tạo ra các tín hiệu giao dịch dựa trên sự chéo chéo của hai đường trung bình động với các khoảng thời gian khác nhau.
Chiến lược cho phép người dùng chọn loại và độ dài của đường trung bình động. Các loại bao gồm SMA, EMA, VWMA, vv. Độ dài xác định thời gian của đường trung bình động.
Hai đường trung bình động được tính dựa trên lựa chọn của người dùng. Nếu đường nhanh hơn vượt qua đường chậm hơn, một đường chéo vàng được hình thành và một tín hiệu mua được tạo ra. Nếu đường nhanh hơn vượt qua đường chậm hơn, một đường chéo chết được hình thành và một tín hiệu bán được tạo ra.
Khi giá trung bình ngắn hạn cao hơn giá trung bình dài hạn, nó được coi là xu hướng tăng và nên nắm giữ các vị trí dài.
Rủi ro có thể được quản lý bằng cách tối ưu hóa các tham số, kết hợp các chỉ số khác để tạo tín hiệu, thực hiện dừng lỗ / lấy lợi nhuận, v.v.
Chiến lược này có một logic đơn giản và rõ ràng để tạo ra tín hiệu với giao thoa hai MAs. Nó cho phép điều chỉnh tham số linh hoạt và kết hợp với các chiến lược khác để tối ưu hóa, nhưng rủi ro của các thị trường khác nhau nên được theo dõi và quản lý tiền là rất quan trọng.
/*backtest start: 2023-09-09 00:00:00 end: 2023-09-13 00:00:00 period: 10m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy(title = "Noro's MAs Tests", shorttitle = "MAs tests", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value=100.0, pyramiding=0) len = input(30, defval = 30, minval = 2, maxval = 1000, title = "MA length") type = input(1, defval = 1, minval = 1, maxval = 7, title = "Type") src = input(close, defval = close, title = "Source") //DEMA dema = 2 * ema(src, len) - ema(ema(close, len), len) //TEMA xPrice = close xEMA1 = ema(src, len) xEMA2 = ema(xEMA1, len) xEMA3 = ema(xEMA2, len) tema = 3 * xEMA1 - 3 * xEMA2 + xEMA3 //KAMA xvnoise = abs(src - src[1]) nfastend = 0.20 nslowend = 0.05 nsignal = abs(src - src[len]) nnoise = sum(xvnoise, len) nefratio = iff(nnoise != 0, nsignal / nnoise, 0) nsmooth = pow(nefratio * (nfastend - nslowend) + nslowend, 2) kama = nz(kama[1]) + nsmooth * (src - nz(kama[1])) //PriceChannel lasthigh = highest(src, len) lastlow = lowest(src, len) center = (lasthigh + lastlow) / 2 ma = type == 1 ? sma(src, len) : type == 2 ? ema(src, len) : type == 3 ? vwma(src, len) : type == 4 ? dema : type == 5 ? tema : type == 6 ? kama : type == 7 ? center : 0 plot(ma, color = blue, linewidth = 3, transp = 0) trend = low > ma ? 1 : high < ma ? -1 : trend[1] longCondition = trend == 1 and trend[1] == -1 if (longCondition) strategy.entry("Long", strategy.long) shortCondition = trend == -1 and trend[1] == 1 if (shortCondition) strategy.entry("Short", strategy.short)