
Chiến lược giao dịch biến động đường trung bình kép được tạo ra để tạo ra tín hiệu giao dịch và đạt được lợi nhuận trong tình huống biến động bằng cách kết hợp sử dụng chỉ số di chuyển trung bình 2 / 20 và chỉ số biến động giá tự điều chỉnh. Chiến lược này chủ yếu áp dụng cho các thị trường có tính năng biến động rõ rệt như chỉ số cổ phiếu, ngoại hối, hàng hóa và tiền kỹ thuật số.
Chiến lược giao dịch biến động đường trung bình kép bao gồm hai phần:
2⁄20 chỉ số trung bình di chuyển. Chỉ số này tạo ra tín hiệu mua khi giá tăng vượt qua đường 20 ngày và giảm không vượt qua đường 2 ngày; tạo ra tín hiệu bán khi giá giảm vượt qua đường 2 ngày và tăng không vượt qua đường 20 ngày.
Chỉ số biến động giá tự điều chỉnh. Chỉ số này xây dựng giá dựa trên phạm vi biến động của giá, đánh giá điểm biến động thị trường bằng cách phá vỡ giá lên và xuống, tạo ra tín hiệu mua và bán.
Chiến lược giao dịch dao động đường trung bình kép tạo ra tín hiệu giao dịch thực tế, thực hiện chiến lược giao dịch khi chỉ số di chuyển trung bình 2 / 20 và chỉ số dao động đường giá thích ứng cùng phát tín hiệu. Điều này có thể lọc một số tín hiệu không hiệu quả một cách hiệu quả và cải thiện chất lượng tín hiệu.
Chiến lược giao dịch biến động đường trung bình kép kết hợp lợi thế của chỉ số đường trung bình và chỉ số biến động, có các đặc điểm sau:
Tín hiệu giao dịch đáng tin cậy. Xác minh hai chỉ số cải thiện chất lượng tín hiệu, lọc hiệu quả tín hiệu không hiệu quả.
Để thích ứng với tình trạng chấn động. Sử dụng kết hợp giữa đường trung bình và chỉ số dải giá, có thể xác định chính xác điểm biến đổi trong tình trạng chấn động.
Tần suất giao dịch vừa phải. Chiến lược trung bình di chuyển hai chỉ số có thể làm giảm số lượng giao dịch không hiệu quả.
Dễ dàng thực hiện giao dịch tự động. Quy tắc tín hiệu rõ ràng, tham số thiết lập đơn giản, dễ dàng lập trình để thực hiện giao dịch tự động.
Chiến lược giao dịch biến động đường trung bình kép cũng có những rủi ro sau:
Tín hiệu có thể bị trì hoãn nhiều. Gói chỉ số kép lọc tín hiệu, có thể bỏ lỡ cơ hội biến đổi giá nhanh chóng.
Chiến lược phụ thuộc chủ yếu vào tình trạng xung đột, khi sự xung đột giảm đi, tín hiệu giao dịch và không gian kiếm lợi nhuận sẽ giảm đi.
Tác động của tối ưu hóa tham số là đáng kể. Cài đặt tham số chỉ số sẽ có ảnh hưởng lớn đến kết quả giao dịch, cần phải tối ưu hóa hệ thống để xác định tham số tối ưu nhất.
Đối với các rủi ro trên, có thể áp dụng phương pháp điều chỉnh các tham số động để đáp ứng với sự thay đổi của môi trường thị trường, đồng thời thiết lập chiến lược dừng lỗ để kiểm soát rủi ro mất mát.
Chiến lược giao dịch biến động hai đường trung bình có thể được tối ưu hóa theo các khía cạnh sau:
Kiểm tra nhiều hơn các kết hợp của các tham số đường trung bình và đường giá. Kiểm tra một cách có hệ thống các tham số đường trung bình và đường giá với các chiều dài khác nhau để tìm các kết hợp tham số tối ưu.
Thêm tín hiệu lọc chỉ số khối lượng giao dịch. Kết hợp với tín hiệu lọc số lượng giao dịch bất thường và tín hiệu giá đường trung bình, có thể cải thiện hơn nữa chất lượng tín hiệu.
Thiết lập cơ chế dừng lỗ động. Khi thị trường biến động yếu đi, hãy thắt chặt điểm dừng lỗ một cách thích hợp để giảm thiểu tổn thất đơn lẻ.
Kết hợp với mô hình học sâu. Sử dụng mô hình học sâu như LSTM để xác minh tín hiệu giao dịch, làm cho chiến lược trở nên thông minh hơn.
Chiến lược giao dịch dao động đường trung bình kép tạo ra tín hiệu giao dịch dao động chất lượng cao, có thể thích ứng với các thị trường biến động như chỉ số cổ phiếu, ngoại hối và hàng hóa, giao dịch tháo gỡ thường xuyên trong khu vực dao động. Chiến lược này có các lợi thế như chất lượng tín hiệu cao, dễ dàng thực hiện tự động. Đồng thời, cần phải chú ý đến việc kiểm soát rủi ro của việc xác định chậm trễ các điểm đảo chiều và điều chỉnh động các tham số, trên cơ sở này vẫn còn rất nhiều không gian tối ưu hóa.
/*backtest
start: 2023-11-03 00:00:00
end: 2023-12-03 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 02/03/2022
// This is combo strategies for get a cumulative signal.
//
// First strategy
// This indicator plots 2/20 exponential moving average. For the Mov
// Avg X 2/20 Indicator, the EMA bar will be painted when the Alert criteria is met.
//
// Second strategy
// The adaptive price zone (APZ) is a volatility-based technical indicator that helps investors
// identify possible market turning points, which can be especially useful in a sideways-moving
// market. It was created by technical analyst Lee Leibfarth in the article “Identify the
// Turning Point: Trading With An Adaptive Price Zone,” which appeared in the September 2006 issue
// of the journal Technical Analysis of Stocks and Commodities.
// This indicator attempts to signal significant price movements by using a set of bands based on
// short-term, double-smoothed exponential moving averages that lag only slightly behind price changes.
// It can help short-term investors and day traders profit in volatile markets by signaling price
// reversal points, which can indicate potentially lucrative times to buy or sell. The APZ can be
// implemented as part of an automated trading system and can be applied to the charts of all tradeable assets.
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
EMA20(Length) =>
pos = 0.0
xPrice = close
xXA = ta.ema(xPrice, Length)
nHH = math.max(high, high[1])
nLL = math.min(low, low[1])
nXS = nLL > xXA or nHH < xXA ? nLL : nHH
iff_1 = nXS < close[1] ? 1 : nz(pos[1], 0)
pos := nXS > close[1] ? -1 : iff_1
pos
APZ(nPeriods,nBandPct) =>
pos = 0.0
xHL = high - low
nP = math.ceil(math.sqrt(nPeriods))
xVal1 = ta.ema(ta.ema(close,nP), nP)
xVal2 = ta.ema(ta.ema(xHL,nP), nP)
UpBand = nBandPct * xVal2 + xVal1
DnBand = xVal1 - nBandPct * xVal2
pos := low < DnBand ? 1 : high > UpBand ? -1 : pos[1]
pos
strategy(title='Combo 2/20 EMA & Adaptive Price Zone', shorttitle='Combo', overlay=true)
var I1 = '●═════ 2/20 EMA ═════●'
Length = input.int(14, minval=1, group=I1)
var I2 = '●═════ Adaptive Price Zone ═════●'
nPeriods = input(20)
nBandPct = input(2)
var misc = '●═════ MISC ═════●'
reverse = input.bool(false, title='Trade reverse', group=misc)
var timePeriodHeader = '●═════ Time Start ═════●'
d = input.int(1, title='From Day', minval=1, maxval=31, group=timePeriodHeader)
m = input.int(1, title='From Month', minval=1, maxval=12, group=timePeriodHeader)
y = input.int(2005, title='From Year', minval=0, group=timePeriodHeader)
StartTrade = time > timestamp(y, m, d, 00, 00) ? true : false
posEMA20 = EMA20(Length)
prePosAPZ = APZ(nPeriods,nBandPct)
iff_1 = posEMA20 == -1 and prePosAPZ == -1 and StartTrade ? -1 : 0
pos = posEMA20 == 1 and prePosAPZ == 1 and StartTrade ? 1 : iff_1
iff_2 = reverse and pos == -1 ? 1 : pos
possig = reverse and pos == 1 ? -1 : iff_2
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)