
Chiến lược chéo đường trung bình nhanh là một chiến lược trung bình di chuyển đơn giản. Nó sử dụng hai đường trung bình di chuyển, nhanh và chậm, làm nhiều hơn khi trung bình di chuyển nhanh từ phía dưới xuyên qua trung bình di chuyển chậm, cho thấy giá có thể tăng; khi trung bình di chuyển nhanh từ phía trên xuống xuyên qua trung bình di chuyển chậm, cho thấy giá có thể giảm.
Chiến lược này sử dụng hai trung bình di chuyển, nhanh và chậm. Cụ thể, độ dài trung bình di chuyển nhanh là 25 chu kỳ và độ dài trung bình di chuyển chậm là 62 chu kỳ. Chiến lược cho phép chọn các loại trung bình di chuyển khác nhau, bao gồm SMA, EMA, WMA, RMA và VWMA.
Khi đường trung bình di chuyển nhanh đi từ dưới lên đường trung bình di chuyển chậm, cho thấy giá ngắn hạn bắt đầu phá vỡ giá dài hạn, thuộc tín hiệu giao chéo vàng điển hình, cho thấy giá có thể đi vào kênh tăng, khi đó chiến lược làm nhiều; khi đường trung bình di chuyển nhanh đi từ trên xuống đường trung bình di chuyển chậm, cho thấy giá ngắn hạn bắt đầu giảm so với giá dài hạn, thuộc tín hiệu giao chéo chết, cho thấy giá có thể đi vào kênh giảm, khi đó chiến lược cân bằng.
Bằng cách này, bạn có thể đánh giá xu hướng và hướng của giá bằng cách nhanh chóng hoặc chậm xuyên qua đường trung bình, và theo đó, bạn có thể mua hoặc bán để kiếm được lợi nhuận.
Chiến lược này có những ưu điểm sau:
Nhìn chung, chiến lược này sử dụng đường trung bình nhanh chậm như một tín hiệu giao dịch cốt lõi, có khả năng đánh giá xu hướng giá trong tương lai, có thể kiếm được lợi nhuận tốt dựa trên lợi thế của việc theo dõi xu hướng, và đáng để sử dụng trong chiến đấu.
Chiến lược này cũng có một số rủi ro tiềm ẩn:
Những rủi ro này có thể được kiểm soát và cải thiện bằng cách:
Chiến lược này có thể được tối ưu hóa như sau:
Lựa chọn chu kỳ của đường trung bình nhanh và đường trung bình chậm: Các tham số mặc định hiện tại có thể không phải là tối ưu, bạn có thể thử các tham số chu kỳ khác nhau để tìm cấu hình tốt nhất
Lựa chọn loại trung bình di chuyển: Hiện tại có nhiều loại trung bình di chuyển có thể lựa chọn để kiểm tra loại nào hoạt động tốt nhất đối với một giống cụ thể
Kết hợp với các chỉ số hoặc chiến lược khác: Bạn có thể thử kết hợp với chỉ số biến động, chỉ số giá trị hoặc chiến lược theo dõi xu hướng để tăng hiệu quả
Tối ưu hóa tham số thích ứng: cho phép tham số chu kỳ trung bình tự động điều chỉnh theo biến động và tính thanh khoản của thị trường, tăng sự ổn định
Hỗ trợ mô hình AI: Sử dụng thuật toán học máy phân tích khối lượng dữ liệu lớn để tự động tìm kiếm các quy tắc giao dịch tối ưu
Những phương tiện tối ưu hóa này có thể giúp cải thiện hiệu suất và tính ổn định của chiến lược.
Chiến lược giao chéo đường trung bình nhanh chậm là một chiến lược theo dõi xu hướng rất thực tế. Nó nắm bắt các quy tắc thay đổi của giá trên các quy mô thời gian khác nhau, bằng cách phá vỡ đường trung bình nhanh và đường trung bình chậm để đánh giá xu hướng và hướng tương lai của giá có thể.
/*backtest
start: 2023-02-20 00:00:00
end: 2024-02-26 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
//Author @divonn1994
initial_balance = 100
strategy(title='Fast v Slow Moving Averages Strategy', shorttitle = 'Fast v Slow', overlay=true, pyramiding=0, default_qty_value=100, default_qty_type=strategy.percent_of_equity, precision=7, currency=currency.USD, commission_value=0.1, commission_type=strategy.commission.percent, initial_capital=initial_balance)
//Input for number of bars for moving average, Switch to choose moving average type, Display Options and Time Frame of trading----------------------------------------------------------------
fastBars = input.int(25, "Fast moving average length", minval=1)
slowBars = input.int(62, "Slow moving average length", minval=1)
strategy = input.string("EMA", "MA type", options = ["EMA", "VWMA", "SMA", "RMA", "WMA"])
redOn = input.string("On", "Red Background Color On/Off", options = ["On", "Off"], group='Display')
greenOn = input.string("On", "Green Background Color On/Off", options = ["On", "Off"], group='Display')
maOn = input.string("On", "Moving Average Plot On/Off", options = ["On", "Off"], group='Display')
startMonth = input.int(title='Start Month 1-12 (set any start time to 0 for furthest date)', defval=1, minval=0, maxval=12, group='Beginning of Strategy')
startDate = input.int(title='Start Date 1-31 (set any start time to 0 for furthest date)', defval=1, minval=0, maxval=31, group='Beginning of Strategy')
startYear = input.int(title='Start Year 2000-2100 (set any start time to 0 for furthest date)', defval=2011, minval=2000, maxval=2100, group='Beginning of Strategy')
endMonth = input.int(title='End Month 1-12 (set any end time to 0 for today\'s date)', defval=0, minval=0, maxval=12, group='End of Strategy')
endDate = input.int(title='End Date 1-31 (set any end time to 0 for today\'s date)', defval=0, minval=0, maxval=31, group='End of Strategy')
endYear = input.int(title='End Year 2000-2100 (set any end time to 0 for today\'s date)', defval=0, minval=0, maxval=2100, group='End of Strategy')
//Strategy Calculations-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
inDateRange = true
maMomentum = switch strategy
"EMA" => (ta.ema(close, fastBars) >= ta.ema(close, slowBars)) ? 1 : -1
"SMA" => (ta.sma(close, fastBars) >= ta.sma(close, slowBars)) ? 1 : -1
"RMA" => (ta.rma(close, fastBars) >= ta.rma(close, slowBars)) ? 1 : -1
"WMA" => (ta.wma(close, fastBars) >= ta.wma(close, slowBars)) ? 1 : -1
"VWMA" => (ta.vwma(close, fastBars) >= ta.vwma(close, slowBars)) ? 1 : -1
=>
runtime.error("No matching MA type found.")
float(na)
fastMA = switch strategy
"EMA" => ta.ema(close, fastBars)
"SMA" => ta.sma(close, fastBars)
"RMA" => ta.rma(close, fastBars)
"WMA" => ta.wma(close, fastBars)
"VWMA" => ta.vwma(close, fastBars)
=>
runtime.error("No matching MA type found.")
float(na)
slowMA = switch strategy
"EMA" => ta.ema(close, slowBars)
"SMA" => ta.sma(close, slowBars)
"RMA" => ta.rma(close, slowBars)
"WMA" => ta.wma(close, slowBars)
"VWMA" => ta.vwma(close, slowBars)
=>
runtime.error("No matching MA type found.")
float(na)
//Enter or Exit Positions--------------------------------------------------------------------------------------------------------------------------------------------------------------------
if ta.crossover(maMomentum, 0)
if inDateRange
strategy.entry('long', strategy.long, comment='long')
if ta.crossunder(maMomentum, 0)
if inDateRange
strategy.close('long')
//Plot Strategy Behavior---------------------------------------------------------------------------------------------------------------------------------------------------------------------
plot(series = maOn == "On" ? fastMA : na, title = "Fast Moving Average", color = color.new(color.white,0), linewidth=2, offset=1)
plot(series = maOn == "On" ? slowMA : na, title = "Slow Moving Average", color = color.new(color.purple,0), linewidth=3, offset=1)
bgcolor(color = inDateRange and (greenOn == "On") and maMomentum > 0 ? color.new(color.green,75) : inDateRange and (redOn == "On") and maMomentum <= 0 ? color.new(color.red,75) : na, offset=1)