Chiến lược này kết hợp một chiến lược nắm bắt xu hướng đảo ngược và chiến lược dừng lỗ động để nắm bắt xu hướng đảo ngược trong khi kiểm soát rủi ro bằng các điểm dừng năng động.
Chiến lược này dựa trên giá trị K và D của Stochastic Oscillator. Nó tạo ra tín hiệu mua khi giá giảm trong hai ngày liên tiếp trong khi K tăng trên D. Nó tạo ra tín hiệu bán khi giá tăng trong hai ngày trong khi K giảm dưới D. Điều này bắt được xu hướng đảo ngược giá.
Chiến lược này thiết lập stop loss năng động dựa trên biến động giá và lệch. Nó tính toán biến động của mức cao nhất và thấp nhất gần đây và đánh giá xem nó có nằm trong kênh trên hoặc xuống dựa trên lệch, sau đó thiết lập giá dừng năng động phù hợp. Điều này điều chỉnh vị trí dừng dựa trên điều kiện thị trường.
Hai chiến lược làm việc cùng nhau để bắt tín hiệu đảo ngược và thiết lập các điểm dừng năng động để kiểm soát rủi ro.
Rủi ro có thể được kiểm soát bằng cách tối ưu hóa tham số, dừng lỗ nghiêm ngặt, chọn các sản phẩm có thanh khoản tốt.
Tối ưu hóa toàn diện cho phép chiến lược để bắt được sự đảo ngược trong khi kiểm soát rủi ro.
Chiến lược này kết hợp bắt kịp xu hướng đảo ngược và dừng động cho giao dịch ngắn hạn ổn định. Với tối ưu hóa và giám sát liên tục, nó có tiềm năng kiếm lợi nhuận ổn định.
/*backtest start: 2024-01-05 00:00:00 end: 2024-02-04 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 07/12/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 // The Kase Dev Stops system finds the optimal statistical balance between letting profits run, // while cutting losses. Kase DevStop seeks an ideal stop level by accounting for volatility (risk), // the variance in volatility (the change in volatility from bar to bar), and volatility skew // (the propensity for volatility to occasionally spike incorrectly). // Kase Dev Stops are set at points at which there is an increasing probability of reversal against // the trend being statistically significant based on the log normal shape of the range curve. // Setting stops will help you take as much risk as necessary to stay in a good position, but not more. // // You can change long to short in the Input Settings // Please, use it only for learning or paper trading. Do not for real trading. // // 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 KaseDevStops(Length, Level) => pos = 0.0 RWH = (high - low[Length]) / (atr(Length) * sqrt(Length)) RWL = (high[Length] - low) / (atr(Length) * sqrt(Length)) Pk = wma((RWH-RWL),3) AVTR = sma(highest(high,2) - lowest(low,2), 20) SD = stdev(highest(high,2) - lowest(low,2),20) Val4 = iff(Pk>0, highest(high-AVTR-3*SD,20), lowest(low+AVTR+3*SD,20)) Val3 = iff(Pk>0, highest(high-AVTR-2*SD,20), lowest(low+AVTR+2*SD,20)) Val2 = iff(Pk>0, highest(high-AVTR-SD,20), lowest(low+AVTR+SD,20)) Val1 = iff(Pk>0, highest(high-AVTR,20), lowest(low+AVTR,20)) ResPrice = iff(Level == 4, Val4, iff(Level == 3, Val3, iff(Level == 2, Val2, iff(Level == 1, Val1, Val4)))) pos := iff(close < ResPrice , -1, 1) pos strategy(title="Combo Backtest 123 Reversal & Kase Dev Stops", shorttitle="Combo", overlay = true) Length = input(14, minval=1) KSmoothing = input(1, minval=1) DLength = input(3, minval=1) Level = input(50, minval=1) //------------------------- LengthKDS = input(30, minval=2, maxval = 100) LevelKDS = input(title="Trade From Level", defval=4, options=[1, 2, 3, 4]) reverse = input(false, title="Trade reverse") posReversal123 = Reversal123(Length, KSmoothing, DLength, Level) posKaseDevStops = KaseDevStops(LengthKDS, LevelKDS) pos = iff(posReversal123 == 1 and posKaseDevStops == 1 , 1, iff(posReversal123 == -1 and posKaseDevStops == -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 )