
Đây là một chiến lược giao dịch trong ngày đơn giản dựa trên hai đường trung bình. Nó sử dụng đường trung bình di chuyển đơn giản của hai chu kỳ khác nhau để mua hoặc bán khi đường trung bình giao nhau.
Chiến lược này sử dụng hai đường trung bình di chuyển đơn giản vào ngày 10 và ngày 40. Khi đường trung bình ngắn hạn đi qua đường trung bình dài hạn, làm nhiều hơn; Khi đường trung bình ngắn hạn đi qua đường trung bình dài hạn, làm trống.
Chiến lược này chủ yếu sử dụng các đặc điểm của đường trung bình ngắn hạn để nắm bắt thay đổi giá nhanh hơn. Khi đường trung bình ngắn hạn trên đường trung bình dài hạn, cho thấy giá ngắn hạn bắt đầu tăng, làm nhiều hơn để nắm bắt xu hướng này; khi đường trung bình ngắn hạn dưới đường trung bình ngắn hạn, cho thấy giá ngắn hạn bắt đầu giảm, làm trống để nắm bắt xu hướng này.
Giải pháp đối phó với rủi ro:
Tối ưu hóa tham số đường trung bình. Bạn có thể thử nghiệm nhiều hơn để tìm tham số tối ưu.
Thêm các bộ lọc cho các chỉ số kỹ thuật khác. Ví dụ, thêm xác nhận chỉ số MACD, có thể làm giảm tỷ lệ tín hiệu sai.
Tối ưu hóa số nhân mở sàn ngược. Kiểm tra các kích thước nhân khác nhau để tìm tham số tối ưu.
Kiểm tra các giai đoạn giao dịch khác nhau trong ngày.
Chiến lược tổng thể của chiến lược này rất đơn giản, mở rộng cơ hội lợi nhuận bằng cách nắm bắt xu hướng ngắn hạn hình thành từ giao thoa hai đường ngang, kết hợp với việc mở vị trí ngược lại của số đôi, và cuối cùng kết hợp với giao dịch trong ngày để tránh rủi ro qua đêm. Đây là một chiến lược hiệu quả phù hợp với giao dịch ngắn trong ngày. Có không gian để tối ưu hóa hơn nữa, có thể đạt được hiệu quả chiến lược tốt hơn bằng cách điều chỉnh tham số và thêm các bộ lọc chỉ số kỹ thuật khác.
/*backtest
start: 2024-02-19 00:00:00
end: 2024-02-26 00:00:00
period: 1m
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/
// © Pritesh-StocksDeveloper
//@version=4
strategy("Moving Average - Intraday", shorttitle = "MA - Intraday",
overlay=true, calc_on_every_tick = true)
// Used for intraday handling
// Session value should be from market start to the time you want to square-off
// your intraday strategy
var i_marketSession = input(title="Market session", type=input.session,
defval="0915-1455", confirm=true)
// Short & Long moving avg. period
var int i_shortPeriod = input(title = "Short MA Period", type = input.integer,
defval = 10, minval = 2, maxval = 20, confirm=true)
var int i_longPeriod = input(title = "Long MA Period", type = input.integer,
defval = 40, minval = 3, maxval = 120, confirm=true)
// A function to check whether the bar is in intraday session
barInSession(sess) => time(timeframe.period, sess) != 0
// Calculate moving averages
shortAvg = sma(close, i_shortPeriod)
longAvg = sma(close, i_longPeriod)
// Plot moving averages
plot(series = shortAvg, color = color.red, title = "Short MA",
linewidth = 2)
plot(series = longAvg, color = color.blue, title = "Long MA",
linewidth = 2)
// Long/short condition
longCondition = crossover(shortAvg, longAvg)
shortCondition = crossunder(shortAvg, longAvg)
// See if intraday session is active
bool intradaySession = barInSession(i_marketSession)
// Trade only if intraday session is active
// Long position
strategy.entry(id = "Long", long = strategy.long,
when = longCondition and intradaySession)
// Short position
strategy.entry(id = "Short", long = strategy.short,
when = shortCondition and intradaySession)
// Square-off position (when session is over and position is open)
squareOff = (not intradaySession) and (strategy.position_size != 0)
strategy.close_all(when = squareOff, comment = "Square-off")