Chiến lược này kết hợp hai chiến lược giao dịch định lượng để tạo ra các tín hiệu giao dịch chính xác và đáng tin cậy hơn. Chiến lược đầu tiên dựa trên đảo ngược giá và chiến lược thứ hai dựa trên phân tích khối lượng. Các tín hiệu kết hợp có thể cải thiện hiệu quả lợi nhuận.
Chiến lược bao gồm hai phần:
Sử dụng chỉ số STO cho tín hiệu đảo ngược. Đi dài khi gần tăng trong 2 ngày và đường chậm STO dưới 50. Đi ngắn khi gần giảm trong 2 ngày và đường nhanh STO trên 50.
Phân tích mối quan hệ giá - khối lượng trong một khoảng thời gian để xác định hướng, với sự mượt mà trung bình động.
Nó đi dài khi cả hai chiến lược tín hiệu dài, và đi ngắn khi cả hai tín hiệu ngắn.
Sự kết hợp cải thiện chất lượng tín hiệu bằng cách giảm đáng kể các tín hiệu sai từ cả hai chiến lược.
Các rủi ro có thể được giảm bằng cách:
Chiến lược có thể được cải thiện bằng cách:
Tối ưu hóa các thông số STO
Giá trị K, D tinh chỉnh cho các kết hợp tốt nhất
Xác nhận thứ cấp về việc phá vỡ âm lượng
Với các chỉ số như MACD, BOLL...
Tối ưu hóa thời gian trung bình động
Kiểm tra các khoảng thời gian khác nhau cho các tín hiệu ổn định hơn
Thêm mẫu biểu đồ
Nhập các mẫu ngoài các tín hiệu combo
Kiểm tra tham số cụ thể sản phẩm
Các thông số có thể khác nhau giữa các sản phẩm khác nhau
Chiến lược này kết hợp các chiến lược đảo ngược và khối lượng để cải thiện chất lượng và độ chính xác tín hiệu. Nhưng tối ưu hóa tham số, các chỉ số kỹ thuật bổ sung, v.v. có thể cải thiện hiệu suất hơn nữa. Chúng ta có thể liên tục điều chỉnh dựa trên kết quả backtest, xác nhận trong giao dịch trực tiếp, để có được một chiến lược combo thực sự mạnh mẽ. Điều này đòi hỏi rất nhiều thời gian và nỗ lực, nhưng phần thưởng cũng sẽ đáng kể.
/*backtest start: 2023-09-13 00:00:00 end: 2023-09-20 00:00:00 period: 15m basePeriod: 5m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 21/10/2020 // 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 is another version of FVE indicator that we have posted earlier // in this forum. // This version has an important enhancement to the previous one that`s // especially useful with intraday minute charts. // Due to the volatility had not been taken into account to avoid the extra // complication in the formula, the previous formula has some drawbacks: // The main drawback is that the constant cutoff coefficient will overestimate // price changes in minute charts and underestimate corresponding changes in // weekly or monthly charts. // And now the indicator uses adaptive cutoff coefficient which will adjust to // all time frames automatically. // // 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 FVI(Samples,Perma,Cintra,Cinter) => pos = 0 xhl2 = hl2 xhlc3 = hlc3 xClose = close xIntra = log(high) - log(low) xInter = log(xhlc3) - log(xhlc3[1]) xStDevIntra = stdev(sma(xIntra, Samples) , Samples) xStDevInter = stdev(sma(xInter, Samples) , Samples) xVolume = volume TP = xhlc3 TP1 = xhlc3[1] Intra = xIntra Vintra = xStDevIntra Inter = xInter Vinter = xStDevInter CutOff = Cintra * Vintra + Cinter * Vinter MF = xClose - xhl2 + TP - TP1 FveFactor = iff(MF > CutOff * xClose, 1, iff(MF < -1 * CutOff * xClose, -1, 0)) xVolumePlusMinus = xVolume * FveFactor Fvesum = sum(xVolumePlusMinus, Samples) VolSum = sum(xVolume, Samples) xFVE = (Fvesum / VolSum) * 100 xEMAFVE = ema(xFVE, Perma) pos :=iff(xFVE > xEMAFVE, 1, iff(xFVE < xEMAFVE, -1, nz(pos[1], 0))) pos strategy(title="Combo Backtest 123 Reversal & Volatility Finite Volume Elements", shorttitle="Combo", overlay = true) Length = input(14, minval=1) KSmoothing = input(1, minval=1) DLength = input(3, minval=1) Level = input(50, minval=1) //------------------------- Samples = input(22, minval=1) Perma = input(40, minval=1) Cintra = input(0.1) Cinter = input(0.1) reverse = input(false, title="Trade reverse") posReversal123 = Reversal123(Length, KSmoothing, DLength, Level) posFVI = FVI(Samples,Perma,Cintra,Cinter) pos = iff(posReversal123 == 1 and posFVI == 1 , 1, iff(posReversal123 == -1 and posFVI == -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 )