Biến động động lượng theo chiến lược


Ngày tạo: 2023-11-28 16:57:28 sửa đổi lần cuối: 2023-11-28 16:57:28
sao chép: 1 Số nhấp chuột: 390
1
tập trung vào
1218
Người theo dõi

Biến động động lượng theo chiến lược

Tổng quan

Chiến lược này là một chiến lược theo dõi biến động động động dựa trên Brin. Nó kết hợp với chỉ số Brin để xác định xu hướng thị trường và điểm đảo ngược, theo dõi biến động thị trường bằng cách thiết lập vị trí trống.

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

Các chỉ số cốt lõi của chiến lược này là vùng Brin. Các vùng Brin bao gồm đường trung, đường trên và đường dưới. Đường trung là trung bình di chuyển n ngày, đường trên và đường dưới là sự lệch của chênh lệch tiêu chuẩn giữa đường trung và đường giảm.

Chiến lược này đồng thời thêm vào các vị trí xây dựng theo xu hướng và xây dựng đảo ngược, tương ứng với các cơ hội giao dịch khác nhau. Các vị trí xây dựng theo xu hướng yêu cầu đường trung tâm làm tài liệu tham khảo kháng cự hỗ trợ, tạo ra hiệu ứng lệch lạc đột phá. Các vị trí xây dựng ngược được hình thành trực tiếp trên đường dưới bên cạnh đường dưới trên Brin. Chiến lược có thể kết hợp cả hai cách tiết lộ này để đồng thời theo dõi xu hướng và hoạt động đảo ngược.

Phân tích lợi thế

Chiến lược này kết hợp các đặc điểm mua quá mức bán quá mức của Brin Belt, thêm vào phán đoán điểm đảo ngược. Điều này cho phép nó có thể áp dụng cho cả thị trường xu hướng và thị trường chấn động đồng thời, để nắm bắt các loại cơ hội giao dịch khác nhau. Cài đặt Exit Stop của chiến lược ngăn chặn sự mất mát mở rộng.

So với chiến lược đơn giản của Brin, chiến lược này đưa ra phán đoán logic về xu hướng giúp xây dựng vị trí ổn định hơn, đồng thời nắm bắt cơ hội đảo ngược. Điều này làm tăng tỷ lệ tín hiệu tiếng ồn. Thứ hai, giao dịch hai chiều đa chiều cũng sử dụng cơ hội giao dịch trên các thị trường khác nhau một cách toàn diện hơn.

Phân tích rủi ro

Chiến lược này phụ thuộc chủ yếu vào đặc tính mua bán quá mức của vùng Brin. Vì vậy, khi giá biến động mạnh, khoảng Brin sẽ liên tục tăng lên, dễ dàng dẫn đến nhiều lần đặt hàng thua lỗ. Đây là điểm rủi ro tiềm ẩn. Ngoài ra, phán đoán đảo ngược vẫn có một số không chắc chắn và sai sót, có thể dẫn đến việc đặt hàng và dừng lỗ thất bại.

Đối với trường hợp bị mất hiệu lực của dây chuyền Burin, bạn có thể rút ngắn tham số n ngày, làm cho dây chuyền Burin nhạy hơn. hoặc giảm phạm vi của nó, giảm khả năng gây thiệt hại. Đối với phán đoán đường cong đảo ngược, bạn có thể giảm lỗi bằng cách tối ưu hóa tham số đột phá.

Hướng tối ưu hóa

Một số hướng chính mà chiến lược này có thể được tối ưu hóa:

  1. Các tham số của Binance có thể được điều chỉnh cho các thị trường khác nhau để tìm ra sự kết hợp tốt nhất.
  2. Cách tính toán độ lệch xu hướng và trung bình có thể kiểm tra các tùy chọn khác.
  3. Thêm nhiều bộ lọc hơn để đánh giá các tín hiệu xây dựng nhà kho, giảm khả năng sai lầm.
  4. Các phương thức khác có thể thử nghiệm, chẳng hạn như Trail Stop.
  5. Các tham số có thể được điều chỉnh cho các giống và chu kỳ cụ thể.

Tóm tắt

Chiến lược này mở rộng và tối ưu hóa hiệu quả cho chiến lược tiêu chuẩn của Brin. Tham gia vào phán đoán sai lệch xu hướng giúp tăng sự ổn định, tận dụng cơ hội đảo ngược. Các thiết lập giao dịch hai chiều và dừng lỗ cũng làm cho chiến lược mạnh hơn.

Mã nguồn chiến lược
/*backtest
start: 2023-11-20 00:00:00
end: 2023-11-27 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2018

//@version=3
strategy("Noro's Bollinger Strategy v1.3", shorttitle = "Bollinger str 1.3", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100.0, pyramiding = 5)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")

length = input(20, defval = 20, minval = 1, maxval = 1000, title = "Bollinger Length")
mult = input(2.0, defval = 2.0, minval = 0.001, maxval = 50, title = "Bollinger Mult")
source = input(ohlc4, defval = ohlc4, title = "Bollinger Source")

uset = input(true, defval = true, title = "Use trend entry")
usect = input(true, defval = true, title = "Use counter-trend entry")

fromyear = input(2018, defval = 2018, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")
showbands = input(true, defval = true, title = "Show Bollinger Bands")

//Bollinger Bands
basis = sma(source, length)
dev = mult * stdev(source, length)
upper = basis + dev
lower = basis - dev

//Lines
col = showbands ? black : na 
plot(upper, linewidth = 1, color = col)
plot(basis, linewidth = 1, color = col)
plot(lower, linewidth = 1, color = col)

//Body
body = abs(close - open)
abody = ema(body, 30)

//Signals
bar = close > open ? 1 : close < open ? -1 : 0 
up1 = bar == -1 and ohlc4 >= basis and ohlc4 < upper and (close < strategy.position_avg_price or strategy.position_size == 0) and uset
dn1 = bar == 1 and ohlc4 <= basis and ohlc4 > lower and (close > strategy.position_avg_price or strategy.position_size == 0) and uset
up2 = close <= lower and usect
dn2 = close >= upper and usect
exit = ((strategy.position_size > 0 and close > open) or (strategy.position_size < 0 and close < open)) and body > abody / 2

//Trading
if up1 or up2
    strategy.entry("Long", strategy.long, needlong == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))

if dn1 or dn2
    strategy.entry("Short", strategy.short, needshort == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
    
if time > timestamp(toyear, tomonth, today, 23, 59) or exit
    strategy.close_all()