Chiến lược này nhằm mục đích phát hiện các cực của Chande Momentum Oscillator bằng cách phát hiện phân phối cực trên khung thời gian 1 phút chủ yếu cho Bitcoin và tiền điện tử. Tuy nhiên, các tham số có thể được điều chỉnh cho bất kỳ cặp nào.
Sau khi nghiên cứu rộng rãi về dao động động của Chande, tôi quyết định tạo ra một chiến lược sử dụng mức phân phối bình thường để cắt các mục. Điều này có thể tạo ra lợi nhuận tốt trong nhiều ngày liên tiếp trong khung thời gian 1 phút, với mục tiêu cuối cùng là để có được một phiên bản mạnh hơn của chiến lược này chạy trên một bot và in một số tiền. Chiến lược được xác định chặt chẽ nhưng cũng có thể được nới lỏng để thực hiện nhiều giao dịch hơn, mang lại kích thước mẫu cao hơn và tỷ lệ Sharpe tốt hơn.
Chiến lược kiểm tra xem giá trị Chande có ở một tỷ lệ phần trăm cực đoan dựa trên vài trăm giá trị Chande cuối cùng - nếu như vậy, nó sẽ mở một vị trí.
Không có dừng lỗ hoặc lấy lợi nhuận được thực hiện trong swing chưa, nhưng đây sẽ là bổ sung tiếp theo để thực sự giảm thiểu lỗ và khuếch đại lợi nhuận tiềm năng.
Bất kỳ cặp tiền điện tử lỏng nào trên các khung thời gian thấp hơn sẽ có kết quả tốt với chiến lược này.
Chúng tôi cũng có một chiến lược 15M và 1H miễn phí.
Chiến lược đầu tiên tính toán Chande Momentum Oscillator, dựa trên sự thay đổi giữa thời kỳ hiện tại và thời kỳ trước đó. Cụ thể, nó đo đạc động lượng thay đổi giá bằng cách tính tỷ lệ của tổng các thay đổi tăng trên tổng các thay đổi giảm.
Sau đó, nó ghi lại các giá trị Chande trong một khoảng thời gian nhìn lại nhất định (thường định 425 khoảng thời gian) và tính toán các mức phần trăm khác nhau. Khi giá trị Chande hiện tại đạt đến một phần trăm cực đoan đã đặt trước (thường định 1% để mua, 99% để bán), nó kích hoạt tín hiệu đầu vào dài / ngắn. Các tín hiệu đầu ra được kích hoạt khi giá trị Chande đạt mức phần trăm bình thường (thường định 97,5% và 2,5%).
Bằng cách này, chiến lược có thể nắm bắt các sự đột phá cực đoan của giá trị Chande, cho phép nó nắm bắt các chuyển động xu hướng đột ngột. Nó cũng tránh nguy cơ nhập lặp đi lặp lại khi giá trị Chande ở mức cực đoan trong thời gian dài.
Quản lý rủi ro nên tập trung vào việc sử dụng dừng, bình thường hóa các thông số cực đoan và lọc tín hiệu theo xu hướng. Tránh tối ưu hóa quá mức các thông số.
Chiến lược có thể được tối ưu hóa trong một số khía cạnh:
Thêm stop loss/profit taking để kiểm soát lỗ cho mỗi giao dịch ở mức hợp lý.
Tối ưu hóa các tham số bằng cách điều chỉnh các lần nhìn lại ngắn / dài cho các thị trường khác nhau.
Thêm điều kiện lọc với các chỉ số xu hướng như MA để loại bỏ các tín hiệu sai chống lại xu hướng tổng thể.
Kết hợp nhiều khung thời gian, sử dụng TF cao hơn để đánh giá hướng xu hướng và TF thấp hơn để nhập cảnh.
Kiểm tra độ bền tham số trên các sản phẩm khác nhau, điều chỉnh cho nhiều giống hơn.
Đưa ra máy học để tối ưu hóa các thông số và bộ lọc một cách năng động.
Nói chung, đây là một chiến lược sử dụng các giá trị cực đoan của dao động động lực Chande để nắm bắt các chuyển động xu hướng. Lý thuyết đơn giản và thực hiện hiệu quả của nó làm cho nó rất phù hợp để nhanh chóng tận dụng xu hướng bùng nổ. Đồng thời, kiểm soát rủi ro, tránh tối ưu hóa quá mức và tối ưu hóa đa chiều là cần thiết để điều chỉnh nó trên các chế độ thị trường. Tóm lại, nó cung cấp một cách tiếp cận hiệu quả cho các bùng nổ thị trường giao dịch đáng nghiên cứu và áp dụng thêm.
/*backtest start: 2023-10-13 00:00:00 end: 2023-11-12 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Chande Minute Swinger", overlay=true) //Chande length = input(9, minval=1) src = close momm = change(src) f1(m) => m >= 0.0 ? m : 0.0 f2(m) => m >= 0.0 ? 0.0 : -m m1 = f1(momm) m2 = f2(momm) sm1 = sum(m1, length) sm2 = sum(m2, length) percent(nom, div) => 100 * nom / div chandeMO = percent(sm1-sm2, sm1+sm2) //Parameters to change lengthLookback = 425 //425 golden number buyPercentile = 1 sellPercentile = 99 linePercentileLow = 2.5 linePercentileHigh = 97.5 buy = percentile_nearest_rank(chandeMO, lengthLookback, buyPercentile) exitBuy= percentile_nearest_rank(chandeMO, lengthLookback, linePercentileHigh) sell = percentile_nearest_rank(chandeMO, lengthLookback, sellPercentile) exitSell = percentile_nearest_rank(chandeMO, lengthLookback, linePercentileLow) chandeMA = sma(chandeMO, 9) //sma for potential other strategies implementing cross / trend //Entry conditions closeLongCondition = chandeMO > exitBuy ? true : false closeShortCondition = chandeMO < exitSell ? true : false longCondition = chandeMO < buy shortCondition = chandeMO > sell if (longCondition) strategy.entry("long", strategy.long) if (shortCondition) strategy.entry("short", strategy.short) //Introducing the closes and a stoploss will minimise loss and bring up the sharpe ratio //Current settings are enabled for maximum potential but big risk //strategy.close("long", when=(closeLongCondition == true)) //strategy.close("short", when=(closeShortCondition == true))