
Chiến lược biến động giá EMA kép để đánh giá tình trạng và sức mạnh của thị trường bằng cách tính toán chênh lệch giữa hai EMA của hai kỳ khác nhau. Khi chênh lệch giữa đường nhanh và đường dài lên 0 là tín hiệu đi lên. Khi chênh lệch giữa đường nhanh và đường dài xuống 0 là tín hiệu đi xuống.
Chiến lược này rất đơn giản và dễ sử dụng để đánh giá sức mạnh và hướng của thị trường thông qua sự chênh lệch của EMA. Tuy nhiên, cũng có một sự chậm trễ nhất định, không thể nắm bắt được điểm biến đổi kịp thời.
Chỉ số cốt lõi của chiến lược biến động giá của EMA kép là APO, tức là Tăng động giá tuyệt đối, biểu thị sự khác biệt giữa hai EMA. Công thức tính toán của nó như sau:
APO = EMA(短期) - EMA(长期)
Cụ thể, APO trong chiến lược này được tính là:
xShortEMA = ema(收盘价, LengthShortEMA)
xLongEMA = ema(收盘价, LengthLongEMA)
xAPO = xShortEMA - xLongEMA
Trong đó, LengthShortEMA và LengthLongEMA đại diện cho độ dài chu kỳ của EMA ngắn hạn và dài hạn.
Một số nguyên tắc quan trọng của APO:
Xác định tình trạng trống và thời gian nhập vào thị trường dựa trên giá trị thời gian thực của APO.
Chiến lược biến động giá hai EMA có một số lợi thế chính sau:
Chiến lược biến động giá hai EMA cũng có một số rủi ro, đặc biệt là:
Có thể đối phó và giảm thiểu các rủi ro này bằng cách dừng hợp lý, giảm tổn thất đơn lẻ; tối ưu hóa các tham số, thích nghi với các chu kỳ khác nhau; kết hợp với các chỉ số khác để lọc tín hiệu và tăng sự ổn định chiến lược.
Chiến lược biến động giá hai EMA có thể được tối ưu hóa theo các hướng sau:
Tối ưu hóa tham số EMA chu kỳ, thử nghiệm các kết hợp EMA từ 5 đến 60 chiều dài để tìm tham số tối ưu
Thêm MA, KDJ, MACD và các chỉ số khác, đặt điều kiện lọc để tránh tín hiệu giả
Sử dụng các chỉ số như Brin Belt, KD để xác định vị trí dừng dừng hợp lý
Kết hợp các chỉ số như chỉ số xu hướng để xác định xu hướng giá và tránh giao dịch ngược
Thêm chỉ số khối lượng giao dịch để đảm bảo có tín hiệu phá vỡ được hỗ trợ bởi khối lượng giao dịch
Thiết lập các điều kiện nhập lại, tránh giao dịch thường xuyên, giảm số lần giao dịch
Nói tóm lại, chiến lược biến động giá EMA kép được đánh giá bằng cách tính toán APO của hai EMA để đánh giá tình trạng thị trường trống, tín hiệu chiến lược đơn giản, rõ ràng, thực tế, cũng có một số nhược điểm. Chúng ta có thể tối ưu hóa và nâng cao sự ổn định của chiến lược bằng các phương pháp như tối ưu hóa tham số, thêm điều kiện lọc, thiết lập trạm dừng. Chiến lược này dễ sử dụng, có không gian mở rộng lớn và phù hợp cho học sinh mới bắt đầu giao dịch định lượng và ứng dụng.
/*backtest
start: 2023-02-19 00:00:00
end: 2024-02-25 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 30/05/2017
// The Absolute Price Oscillator displays the difference between two exponential
// moving averages of a security's price and is expressed as an absolute value.
// How this indicator works
// APO crossing above zero is considered bullish, while crossing below zero is bearish.
// A positive indicator value indicates an upward movement, while negative readings
// signal a downward trend.
// Divergences form when a new high or low in price is not confirmed by the Absolute Price
// Oscillator (APO). A bullish divergence forms when price make a lower low, but the APO
// forms a higher low. This indicates less downward momentum that could foreshadow a bullish
// reversal. A bearish divergence forms when price makes a higher high, but the APO forms a
// lower high. This shows less upward momentum that could foreshadow a bearish reversal.
//
// 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="Absolute Price Oscillator (APO) Backtest", shorttitle="APO")
LengthShortEMA = input(10, minval=1)
LengthLongEMA = input(20, minval=1)
reverse = input(false, title="Trade reverse")
hline(0, color=gray, linestyle=line)
xPrice = close
xShortEMA = ema(xPrice, LengthShortEMA)
xLongEMA = ema(xPrice, LengthLongEMA)
xAPO = xShortEMA - xLongEMA
pos = iff(xAPO > 0, 1,
iff(xAPO < 0, -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(xAPO, color=blue, title="APO")