Chiến lược này kết hợp nhiều chỉ số kỹ thuật để xác định sự đảo ngược giá, làm cho nó trở thành một chiến lược giao dịch đảo ngược dựa trên nhiều yếu tố. Nó tích hợp mô hình 123 với chỉ số hiệu quả phân cực (PFE), chỉ vào giao dịch khi cả hai đồng ý về tín hiệu để lọc các tín hiệu sai và cải thiện tỷ lệ thắng.
Chiến lược bao gồm hai thành phần chính:
Nhận dạng mô hình 123: Một tín hiệu mua được tạo ra khi đóng cửa tăng trong 2 ngày liên tiếp và sau đó giảm vào ngày thứ 3, với đường nhanh Stochastic dưới đường chậm. Một tín hiệu bán được tạo ra khi ngược lại xảy ra.
Mức ngưỡng chỉ số PFE: PFE trên giới hạn trên cho thấy tín hiệu bán, PFE dưới giới hạn dưới cho thấy tín hiệu mua.
Các giao dịch chỉ được thực hiện khi cả mô hình 123 và chỉ số PFE đồng ý.
Mô hình 123 xác định khả năng đảo ngược. PFE đo hiệu quả xu hướng để tránh đột phá sai. Cùng nhau, chúng cải thiện độ chính xác thông qua xác nhận đa yếu tố.
Hạn chế:
Chiến lược có thể được tăng cường thông qua:
Chiến lược này kết hợp nhiều yếu tố để xác định các điểm đảo ngược, cung cấp tính vững chắc về mặt lý thuyết và dễ thực hiện. Cách tiếp cận đa yếu tố cải thiện độ chính xác so với các chỉ số duy nhất.
/*backtest start: 2023-09-11 00:00:00 end: 2023-09-13 08:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 16/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 Polarized Fractal Efficiency (PFE) indicator measures the efficiency // of price movements by drawing on concepts from fractal geometry and chaos // theory. The more linear and efficient the price movement, the shorter the // distance the prices must travel between two points and thus the more efficient // the price movement. // // 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 PFE(Length,LengthEMA,BuyBand,SellBand) => pos = 0.0 PFE = sqrt(pow(close - close[Length], 2) + 100) C2C = sum(sqrt(pow((close - close[1]), 2) + 1), Length) xFracEff = iff(close - close[Length] > 0, round((PFE / C2C) * 100) , round(-(PFE / C2C) * 100)) xEMA = ema(xFracEff, LengthEMA) pos := iff(xEMA < SellBand, -1, iff(xEMA > BuyBand, 1, nz(pos[1], 0))) pos strategy(title="Combo Backtest 123 Reversal & PFE (Polarized Fractal Efficiency)", 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, "---- PFE ----") LengthPFE = input(9, minval=1) LengthEMA = input(5, minval=1) BuyBand = input(50, step = 0.1) SellBand = input(-50, step = 0.1) reverse = input(false, title="Trade reverse") posReversal123 = Reversal123(Length, KSmoothing, DLength, Level) posPFE = PFE(LengthPFE,LengthEMA,BuyBand,SellBand) pos = iff(posReversal123 == 1 and posPFE == 1 , 1, iff(posReversal123 == -1 and posPFE == -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 )