Chiến lược theo xu hướng trung bình di chuyển dần dần sử dụng nhiều trung bình di chuyển của các giai đoạn khác nhau để nắm bắt sự thay đổi xu hướng giá, kết hợp với các chỉ số dao động để xác định các khu vực mua quá mức và bán quá mức, tạo thành xu hướng mua thấp và bán cao theo chiến lược giao dịch. Chiến lược này phù hợp với các vị trí nắm giữ trung hạn đến dài hạn để theo dõi các thị trường xu hướng quan trọng.
Chiến lược này sử dụng nhiều bộ trung bình động, chẳng hạn như MAs 18-, 26-, 36 giai đoạn, để nắm bắt xu hướng giá. Khi MAs ngắn hơn vượt qua trên MAs dài hơn, nó báo hiệu xu hướng tăng, do đó đi dài. Khi MAs ngắn hơn vượt qua dưới MAs dài hơn, nó chỉ ra xu hướng giảm, do đó đi ngắn.
Trong khi đó, các chỉ số dao động như MACD, RSI, EFI được sử dụng để xác định các điều kiện mua quá mức và bán quá mức. Ví dụ, MACD chuyển từ âm sang dương cho thấy đi dài, trong khi chuyển từ dương sang âm cho thấy đi ngắn. RSI rút lui từ mức cao là tín hiệu cho việc mua ngắn, trong khi phục hồi từ mức thấp là tín hiệu cho việc mua dài. EFI dưới 0 có nghĩa là mua dài, trong khi trên 0 có nghĩa là mua ngắn.
Quy tắc nhập cảnh:
Long: Short MA crossover up Long MA AND MACD>0 AND RSI rebounds from lows AND EFI<0 Long MA AND MACD>0 AND RSI rebounds from lows AND EFI<0
Đường ngắn: Đường chéo MA ngắn xuống Đường dài MA và MACD<0 và RSI rút lui từ mức cao và EFI>0
Quy tắc dừng lỗ:
Long SL: EFI trên ngưỡng và giá vượt dưới mức MA chỉ định
Short SL: EFI dưới ngưỡng và giá vượt quá MA chỉ định
Nhiều MA ghi lại các điểm thay đổi xu hướng lớn.
Các combo dao động tránh theo đuổi mức cao và bán mức thấp.
Các quy tắc SL xem xét cả xu hướng và dòng tiền, kiểm soát rủi ro hiệu quả.
Các thông số tối ưu hóa thông qua kiểm tra hậu quả rộng rãi, thích nghi với hầu hết các môi trường thị trường.
Tần suất giao dịch trung bình, tín hiệu ổn định, phù hợp với việc theo dõi xu hướng dài hạn.
Các vụ va chạm đột ngột có thể làm vô hiệu hóa SL, phạm vi SL nên được mở rộng.
Quá nhiều tín hiệu trong các thị trường dao động, các thông số nên được điều chỉnh.
Giữ quá lâu có thể làm tăng tổn thất, MAs ngắn hơn có thể mất SL nhanh hơn.
Backtest quá phù hợp, kết quả giao dịch thực sự đang chờ xác nhận.
Tối ưu hóa các tham số cho lợi nhuận cao hơn và tần số phù hợp.
Thêm các thuật toán học máy để tối ưu hóa các tham số một cách năng động.
Xây dựng cơ chế SL thích nghi dựa trên các điều kiện thị trường khác nhau.
Thêm thêm bộ lọc để xác định tín hiệu nhập cảnh tốt hơn.
Tích hợp các chiến lược kích thước vị trí để kiểm soát kích thước đặt cược đơn.
Chiến lược theo xu hướng trung bình di chuyển dần dần theo dõi hiệu quả các xu hướng chính bằng cách xác định hướng xu hướng với nhiều MAs và nhập vào các tín hiệu lọc, đạt được lợi nhuận ổn định thông qua nắm giữ dài hạn. Chiến lược đã cho thấy độ bền thông qua tối ưu hóa tham số nhưng vẫn yêu cầu cải thiện kiểm soát rủi ro và khả năng thích nghi để giảm rút tiền và tăng tỷ lệ thắng. Nhìn chung, triết lý cốt lõi cho thấy tiềm năng mạnh mẽ cho nghiên cứu và ứng dụng hơn nữa.
/*backtest start: 2023-09-25 00:00:00 end: 2023-10-25 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © murdocksilva //@version=5 strategy("Daily_Mid Term_Consulting BOLT") //calculo longuitud longuitud = input(58, title= "longitud_sma") px = ta.sma(close, 1) px2 = ta.sma(low, 1) Length1 = input.int(18) Length2 = input.int(18) Length3 = input.int(26) Length4 = input.int(36) Length5 = input.int(78) Length6 = input.int(1) Length7 = input.int(1500) Length8 = input.int(58) Length9 = input.int(3000) Length10 = input.int(2) Length11 = input.int(14) ma1 = ta.sma(low, Length1) ma2 = ta.sma(high, Length2) ma3 = ta.sma(close, Length3) ma4 = ta.sma(close, Length4) ma5 = ta.sma(close, Length5) ma6 = ta.sma(close, Length6) ma7 = ta.sma(close, Length7) ma8 = ta.sma(close, Length8) ma9 = ta.sma(close, Length9) ma10 = ta.sma(close, Length10) ma11 = ta.sma(close, Length11) // calculo EFI efi = (close[1]-close) * volume / 1000 efi_indicador = (efi[1] + efi) / 2 //Variable RSI - calculo desv estandar b = (px-ma10)*(px-ma10) b2 = (px[1]-ma10[1])*(px[1]-ma10[1]) c = b + b2 c2 = c / 2 desv = math.sqrt(c2)/10 //calculo MACD macd = ma4 - ma5 //calculo RSI rsi = ta.rsi(close, 9) // calculo Divergencia ma = ta.sma(close, longuitud) dist = close - ma porcentaje = dist * 100 / close ma_dista = ta.sma(porcentaje, 333) //condición de entrada y salida long long = ma1[1] < ma1 and ma2[1] < ma2 and macd > 0 and px > ma3 and efi_indicador < 9 and px > ma7 and macd[1] < macd clong = efi_indicador > 22000 and px < ma8 strategy.entry("BUY", strategy.long, when = long) strategy.close("BUY", when = clong) //condición de entrada y salida short short = ma1[1] > ma1 and ma2[1] > ma2 and macd < 0 and px < ma3 and efi_indicador > 9 and macd[1] > macd cshort = efi_indicador < 14000 and px > ma8 and ma11 > desv strategy.entry("SELL", strategy.short, when = short) strategy.close("SELL", when = cshort) //SL Y TP //strategy.exit("long exit", "Daily_Mid Term_Consulting BOLT", profit = close * 40 / syminfo.mintick, loss = close * 0.02 / syminfo.mintick) //strategy.exit("shot exit", "Daily_Mid Term_Consulting BOLT", profit = close * 40 / syminfo.mintick, loss = close * 0.02 / syminfo.mintick) // GRAFICA smas plot(ma1, color=color.new(color.orange, 0)) plot(ma2, color=color.new(color.orange, 0)) plot(ma3, color=color.new(color.orange, 0)) plot(ma4, color=color.new(color.orange, 0)) plot(ma5, color=color.new(color.orange, 0)) plot(ma6, color=color.new(color.green, 0)) plot(ma7, color=color.new(color.orange, 0)) plot(ma8, color=color.new(color.orange, 0)) plot(ma9, color=color.new(color.orange, 0)) //GRAFICA MACD plot(macd, color=color.new(color.red, 0), style = plot.style_columns) //GRAFICA DIVERGENCIA plot(porcentaje, style = plot.style_columns) //GRAFICA MA DIVERGENCIA plot(ma_dista, color=color.new(color.white, 0)) //GRAFICA MA DIVERGENCIA plot(desv, color=color.new(color.blue, 0)) //GRAFICA EFI plot(efi_indicador, color=color.new(color.yellow, 0)) // GRAFICA RSI l1 = hline(70, color=color.new(color.green, 0)) l2 = hline(30, color=color.new(color.green, 0)) plot(rsi, color=color.new(color.white, 0)) //prueba 1 stop loss and take profit //sl = 0.05 //tp = 0.1 //calculo de precio para sl y tp //longstop=strategy.position_avg_price*(1-sl) //longprofit=strategy.position_avg_price*(1+tp) //shortstop=strategy.position_avg_price*(1+sl) //shortprofit=strategy.position_avg_price*(1-tp) //if (long) // strategy.exit("BUY", strategy.long) //sl and tp long|short //if strategy.entry("BUY", strategy.long) //if strategy.position_avg_price > 0 //strategy.exit("BUY", limit = longprofit, stop = longstop) //if strategy.position_avg_price < 0 //strategy.exit("SELL", limit = shortprofit, stop=shortstop)