
Chiến lược này sử dụng phương pháp yếu tố khối lượng hạn chế, kết hợp với đo lường biến động tự thích ứng, để phán đoán nhiều chỗ về thay đổi giá, thuộc loại chiến lược theo dõi xu hướng. Chiến lược áp dụng cho các chu kỳ thời gian, có thể tự động điều chỉnh tham số để thích ứng với mức độ biến động khác nhau.
Chiến lược này tính toán giá trung bình cao thấp nhất của đường K gần nhất, giá trung bình đóng cửa và giá trung bình cao thấp nhất của đường K trước đó. Sau đó tính toán tỷ lệ lợi nhuận đối số của đường K hiện tại và đường K trước đó Intra và Inter. Đồng thời tính toán biến động Vintra và Vinter của Intra và Inter.
Tính toán hệ số cắt giảm thích ứng CutOff dựa trên mức độ biến động và tham số điều chỉnh. Khi giá thay đổi vượt quá CutOff, cho tín hiệu trống rỗng. Cụ thể, tính toán MF của giá đóng cửa K hiện tại với giá trung bình cao thấp, tín hiệu đầu nhiều khi MF lớn hơn CutOff và tín hiệu đầu rỗng khi MF nhỏ hơn CutOff.
Cuối cùng, tính theo tín hiệu dòng tiền, tín hiệu outputs pos, và vẽ đường cong yếu tố khối lượng giới hạn FVE.
Chiến lược này là một chiến lược theo dõi xu hướng có hiệu quả tốt hơn khi kết hợp đúng cách với các chiến lược khác. Điều quan trọng là tìm ra các tham số tốt nhất và thiết lập các biện pháp kiểm soát gió tốt. Nếu sau này có thể tiếp tục tối ưu hóa, nó sẽ trở thành một chiến lược theo dõi xu hướng rất mạnh mẽ.
/*backtest
start: 2022-10-10 00:00:00
end: 2023-10-16 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 18/08/2017
// 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.
//
// You can change long to short in the Input Settings
// Please, use it only for learning or paper trading. Do not for real trading.
////////////////////////////////////////////////////////////
strategy(title="Volatility Finite Volume Elements", shorttitle="FVI")
Samples = input(22, minval=1)
Perma = input(40, minval=1)
Cintra = input(0.1, step=0.1)
Cinter = input(0.1, step=0.1)
reverse = input(false, title="Trade reverse")
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)))
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)
barcolor(possig == -1 ? red: possig == 1 ? green : blue )
plot(xFVE, color=green, title="FVI")
plot(xEMAFVE, color=blue, title="FVI EMA")