Ý tưởng chính của chiến lược này dựa trên chỉ số Squeeze Momentum của LazyBear
Chiến lược này kết hợp các dải Bollinger và kênh Keltner để xác định xu hướng và các vùng ép. Cụ thể, nó tính toán các dải Bollinger 20 giai đoạn và các kênh Keltner 20 giai đoạn. Khi các dải Bollinger hoàn toàn nằm trong các kênh Keltner, nó được xem là một tín hiệu ép. Khu vực ép được xác định khi dải Bollinger thấp hơn đi trên dải Keltner và dải Bollinger trên đi dưới dải Keltner. Ngược lại, khi dải Bollinger thấp hơn rơi dưới dải Keltner và dải Bollinger trên tăng trên dải Keltner, đó là một khu vực không ép.
Ngoài ra, chiến lược sử dụng hồi quy tuyến tính để phân tích sự thay đổi độ nghiêng của động lực. Nó tính toán giá trị hồi quy tuyến tính của giá trong 20 giai đoạn qua trừ giá điển hình. Khi độ nghiêng của giá trị hồi quy tuyến tính là dương tính, nó được xem là xu hướng tăng. Khi độ nghiêng là âm tính, đó là xu hướng giảm. Trong vùng ép, nếu có sự đảo ngược trong độ nghiêng của động lực, nó báo hiệu mua hoặc bán. Cụ thể, khi trong vùng ép, một chuyển động từ dương tính sang âm tính phát ra tín hiệu bán. Và khi trong vùng ép, một chuyển động từ âm tính sang dương tính phát ra tín hiệu mua.
Để lọc ra các tín hiệu sai, chiến lược cũng đánh giá xem giá đóng cửa có cao hơn Trung bình Di chuyển Triệt để 50 ngày và nếu Trung bình Di chuyển Triệt để 50 ngày có độ nghiêng tăng hay không.
Đây là một chiến lược rất thông minh, sử dụng hai loại chỉ số khác nhau để đánh giá đa chiều về thị trường, có thể tránh hiệu quả các tín hiệu sai.
Ứng dụng toàn diện các dải Bollinger, kênh Keltner và chỉ số động lực để phân tích đa chiều và tăng độ chính xác.
Các vùng ép có thể xác định hiệu quả các đỉnh và đáy của sự đảo ngược động lượng và nắm bắt chính xác các đường rẽ.
Việc lọc xu hướng dựa trên giá đóng cửa và EMA 50 ngày tránh việc mở lại các vị trí trong quá trình củng cố.
Các tín hiệu chỉ phát ra trong các vùng ép giảm tín hiệu sai và cải thiện tỷ lệ lợi nhuận.
Không gian tối ưu hóa tham số lớn cho phép tối ưu hóa nhắm mục tiêu thông qua thời gian điều chỉnh vv.
Kết hợp dài và ngắn, xem xét xu hướng chu kỳ lớn và tích hợp các chỉ số trung hạn, hướng dài là rõ ràng.
Mặc dù chiến lược này có nhiều chỉ số kỹ thuật, nhưng vẫn có một số rủi ro:
Mất cơ hội mua/bán khi Bollinger Bands và Keltner Channels phân biệt.
Mất mát lớn có thể xảy ra trong khi thị trường tăng hoặc giảm mạnh.
Trong các thị trường biến động cao, các tình huống nén có thể không rõ ràng, dẫn đến ít tín hiệu hơn.
Có xu hướng mất mát điều chỉnh trong quá trình chuyển đổi tăng-gấu.
Để tránh những rủi ro này, chúng ta có thể thực hiện các biện pháp sau:
Tối ưu hóa các tham số để đồng bộ hóa Bollinger Bands và Keltner Channels càng nhiều càng tốt.
Thiết lập stop loss để kiểm soát single loss.
Sử dụng chiến lược này như một phần của chiến lược danh mục đầu tư, kết hợp với các chiến lược khác.
Giảm các vị trí thích hợp trong các thị trường biến động cao.
Vẫn còn nhiều chỗ để tối ưu hóa chiến lược này, chủ yếu theo các hướng sau:
Tối ưu hóa các khoảng thời gian của Bollinger Bands và Keltner Channels để đồng bộ hóa chúng càng nhiều càng tốt.
Kiểm tra các yếu tố nhân khác nhau để tìm kết hợp tham số tối ưu.
Hãy thử giới thiệu các chỉ số khác để xác nhận, chẳng hạn như RSI vv.
Dựa trên mô hình 5 màu sắc của Wen Hua, chọn lọc sử dụng chiến lược này tùy thuộc vào giai đoạn thị trường.
Sử dụng máy học vv để tối ưu hóa các thông số một cách năng động.
Kiểm tra lại trên các đồng tiền khác nhau để tìm ra các sản phẩm giao dịch phù hợp nhất.
Khám phá hiệu quả của chiến lược này trong các khung thời gian dài hơn (ngày, hàng tuần, v.v.).
Chiến lược đè nén LazyBear sử dụng nhiều chỉ số kỹ thuật, xác định chính xác sự đảo ngược đè nén cho giao dịch trong các vùng đè nén, tránh mở lại các vị trí lặp đi lặp lại trong các thị trường không có xu hướng. Nó có quy tắc mua và bán có thể định lượng được định nghĩa có hệ thống, hoạt động xuất sắc trong các bài kiểm tra ngược. Thông qua tối ưu hóa cài đặt tham số, giới thiệu các chỉ số phán đoán mới vv, chiến lược này có nhiều khả năng cải thiện và đáng nghiên cứu và áp dụng sâu sắc bởi các nhà giao dịch lượng.
/*backtest start: 2023-11-20 00:00:00 end: 2023-12-20 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 // // @author LazyBear // List of all my indicators: https://www.tradingview.com/v/4IneGo8h/ // initialBalance = 8000 strategy("Crypto momentum strategy", overlay=false) length = input(20, title="BB Length") mult = input(2.0, title="BB MultFactor") lengthKC = input(20, title="KC Length") multKC = input(1.5, title="KC MultFactor") useTrueRange = input(true, title="Use TrueRange (KC)", type=input.bool) // Calculate BB source = close basis = sma(source, length) ema = ema(source, 50) dev = multKC * stdev(source, length) upperBB = basis + dev lowerBB = basis - dev // Calculate KC ma = sma(source, lengthKC) range = useTrueRange ? tr : high - low rangema = sma(range, lengthKC) upperKC = ma + rangema * multKC lowerKC = ma - rangema * multKC sqzOn = lowerBB > lowerKC and upperBB < upperKC sqzOff = lowerBB < lowerKC and upperBB > upperKC noSqz = sqzOn == false and sqzOff == false val = linreg(source - avg(avg(highest(high, lengthKC), lowest(low, lengthKC)), sma(close, lengthKC)), lengthKC, 0) slope = (val - val[2]) emaSlope = (ema - ema[1]) bcolor = iff(slope > 0, color.lime, color.red) scolor = noSqz ? color.green : sqzOn ? color.black : color.green squeeze = (noSqz ? 0 : sqzOn ? 1 : 0) plot(val, color=color.gray, style=plot.style_line, linewidth=1, title="momentum") plot(slope, color=bcolor, style=plot.style_circles, linewidth=2, title="slope") plot(0, color=scolor, style=plot.style_line, linewidth=2, title="squeeze-zero") co = crossover(slope / abs(slope), 0) cu = crossunder(slope / abs(slope), 0) if co and source > ema and emaSlope > 0 strategy.entry("long", strategy.long, comment="long") if cu strategy.close("long")