Chiến lược theo dõi động lực dựa trên tích hợp chỉ số

Tác giả:ChaoZhang, Ngày: 2023-10-17 15:26:49
Tags:

img

Tổng quan

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

Chiến lược logic

Chiến lược sử dụng một chỉ số tùy chỉnh để tích hợp khoảng cách giữa giá và đường trung bình động, được thực hiện như sau:

  1. Tính toán khoảng cách giữa giá và trung bình di chuyển đơn giản 200 thời gian k=close-sma ((close,200)

  2. Định nghĩa thời gian tích lũy s = 29, tích lũy tổng của k trong s thời gian cuối cùng: tổng = 0, cho i = 0 đến s, tổng := tổng + k[i]

  3. Khi sum>0, tín hiệu dài được tạo ra. Khi sum<0, tín hiệu ngắn được tạo ra.

  4. Khi mở vị trí dài, nếu tổng số < 0, đóng vị trí dài. Khi mở vị trí ngắn, nếu tổng số> 0, đóng vị trí ngắn.

Chiến lược đánh giá hướng xu hướng tổng thể bằng cách theo dõi xem tổng số lượng khoảng cách tích lũy giữa giá và đường trung bình động là tích cực hay âm. Khi tích cực là tích cực, nó chỉ ra xu hướng tăng và vị trí dài nên được giữ. Khi tích cực là tiêu cực, nó chỉ ra xu hướng giảm và vị trí ngắn nên được giữ.

Ưu điểm

  1. Bộ tích hợp chỉ số tùy chỉnh có thể xác định hiệu quả hướng xu hướng giá.

  2. Khái niệm tích hợp tích lũy khoảng cách giữa giá và MA, cải thiện độ chính xác xác xác định xu hướng.

  3. Lý thuyết tương đối đơn giản, dễ hiểu và tối ưu hóa.

  4. Điều chỉnh linh hoạt thời gian tích hợp để tối ưu hóa độ nhạy.

  5. Kết quả backtest tốt, lợi nhuận ổn định, áp dụng trong giao dịch trực tiếp.

Rủi ro

  1. Thiết lập thời gian tích hợp không chính xác có thể gây ra phản ứng không nhạy cảm và bỏ lỡ các điểm chuyển hướng xu hướng.

  2. Cài đặt chiều dài MA không chính xác có thể gây ra sự đánh giá sai về xu hướng.

  3. Những sự kiện lớn đột ngột có thể gây ra tín hiệu sai.

  4. Lựa chọn biểu tượng không chính xác, các biểu tượng dễ bay hơi có thể làm suy giảm hiệu quả.

Các giải pháp tương ứng:

  1. Tối ưu hóa thời gian tích hợp để có độ nhạy tốt hơn.

  2. Kiểm tra các chiều dài MA khác nhau để tìm ra chiều dài tối ưu nhất để xác định xu hướng.

  3. Khép chiến lược trước các sự kiện lớn để tránh sai lầm từ những thay đổi giá lớn.

  4. Chọn các biểu tượng biến động thấp để có hiệu suất tốt hơn.

Hướng dẫn cải thiện

  1. Xem xét thêm các chỉ số khác như RSI để xác định toàn diện.

  2. Kết quả tích hợp nghiên cứu sử dụng các loại MA khác nhau.

  3. Hãy thử tối ưu hóa tự động thời gian tích hợp cho các biểu tượng khác nhau.

  4. Thêm các chỉ số khối lượng để tránh sai sót trong các biến động giá lớn.

  5. Sử dụng máy học để tự động tối ưu hóa các thông số cho độ bền.

Kết luận

Chiến lược này đánh giá hướng xu hướng bằng cách sử dụng bộ tích hợp chỉ số tùy chỉnh bằng cách tích lũy khoảng cách giữa giá và MA. Logic đơn giản và rõ ràng, và kết quả backtest là tốt. Nó có thể được cải thiện bằng cách điều chỉnh các thông số tích hợp, thêm các chỉ số phụ trợ, tối ưu hóa tự động vv để có ứng dụng thực tế đáng tin cậy hơn.


/*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)

Thêm nữa