Chiến lược này là một chiến lược giao dịch đảo ngược kết hợp dựa trên mô hình hai yếu tố. Nó tích hợp mô hình đảo ngược 123 và các yếu tố Chỉ số khối lượng để đạt được hiệu ứng tích lũy cho các tín hiệu chiến lược. Nó sẽ chỉ đi dài hoặc ngắn khi cả hai yếu tố phát ra tín hiệu mua hoặc bán đồng thời.
Điều này hoạt động dựa trên mô hình giá 123. Khi mối quan hệ giá đóng trong hai ngày qua là
Nhân tố này đánh giá sự đảo ngược xu hướng dựa trên sự mở rộng hoặc co lại của phạm vi biến động giá. Khi phạm vi mở rộng, chỉ số tăng và khi phạm vi thu hẹp, chỉ số giảm. Nó tạo ra tín hiệu bán khi chỉ số vượt qua ngưỡng và tín hiệu mua khi vượt qua ngưỡng.
Chiến lược chỉ mở các vị trí khi hai yếu tố phát ra tín hiệu theo cùng một hướng, đạt được giao dịch có lợi nhuận trong khi tránh các tín hiệu sai từ một yếu tố duy nhất.
Các rủi ro có thể được giảm thiểu thông qua việc mở rộng tập huấn, dừng lỗ nghiêm ngặt, lọc đa yếu tố v.v.
Chiến lược này kết hợp hai yếu tố, mô hình giá và chỉ số biến động, để chỉ nhận tín hiệu khi chúng đồng ý, tránh tín hiệu sai từ một yếu tố duy nhất và cải thiện sự ổn định. Nhưng rủi ro vẫn còn cho các tín hiệu sai đồng thời. Chúng ta có thể tăng thêm hiệu suất và lợi nhuận điều chỉnh rủi ro bằng cách mở rộng bộ dữ liệu, đặt dừng lỗ, tối ưu hóa sự kết hợp các yếu tố và hơn thế nữa.
/*backtest start: 2023-11-25 00:00:00 end: 2023-12-25 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 22/02/2021 // 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 // The Mass Index was designed to identify trend reversals by measuring // the narrowing and widening of the range between the high and low prices. // As this range widens, the Mass Index increases; as the range narrows // the Mass Index decreases. // The Mass Index was developed by Donald Dorsey. // // 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 MASS(Length1,Length2,Trigger) => pos = 0.0 xPrice = high - low xEMA = ema(xPrice, Length1) xSmoothXAvg = ema(xEMA, Length1) nRes = sum(iff(xSmoothXAvg != 0, xEMA / xSmoothXAvg, 0), Length2) pos := iff(nRes > Trigger, -1, iff(nRes < Trigger, 1, nz(pos[1], 0))) pos strategy(title="Combo Backtest 123 Reversal & MASS Index", shorttitle="Combo", overlay = true) line1 = input(true, "---- 123 Reversal ----") Length = input(14, minval=1) KSmoothing = input(1, minval=1) DLength = input(3, minval=1) Level = input(50, minval=1) //------------------------- line2 = input(true, "---- MASS Index ----") Length1 = input(9, minval=1) Length2 = input(25, minval=1) Trigger = input(26.5, step = 0.01) reverse = input(false, title="Trade reverse") posReversal123 = Reversal123(Length, KSmoothing, DLength, Level) posMASS = MASS(Length1,Length2,Trigger) pos = iff(posReversal123 == 1 and posMASS == 1 , 1, iff(posReversal123 == -1 and posMASS == -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 )