Chiến lược này là một chiến lược theo dõi xu hướng EMA điển hình. Nó sử dụng EMA nhanh và EMA chậm để xác định xu hướng tăng, sử dụng EMA nhanh và EMA chậm để xác định xu hướng giảm, và tương ứng làm nhiều lỗ hổng. Chiến lược này theo dõi xu hướng đường dài trung bình là đáng tin cậy hơn và phù hợp với giao dịch giữ vị trí đường dài trung bình.
Lập luận cốt lõi của chiến lược này là:
Bằng cách tính toán các tốc độ EMA khác nhau, có thể xác định hiệu quả sự thay đổi trong xu hướng thị trường. EMA nhanh nhạy cảm hơn với sự thay đổi giá và có lợi cho việc phát hiện xu hướng mới sớm; EMA chậm có thể lọc các tín hiệu giả và đảm bảo xu hướng đã được xác nhận.
Khi hai EMA xảy ra Gold Fork, cho thấy giá bắt đầu tăng liên tục, nên thiết lập làm nhiều hướng; khi xảy ra Fork chết, giá bắt đầu giảm liên tục, nên thiết lập làm hướng trống. Bằng cách quay lại Fork chết của EMA nhanh để thoát khỏi vị trí hiện tại, có thể dừng lỗ kịp thời, tránh mở rộng lỗ.
Phản ứng:
Chiến lược này có thể được mở rộng và tối ưu hóa theo các khía cạnh sau:
Sử dụng phương pháp học máy để tự động tối ưu hóa tham số EMA, nâng cao khả năng thích ứng tham số
Tăng điều chỉnh vị trí nắm giữ dựa trên biến động, điều chỉnh vị trí dựa trên biến động của thị trường
Kết hợp các chỉ số xung động điểm để đánh giá thời gian điều chỉnh địa phương để tối ưu hóa vị trí điểm vào sân
Tăng các chiến lược dừng lỗ như dừng di chuyển, điều chỉnh điểm dừng sau khi thu lợi nhuận
Nghiên cứu sự thay đổi khối lượng giao dịch để xác định dòng chảy và xu hướng
Kết hợp với các chiến lược khác không liên quan, giảm rút lui và tăng ổn định thu nhập tổng thể
Chiến lược theo dõi xu hướng EMA là một chiến lược theo dõi xu hướng đơn giản và thực tế. Nó sử dụng xu hướng đường dài trung bình của EMA theo dõi nhanh và chậm, để đánh giá thời gian vào thị trường thông qua gai vàng của EMA. Chiến lược này dễ thực hiện và có thể mở rộng và tối ưu hóa nhiều chiều để phù hợp với nhiều môi trường thị trường. Chiến lược này rất phù hợp với hành vi theo dõi xu hướng của các vị trí dài trung bình.
/*backtest
start: 2023-09-11 00:00:00
end: 2023-09-18 00:00:00
period: 10m
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/
// © HomoDeus666
//@version=5
strategy("EMA12/26 with date backtest range (BTCpair)", overlay=true,initial_capital = 1,commission_type = strategy.commission.percent,currency = currency.BTC)
//input date and time
useDateFilter = input.bool(true, title="Filter Date Range of Backtest",
group="Backtest Time Period")
backtestStartDate = input(timestamp("1 Jan 2021"),
title="Start Date", group="Backtest Time Period",
tooltip="This start date is in the time zone of the exchange " +
"where the chart's instrument trades. It doesn't use the time " +
"zone of the chart or of your computer.")
backtestEndDate = input(timestamp("1 Jan 2022"),
title="End Date", group="Backtest Time Period",
tooltip="This end date is in the time zone of the exchange " +
"where the chart's instrument trades. It doesn't use the time " +
"zone of the chart or of your computer.")
//check date and time option
inTradeWindow = true
/// plot and indicator
fastEMA = ta.ema(close,12), slowEMA=ta.ema(close,26)
plot(fastEMA,color=color.green,linewidth = 2)
plot(slowEMA,color=color.red,linewidth=2)
//entry when condition
longCondition = ta.crossover(fastEMA,slowEMA)
if (longCondition) and inTradeWindow
strategy.entry("buy", strategy.long)
if ta.crossunder(ta.ema(close, 12), ta.ema(close, 26)) and inTradeWindow
strategy.close("buy")
// trades and cancel all unfilled pending orders
if not inTradeWindow and inTradeWindow[1]
strategy.cancel_all()
strategy.close_all(comment="Date Range Exit")