Chiến lược này kết hợp các điểm mạnh của các chỉ số cơ chế kép bằng cách sử dụng mô hình 123 để xác định các tín hiệu đảo ngược và được hỗ trợ bởi Chỉ số khối lượng giá để xác định các tín hiệu động lực, để nắm bắt xu hướng đảo ngược ngắn hạn.
Mô hình 123 cho tín hiệu đảo ngược
Được xây dựng với 9 ngày Stoch đường nhanh và đường chậm
Khi giá đóng giảm trong 2 ngày liên tiếp và tăng vào ngày thứ 3, và đường nhanh Stoch dưới 50, một tín hiệu mua được tạo ra
Khi giá đóng tăng trong 2 ngày liên tiếp và giảm vào ngày thứ 3, và đường nhanh Stoch trên 50, một tín hiệu bán được tạo ra
Chỉ số giá khối lượng cho tín hiệu động lực
PVI đánh giá động lượng bằng cách so sánh thay đổi khối lượng giữa ngày trước và ngày hiện tại
Khi PVI vượt qua mức trung bình động trong N ngày, động lực tăng cường và một tín hiệu mua được tạo ra
Khi PVI vượt dưới đường trung bình động trong N ngày, động lượng giảm và một tín hiệu bán được tạo ra
Kết hợp tín hiệu kép
Tóm lại, chiến lược này tận dụng lợi thế của các chỉ số cơ chế kép để xác định hiệu quả các cơ hội đảo ngược giá khối lượng ngắn hạn.
Mô hình 123 bắt được các điểm đảo ngược ngắn hạn chính
Động lực PVI đánh giá hành động phối hợp giá - khối lượng để tránh đột phá sai
Parameter tối ưu hóa Stoch lọc ra hầu hết các tín hiệu tiếng ồn trong khu vực hỗn loạn
Độ tin cậy tín hiệu kép cao hơn tín hiệu đơn
Thiết kế trong ngày tránh rủi ro qua đêm phù hợp với giao dịch ngắn hạn
Rủi ro đảo ngược thất bại
Rủi ro thất bại chỉ số
Rủi ro mất tín hiệu hai lần
Rủi ro tần suất giao dịch cao
Không gian tối ưu hóa tham số lớn
Có thể kết hợp các chiến lược dừng lỗ
Xem xét thêm các điều kiện bộ lọc
Tối ưu hóa danh mục tín hiệu kép
Chiến lược này tạo thành một hệ thống đảo ngược giá khối lượng ngắn hạn đáng tin cậy cao thông qua sự kết hợp của chỉ số Stoch và PVI. So với các chỉ số đơn lẻ, nó có tỷ lệ thắng cao hơn và kỳ vọng tích cực hơn. Tỷ lệ Sharpe có thể được cải thiện hơn nữa thông qua tối ưu hóa và kiểm soát rủi ro.
/*backtest start: 2023-12-01 00:00:00 end: 2023-12-31 23:59:59 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 22/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 // The theory behind the indexes is as follows: On days of increasing volume, // you can expect prices to increase, and on days of decreasing volume, you can // expect prices to decrease. This goes with the idea of the market being in-gear // and out-of-gear. Both PVI and NVI work in similar fashions: Both are a running // cumulative of values, which means you either keep adding or subtracting price // rate of change each day to the previous day`s sum. In the case of PVI, if today`s // volume is less than yesterday`s, don`t add anything; if today`s volume is greater, // then add today`s price rate of change. For NVI, add today`s price rate of change // only if today`s volume is less than yesterday`s. // // 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 PVI(EMA_Len) => pos = 0.0 xROC = roc(close, 1) nRes = 0.0 nResEMA = 0.0 nRes := iff(volume > volume[1], nz(nRes[1], 0) + xROC, nz(nRes[1], 0)) nResEMA := ema(nRes, EMA_Len) pos := iff(nRes > nResEMA, 1, iff(nRes < nResEMA, -1, nz(pos[1], 0))) pos strategy(title="Combo Backtest 123 Reversal & Positive Volume 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, "---- Positive Volume Index ----") EMA_Len = input(255, minval=1) reverse = input(false, title="Trade reverse") posReversal123 = Reversal123(Length, KSmoothing, DLength, Level) posPVI = PVI(EMA_Len) pos = iff(posReversal123 == 1 and posPVI == 1 , 1, iff(posReversal123 == -1 and posPVI == -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 )