Tài nguyên đang được tải lên... tải...

Chiến lược theo dõi xu hướng T3 kép tối ưu

Tác giả:ChaoZhang, Ngày: 2025-01-17 14:29:51
Tags:T3TOTTEMAOTTRSI

 Optimized Dual T3 Trend Tracking Strategy

Tổng quan

Chiến lược này là một hệ thống theo dõi xu hướng dựa trên chỉ số Tillson T3 và Twin Optimized Trend Tracker (TOTT). Nó tối ưu hóa việc tạo tín hiệu giao dịch bằng cách kết hợp dao động động lực Williams % R. Chiến lược sử dụng các cài đặt tham số mua và bán riêng biệt, cho phép điều chỉnh độ nhạy linh hoạt cho các điều kiện thị trường khác nhau.

Nguyên tắc chiến lược

Chiến lược bao gồm ba thành phần cốt lõi: 1. Chỉ số Tillson T3 - Một biến thể tối ưu hóa của Mức trung bình chuyển động nhân tố (EMA) tạo ra một đường xu hướng mượt mà hơn thông qua nhiều tính toán EMA cân nhắc. 2. Twin Optimized Trend Tracker (TOTT) - Một công cụ theo dõi xu hướng thích nghi điều chỉnh dựa trên hành động giá và hệ số biến động, tính toán dải trên và dưới cho các điều kiện mua và bán. 3. Williams % R Indicator - Một dao động động được sử dụng để xác định các điều kiện mua quá mức và bán quá mức.

Logic tạo tín hiệu: - Điều kiện mua: Khi đường T3 vượt trên dải trên TOTT và Williams % R trên -20 (đã bán quá) - Điều kiện bán: Khi đường T3 vượt dưới dải dưới TOTT và Williams % R trên -70

Ưu điểm chiến lược

  1. Tính ổn định tín hiệu mạnh - Hiệu quả làm giảm rủi ro đột phá sai thông qua T3 nhiều lần làm mịn
  2. Khả năng thích nghi tốt - Các tham số mua / bán riêng biệt cho phép tối ưu hóa độc lập cho các điều kiện thị trường khác nhau
  3. Kiểm soát rủi ro toàn diện - Kết hợp Williams %R như xác nhận thứ cấp
  4. Hiển thị rõ ràng - Cung cấp hỗ trợ trực quan biểu đồ toàn diện

Rủi ro chiến lược

  1. Sự chậm trễ đảo ngược xu hướng - T3s nhiều lần làm mịn có thể gây ra sự chậm trễ tín hiệu
  2. Không phù hợp với các thị trường khác nhau - Có thể tạo ra tín hiệu quá mức trong quá trình hợp nhất
  3. Độ nhạy cao của các tham số - Cần điều chỉnh thường xuyên cho các môi trường thị trường khác nhau

Các đề xuất kiểm soát rủi ro: - Thực hiện các cơ chế dừng lỗ - Đặt giới hạn khối lượng giao dịch - Thêm bộ lọc xác nhận xu hướng

Hướng dẫn tối ưu hóa

  1. Tối ưu hóa tham số động - Phát triển các cơ chế điều chỉnh tham số thích nghi
  2. Nâng cao nhận thức về môi trường thị trường - giới thiệu các chỉ số sức mạnh xu hướng
  3. Quản lý rủi ro được cải thiện - Thêm stop-loss và take-profit năng động
  4. Bộ lọc tín hiệu nâng cao - Tích hợp các chỉ số kỹ thuật bổ sung

Tóm lại

Đây là một xu hướng được cấu trúc tốt theo chiến lược với logic rõ ràng. Thông qua sự kết hợp của chỉ số T3 và TOTT, cùng với bộ lọc Williams %R, nó hoạt động xuất sắc trong các thị trường xu hướng. Mặc dù có một số sự chậm trễ vốn có, chiến lược cho thấy giá trị thực tế tốt và không gian mở rộng thông qua tối ưu hóa tham số và cải thiện quản lý rủi ro.


/*backtest
start: 2019-12-23 08:00:00
end: 2025-01-15 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}]
*/

//@version=6
strategy("FON60DK by leventsah", overlay=true)

// Girdi AL
t3_length = input.int(5, title="Tillson Per AL", minval=1)
t3_opt = input.float(0.1, title="Tillson Opt AL", step=0.1, minval=0)
tott_length = input.int(5, title="TOTT Per AL", minval=1)
tott_opt = input.float(0.1, title="TOTT Opt AL", step=0.1, minval=0)
tott_coeff = input.float(0.006, title="TOTT Coeff AL", step=0.001, minval=0)

//GİRDİ SAT
t3_lengthSAT = input.int(5, title="Tillson Per SAT", minval=1)
t3_optSAT = input.float(0.1, title="Tillson Opt SAT", step=0.1, minval=0)
tott_lengthSAT = input.int(5, title="TOTT Per SAT", minval=1)
tott_opt_SAT = input.float(0.1, title="TOTT Opt SAT", step=0.1, minval=0)
tott_coeff_SAT = input.float(0.006, title="TOTT Coeff SAT", step=0.001, minval=0)

william_length = input.int(3, title="William %R Periyodu", minval=1)

// Tillson T3 AL
t3(src, length, opt) =>
    k = 2 / (length + 1)
    ema1 = ta.ema(src, length)
    ema2 = ta.ema(ema1, length)
    ema3 = ta.ema(ema2, length)
    ema4 = ta.ema(ema3, length)
    c1 = -opt * opt * opt
    c2 = 3 * opt * opt + 3 * opt * opt * opt
    c3 = -6 * opt * opt - 3 * opt - 3 * opt * opt * opt
    c4 = 1 + 3 * opt + opt * opt * opt + 3 * opt * opt
    t3_val = c1 * ema4 + c2 * ema3 + c3 * ema2 + c4 * ema1
    t3_val

t3_value = t3(close, t3_length, t3_opt)
t3_valueSAT = t3(close, t3_lengthSAT, t3_optSAT)


// TOTT hesaplaması (Twin Optimized Trend Tracker)
Var_Func(src, length) =>
    valpha = 2 / (length + 1)
    vud1 = math.max(src - src[1], 0)
    vdd1 = math.max(src[1] - src, 0)
    vUD = math.sum(vud1, 9)
    vDD = math.sum(vdd1, 9)
    vCMO = (vUD - vDD) / (vUD + vDD)
    var float VAR = na
    VAR := valpha * math.abs(vCMO) * src + (1 - valpha * math.abs(vCMO)) * nz(VAR[1], src)
    VAR

VAR = Var_Func(close, tott_length)
VAR_SAT = Var_Func(close, tott_lengthSAT)

//LONG 
MAvg = VAR
fark = MAvg * tott_opt * 0.01
longStop = MAvg - fark
longStopPrev = nz(longStop[1], longStop)
longStop := MAvg > longStopPrev ? math.max(longStop, longStopPrev) : longStop
shortStop = MAvg + fark
shortStopPrev = nz(shortStop[1], shortStop)
shortStop := MAvg < shortStopPrev ? math.min(shortStop, shortStopPrev) : shortStop
dir = 1
dir := nz(dir[1], dir)
dir := dir == -1 and MAvg > shortStopPrev ? 1 : dir == 1 and MAvg < longStopPrev ? -1 : dir
MT = dir == 1 ? longStop : shortStop
OTT = MAvg > MT ? MT * (200 + tott_opt) / 200 : MT * (200 - tott_opt) / 200
OTTup = OTT * (1 + tott_coeff)
OTTdn = OTT * (1 - tott_coeff)

//CLOSE
MAvgS = VAR_SAT
farkS = MAvgS * tott_opt_SAT * 0.01
longStopS = MAvgS - farkS
longStopPrevS = nz(longStopS[1], longStopS)
longStopS := MAvgS > longStopPrevS ? math.max(longStopS, longStopPrevS) : longStopS
shortStopS = MAvgS + farkS
shortStopPrevS = nz(shortStopS[1], shortStopS)
shortStopS := MAvgS < shortStopPrevS ? math.min(shortStopS, shortStopPrevS) : shortStopS
dirS = 1
dirS := nz(dirS[1], dirS)
dirS := dirS == -1 and MAvgS > shortStopPrevS ? 1 : dirS == 1 and MAvgS < longStopPrevS ? -1 : dirS
MTS = dirS == 1 ? longStopS : shortStopS
OTTS = MAvgS > MTS ? MTS * (200 + tott_opt_SAT) / 200 : MTS * (200 - tott_opt_SAT) / 200
OTTupS = OTTS * (1 + tott_coeff_SAT)
OTTdnS = OTTS * (1 - tott_coeff_SAT)

// Calculation of Williams %R
williamsR = -100 * (ta.highest(high, william_length) - close) / (ta.highest(high, william_length) - ta.lowest(low, william_length))

// Alım koşulu
longCondition = (t3_value > OTTup) and (williamsR > -20)

// Short koşulu (long pozisyonunu kapatmak için)
shortCondition = (t3_valueSAT < OTTdnS) and (williamsR > -70)

// Alım pozisyonu açma
if (longCondition)
    strategy.entry("Long", strategy.long)

// Short koşulu sağlandığında long pozisyonunu kapama
if (shortCondition)
    strategy.close("Long")


// Alım pozisyonu boyunca barları yeşil yapma
barcolor(strategy.position_size > 0 ? color.green : na)

// Grafikte göstergeleri çizme
plot(t3_value, color=color.blue, linewidth=1, title="Tillson AL")
plot(OTTup, color=color.green, linewidth=1, title="TOTT Up AL")
plot(OTTdn, color=color.red, linewidth=1, title="TOTT Down AL")

// Grafikte göstergeleri çizme
plot(t3_valueSAT, color=color.blue, linewidth=1, title="Tillson SAT")
plot(OTTupS, color=color.green, linewidth=1, title="TOTT Up SAT")
plot(OTTdnS, color=color.red, linewidth=1, title="TOTT Down SAT")


Có liên quan

Thêm nữa