Xu hướng theo chiến lược dựa trên độ lệch trơn

Tác giả:ChaoZhang, Ngày: 2024-02-20 11:15:54
Tags:

img

Tổng quan

Chiến lược này sử dụng độ lệch giữa chi phí trung bình ngắn hạn cao thấp và ngắn hạn và dài hạn để xác định xu hướng. Nó nhằm mục đích tăng độ nhạy cảm ngắn hạn và giảm chi phí hợp nhất bằng cách mở rộng các chức năng trung bình làm mịn trước và sau đó, để giảm tổn thất nhỏ trong quá trình hợp nhất trong khi duy trì lợi nhuận đáng kể khi xu hướng xuất hiện.

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

  1. Tính toán chi phí ngắn hạn: Sử dụng hàm ta.highest và ta.lowest để tính toán giá cao nhất và thấp nhất của các nến ngắn hạn gần đây, và lấy mức trung bình là chi phí ngắn hạn

  2. Tính toán chi phí dài hạn: Sử dụng hàm ta.sma để tính trung bình di chuyển đơn giản của giá đóng cửa của nến dài hạn gần đây như chi phí dài hạn

  3. Tính toán độ lệch: Trừ chi phí dài hạn từ chi phí ngắn hạn

  4. Phản lệch trơn tru: Trơn tru độ lệch để giảm các đánh giá sai bằng cách sử dụng ta.sma cho đường trung bình di chuyển đơn giản

  5. Xác định xu hướng: Nếu sai lệch trơn hơn ngưỡng, đánh giá nó là xu hướng tăng. Nếu thấp hơn ngưỡng âm, đánh giá nó là xu hướng giảm.

  6. Nhập và thoát: Đi dài khi theo dõi xu hướng tăng và đi ngắn khi theo dõi xu hướng giảm.

Phân tích lợi thế

  1. Tăng độ nhạy cảm ngắn hạn để nhanh chóng nắm bắt các cơ hội ngắn hạn
  2. Việc xử lý mượt mà làm giảm khả năng đánh giá sai
  3. Cài đặt kênh giảm vị trí mở không cần thiết
  4. Theo dõi các xu hướng chặt chẽ cho phép dừng lỗ kịp thời và lợi nhuận

Phân tích rủi ro

  1. Tập trung ngắn hạn có thể dễ dàng dẫn đến bị mắc kẹt, phạm vi dừng lỗ cần phải được mở rộng thích hợp
  2. Các thông số cần thử nghiệm lặp đi lặp lại, cài đặt không chính xác các ngày ngắn hạn, dài hạn và các thông số làm mịn độ lệch có thể dẫn đến quá nhạy hoặc chậm
  3. Phạm vi kênh cần phải được thiết lập hợp lý, quá lớn hoặc nhỏ có thể cả hai dẫn đến vấn đề
  4. Có khả năng bị mắc kẹt trong các vị trí mở lặp đi lặp lại trong các thị trường bên cạnh biến động

Giải quyết rủi ro:

  1. Tăng phù hợp phạm vi dừng lỗ để tránh bẫy
  2. Tối ưu hóa cài đặt tham số để cân bằng độ nhạy và tỷ lệ đánh giá sai
  3. Kiểm tra và tối ưu hóa các thông số kênh
  4. Thêm các điều kiện lọc để tránh các vị trí mở không cần thiết trong thời gian biến động

Hướng dẫn tối ưu hóa

  1. Tối ưu hóa các điểm cao và thấp ngắn hạn, chẳng hạn như tính toán chi phí ngắn hạn mượt mà hơn như PA hoặc trung bình cân nhắc
  2. Kiểm tra các phương pháp tính toán chi phí dài hạn khác nhau
  3. Thử các thuật toán làm mịn độ lệch khác nhau
  4. Tối ưu hóa các tham số kênh
  5. Thêm các bộ lọc mở như đột phá, tăng âm lượng vv
  6. Sự đảo ngược Thêm các cơ hội giao dịch đảo ngược

Tóm lại

Trong tổng thể, đây là một chiến lược theo xu hướng rất đơn giản và trực tiếp. So với các chỉ số phổ biến như trung bình động, bằng cách tính toán độ lệch giữa chi phí ngắn hạn và dài hạn, nó có thể đánh giá thay đổi xu hướng nhanh hơn. Trong khi đó, xử lý làm mịn cũng cung cấp sự linh hoạt hơn trong tối ưu hóa tham số, cho phép tỷ lệ nhạy cảm và đánh giá sai được cân bằng bằng cách điều chỉnh các tham số làm mịn. Tóm lại, chiến lược này có các đặc điểm như linh hoạt, trực tiếp và có thể tùy chỉnh cao. Đây là một chiến lược hứa hẹn đáng để khám phá sâu hơn. Bằng cách tiếp tục tối ưu hóa các tham số và thêm các điều kiện đánh giá phụ trợ, có tiềm năng để nâng cao hơn nữa hiệu suất của chiến lược.


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © dead0001ing1

//@version=5
strategy("Trend-Following Indicator", overlay=true)

// 設置參數
shortTerm = input(5, "Short Term")
longTerm = input(20, "Long Term")
smooth = input(5, "Smoothing")
threshold = input(0, "Threshold")

// 計算短期成本
shortH = ta.highest(high, shortTerm)
shortL = ta.lowest(low, shortTerm)
shortCost = (shortH + shortL) / 2

// 計算長期成本
longCost = ta.sma(close, longTerm)

// 計算均差
deviation = shortCost - longCost

// 平滑均差
smoothedDeviation = ta.sma(deviation, smooth)

// 判斷順勢
isTrendingUp = smoothedDeviation > threshold
isTrendingDown = smoothedDeviation < -threshold

// 顯示順勢信號
plotshape(isTrendingUp, title="Trending Up", location=location.belowbar, color=color.green, style=shape.labelup, text="Up", size=size.small)
plotshape(isTrendingDown, title="Trending Down", location=location.abovebar, color=color.red, style=shape.labeldown, text="Down", size=size.small)

// 定義進出場策略
if isTrendingUp
    strategy.entry("Long", strategy.long)
    strategy.close("Long", when=isTrendingDown)
if isTrendingDown
    strategy.entry("Short", strategy.short)
    strategy.close("Short", when=isTrendingUp)



Thêm nữa