Chiến lược đột phá của dải Bohr


Ngày tạo: 2023-09-21 10:38:13 sửa đổi lần cuối: 2023-09-21 10:38:13
sao chép: 0 Số nhấp chuột: 607
1
tập trung vào
1617
Người theo dõi

Tổng quan

Chiến lược này dựa trên thiết kế chỉ số Boll band, khi giá phá vỡ Boll band và đi xuống đường, thực hiện hành động làm nhiều hoặc làm ngắn tương ứng. Chiến lược này kiếm lợi nhuận bằng cách nắm bắt các hành động phá vỡ.

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

  1. Tính toán đường ray giữa, đường ray trên và đường ray dưới của dây chuyền
  2. Làm nhiều hơn khi phá vỡ đường ray; làm trống khi phá vỡ đường ray
  3. Thiết lập thời gian bắt đầu, giới hạn khoảng thời gian giao dịch
  4. Thiết lập thời gian giữ vị trí, mặc định là thanh toán vị trí trong ngày

Cụ thể, chiến lược này tính toán đường SMA trung bình với chiều dài là chiều dài, và đường SMA trên đường phân biệt chuẩn gấp nhiều lần. Khi giá đóng cửa phá vỡ đường đi xuống từ dưới lên, hãy nhập nhiều; Khi giá đóng cửa phá vỡ đường đi lên từ trên xuống, hãy vào lỗ. Đồng thời thiết lập khu vực giao dịch giới hạn thời gian.

Chiến lược này cố gắng nắm bắt tình trạng mở rộng sau khi giá phá vỡ đường đi lên xuống. Khi phá vỡ đường đi xuống, nhiều bên sẽ tăng cường sức mạnh, khi phá vỡ đường đi lên, các bên sẽ tăng cường sức mạnh, khi giao dịch thuận lợi.

Phân tích lợi thế

  1. Đơn giản, trực quan, dễ hiểu và thực hiện
  2. Sử dụng các chỉ số Bollinger Bands để đánh giá các bước đột phá và có khả năng theo dõi xu hướng.
  3. Các tham số có thể điều chỉnh linh hoạt, phù hợp với các chu kỳ và giống khác nhau
  4. Cần phải giảm giá hàng ngày để kiểm soát rủi ro qua đêm.
  5. Có thể mở giao dịch đa đầu hoặc không đầu một mình

Phân tích rủi ro

  1. Bước đột phá giả mạo Bước đột phá rủi ro. Giá có thể quay trở lại sau khi vượt qua.
  2. Cần điều chỉnh các tham số theo thời gian. Các tham số cần được điều chỉnh theo chu kỳ khác nhau.
  3. Mức độ lỗ tiềm ẩn mở rộng rủi ro. Mức độ lỗ hổng mở rộng có thể mở rộng lỗ hổng đơn lẻ.
  4. Chi phí giao dịch mở rộng rủi ro.

Có thể giảm rủi ro bằng cách tối ưu hóa điều kiện nhập cảnh, thêm chiến lược dừng lỗ, và giới thiệu bộ lọc xu hướng.

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

  1. Tối ưu hóa tham số để thích ứng với chu kỳ khác nhau
  2. Thêm điều kiện nhập lại và đặt cược để theo dõi xu hướng
  3. Tăng chiến lược dừng lỗ để kiểm soát rủi ro
  4. Đặt thời gian giao dịch để tránh các sự kiện tin tức quan trọng
  5. Đánh giá các điều kiện lọc xu hướng để lọc biến động
  6. Kiểm tra thời gian giữ vị trí khác nhau và so sánh kết quả

Tóm tắt

Chiến lược này là chiến lược đột phá dựa trên Boll band, thu lợi nhuận bằng cách nắm bắt các hoạt động đột phá. Ưu điểm là ý tưởng đơn giản, dễ thực hiện; Nhược điểm là dễ bị lừa dối bởi các hoạt động biến động. Có thể tăng hiệu quả chiến lược và kiểm soát rủi ro bằng cách tối ưu hóa tham số, chiến lược dừng lỗ, kiểm soát thời gian giao dịch.

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

//Noro
//2018

//@version=2
strategy("Noro's Bollinger Strategy v1.0", shorttitle = "Bollinger str 1.0", 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, minval=1)
mult = input(1.0, minval=0.001, maxval=50)

fromyear = input(1900, defval = 1900, 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")

source = close
basis = sma(source, length)
dev = mult * stdev(source, length)

upper = basis + dev
lower = basis - dev

up = close < lower
dn = close > upper
exit = (strategy.position_size > 0 and close > open) or (strategy.position_size < 0 and close < open)

if up
    strategy.entry("Long", strategy.long, needlong == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, 01, 00, 00) and time < timestamp(toyear, tomonth, 31, 00, 00)))

if dn
    strategy.entry("Short", strategy.short, needshort == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, 01, 00, 00) and time < timestamp(toyear, tomonth, 31, 00, 00)))
    
if time > timestamp(toyear, tomonth, 31, 00, 00) or exit
    strategy.close_all()