Chiến lược này kết hợp chiến lược mô hình đảo ngược 123 và chiến lược điểm xoay để đạt được tỷ lệ thắng cao hơn. Chiến lược mô hình đảo ngược 123 xác định các điểm đảo ngược xu hướng, trong khi chiến lược điểm xoay xác định các mức hỗ trợ và kháng cự chính. Bằng cách kết hợp cả hai, nó có thể nắm bắt xu hướng trong khi xác định các mức giá vào và ra cụ thể.
Chiến lược này xác định các điểm đảo ngược xu hướng bằng cách sử dụng chỉ số Stochastic Oscillator. Nó đi dài khi giá đóng cao hơn giá đóng trước trong 2 ngày liên tiếp và STO chậm 9 giai đoạn dưới 50; Nó đi ngắn khi giá đóng thấp hơn giá đóng trước trong 2 ngày liên tiếp và STO nhanh 9 giai đoạn trên 50.
Chiến lược này tính toán 3 mức hỗ trợ và 3 mức kháng cự dựa trên giá cao, thấp và đóng cửa ngày trước.
Điểm chuyển động = (cao + thấp + đóng) / 3
Hỗ trợ 1 = 2Điểm chuyển động
Chiến lược này kết hợp khéo léo xác định xu hướng và mức giá chính, cho phép nó phát hiện sự đảo ngược trong khi sử dụng S / R để lọc tín hiệu. Những cải tiến hơn nữa có thể được thực hiện thông qua điều chỉnh tham số và kết hợp với các chiến lược khác. Nó xứng đáng với nghiên cứu và ứng dụng nhiều hơn bởi các nhà giao dịch lượng.
/*backtest start: 2023-12-16 00:00:00 end: 2024-01-15 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 21/04/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 // Pivot points simply took the high, low, and closing price from the previous period and // divided by 3 to find the pivot. From this pivot, traders would then base their // calculations for three support, and three resistance levels. The calculation for the most // basic flavor of pivot points, known as ‘floor-trader pivots’, along with their support and // resistance levels. // // 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 PP2(res,SellFrom,BuyFrom) => pos = 0.0 xHigh = security(syminfo.tickerid,res, high) xLow = security(syminfo.tickerid,res, low) xClose = security(syminfo.tickerid,res, close) vPP = (xHigh+xLow+xClose) / 3 vS1 = 2*vPP - xHigh vR1 = 2*vPP-xLow vS2 = vPP - (vR1 - vS1) vR2 = vPP + (vR1 - vS1) vS3 = xLow - 2 * (xHigh - vPP) vR3 = xHigh + 2 * (vPP - xLow) S = iff(BuyFrom == "S1", vS1, iff(BuyFrom == "S2", vS2, iff(BuyFrom == "S3", vS3,0))) B = iff(SellFrom == "R1", vR1, iff(SellFrom == "R2", vR2, iff(SellFrom == "R3", vR3,0))) pos := iff(close > B, 1, iff(close < S, -1, nz(pos[1], 0))) pos strategy(title="Combo Backtest 123 Reversal & Pivot Point V2)", 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, "---- Pivot Point V2 ----") res = input(title="Resolution", type=input.resolution, defval="D") SellFrom = input(title="Sell from ", defval="R1", options=["R1", "R2", "R3"]) BuyFrom = input(title="Buy from ", defval="S1", options=["S1", "S2", "S3"]) reverse = input(false, title="Trade reverse") posReversal123 = Reversal123(Length, KSmoothing, DLength, Level) posPP2 = PP2(res,SellFrom,BuyFrom) pos = iff(posReversal123 == 1 and posPP2 == 1 , 1, iff(posReversal123 == -1 and posPP2 == -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 )