
Đây là một chiến lược giao dịch tự động dựa trên hai chu kỳ thời gian khác nhau. Nó sử dụng chỉ số kỹ thuật đơn giản, rất phù hợp cho người mới học và thực hành.
Chiến lược này sử dụng hai đường trung bình di chuyển chỉ số, một là đường trung bình của chu kỳ thời gian lớn và một là đường trung bình của chu kỳ hiện tại. Khi đường trung bình của chu kỳ hiện tại đi qua đường trung bình của chu kỳ lớn, làm thêm; Khi đường trung bình của chu kỳ hiện tại đi qua đường trung bình của chu kỳ lớn, làm trống.
Cụ thể, chiến lược này bắt đầu bằng việc xác định hai tham số đường trung bình:
Sau đó tính hai EMA:
Cuối cùng, vào logic giao dịch:
Do đó, các giao dịch tự động được thực hiện bằng cách đánh giá xu hướng theo đường trung bình của các chu kỳ thời gian khác nhau.
Chiến lược này có những ưu điểm sau:
Chiến lược này cũng có một số rủi ro:
Bạn có thể giảm rủi ro bằng cách thiết lập dừng lỗ, tối ưu hóa các tham số, hoặc thêm các chỉ số khác.
Chiến lược này có thể được tối ưu hóa theo các khía cạnh sau:
Các chỉ số di chuyển trung bình chiến lược chéo sử dụng các chỉ số đơn giản để nắm bắt xu hướng, phù hợp với người mới học thực hành. Có nhiều không gian tối ưu hóa, có thể giới thiệu nhiều chỉ số kỹ thuật và mô hình để cải thiện, phát triển các chiến lược giao dịch định lượng có hiệu quả hơn.
/*backtest
start: 2023-09-16 00:00:00
end: 2023-10-16 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("Noro's Singapore Strategy", shorttitle = "Singapore str", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)
//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot")
tf = input("D", title = "Big Timeframe")
len = input(3, minval = 1, title = "MA length")
src = input(close, title = "MA Source")
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")
//MAs
ma1 = request.security(syminfo.tickerid, tf, sma(src, len))
ma2 = sma(src, len)
plot(ma1, linewidth = 2, color = blue, title = "Big TF MA")
plot(ma2, linewidth = 2, color = red, title = "MA")
//Trading
size = strategy.position_size
lot = 0.0
lot := size != size[1] ? strategy.equity / close * capital / 100 : lot[1]
if ma2 > ma1
strategy.entry("L", strategy.long, needlong ? lot : 0, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
if ma2 < ma1
strategy.entry("S", strategy.short, needshort ? lot : 0, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
if time > timestamp(toyear, tomonth, today, 23, 59)
strategy.close_all()