Chiến lược giao dịch tần số cao đảo ngược dựa trên đường bóng

Tác giả:ChaoZhang, Ngày: 2024-01-24 11:39:31
Tags:

img

Tổng quan

Đây là một chiến lược giao dịch tần số cao dựa trên đường K 3 phút của sàn giao dịch Coinbase. Nó tính toán các đường bóng phía trên và phía dưới của đường K để xác định xem có cơ hội đảo ngược trong ngắn hạn hay không. Khi giá tăng hoặc giảm tương đối lớn, chiến lược sẽ có vị trí ngược lại xu hướng, mong đợi đảo ngược ngắn hạn.

Nguyên tắc

Chiến lược chủ yếu đánh giá liệu có cơ hội mua quá nhiều hay bán quá nhiều trong ngắn hạn. Mua quá nhiều và mua quá nhiều thường xuất phát từ cảm xúc lạc quan hoặc bi quan quá mức trên thị trường. Khi sự mất cân bằng cảm xúc tạm thời xảy ra, giá thường đảo ngược.

Cụ thể, chiến lược tính toán kích thước của các đường bóng phía trên và phía dưới của đường K. Mối cạnh tranh giữa sức mua và sức bán trước khi đóng đường K hiện tại càng lớn. Nếu đường bóng phía trên quá lớn, điều đó có nghĩa là nhiều lệnh mua đã bị đánh bại bởi các lệnh bán trước khi đóng đường K, cho thấy sức mạnh tăng sắp suy yếu. Nếu đường bóng phía dưới quá lớn, điều đó có nghĩa là nhiều lệnh bán đã bị hấp thụ bởi các lệnh mua trước khi đóng đường K, cho thấy sức mạnh giảm sắp suy yếu.

Theo logic này, khi đường bóng quá lớn (tức là khi giá xuất hiện quá mua hoặc quá bán trong ngắn hạn), chiến lược chọn giữ một vị trí ngược lại xu hướng. Giá dừng lỗ để thiết lập vị trí dài là giá trung bình của đường bóng dưới và giá dừng lỗ để thiết lập vị trí ngắn là giá trung bình của đường bóng trên.

Phân tích lợi thế

Ưu điểm lớn nhất của chiến lược này là tận dụng các biến động không hợp lý ngắn hạn trên thị trường để đạt được sự điều chỉnh ngược. Nó chỉ cần tương đối ít vốn để đạt được hiệu quả cao.

Một lợi thế khác là Coinbase là một sàn giao dịch có biến động lớn hơn.

Phân tích rủi ro

Rủi ro lớn nhất mà chiến lược này phải đối mặt là biến động giá ngắn hạn có thể không có nhiều khả năng dự đoán. Kích thước của đường bóng trên và dưới có thể không nắm bắt đầy đủ tất cả thông tin về sự đảo ngược giá. Cảm xúc phi lý của các nhà giao dịch cũng có thể không tuân theo các quy tắc hợp lý. Vì vậy, vẫn có một số rủi ro ngẫu nhiên trong chiến lược này.

Ngoài ra, việc thiết lập các điểm dừng lỗ cũng rất quan trọng. Các điểm dừng lỗ quá lỏng lẻo có thể làm tăng tổn thất của chiến lược. Các điểm dừng lỗ quá nghiêm ngặt có thể bỏ lỡ cơ hội. Cần tìm sự cân bằng giữa tỷ lệ rủi ro-lợi nhuận và tỷ lệ thắng.

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

Chiến lược này có thể được tối ưu hóa thêm trong các khía cạnh sau:

  1. Kiểm tra các loại giao dịch khác nhau, chẳng hạn như tiền điện tử dễ biến động hơn
  2. Tối ưu hóa logic thiết lập các điểm dừng lỗ, chẳng hạn như dừng lỗ kết hợp với ATR
  3. Thêm các mô hình học máy để đánh giá xác suất đảo ngược giá
  4. Kết hợp các chỉ số tâm lý để đo chỉ số lạc quan / bi quan của thị trường
  5. Tối ưu hóa kích thước vị trí và chiến lược quản lý tiền

Tóm lại

Nhìn chung, chiến lược này là một chiến lược điều chỉnh thống kê điển hình. Nó cố gắng tận dụng lợi thế của biến động giá không hợp lý ngắn hạn để kiếm lợi nhuận, với một số logic và khả thi. Bước tiếp theo là tiến hành các thí nghiệm tối ưu hóa từ nhiều chiều để làm cho các thiết lập tham số và các quy tắc giao dịch của chiến lược khoa học và có hệ thống hơn.


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

//@version=3
//for coinbase, 3min logic
//This strategy trades against the short term trend. The first position can be either long or short.
//In the short term, prices fluctuate up and down on wide spread exchanges.
//And if the price moves to one side, the price tends to return to its original position momentarily.
//This strategy set stop order. Stop price is calculated with upper and lower shadows.

strategy("ndb_mm_for_coinbase_btcusd", overlay=true, initial_capital=100000, slippage=50)

fromyear = input(2019, minval = 2017, maxval = 2100, title = "From Year")
frommonth = input(12, minval = 1, maxval = 12, title = "From Month")
fromday = input(1, minval = 01, maxval = 31, title = "From day")
toyear = input(2100, minval = 1900, maxval = 2100, title = "To Year")
tomonth = input(12, minval = 01, maxval = 12, title = "To Month")
today = input(31, minval = 01, maxval = 31, title = "To day")
end = true

length = input(3, title="period")
mag = input(1.2, title="sigma", minval=0.1, step=0.1)

up_shadow = abs(high - max(open, close))
dn_shadow = abs(low - min(open, close))

up_shadow_ma = sma(up_shadow, length) * mag
dn_shadow_ma = sma(dn_shadow, length) * mag

upper = close + dn_shadow_ma
lower = close - up_shadow_ma

plot(upper, color=red)
plot(lower, color=blue)

if strategy.position_size == 0
    strategy.entry("Long", strategy.long)

if 0 < strategy.position_size
    strategy.entry("Short", strategy.short, stop=lower, when=end)

if 0 > strategy.position_size
    strategy.entry("Long", strategy.long, stop=upper, when=end)

Thêm nữa