
Chiến lược giao dịch chéo đường trung bình di chuyển bằng cách tính toán đường trung bình di chuyển của các chu kỳ khác nhau, mua hoặc bán khi chúng xảy ra, thuộc loại chiến lược giao dịch phân tích kỹ thuật. Chiến lược này đơn giản, dễ dàng, ít vốn, ít rút lui, phù hợp với hoạt động đường dài và trung bình.
Chiến lược này được thực hiện bằng cách tính toán đường trung bình di chuyển chỉ số (EMA) 20 chu kỳ và 50 chu kỳ.
Chỉ số EMA là chỉ số trung bình di chuyển, nó cho dữ liệu gần đây trọng lượng hơn. Công thức tính toán của EMA là:
EMAtoday = (Pricetoday * k) + EMAyesterday * (1-k)
Trong đó, k = 2/ (x + 1)
Do đó, khi EMA ngắn hạn trên EMA dài hạn, giá chuyển sang tăng, LONG; khi EMA ngắn hạn dưới EMA dài hạn, giá chuyển sang giảm, SHORT.
Chiến lược này có những ưu điểm sau:
Chiến lược này cũng có những rủi ro sau:
Do đó, chiến lược này có thể được tối ưu hóa theo các khía cạnh sau:
Chiến lược giao dịch chéo đường trung bình di chuyển là một chiến lược giao dịch kỹ thuật đơn giản và hiệu quả, dễ hiểu, dễ thực hiện, trải qua kiểm tra thị trường. Bằng các phương tiện như tối ưu hóa tham số, thêm các điều kiện hỗ trợ, bạn có thể giảm thiểu rủi ro giao dịch hơn nữa và tăng sự ổn định của chiến lược. Chiến lược này có thể trở thành một mô-đun cơ bản cho giao dịch định lượng.
/*backtest
start: 2022-11-20 00:00:00
end: 2023-11-26 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © brandlabng
//@version=5
//study(title="Holly Grail", overlay = true)
strategy('HG|E15m', overlay=true)
src = input(close, title='Source')
price = request.security(syminfo.tickerid, timeframe.period, src)
ma1 = input(20, title='1st MA Length')
type1 = input.string('EMA', '1st MA Type', options=['EMA'])
ma2 = input(50, title='2nd MA Length')
type2 = input.string('EMA', '2nd MA Type', options=['EMA'])
price1 = if type1 == 'EMA'
ta.ema(price, ma1)
price2 = if type2 == 'EMA'
ta.ema(price, ma2)
//plot(series=price, style=line, title="Price", color=black, linewidth=1, transp=0)
plot(series=price1, style=plot.style_line, title='1st MA', color=color.new(#219ff3, 0), linewidth=2)
plot(series=price2, style=plot.style_line, title='2nd MA', color=color.new(color.purple, 0), linewidth=2)
longCondition = ta.crossover(price1, price2)
if longCondition
strategy.entry('Long', strategy.long)
shortCondition = ta.crossunder(price1, price2)
if shortCondition
strategy.entry('Short', strategy.short)