Chiến lược này thiết kế một hệ thống giao dịch theo xu hướng dựa trên chỉ số trung bình động T3. Nó có thể tự động xác định hướng của xu hướng giá và có các vị trí dài hoặc ngắn tương ứng. Nó đi dài khi giá tăng và đi ngắn khi giá giảm. Hệ thống cũng có chức năng giao dịch đảo ngược.
Chiến lược này sử dụng chỉ số T3 để xác định hướng xu hướng giá. Chỉ số T3 là một đường trung bình động thích nghi với độ nhạy cao hơn có thể phản ứng nhanh hơn với những thay đổi giá. Công thức tính toán của nó là:
T3 (n) = GD (n)
Trong đó GD đại diện cho DEMA tổng quát (trung bình di chuyển theo hàm số nhân đôi), được tính như sau:
GD (n,v) = EMA (n) * (1+v) -EMA (n)) * v
v là yếu tố khối lượng, xác định độ nhạy của phản ứng của trung bình động với xu hướng giá tuyến tính. Khi v = 0, GD = EMA; khi v = 1, GD = DEMA. Tác giả đề nghị đặt v = 0,7.
Chiến lược này so sánh chỉ số T3 với giá. Khi T3 vượt trên giá, nó xác định xu hướng giá tăng và đi dài. Khi T3 vượt dưới giá, nó xác định xu hướng giá giảm và đi ngắn.
Điều này có thể được giảm thiểu bằng cách điều chỉnh các tham số T3 hoặc thêm các chỉ số khác để lọc, cũng như thiết lập dừng mất mát để kiểm soát mất mát đơn.
Chiến lược tự động xác định hướng xu hướng giá thông qua chỉ số T3, mà không cần đánh giá thủ công, và có thể tự động đi dài hoặc ngắn. Nó cũng có thể được cấu hình để giao dịch đảo ngược để đối phó với các tình huống thị trường phức tạp hơn. Có không gian để tối ưu hóa các tham số, logic giao dịch vv để làm cho chiến lược hoạt động tốt hơn.
/*backtest start: 2023-12-18 00:00:00 end: 2024-01-17 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.00 29/11/2017 // This indicator plots the moving average described in the January, 1998 issue // of S&C, p.57, "Smoothing Techniques for More Accurate Signals", by Tim Tillson. // This indicator plots T3 moving average presented in Figure 4 in the article. // T3 indicator is a moving average which is calculated according to formula: // T3(n) = GD(GD(GD(n))), // where GD - generalized DEMA (Double EMA) and calculating according to this: // GD(n,v) = EMA(n) * (1+v)-EMA(EMA(n)) * v, // where "v" is volume factor, which determines how hot the moving average’s response // to linear trends will be. The author advises to use v=0.7. // When v = 0, GD = EMA, and when v = 1, GD = DEMA. In between, GD is a less aggressive // version of DEMA. By using a value for v less than1, trader cure the multiple DEMA // overshoot problem but at the cost of accepting some additional phase delay. // In filter theory terminology, T3 is a six-pole nonlinear Kalman filter. Kalman // filters are ones that use the error — in this case, (time series - EMA(n)) — // to correct themselves. In the realm of technical analysis, these are called adaptive // moving averages; they track the time series more aggres-sively when it is making large // moves. Tim Tillson is a software project manager at Hewlett-Packard, with degrees in // mathematics and computer science. He has privately traded options and equities for 15 years. // // You can change long to short in the Input Settings // WARNING: // - For purpose educate only // - This script to change bars colors. //////////////////////////////////////////////////////////// strategy(title="T3 Averages", shorttitle="T3", overlay = true) Length = input(5, minval=1) b = input(0.7, minval=0.01,step=0.01) reverse = input(false, title="Trade reverse") xPrice = close xe1 = ema(xPrice, Length) xe2 = ema(xe1, Length) xe3 = ema(xe2, Length) xe4 = ema(xe3, Length) xe5 = ema(xe4, Length) xe6 = ema(xe5, Length) c1 = -b*b*b c2 = 3*b*b+3*b*b*b c3 = -6*b*b-3*b-3*b*b*b c4 = 1+3*b+b*b*b+3*b*b nT3Average = c1 * xe6 + c2 * xe5 + c3 * xe4 + c4 * xe3 pos = iff(nT3Average > close, -1, iff(nT3Average < close, 1, nz(pos[1], 0))) possig = iff(reverse and pos == 1, -1, iff(reverse and pos == -1, 1, pos)) if (possig == 1) strategy.entry("Long", strategy.long) if (possig == -1) strategy.entry("Short", strategy.short) barcolor(possig == -1 ? red: possig == 1 ? green : blue ) plot(nT3Average, color=blue, title="T3")