Chiến lược này kết hợp chỉ số động lực CMO và chỉ số đảo ngược Stochastic để xây dựng một mô hình đa yếu tố để khám phá các cơ hội giao dịch trên các môi trường thị trường khác nhau.
Chiến lược bao gồm hai tiểu chiến lược:
123 Chiến lược đảo ngược
Sử dụng Stochastic 9 ngày để xác định mức mua quá mức và bán quá mức
Đi dài nếu giá đóng tăng trong 2 ngày liên tiếp và Stochastic dưới 50
Đi ngắn nếu giá đóng giảm trong 2 ngày liên tiếp và Stochastic trên 50
Chiến lược giá trị tuyệt đối của CMO
Tính toán giá trị tuyệt đối của CMO
CMO trên 70 chỉ ra mua quá mức, mua ngắn
CMO dưới 20 chỉ ra bán quá mức, đi dài
Cuối cùng, một tín hiệu giao dịch được tạo ra khi hai chiến lược phụ đồng ý.
Chiến lược sử dụng đầy đủ các điểm mạnh của chỉ số động lực CMO và chỉ số đảo ngược Stochastic. CMO là tốt trong việc xác định xu hướng trong khi Stochastic hữu ích để bắt đảo ngược ngắn hạn. Sự kết hợp cho phép mô hình khám phá các cơ hội trên các giai đoạn thị trường khác nhau.
Chiến lược có những lợi thế sau:
Mô hình đa yếu tố thích nghi với môi trường thị trường khác nhau
CMO có khả năng phát hiện xu hướng mạnh mẽ, Stochastic xác định chính xác các điểm đảo ngược
Chỉ giao dịch khi hai tín hiệu đồng ý tránh tín hiệu sai và cải thiện lợi nhuận
Không gian điều chỉnh tham số lớn cho phép tối ưu hóa cho các sản phẩm và khung thời gian khác nhau
Kết hợp các chỉ số dài hạn và ngắn hạn khám phá ra nhiều cơ hội hơn
Quy tắc đơn giản và rõ ràng, dễ hiểu và tự động hóa, phù hợp với giao dịch algos
Chiến lược này cũng có những rủi ro sau:
Khả năng tín hiệu sai từ các chiến lược con tồn tại, các thông số cần tối ưu hóa
Sự thay đổi đột ngột có thể dẫn đến tổn thất lớn
Tần suất giao dịch cao, chi phí giao dịch cần được xem xét
Tính chất chậm của các chỉ số dẫn đến sự chậm trễ
Điều chỉnh tham số là thách thức cho các sản phẩm khác nhau
Giải pháp:
Tối ưu hóa các thông số chiến lược phụ để giảm tín hiệu sai
Sử dụng stop loss để giới hạn lỗ cho mỗi giao dịch
Điều chỉnh các quy tắc nhập vào tần suất giao dịch thấp hơn
Sử dụng dữ liệu tick để giảm thiểu sự chậm trễ
Áp dụng máy học để điều chỉnh tham số tự động
Chiến lược có thể được cải thiện trong các khía cạnh sau:
Tạo thêm các yếu tố như biến động và khối lượng cho một mô hình đa yếu tố có hệ thống
Xây dựng cơ chế tối ưu hóa tham số năng động thích nghi với các chế độ thị trường
Tối ưu hóa logic nhập bằng cách sử dụng xác suất và làm mịn theo cấp số nhân v.v.
Bảo hiểm vị trí dài hạn với các giao dịch ngắn hạn để đạt được mục tiêu kép
Tạo thêm các tính năng với deep learning để xây dựng các quy tắc giao dịch phi tuyến tính
Khám phá các mô hình không có tham số để tránh sự thiên vị của con người
Kết hợp dữ liệu tần số cao và các sự kiện tin tức để giảm chậm trễ
Chiến lược này sử dụng chỉ số động lực CMO và chỉ số đảo ngược Stochastic để xây dựng một mô hình đa yếu tố cho các cơ hội giao dịch trong các thị trường xu hướng và bên cạnh. So với các mô hình đơn yếu tố, cách tiếp cận đa yếu tố thích nghi tốt hơn với môi trường thị trường phức tạp. Trong khi đó, không gian điều chỉnh tham số lớn và các quy tắc đơn giản làm cho nó dễ dàng tối ưu hóa và tự động hóa, phù hợp với phát triển giao dịch algô. Tuy nhiên, quản lý rủi ro là rất quan trọng, và nhu cầu cao về lựa chọn tham số và tối ưu hóa mô hình là cần thiết. Nhìn chung, chiến lược hỗn hợp đảo ngược động lực cung cấp một ý tưởng giao dịch có hệ thống xứng đáng để tham khảo và khám phá.
/*backtest start: 2023-09-22 00:00:00 end: 2023-10-22 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 17/09/2019 // This is combo strategies for get a cumulative signal. // // First strategy // This System was created from the Book "How I Tripled My Money In The // Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies. // The strategy buys at market, if close price is higher than the previous close // during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50. // The strategy sells at market, if close price is lower than the previous close price // during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50. // // Second strategy // This indicator plots the absolute value of CMO. CMO was developed by Tushar // Chande. A scientist, an inventor, and a respected trading system developer, // Mr. Chande developed the CMO to capture what he calls "pure momentum". For // more definitive information on the CMO and other indicators we recommend the // book The New Technical Trader by Tushar Chande and Stanley Kroll. // The CMO is closely related to, yet unique from, other momentum oriented indicators // such as Relative Strength Index, Stochastic, Rate-of-Change, etc. It is most closely // related to Welles Wilder`s RSI, yet it differs in several ways: // - It uses data for both up days and down days in the numerator, thereby directly // measuring momentum; // - The calculations are applied on unsmoothed data. Therefore, short-term extreme // movements in price are not hidden. Once calculated, smoothing can be applied to // the CMO, if desired; // - The scale is bounded between +100 and -100, thereby allowing you to clearly see // changes in net momentum using the 0 level. The bounded scale also allows you to // conveniently compare values across different securities. // // WARNING: // - For purpose educate only // - This script to change bars colors. //////////////////////////////////////////////////////////// Reversal123(Length, KSmoothing, DLength, Level) => vFast = sma(stoch(close, high, low, Length), KSmoothing) vSlow = sma(vFast, DLength) pos = 0.0 pos := iff(close[2] < close[1] and close > close[1] and vFast < vSlow and vFast > Level, 1, iff(close[2] > close[1] and close < close[1] and vFast > vSlow and vFast < Level, -1, nz(pos[1], 0))) pos CMOabs(Length, TopBand, LowBand) => pos = 0 xMom = abs(close - close[1]) xSMA_mom = sma(xMom, Length) xMomLength = close - close[Length] nRes = abs(100 * (xMomLength / (xSMA_mom * Length))) pos := iff(nRes > TopBand, -1, iff(nRes < LowBand, 1, nz(pos[1], 0))) pos strategy(title="Combo Backtest 123 Reversal & CMOabs", shorttitle="Combo", overlay = true) Length = input(14, minval=1) KSmoothing = input(1, minval=1) DLength = input(3, minval=1) Level = input(50, minval=1) //------------------------- LengthCMO = input(9, minval=1) TopBand = input(70, minval=1) LowBand = input(20, maxval=0) reverse = input(false, title="Trade reverse") posReversal123 = Reversal123(Length, KSmoothing, DLength, Level) posCMOabs = CMOabs(LengthCMO, TopBand, LowBand) pos = iff(posReversal123 == 1 and posCMOabs == 1 , 1, iff(posReversal123 == -1 and posCMOabs == -1, -1, 0)) possig = iff(reverse and pos == 1, -1, iff(reverse and pos == -1 , 1, pos)) if (possig == 1) strategy.entry("Long", strategy.long) if (possig == -1) strategy.entry("Short", strategy.short) if (possig == 0) strategy.close_all() barcolor(possig == -1 ? #b50404: possig == 1 ? #079605 : #0536b3 )