Chiến lược theo xu hướng trung bình động dần dần


Ngày tạo: 2023-10-26 17:08:43 sửa đổi lần cuối: 2023-10-26 17:08:43
sao chép: 0 Số nhấp chuột: 666
1
tập trung vào
1617
Người theo dõi

Chiến lược theo xu hướng trung bình động dần dần

Tổng quan

Chiến lược theo dõi xu hướng đường trung bình dần dần sử dụng các đường trung bình di chuyển trong nhiều chu kỳ khác nhau, để nắm bắt sự thay đổi xu hướng của giá, hỗ trợ các chỉ số dao động để xác định khu vực mua quá mức, để thực hiện chiến lược giao dịch theo dõi xu hướng mua quá mức. Chiến lược này được áp dụng cho các vị trí đường dài trung bình, theo dõi xu hướng rõ ràng hơn.

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

Chiến lược này sử dụng nhiều nhóm trung bình di chuyển như chu kỳ 18, chu kỳ 26, chu kỳ 36 để nắm bắt xu hướng giá. Khi đường trung bình ngắn hạn vượt qua đường trung bình dài hạn, nó được coi là đang có xu hướng tăng; Khi đường trung bình ngắn hạn vượt qua đường trung bình dài hạn, nó được coi là đang có xu hướng giảm.

Đồng thời, chiến lược cũng sử dụng các chỉ số dao động như MACD, RSI, EFI để đánh giá khu vực quá mua quá bán. Ví dụ: đường hình trụ MACD được tăng từ chuyển đổi âm tính, được giảm từ chuyển đổi âm tính; RSI cao khi giảm, giảm khi tăng; chỉ số EFI ít hơn 0 khi tăng, lớn hơn 0 khi giảm.

Quy tắc nhập cảnh:

Nhiều đơn: Đường trung bình ngắn trên đường trung bình dài AND MACD>0 AND RSI giảm và EFI <0

Blank: đường trung bình ngắn đi qua đường trung bình dài AND MACD <0 AND RSI cao trở lại AND EFI> 0

Quy tắc dừng lỗ:

Nhiều lệnh dừng: chỉ số EFI lớn hơn mức giảm giá và giá giảm xuống mức trung bình được chỉ định

Đánh giá dừng lỗ: chỉ số EFI nhỏ hơn giá trị giảm và giá phá vỡ đường trung bình được chỉ định

Lợi thế chiến lược

  1. Robustness and anti-fragility are key characteristics that help ensure resilience over time to capture major trend change points.

  2. Các chỉ số biến động được sử dụng để đánh giá các khu vực quá mua và quá bán, tránh theo đuổi giá cao và giá thấp.

  3. Quy tắc dừng lỗ có tính đến xu hướng và dòng tiền, kiểm soát rủi ro hiệu quả.

  4. Các tham số chiến lược được tối ưu hóa qua nhiều lần thử nghiệm, có thể thích ứng với hầu hết các trường hợp.

  5. Tần số hoạt động trung bình, tín hiệu giao dịch khá ổn định, thực hiện theo dõi xu hướng giữ dây dài.

Phân tích rủi ro

  1. Sự cố đột ngột có thể dẫn đến giảm lỗ hổng, nên mở rộng mức lỗ hổng.

  2. Tần suất giao dịch có thể quá cao trong tình trạng chấn động, nên điều chỉnh các tham số thích hợp để giảm tần suất giao dịch.

  3. Thời gian nắm giữ quá dài có thể dẫn đến tổn thất mở rộng, nên rút ngắn chu kỳ trung bình một cách thích hợp và dừng lỗ kịp thời.

  4. Có nguy cơ phù hợp trong quá trình phản hồi, hiệu quả thực tế đang được kiểm tra.

Hướng tối ưu hóa

  1. Tối ưu hóa tần suất giao dịch và lợi nhuận để tìm ra sự kết hợp tốt nhất.

  2. Thêm thuật toán học máy, tham số tối ưu hóa động, thích ứng với sự thay đổi của thị trường.

  3. Tăng cơ chế dừng lỗ thích ứng, sử dụng mức dừng lỗ khác nhau trong các trường hợp khác nhau.

  4. Kết hợp nhiều chỉ số để xác định thời điểm nhập cảnh, tăng sự ổn định chiến lược.

  5. Tăng chiến lược quản lý tiền, kiểm soát quy mô vị trí đơn lẻ, quản lý rủi ro tổng thể.

Tóm tắt

Chiến lược theo dõi xu hướng đường trung bình dần dần, đánh giá hướng xu hướng bằng nhiều đường trung bình, kết hợp với bộ lọc chỉ số vào thời điểm, có thể theo dõi hiệu quả xu hướng lớn, đạt được mục đích giữ thu nhập ổn định của đường dài. Chiến lược đã có một sự ổn định nhất định thông qua tối ưu hóa tham số, nhưng vẫn cần phải hoàn thiện thêm cơ chế kiểm soát rủi ro và tự thích ứng, giảm rút lui và nâng cao tỷ lệ thắng. Nói chung, chiến lược này là một chương trình theo dõi xu hướng thực tế đơn giản, tâm lý cốt lõi có khả năng mở rộng mạnh mẽ, đáng để nghiên cứu thêm.

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