
Chiến lược chéo đường trung bình tạo ra tín hiệu giao dịch bằng cách tính toán chéo đường trung bình SMA của hai thiết lập tham số khác nhau. Khi đường trung bình SMA nhanh hơn đi qua đường trung bình SMA chậm hơn, tạo ra tín hiệu mua; Khi đường trung bình SMA chậm hơn đi qua đường trung bình SMA nhanh hơn, tạo ra tín hiệu bán. Chiến lược này sử dụng hai nhóm tham số đường trung bình SMA cùng lúc, một nhóm để xác định điểm mua và nhóm khác để xác định điểm bán.
Chiến lược này sử dụng hai tập hợp các tham số đường trung bình SMA:smaB1、smaB2VàsmaS1、smaS2。smaB1VàsmaB2Chúng được sử dụng để xác định tín hiệu mua, chúng đại diện cho đường trung bình chậm và nhanh hơn.smaB1Đeo lênsmaB2“Đây là một dấu hiệu mua”.smaS1VàsmaS2Sử dụng để xác định tín hiệu bán, cũng đại diện cho đường trung bình chậm và nhanh hơn.smaS2Cởi quần áo.smaS1Điều này cho phép điều chỉnh các điều kiện mua và bán một cách linh hoạt để phù hợp với môi trường thị trường khác nhau.
Cụ thể, chiến lược này bằng cách tính toán giá SMA của giá đóng và theo dõi thực tế các trường hợp giao nhau của hai nhóm đường SMA trung bình để xác định thời gian mua và bán. Khi vượt qua đường chậm trên đường SMA nhanh, cho rằng giá đang đi lên, vì vậy làm nhiều hơn lúc này; và khi vượt qua đường SMA chậm dưới đường nhanh, xác định giá chuyển sang giảm, vì vậy giảm nhiều đơn.
Chiến lược này có những lợi thế chính như sau:
Chiến lược này cũng có một số rủi ro:
Để kiểm soát rủi ro trên, có thể cải thiện các phương pháp như khóa lợi nhuận bằng cách tối ưu hóa các tham số SMA kết hợp với dừng động.
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 chéo đường trung bình tạo ra tín hiệu giao dịch đơn giản và hiệu quả bằng cách tính toán sự giao chéo của hai nhóm đường trung bình SMA. Chiến lược này cho phép điều chỉnh các tham số linh hoạt, áp dụng cho các giống khác nhau, là một chiến lược theo dõi xu hướng phổ biến.
/*backtest
start: 2023-11-15 00:00:00
end: 2023-11-22 00:00:00
period: 5m
basePeriod: 1m
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/
// © melihtuna
//@version=4
strategy("SMA Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, initial_capital=10000, currency=currency.USD, commission_value=0.1, commission_type=strategy.commission.percent)
smaB1 = input(title="smaB1",defval=377)
smaB2 = input(title="smaB2",defval=200)
smaS1 = input(title="smaS1",defval=377)
smaS2 = input(title="smaS2",defval=200)
smawidth = 2
plot(sma(close, smaB1), color = #EFB819, linewidth=smawidth, title='smaB1')
plot(sma(close, smaB2), color = #FF23FD, linewidth=smawidth, title='smaB2')
plot(sma(close, smaS1), color = #000000, linewidth=smawidth, title='smaS1')
plot(sma(close, smaS2), color = #c48dba, linewidth=smawidth, title='smaS2')
// === INPUT BACKTEST RANGE ===
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear = input(defval = 2020, title = "From Year", minval = 2017)
ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear = input(defval = 9999, title = "To Year", minval = 2017)
// === FUNCTION EXAMPLE ===
start = timestamp(FromYear, FromMonth, FromDay, 00, 00)
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59)
window() => time >= start and time <= finish ? true : false
longCondition = crossover(sma(close, smaB1),sma(close, smaB2))
if (window() and longCondition)
strategy.entry("BUY", strategy.long)
shortCondition = crossover(sma(close, smaS2),sma(close, smaS1))
if (window() and shortCondition)
strategy.entry("SELL", strategy.short)