
Chiến lược này thực hiện một chiến lược giao dịch vòng vòng xoáy động dựa trên chỉ số vòng xoáy có thể chọn phạm vi thời gian lịch sử. Chiến lược này cho phép người dùng chọn thời gian bắt đầu và kết thúc của lần đo đạc, để thực hiện lần đo đạc và so sánh vòng xoáy động trong các khoảng thời gian khác nhau.
Tên của chiến lược này được gọi là Chiến lược chọn phạm vi thời gian Brinh Động . Tên này bao gồm hai từ khóa chọn phạm vi thời gian Brinh Động và chọn phạm vi thời gian Brinh , tổng hợp chính xác các chức năng chính của chiến lược này.
Nguyên tắc cốt lõi của chiến lược này là tạo ra tín hiệu giao dịch dựa trên các chỉ số động trên và dưới của đường đai Brin. Đường đai trung tâm của đường đai Brin là đường trung bình di chuyển đơn giản n ngày, đường đai trên và đường đai dưới cộng với và trừ đi m lần chênh lệch chuẩn n ngày.
Một tính năng cốt lõi khác của chính sách này là cho phép chọn phạm vi thời gian phản hồi của chính sách. Chính sách cung cấp các tham số đầu vào cho thời gian bắt đầu và kết thúc phản hồi từ nhiều chiều như tháng, ngày, năm, giờ, phân đoạn. Điều này cho phép người dùng chọn các khoảng thời gian lịch sử khác nhau để phản hồi và xác minh hiệu quả của chiến lược, để thực hiện phân tích chiến lược toàn diện và động hơn.
Cụ thể, chiến lược này sẽ chuyển đổi thời gian bắt đầu và kết thúc được chọn thành định dạng khung thời gian thông qua hàm timestamp () và sau đó thiết lập cửa sổ thời gian phản hồi hiệu quả của chiến lược thông qua các điều kiện time> = start và time<=finish. Như vậy, tính năng chọn phạm vi thời gian động được thực hiện.
Ưu điểm lớn nhất của chiến lược này là kết hợp hoàn hảo giữa chiến lược DBS với tùy chọn phạm vi thời gian tùy chọn. Điều này cho phép người dùng phản hồi và xác minh chiến lược một cách linh hoạt và toàn diện hơn. Những ưu điểm cụ thể như sau:
Thực hiện chiến lược Binance động, có thể nắm bắt các tín hiệu đảo ngược xu hướng khi thị trường giảm, phù hợp với giao dịch xu hướng.
Hỗ trợ cho việc chọn một khoảng thời gian lịch sử tùy ý để kiểm tra lại, có thể phân tích hiệu suất của chiến lược trong các môi trường thị trường khác nhau, để tối ưu hóa động lực của chiến lược.
Kết hợp với khả năng tự điều chỉnh của chỉ số BRI, chiến lược này có thể tự động điều chỉnh các tham số để phù hợp với sự thay đổi của môi trường thị trường rộng lớn hơn.
Cung cấp tính năng điều chỉnh tham số dài hạn và ngắn hạn, người dùng có thể tối ưu hóa tham số theo nhu cầu của riêng mình, làm cho chiến lược phù hợp hơn với thực tế.
Cho phép chọn giờ và phút cụ thể để đo lại, độ chính xác cao hơn, có thể phân tích chiến lược chi tiết hơn.
Hỗ trợ cả tiếng Trung và tiếng Anh, trải nghiệm người dùng tốt.
Rủi ro chính của chiến lược này là sự không chắc chắn của chỉ số BRI trong việc xác định xu hướng. Các điểm rủi ro cụ thể như sau:
Chỉ số BRI không hoàn hảo trong việc đánh giá sự biến động của thị trường và có thể đưa ra tín hiệu sai.
Chọn sai tham số Brin có thể dẫn đến chiến lược không hoạt động tốt hoặc thậm chí là mất mát.
Khả năng chỉ số không hiệu quả trong môi trường thị trường đặc biệt.
Không chọn đúng khoảng thời gian phản hồi, có thể bỏ qua một số tình huống thị trường quan trọng.
Những rủi ro này có thể được kiểm soát và cải thiện bằng cách:
Tối ưu hóa các tham số Brin, điều chỉnh chu kỳ đường quỹ đạo để phù hợp với các giống và giai đoạn khác nhau.
Kết hợp với các chỉ số khác như đường trung bình di chuyển để xác nhận, giảm tín hiệu sai.
Thử nghiệm nhiều hơn các giai đoạn thị trường để đánh giá sự ổn định của chiến lược.
Thiết lập điểm dừng lỗ, kiểm soát tổn thất đơn lẻ
Một số cải tiến chính trong chiến lược này là:
Kết hợp các thuật toán học máy để thực hiện tối ưu hóa động của tham số Brin.
Thêm các tính năng dựa trên đột phá, đánh giá toàn diện về tính ổn định của các thiết lập tham số.
Thêm các tính năng như dừng di động, theo dõi dừng để khóa lợi nhuận và giảm rủi ro.
Tối ưu hóa logic nhập cảnh, đặt thêm các điều kiện như xác nhận khối lượng giao dịch tăng vọt.
Kết hợp với các chiến lược như tháo gỡ cổ phiếu, mở rộng phạm vi chiến lược.
Thêm chức năng thực hiện giao dịch tự động, tối ưu hóa chuyển đổi từ hồi ký sang đĩa cứng.
Với những cải tiến này, chiến lược có thể được cải thiện đáng kể về hiệu quả chiến đấu và lợi nhuận ổn định.
Chiến lược này đã thành công trong việc kết hợp hữu cơ giữa chiến lược Brin và lựa chọn phạm vi thời gian lịch sử tùy ý. Tính năng phân tích phản hồi linh hoạt và động này cho phép người dùng điều chỉnh và tối ưu hóa các tham số chiến lược một cách toàn diện và chính xác trong các môi trường thị trường khác nhau.
/*backtest
start: 2024-01-05 00:00:00
end: 2024-02-04 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("BB Range", shorttitle = "BB Range", overlay=true, max_bars_back=200)
// Revision: 1
// Author: @allanster
// === INPUT BACKTEST RANGE ===
FromMonth = input(defval = 7, title = "From Month", minval = 1, maxval = 12)
FromDay = input(defval = 20, title = "From Day", minval = 1, maxval = 31)
FromYear = input(defval = 2019, title = "From Year", minval = 2017)
FromHour = input(defval = 17, title = "From Hour", minval = 00)
FromMinute = input(defval = 00, title = "From Minute", minval = 00)
ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear = input(defval = 9999, title = "To Year", minval = 2017)
ToHour = input(defval = 23, title = "To Hour", minval = 00)
ToMinute = input(defval = 59, title = "To Minute", minval = 00)
// === FUNCTION EXAMPLE ===
start = timestamp(FromYear, FromMonth, FromDay, FromHour, FromMinute) // backtest start window
finish = timestamp(ToYear, ToMonth, ToDay, ToHour, ToMinute) // backtest finish window
window() => true
source = close
length = input(20, minval=1)
mult = input(2.0, minval=0.001, maxval=50)
basis = sma(source, length)
dev = mult * stdev(source, length)
upper = basis + dev
lower = basis - dev
upper_stop = upper * 1.05
lower_stop = lower * 0.95
buyEntry = crossover(source, lower)
sellEntry = crossunder(source, upper)
if (crossover(source, lower))
strategy.entry("BBandLE", strategy.long, stop=lower_stop, when = window(), oca_name="BollingerBands", comment="BBandLE")
else
strategy.cancel(id="BBandLE")
if (crossunder(source, upper))
strategy.entry("BBandSE", strategy.short, stop=upper_stop, when=window(), oca_name="BollingerBands",comment="BBandSE")
else
strategy.cancel(id="BBandSE")