Chiến lược động lượng theo xu hướng


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

Chiến lược động lượng theo xu hướng

Tổng quan

Chiến lược này dựa trên các chỉ số tích hợp tùy chỉnh, theo dõi xu hướng bằng cách tính tích lũy khoảng cách giữa giá và đường trung bình di chuyển để xác định xu hướng của giá.

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

Chiến lược này sử dụng các chỉ số tùy chỉnh để tích lũy khoảng cách giữa giá và đường trung bình di chuyển, cụ thể là:

  1. Tính giá tương đối với chiều dài của đường trung bình di chuyển đơn giản 200 k=close-sma ((close,200)

  2. Định nghĩa chu kỳ tích lũy s = 29, tích lũy giá trị của k trong chu kỳ s gần nhất: sum = 0, for i = 0 to s, sum : = sum + k[i]

  3. Khi sum>0 phát ra tín hiệu làm nhiều, khi sum phát ra tín hiệu làm trống

  4. Khi tham gia giao dịch đa vị trí, nếu sum<0 thì sẽ bị lỗ; khi tham gia giao dịch ngắn hạn, nếu sum>0 thì sẽ bị lỗ

Chiến lược này theo dõi tổng tích tích tích cực của giá với khoảng cách trung bình di chuyển để xác định hướng xu hướng tổng thể của giá, khi tích cực và tích cực, coi giá đang trong xu hướng tăng, nên giữ nhiều đầu; khi tích cực và âm tính, coi giá đang trong xu hướng giảm, nên giữ đầu không.

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

  1. Sử dụng bộ tích hợp chỉ số tùy chỉnh để xác định hiệu quả xu hướng giá

  2. Sử dụng tư duy tích hợp để tích lũy khoảng cách giữa giá và đường trung bình di chuyển, có thể cải thiện độ chính xác trong việc đánh giá xu hướng

  3. Logic tương đối đơn giản, dễ hiểu thực hiện, thuận tiện để tối ưu hóa cải tiến

  4. Có thể điều chỉnh linh hoạt các tham số chu kỳ tích hợp để tối ưu hóa tính nhạy cảm của tích hợp để xác định xu hướng

  5. Khảo sát hoạt động tốt, thu nhập ổn định, có thể áp dụng

Rủi ro chiến lược

  1. Thiết lập vòng tích phân không đúng cách có thể khiến tích phân không phản ứng nhạy cảm, bỏ lỡ điểm biến xu hướng

  2. Thiết lập chiều dài trung bình di chuyển không đúng cách có thể dẫn đến việc tích hợp sai xu hướng giá

  3. Sự kiện lớn đột ngột dẫn đến biến động giá đột ngột, có thể khiến bộ tích phân phát ra tín hiệu sai

  4. Lựa chọn giống giao dịch không phù hợp, chẳng hạn như chọn giống có tỷ lệ biến động quá cao, sẽ làm cho tích lũy không hiệu quả

Giải pháp đối phó với rủi ro:

  1. Tối ưu hóa tham số chu kỳ tích phân để tích phân nhạy hơn với thay đổi xu hướng

  2. Kiểm tra hiệu quả của các đường trung bình di chuyển với các độ dài khác nhau, chọn độ dài có thể xác định hiệu quả xu hướng

  3. Tắt chiến lược trước các sự kiện quan trọng để tránh các tín hiệu sai lầm do biến động giá lớn

  4. Lựa chọn các loại giao dịch có biến động thấp để tích lũy hiệu quả hơn

Hướng tối ưu hóa chiến lược

  1. Có thể xem xét thêm các chỉ số hỗ trợ khác, chẳng hạn như RSI, để tạo ra phán đoán tổng hợp dựa trên tích hợp

  2. Có thể nghiên cứu hiệu ứng tích hợp của các loại trung bình di chuyển khác nhau với khoảng cách giá

  3. Có thể thử tự động tối ưu hóa tham số chu kỳ tích hợp để nó phù hợp với các loại giao dịch khác nhau

  4. Có thể thêm các chỉ số khối lượng giao dịch để tránh các tích hợp có thể tạo ra tín hiệu sai khi giá dao động mạnh

  5. Các tham số tích hợp có thể được tự động tối ưu hóa thông qua các phương pháp như học máy để làm cho chiến lược trở nên mạnh mẽ hơn

Tóm tắt

Chiến lược này có thể được cải thiện bằng cách điều chỉnh tham số tích phân, thêm các chỉ số phụ trợ hoặc tối ưu hóa tự động, để làm cho chiến lược ổn định và đáng tin cậy hơn trong thực tế. Nhìn chung, chiến lược này có thể là một chiến lược theo dõi xu hướng định lượng được áp dụng thực tế.

Mã nguồn chiến lược
/*backtest
start: 2023-10-09 00:00:00
end: 2023-10-16 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("Indicator Integrator Strat",default_qty_type = strategy.percent_of_equity, default_qty_value = 100,currency="USD",initial_capital=100, overlay=true)

l = input(defval=170,title="Length for indicator")
s = input(title="Length of summation",defval=29)
a= sma(close,l)
r=roc(close,l)
k=close-a
sum = 0
for i = 0 to s
    sum := sum + k[i]
plot(a,color=yellow,linewidth=2,transp=0)
//bc =  iff( sum > 0, white, teal)
//plot(sum,color=bc, transp=20, linewidth=3,style=columns)
//plot(sma(sum,3),color=white)
//hline(0)

inpTakeProfit = input(defval = 0, title = "Take Profit", minval = 0)
inpStopLoss = input(defval = 0, title = "Stop Loss", minval = 0)
inpTrailStop = input(defval = 0, title = "Trailing Stop Loss", minval = 0)
inpTrailOffset = input(defval = 0, title = "Trailing Stop Loss Offset", minval = 0)
useTakeProfit = inpTakeProfit >= 1 ? inpTakeProfit : na
useStopLoss = inpStopLoss >= 1 ? inpStopLoss : na
useTrailStop = inpTrailStop >= 1 ? inpTrailStop : na
useTrailOffset = inpTrailOffset >= 1 ? inpTrailOffset : na


longCondition = sum>0
exitlong = sum<0

shortCondition = sum<0
exitshort = sum>0

strategy.entry(id = "Long", long=true, when = longCondition)
strategy.close(id = "Long", when = exitlong)
strategy.exit("Exit Long", from_entry = "Long", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset, when=exitlong)

strategy.entry(id = "Short", long=false, when = shortCondition)
strategy.close(id = "Short", when = exitshort)
strategy.exit("Exit Short", from_entry = "Short", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset, when=exitshort)