Chiến lược được đặt tên là
Chiến lược này sử dụng ba đường trung bình di chuyển chậm, bao gồm TEMA chậm 12-, 26 và 55 giai đoạn. Ba MA này đại diện cho MA nhanh, trung bình và chậm. Khi MA nhanh vượt qua MA trung bình, một tín hiệu mua được tạo ra. Khi MA nhanh vượt qua dưới MA trung bình, một tín hiệu bán được tạo ra. Bằng cách sử dụng chéo của ba MA để xác định các điểm nhập và xuất thị trường, giao dịch tần suất cao có thể đạt được.
Chức năng mẫu tema (()) được định nghĩa trong mã để tính toán TEMA chậm. Công thức tính toán của nó là: TEMA = 2 * EMA - EMA ((). Nó sử dụng đường trung bình di chuyển biểu thức đôi EWMA để tính toán. Về cơ bản, nó là đường EMA gọn gàng đôi với ưu điểm chính là giảm đáng kể hiệu ứng chậm. Do đó, nó có thể phản ứng với những thay đổi giá nhanh hơn và cải thiện tính kịp thời của các tín hiệu giao dịch.
Cụ thể, các quy tắc đầu vào của chiến lược này là: khi MA nhanh vượt qua MA trung bình và MA nhanh trên MA chậm, một tín hiệu mua được tạo ra. Khi MA nhanh vượt qua dưới MA trung bình và MA nhanh dưới MA chậm, một tín hiệu bán được tạo ra.
Lợi thế lớn nhất của chiến lược này là các bước vào và ra được xác định nhanh chóng và chính xác. Thiết kế chậm trễ của ba MAs làm giảm đáng kể hiệu ứng chậm trễ để chúng có thể phản ứng nhanh với những thay đổi giá. Ngoài ra, sử dụng chéo của ba MAs để xác định tín hiệu tránh các tín hiệu sai.
Ngoài ra, chiến lược này phù hợp với giao dịch tần số cao để nắm bắt lợi nhuận từ biến động giá ngắn hạn. Thông qua các bước vào và ra nhanh chóng, nó có thể hưởng lợi từ các thị trường biến động cao.
Rủi ro lớn nhất là có thể xảy ra whipsaws cực ngắn hạn. Do độ nhạy cao đối với những thay đổi giá từ thiết kế lag thấp, một số thị trường có thể trải qua dao động tần số cao. Sau đó whipsaws rất có thể xảy ra.
Ngoài ra, giao dịch tần số cao đòi hỏi phải trả phí hoa hồng và chi phí trượt tương đối cao.
Hơn nữa, chiến lược này đòi hỏi nhà giao dịch phải có khả năng giám sát thời gian thực mạnh mẽ để cập nhật lệnh dừng lỗ và lấy lợi nhuận kịp thời.
Chiến lược có thể được tối ưu hóa từ các khía cạnh sau:
Tối ưu hóa các tham số thời gian của ba MA để phù hợp hơn với các đặc điểm thị trường khác nhau.
Thêm các chỉ số biến động hoặc chỉ số khối lượng để xác nhận tín hiệu và tránh sự biến động trong các thị trường khác nhau.
Kết hợp nhiều yếu tố hơn để thiết lập các cơ chế dừng kéo dài năng động.
Tối ưu hóa kích thước vị trí để kiểm soát rủi ro giao dịch duy nhất thông qua các kỹ thuật quản lý tiền.
Kết hợp các thuật toán học máy để tối ưu hóa các thông số chiến lược một cách năng động.
Đây là một chiến lược giao dịch nhanh có độ trễ thấp. Thông qua thiết kế trễ thấp, có thể đạt được các bước vào và thoát nhanh, phù hợp với giao dịch tần số cao để nắm bắt các cơ hội ngắn hạn. Ưu điểm lớn nhất của chiến lược này là xác định tín hiệu của nó nhanh chóng và chính xác. Nhược điểm lớn nhất là nó có xu hướng bị đánh bại trong các thị trường khác nhau. Bài viết này tóm tắt toàn diện chiến lược giao dịch này thông qua phân tích chi tiết về lý lẽ, lợi thế, rủi ro và hướng tối ưu hóa của nó.
[/trans]
/*backtest start: 2023-11-24 00:00:00 end: 2023-12-24 00:00:00 period: 4h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("scalping low lag tema etal", shorttitle="Scalping tema",initial_capital=10000, overlay=true) mav = input(title="Moving Average Type", defval="temadelay", options=["nkclose", "ema", "emadelay", "fastema", "tema", "temadelay"]) lenb = 3 N = input(8) K = input(1.2) fracCap = input(1.0) in = close + K*mom(close,N) source = close length = 8 sigma = 12.0 offset = 0.9 p = 4 // length = 10 // sigma = 6.0 // offset = 0.85 tema(src,len) => fastemaOut = 2*ema(src, len) - ema(ema(src, len), len) a = 0.0 b = 0.0 c = 0.0 if mav == "nkclose" a := ema(in, 12) b := a[1] c := a[2] if mav == "ema" a := ema(close, 12) b := ema(close, 26) c := ema(close, 55) if mav == "emadelay" a := ema(close, 12) b := a[1] c := a[2] if mav == "fastema" a := ema(in, 12) b := ema(in, 26) c := ema(in, 55) if mav == "tema" a := tema(close, 12) b := tema(close, 26) c := tema(close, 55) if mav == "temadelay" a := tema(close, 12) b := a[1] c := a[2] TP = input(200) SL = input(130) TS = input(1) // TP = input(50) // SL = input(110) // TS = input(1) orderSize = floor((fracCap * strategy.equity) / close) long = cross(a, c) and a > b short = cross(a, c) and a < b plot(a, title="12", color=color.red, linewidth=1) plot(b, title="26", color=color.blue, linewidth=1) plot(c, title="55", color=color.green, linewidth=1) strategy.entry("Long", strategy.long, qty=orderSize, when=long) strategy.entry("Short", strategy.short, qty=orderSize, when=short) // strategy.entry("Long", strategy.long, 100.0, when=long) // strategy.entry("Short", strategy.short, 100.0, when=short) // strategy.entry("Long", strategy.long, 100.0, when=long) // strategy.entry("Short", strategy.short, 100.0, when=short) // strategy.entry("Long", strategy.long, 1.0, when=long) // strategy.entry("Short", strategy.short, 1.0, when=short) TPP = (TP > 0) ? TP : na SLP = (SL > 0) ? SL : na TSP = (TS > 0) ? TS : na // strategy.exit("Close Short", "Short", qty_percent=100, profit=TPP, loss=SLP, trail_points=TSP, when=long) // strategy.exit("Close Long", "Long", qty_percent=100, profit=TPP, loss=SLP, trail_points=TSP, when=short) // strategy.exit("Close Long", "Long", qty_percent=100, profit=TPP, loss=SLP, trail_points=TSP, when=long[1]) // strategy.exit("Close Short", "Short", qty_percent=100, profit=TPP, loss=SLP, trail_points=TSP, when=short[1]) strategy.exit("Close Long", "Long", qty_percent=100, profit=TPP, loss=SLP, trail_points=TSP) strategy.exit("Close Short", "Short", qty_percent=100, profit=TPP, loss=SLP, trail_points=TSP)