T3 penjejakan aliran purata bergerak dan strategi dagangan kuantitatif stop loss bergerak

T3MA SMA EMA
Tarikh penciptaan: 2024-11-28 15:17:13 Akhirnya diubah suai: 2024-11-28 15:17:13
Salin: 1 Bilangan klik: 505
1
fokus pada
1617
Pengikut

T3 penjejakan aliran purata bergerak dan strategi dagangan kuantitatif stop loss bergerak

Gambaran keseluruhan

Strategi ini adalah sistem perdagangan kuantitatif komprehensif yang menggabungkan T3 rata-rata, trend pengesanan dan mekanisme berhenti bergerak. Strategi mengenal pasti arah trend pasaran melalui T3 purata bergerak, sambil menggunakan indikator trend Lemon dan indikator TDFI untuk pengesahan isyarat, dan bekerjasama dengan sistem pengurusan risiko yang menggabungkan berhenti bergerak dan berhenti tetap, untuk memahami trend dan mengawal risiko dengan berkesan.

Prinsip Strategi

Strategi ini terdiri daripada tiga bahagian utama: pengenalan trend, pengesahan isyarat, dan pengurusan risiko. Pertama, menggunakan purata bergerak T3 sebagai alat pengenalan trend utama, rata-rata T3 dengan pengiraan purata bergerak enam kali ganda, dapat mengurangkan ketinggalan dan mengekalkan kelancaran. Kedua, melalui indikator trend Lemon, mengira jarak pergerakan harga, digabungkan dengan indikator TDFI, memfilter isyarat, dan hanya menghasilkan isyarat perdagangan apabila harga menembusi jarak pergerakan dan indikator TDFI mengesahkan.

Kelebihan Strategik

  1. Mekanisme pengesahan isyarat berbilang meningkatkan ketepatan transaksi
  2. Penggunaan garis rata-rata T3 mengurangkan kesan penembusan palsu
  3. Sistem pengurusan risiko yang fleksibel, memberi peluang kepada trend untuk berkembang dengan melindungi keuntungan
  4. Menyokong penangguhan sebahagian kedudukan, yang membolehkan keuntungan dibayar secara berperingkat
  5. Parameter yang boleh laras dengan mudah untuk mengoptimumkan mengikut keadaan pasaran yang berbeza

Risiko Strategik

  1. Pengiraan garis T3 adalah rumit dan mungkin terdapat kelewatan pengiraan
  2. Pengesahan pelbagai isyarat mungkin menyebabkan beberapa peluang perdagangan terlewat
  3. Hentian bergerak mungkin dicetuskan terlalu awal semasa turun naik yang kuat
  4. Ia memerlukan pergerakan harga yang lebih besar untuk menghasilkan isyarat yang berkesan.
  5. Sinyal palsu yang sering berlaku di pasaran Forex

Arah pengoptimuman strategi

  1. Masukkan parameter stop loss bergerak untuk penunjuk kadar turun naik
  2. Tambah modul pengenalan persekitaran pasaran, menggunakan parameter yang berbeza dalam keadaan pasaran yang berbeza
  3. Mengoptimumkan kitaran pengiraan TDFI dan meningkatkan masa isyarat
  4. Pertimbangan untuk menambah faktor kuantiti pertukaran untuk pengesahan isyarat
  5. Penyelidikan mekanisme penyetempatan nisbah penangguhan sebahagiannya

ringkaskan

Ini adalah strategi pengesanan trend yang komprehensif yang direka dengan penggunaan gabungan pelbagai petunjuk teknikal, yang memastikan kebolehpercayaan isyarat perdagangan dan pengurusan risiko yang berkesan. Reka bentuk modular strategi ini menjadikannya mempunyai ruang skalabiliti dan pengoptimuman yang baik, sesuai sebagai kerangka asas sistem pengesanan trend jangka menengah dan jangka panjang. Dalam aplikasi praktikal, disarankan untuk menyesuaikan parameter yang dioptimumkan mengikut jenis perdagangan tertentu dan keadaan pasaran.

Kod sumber strategi
/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-27 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Lemon Trend Strategy", overlay=true, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
 
// Input parameters
lookbackPeriod = input.int(14, "Lookback Period")
t3Length = input.int(200, "T3 MA Length")
t3Factor = input.float(0.7, "T3 Factor", minval=0, maxval=1)

// 移动止损参数
trailingStopPct = input.float(1.5, "移动止损百分比", minval=0.1, step=0.1)
trailingStopActivationPct = input.float(1.0, "移动止损激活百分比", minval=0.1, step=0.1)
 
// === T3 Moving Average Function ===
t3(src, length, factor) =>
    // First EMA
    e1 = ta.ema(src, length)
    // Second EMA
    e2 = ta.ema(e1, length)
    // Third EMA
    e3 = ta.ema(e2, length)
    // Fourth EMA
    e4 = ta.ema(e3, length)
    // Fifth EMA
    e5 = ta.ema(e4, length)
    // Sixth EMA
    e6 = ta.ema(e5, length)
   
    c1 = -factor * factor * factor
    c2 = 3 * factor * factor + 3 * factor * factor * factor
    c3 = -6 * factor * factor - 3 * factor - 3 * factor * factor * factor
    c4 = 1 + 3 * factor + factor * factor * factor + 3 * factor * factor
   
    t3 = c1 * e6 + c2 * e5 + c3 * e4 + c4 * e3
 
// Calculate T3 MA
t3ma = t3(close, t3Length, t3Factor)
plot(t3ma, "T3 MA", color=color.blue)
 
// === Lemon Trend Indicator ===
highLowDiff = high - low
normalizedDiff = ta.sma(highLowDiff, lookbackPeriod)
upperBand = ta.highest(high, lookbackPeriod)
lowerBand = ta.lowest(low, lookbackPeriod)
buySignal = ta.crossover(close, upperBand - normalizedDiff)
sellSignal = ta.crossunder(close, lowerBand + normalizedDiff)
 
// === TDFI Indicator ===
tdfiLength = input.int(14, "TDFI Length")
tdfi = ta.ema(close - close[1], tdfiLength)
tdfiSignal = ta.ema(tdfi, 9)
 
// Plot signals
plotshape(buySignal and tdfi > tdfiSignal and close > t3ma, "Buy Signal", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)
plotshape(sellSignal and tdfi < tdfiSignal and close < t3ma, "Sell Signal", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)
 
// === Strategy Logic ===
longCondition = buySignal and tdfi > tdfiSignal and close > t3ma
shortCondition = sellSignal and tdfi < tdfiSignal and close < t3ma
 
// 计算移动止损价格
var float longTrailingStop = na
var float shortTrailingStop = na

// 更新移动止损价格
if (strategy.position_size > 0)
    threshold = strategy.position_avg_price * (1 + trailingStopActivationPct / 100)
    if (high > threshold)
        stopPrice = high * (1 - trailingStopPct / 100)
        if (na(longTrailingStop) or stopPrice > longTrailingStop)
            longTrailingStop := stopPrice
    
if (strategy.position_size < 0)
    threshold = strategy.position_avg_price * (1 - trailingStopActivationPct / 100)
    if (low < threshold)
        stopPrice = low * (1 + trailingStopPct / 100)
        if (na(shortTrailingStop) or stopPrice < shortTrailingStop)
            shortTrailingStop := stopPrice

// Entry orders
if (longCondition)
    strategy.entry("Long", strategy.long)
    longTrailingStop := na
    
if (shortCondition)
    strategy.entry("Short", strategy.short)
    shortTrailingStop := na
 
// Calculate stop loss and take profit levels
longStopLoss = ta.lowest(low, lookbackPeriod)
shortStopLoss = ta.highest(high, lookbackPeriod)
 
// Exit conditions with fixed R:R
fixedRR = input.float(1.8, "Fixed Risk:Reward Ratio")
partialExitPct = input.float(50.0, "Partial Exit Percentage", minval=0, maxval=100) / 100
 
// 综合移动止损和固定止损
if (strategy.position_size > 0)
    longTakeProfit = strategy.position_avg_price + (strategy.position_avg_price - longStopLoss) * fixedRR
    stopPrice = na(longTrailingStop) ? longStopLoss : math.max(longStopLoss, longTrailingStop)
    strategy.exit("Long Exit", "Long", qty_percent=partialExitPct, stop=stopPrice, limit=longTakeProfit)
    
if (strategy.position_size < 0)
    shortTakeProfit = strategy.position_avg_price - (shortStopLoss - strategy.position_avg_price) * fixedRR
    stopPrice = na(shortTrailingStop) ? shortStopLoss : math.min(shortStopLoss, shortTrailingStop)
    strategy.exit("Short Exit", "Short", qty_percent=partialExitPct, stop=stopPrice, limit=shortTakeProfit)

// 绘制移动止损线
plot(strategy.position_size > 0 ? longTrailingStop : na, "Long Trailing Stop", color=color.red, style=plot.style_linebr)
plot(strategy.position_size < 0 ? shortTrailingStop : na, "Short Trailing Stop", color=color.red, style=plot.style_linebr)