Xu hướng theo chiến lược mua giảm bán đỉnh

Tác giả:ChaoZhang, Ngày: 2023-10-24 13:54:18
Tags:

img

Tổng quan

Chiến lược này thực hiện xu hướng tự động sau khi giao dịch bằng cách tính Bollinger Bands để xác định mức giảm và đỉnh và sử dụng trung bình động dài hạn và ngắn hạn để xác định hướng xu hướng tổng thể.

Chiến lược logic

Các thành phần chính của chiến lược là:

  1. Tính toán Bollinger Bands với dải trên và dưới dựa trên giá đóng và độ lệch chuẩn.

  2. Xác định xu hướng dài hạn và ngắn hạn bằng cách sử dụng SMA 300 và 20 giai đoạn.

  3. Tạo tín hiệu mua khi đóng phá vỡ dưới dải dưới trong khi SMA dài ở trên và SMA ngắn xuất hiện.

  4. Tạo tín hiệu bán khi đóng phá vỡ trên dải trên trong khi SMA dài ở dưới và SMA ngắn biến xuống.

  5. Sử dụng lệnh OCO để đặt dừng lỗ và lấy lợi nhuận.

Với thiết kế này, chiến lược có thể tự động xác định các cơ hội mua giảm và bán đỉnh dọc theo hướng xu hướng chính.

Phân tích lợi thế

Những lợi thế của chiến lược này bao gồm:

  1. Khám phá xu hướng tự động mà không cần đánh giá bằng tay.

  2. Có hệ thống nắm bắt giảm cho cơ hội mua.

  3. Hệ thống xác định các cơ hội bán hàng cao điểm để kiếm lợi nhuận.

  4. Kiểm soát rủi ro hiệu quả bằng cách dừng lỗ và lấy lợi nhuận.

  5. Loại bỏ các tín hiệu không hợp lệ để cải thiện tỷ lệ chiến thắng.

  6. Xu hướng linh hoạt sau khi điều chỉnh vị trí.

  7. Logic rõ ràng và dễ hiểu và tối ưu hóa.

Phân tích rủi ro

Những rủi ro chính cần xem xét:

  1. Lựa chọn chứng khoán không phù hợp có thể làm thất bại việc theo dõi xu hướng.

  2. Điều chỉnh tham số không chính xác có thể gây ra quá mức giao dịch hoặc bỏ lỡ giao dịch.

  3. Sự đảo ngược xu hướng từ các sự kiện đột ngột có thể dẫn đến tổn thất lớn hơn.

  4. Dừng lỗ quá chặt có thể gây ra dừng quá mức.

  5. Không đủ thanh khoản có thể ngăn chặn việc thực hiện đầy đủ.

  6. Chuẩn bị quá mức với thời gian kiểm tra không đủ.

Các giải pháp bao gồm: chọn cổ phiếu thanh khoản với xu hướng rõ ràng; tối ưu hóa các tham số; theo dõi tin tức; thư giãn dừng lỗ; đánh giá khối lượng giao dịch thực sự; mở rộng thời gian kiểm tra lại.

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

Một số cách để tối ưu hóa chiến lược:

  1. Tối ưu hóa các thông số như thời gian Bollinger, hệ số nhân độ lệch chuẩn và thời gian trung bình động.

  2. Thêm các phương pháp dừng lỗ như dừng theo dõi hoặc dừng trung bình di chuyển để kiểm soát tốt hơn rủi ro.

  3. Bao gồm việc phân loại vị trí dựa trên các mức chính để cải thiện hiệu quả sử dụng vốn.

  4. Thêm bộ lọc âm lượng để tránh sự đột phá không hợp lệ với âm lượng thấp.

  5. Thêm chỉ số sức mạnh tương đối để xác định xu hướng mua / bán.

  6. Đưa ra máy học để điều chỉnh tham số tự động và đánh giá chiến lược.

  7. Kết hợp với các chiến lược khác để tạo ra danh mục đầu tư đa chiến lược để tăng độ bền.

Những tối ưu hóa này có thể tăng cường hiệu suất và sự ổn định của chiến lược.

Tóm lại

Chiến lược này cung cấp một cách tiếp cận rõ ràng và dễ hiểu để có hệ thống mua giảm và bán đỉnh dọc theo xu hướng. Với kiểm soát rủi ro thích hợp, nó có tiềm năng lợi nhuận tốt. Những cải tiến hơn nữa có thể được thực hiện thông qua điều chỉnh tham số, sửa đổi dừng lỗ, kích thước vị trí, v.v. Chiến lược phục vụ như một nền tảng vững chắc cho xu hướng tự động sau giao dịch.


/*backtest
start: 2023-09-23 00:00:00
end: 2023-10-23 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("Buy Dip Sell Rip Strategy", overlay=true)
source = close
length = input(15, minval=1)
mult = input(1.25, minval=0.001, maxval=50)
longMAPeriod = input(300, minval=5)
shortMAPeriod = input(20, minval=5)

basis = sma(source, length)
longMA = sma(source, longMAPeriod)
prevLongMA = sma(close[1],longMAPeriod)
shortMA = sma(source, shortMAPeriod)
dev = mult * stdev(source, length)

upper = basis + dev
lower = basis - dev

buyEntry = crossover(source, lower)
sellEntry = crossunder(source, upper)

if (source > lower and source[1] < lower)
    if (longMA < source  and shortMA>source)
        strategy.entry("BBandLE", strategy.long, stop=lower, oca_name="BollingerBands",  comment="BBandLE")
    else
        strategy.close("BBandSE")
else
    strategy.cancel(id="BBandLE")

if (source > upper and source[1] < upper)
    if (longMA > source  and shortMA < source)
        strategy.entry("BBandSE", strategy.short, stop=upper, oca_name="BollingerBands",  comment="BBandSE")
    else 
        strategy.close("BBandLE")
else
    strategy.cancel(id="BBandSE")

//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)


Thêm nữa