
Chiến lược này sử dụng chỉ số KAMA để theo dõi xu hướng giá, mua thấp và bán cao để kiếm lợi nhuận.
Công thức tính toán của Kaufman Adaptive Moving Average (KAMA) là:
nAMA = nz(nAMA[1]) + nsmooth * (Close - nz(nAMA[1]))
其中:
nsmooth = (nefratio * (nfastend - nslowend) + nslowend)^2
nefratio = nsignal / nnoise
nsignal = |Close - Close[Length]|
nnoise = sum(|Close - Close[1]|, Length)
nfastend = 0.666
nslowend = 0.0645
Các chỉ số tổng hợp xem xét sự biến động của thị trường và xu hướng thay đổi giá, có thể theo dõi xu hướng giá nhanh hơn.
Bằng cách so sánh giá với mối quan hệ của KAMA, người ta có thể đánh giá xu hướng của giá để quyết định thực hiện thêm giao dịch.
Lợi thế lớn nhất của chiến lược này là sử dụng các chỉ số trung bình di chuyển thích ứng để theo dõi xu hướng thay đổi giá, có thể giảm hiệu quả ảnh hưởng của tiếng ồn, theo dõi hiệu quả. Các lợi thế cụ thể như sau:
Chiến lược này cũng có một số rủi ro:
Chiến lược này cũng có thể được tối ưu hóa theo các khía cạnh sau:
Chiến lược này sử dụng Kaufman tự thích ứng với chỉ số trung bình di chuyển để theo dõi xu hướng giá, quy tắc ra quyết định đơn giản, rõ ràng và dễ dàng hoạt động trên thực tế. Chỉ số này ức chế tiếng ồn và phản ứng nhanh với sự thay đổi giá, theo dõi hiệu quả tốt, là một chiến lược theo dõi xu hướng đáng khuyên.
/*backtest
start: 2023-12-03 00:00:00
end: 2024-01-02 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 25/08/2017
// Everyone wants a short-term, fast trading trend that works without large
// losses. That combination does not exist. But it is possible to have fast
// trading trends in which one must get in or out of the market quickly, but
// these have the distinct disadvantage of being whipsawed by market noise
// when the market is volatile in a sideways trending market. During these
// periods, the trader is jumping in and out of positions with no profit-making
// trend in sight. In an attempt to overcome the problem of noise and still be
// able to get closer to the actual change of the trend, Kaufman developed an
// indicator that adapts to market movement. This indicator, an adaptive moving
// average (AMA), moves very slowly when markets are moving sideways but moves
// swiftly when the markets also move swiftly, change directions or break out of
// a trading range.
//
// 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="Kaufman Moving Average Adaptive (KAMA)", shorttitle="Kaufman Moving Average Adaptive (KAMA)", overlay = true)
Length = input(21, minval=1)
xPrice = close
xvnoise = abs(xPrice - xPrice[1])
nfastend = 0.666
nslowend = 0.0645
reverse = input(false, title="Trade reverse")
nsignal = abs(xPrice - xPrice[Length])
nnoise = sum(xvnoise, Length)
nefratio = iff(nnoise != 0, nsignal / nnoise, 0)
nsmooth = pow(nefratio * (nfastend - nslowend) + nslowend, 2)
nAMA = nz(nAMA[1]) + nsmooth * (xPrice - nz(nAMA[1]))
pos = iff(close[1] > nAMA, 1,
iff(close[1] < nAMA, -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(nAMA, color=blue, title="KAMA")