Chiến lược này dựa trên chỉ số Bollinger Bands, mở vị trí khi giá chạm vào Bollinger Bands xuống đường và thiết lập logic dừng động động và tăng cường động. Khi giá bật lên từ đường dưới và phá vỡ đường giữa Bollinger Bands, chiến lược cho rằng một xu hướng tăng lên được hình thành, tại thời điểm này chiến lược sẽ tăng cường khi giá quay trở lại đường giữa một tỷ lệ nhất định; khi giá cuối cùng phá vỡ Bollinger Bands lên đường, chiến lược đóng cửa sẽ có lợi nhuận. Trong xu hướng giảm, chiến lược sẽ thực hiện logic hoạt động ngược lại.
Các nguyên tắc chính của chiến lược này là:
Công thức tính toán của Brin với đường lên, đường giữa và đường dưới. Phương thức tính toán của đường lên và đường dưới là N lần chênh lệch tiêu chuẩn cộng và trừ đường giữa, trong đó N có thể được tùy chỉnh.
Chiến lược mở nhiều vị trí khi giá đóng cửa rơi xuống đường rào của Brin và chưa mở vị trí trước đó; chiến lược mở vị trí trống khi giá đóng cửa phá vỡ đường rào của Brin và chưa mở vị trí trước đó. Lịch lý mở vị trí ở đây tương tự như hệ thống phá vỡ đường rào Brin truyền thống.
Sau khi mở nhiều vị trí, nếu giá đóng cửa phá vỡ đường trung tâm của vùng Brin lên, thì nó được coi là xu hướng tăng, đánh dấu biến số basisCrossed là true. Sau khi mở một vị trí trống, nếu giá đóng cửa phá vỡ đường trung tâm của vùng Brin xuống, thì cũng đánh dấu basisCrossed là true.
Trong trường hợp đa đầu, nếu giá đóng cửa giảm xuống đường và basisCrossed là đúng, và giá hiện tại giảm hơn 2% so với giá mở đầu, thì chiến lược đặt cược, đồng thời đặt lại basisCrossed thành false. Trong trường hợp không đầu, ngược lại.
Nếu giá đóng cửa phá vỡ đường dây Bollin khi giữ nhiều vị trí, hoặc giá đóng cửa rơi xuống đường dây Bollin khi giữ vị trí trống, chiến lược xóa tất cả các vị trí, thu lợi nhuận và đặt lại các biến số đánh dấu để chuẩn bị cho vị trí tiếp theo.
Bằng cách sử dụng các động cơ mở vị trí, gia tăng vị trí và logic dừng, chiến lược này có thể hoạt động linh hoạt trong tình huống xu hướng, thu được lợi nhuận cao hơn. Đồng thời, bằng cách nắm bắt xu hướng thông qua chỉ số kỹ thuật cổ điển của Brin, chiến lược cũng có khả năng thích ứng và ổn định.
Động thái dừng: Chiến lược này có thể điều chỉnh động lệnh dừng bằng cách đưa Brin xuống đường và có thể thích ứng tốt hơn với biến động thị trường và bảo vệ lợi nhuận một cách linh hoạt hơn so với các điểm dừng cố định.
Động lực gia tăng: Trong giai đoạn rút lui sau khi xu hướng hình thành, chiến lược sẽ gia tăng dần dần, do đó có thể kiếm được lợi nhuận cao hơn trong tình huống xu hướng. Động lực gia tăng làm cho chiến lược có lợi thế hơn trong giao dịch xu hướng.
Tính linh hoạt của tham số: Các tham số của Binance như giá trị N, P, v.v. có thể được điều chỉnh linh hoạt để phù hợp với các đặc điểm thị trường và phong cách giao dịch khác nhau.
Khả năng thích ứng: BRI là một chỉ số kỹ thuật cổ điển có khả năng nắm bắt xu hướng tốt. Kết hợp với quản lý vị trí động, nó có thể có hiệu quả ổn định trong tất cả các loại thị trường tài chính.
Logic rõ ràng: Các điều kiện mở và giảm vị trí của chiến lược được giải thích rõ ràng, giúp các nhà giao dịch hiểu và nắm bắt. Logic rõ ràng cũng có nghĩa là dễ dàng phát triển và tối ưu hóa chiến lược hơn.
Thị trường chấn động: Chiến lược Brin Belt thường không hoạt động tốt trong thị trường chấn động, khi đó việc mở lỗ thường xuyên sẽ dẫn đến chi phí giao dịch cao hơn, ảnh hưởng đến lợi nhuận tổng thể.
Trở lại xu hướng: Chiến lược này có thể bị trì trệ trong thời điểm quan trọng của sự thay đổi xu hướng, dẫn đến việc gia tăng vị thế theo hướng sai, do đó tạo ra sự rút lui lớn hơn.
Trong một tình huống cực đoan (ví dụ như một cơn bão), một sự biến động bất thường trong vùng Burin có thể dẫn đến sự thất bại của chiến lược.
Cài đặt tham số: Cài đặt tham số không phù hợp có thể ảnh hưởng nghiêm trọng đến hiệu suất của chiến lược, ví dụ: thiết lập giá trị N quá nhỏ sẽ dẫn đến giao dịch thường xuyên, thiết lập giá trị N quá lớn sẽ dẫn đến trì trệ tín hiệu.
Sự kiện Thiên nga đen: Chiến lược này có thể gặp rủi ro lớn hơn trong các sự kiện kinh tế chính trị quan trọng.
Đối với các rủi ro trên, có thể bắt đầu kiểm soát từ hai khía cạnh: 1) thiết lập tham số hợp lý, tối ưu hóa tham số cho các chỉ số khác nhau và tình trạng thị trường; 2) thêm nhiều điều kiện lọc vào chiến lược, chẳng hạn như đánh giá xu hướng, lọc tỷ lệ biến động, để cải thiện chất lượng tín hiệu. Ngoài ra, trong thực tế, cũng cần kiểm soát vị trí và quản lý rủi ro, kiểm soát chặt chẽ các lỗ hổng rủi ro của giao dịch đơn lẻ.
Trình lọc xu hướng: Thêm logic phán đoán xu hướng khi mở vị trí, chẳng hạn như MA nhiều đầu được sắp xếp làm điều kiện lọc nhiều, MA đầu trống được sắp xếp làm điều kiện lọc trống, điều này có thể làm tăng tỷ lệ thành công trong việc nắm bắt xu hướng.
Bộ lọc tỷ lệ dao động: Brinband thực sự là một chỉ số tỷ lệ dao động, có thể xác định tình trạng dao động của thị trường bằng cách giới thiệu ATR, tỷ lệ dao động lịch sử và các chỉ số khác, có thể giảm vị trí phù hợp trong tình trạng sóng cao và tăng vị trí trong tình trạng sóng thấp, để kiểm soát rủi ro tốt hơn.
Tối ưu hóa tham số động: Các tham số của Binance có thể được điều chỉnh theo trạng thái động của thị trường. Ví dụ: N có thể được tăng lên trong một thị trường xu hướng và giảm N trong một thị trường bất ổn. Điều này cần sử dụng các kỹ thuật như học máy để tìm tham số tối ưu bằng cách đào tạo dữ liệu lịch sử.
Chiến lược kết hợp: Chiến lược này có thể được kết hợp với các chiến lược cổ điển khác như MACD, RSI, để tạo ra chiến lược kết hợp, cải thiện sự ổn định và khả năng lợi nhuận của hệ thống.
Thêm logic dừng lỗ: Hiện tại chiến lược này thiếu logic dừng lỗ rõ ràng, bạn có thể xem xét thêm các cơ chế như dừng di chuyển hoặc dừng lỗ phần trăm cố định để kiểm soát tổn thất tối đa cho một giao dịch.
Tối ưu hóa quản lý vị thế: Trong quá trình tăng và giảm vị thế, có thể lấy phương pháp quản lý vị thế cổ điển như công thức Kelly, giá trị F tối ưu để tối đa hóa lợi nhuận với rủi ro có thể kiểm soát được.
Bằng cách tối ưu hóa như trên, có thể nâng cao hơn nữa tỷ lệ lợi nhuận rủi ro của chiến lược, cho phép nó thích ứng tốt hơn với môi trường thị trường thay đổi, mang lại lợi nhuận ổn định cho các nhà giao dịch.
Chiến lược dừng động và tăng động của Brin là một chiến lược theo dõi xu hướng cổ điển, dựa trên Brin để kiếm lợi nhuận theo xu hướng cao hơn bằng cách điều chỉnh vị trí động. Chiến lược có logic rõ ràng, tham số linh hoạt, thích ứng mạnh mẽ, là một chiến lược giao dịch định lượng đáng để nghiên cứu và áp dụng sâu sắc. Nhưng đồng thời, chúng tôi cũng thấy rằng chiến lược này không hoạt động tốt trong thị trường xung đột, thiếu khả năng đối phó với hành vi cực đoan và sự kiện thiên nga đen, điều này đòi hỏi chúng tôi phải tập trung vào tối ưu hóa tham số, kiểm soát rủi ro và kết hợp chiến lược trong ứng dụng thực tế và kiểm tra thường xuyên hiệu quả của chiến lược trong các tình trạng thị trường khác nhau. Bằng cách hiểu sâu sắc về logic bên trong chiến lược, liên tục tối ưu hóa và cải tiến, tôi tin rằng chiến lược này có thể trở thành một công cụ quan trọng của nhà giao dịch định lượng, mang lại lợi nhuận ổn định cho nhà đầu tư trong thời gian dài.
/*backtest
start: 2024-03-01 00:00:00
end: 2024-03-21 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
// Bollinger Bands 1Bb 상하한 크로스 롱숏 실행
strategy(shorttitle="BB", title="Bollinger Bands", overlay=true )
// bb
length = input.int(12, minval=1)
src = input(close, title="Source")
mult = input.float(2.0, minval=0.001, maxval=50, title="StdDev")
basis = ta.sma(src, length)
dev = mult * ta.stdev(src, length)
upper = basis + dev
lower = basis - dev
offset = input.int(0, "Offset", minval = -500, maxval = 500)
plot(basis, "Basis", color=#FF6D00, offset = offset)
p1 = plot(upper, "Upper", color=#2962FF, offset = offset)
p2 = plot(lower, "Lower", color=#2962FF, offset = offset)
add = input.float(0.98, step = 0.001)
// plot(upper - lower, "Basis", color=color.red, offset = offset)
var bool entryMade = false
var bool basisCrossed = false
var bool upperCrossed = false
var bool lowerCrossed = false
strategy.initial_capital = 50000
if close < lower and not entryMade
strategy.entry("롱", strategy.long, qty = strategy.initial_capital/10000)
entryMade := true
if ta.crossover(close, basis) and entryMade and not upperCrossed
basisCrossed := true
if close > upper
upperCrossed := true
if close < lower and entryMade and basisCrossed and not upperCrossed and close < strategy.position_avg_price*add
strategy.entry("추가롱", strategy.long, strategy.initial_capital/10000)
basisCrossed := false
if close > upper
strategy.close("롱")
strategy.close("추가롱")
entryMade := false
basisCrossed := false
upperCrossed := false
///////////반대 포지션
if close > upper and not entryMade
strategy.entry("s", strategy.short, qty = strategy.initial_capital/10000)
entryMade := true
if ta.crossunder(close, basis) and entryMade and not lowerCrossed
basisCrossed := true
if close < lower
lowerCrossed := true
if close > upper and entryMade and basisCrossed and not lowerCrossed and close > strategy.position_avg_price*add
strategy.entry("추가s", strategy.short, strategy.initial_capital/10000)
basisCrossed := false
if close < lower
strategy.close("s")
strategy.close("추가s")
entryMade := false
basisCrossed := false
upperCrossed := false