TURTLE - ATR Bollinger Band Breakout Strategy

ATR
Tarikh penciptaan: 2024-06-03 10:48:09 Akhirnya diubah suai: 2024-06-03 10:48:09
Salin: 0 Bilangan klik: 710
1
fokus pada
1617
Pengikut

TURTLE - ATR Bollinger Band Breakout Strategy

Gambaran keseluruhan

Strategi ini menggunakan ATR (Average True Rate) untuk menentukan arah trend dan saiz kedudukan perdagangan. Strategi ini akan membuka kedudukan untuk melabur atau melemahkan apabila harga menembusi harga tertinggi atau terendah dalam jangka masa yang lalu.

Prinsip Strategi

Inti strategi ini adalah menggunakan indikator ATR untuk menentukan arah trend dan saiz kedudukan perdagangan. Indeks ATR dapat mengukur turun naik pasaran, yang akan membantu kita menentukan titik hentian dan saiz kedudukan yang sesuai. Langkah utama strategi adalah:

  1. Hitung nilai ATR.
  2. Tentukan tahap harga pecah untuk multihead dan kosong. Harga pecah untuk multihead adalah harga tertinggi dalam tempoh masa lalu, dan harga pecah untuk kosong adalah harga terendah dalam tempoh masa lalu.
  3. Jika harga menembusi harga penembusan berganda, buka lebih banyak; jika harga menembusi harga penembusan kosong, buka kosong.
  4. Ukuran kedudukan untuk setiap dagangan dikira berdasarkan nilai ATR dan baki akaun.
  5. Mengekalkan kedudukan sehingga harga menembusi harga terendah masa lalu (pegang saham berbilang) atau harga tertinggi (pegang saham kosong), kedudukan kosong berakhir.

Dengan cara ini, strategi ini dapat menangkap trend yang kuat, sambil mengawal risiko dengan ketat. Penggunaan indikator ATR dapat membantu kita menyesuaikan skala kedudukan secara dinamik, sehingga lebih sesuai dengan turun naik pasaran.

Kelebihan Strategik

  1. Trend Tracking: Strategi ini bertujuan untuk menangkap trend yang kuat dan menghasilkan keuntungan yang besar.
  2. Kawalan risiko: Strategi ini dapat mengawal risiko dengan berkesan dengan menggunakan indikator ATR untuk menentukan saiz kedudukan dan titik hentian.
  3. Ketabahan: Indeks ATR boleh disesuaikan secara dinamik, yang membolehkan strategi menyesuaikan diri dengan keadaan pasaran yang berbeza.
  4. Sederhana: Strategi ini mempunyai logik yang jelas, mudah difahami dan dilaksanakan.

Risiko Strategik

  1. Trend reversal: Strategi ini mungkin mengalami kerugian yang besar apabila trend pasaran berubah secara tiba-tiba.
  2. Pasaran yang bergolak: Dalam pasaran yang bergolak, strategi ini boleh menyebabkan kenaikan harga yang tinggi.
  3. Sensitiviti parameter: Prestasi strategi mungkin sensitif kepada tetapan parameter, dan parameter yang tidak sesuai boleh menyebabkan prestasi strategi yang buruk.

Untuk mengatasi risiko ini, anda boleh mempertimbangkan penyelesaian berikut:

  1. Memperkenalkan mekanisme pengesahan trend untuk mengelakkan penarikan terlalu awal apabila trend berbalik.
  2. Mengurangkan saiz kedudukan atau menghentikan dagangan dalam pasaran yang bergolak.
  3. Untuk mengoptimumkan parameter, cari kombinasi parameter terbaik.

Arah pengoptimuman strategi

  1. Pengenalan lebih banyak petunjuk: Selain petunjuk ATR, penubuhan petunjuk pengesahan trend lain, seperti purata bergerak, boleh dipertimbangkan untuk meningkatkan ketepatan penilaian trend.
  2. Parameter penyesuaian dinamik: mengikut keadaan pasaran yang berbeza, parameter strategi penyesuaian dinamik, seperti kitaran ATR, kitaran harga terobosan, dan sebagainya, untuk menyesuaikan diri dengan perubahan pasaran.
  3. Menyertai mekanisme penangguhan: Setelah mendapat keuntungan tertentu, anda boleh mempertimbangkan untuk menutup sebahagian daripada keuntungan untuk mengunci keuntungan dan mengurangkan risiko.
  4. Pengurusan kedudukan berbilang: Anda boleh mempertimbangkan untuk menguruskan kedudukan berbilang dan kosong secara berasingan, seperti menggunakan standard hentian dan hentian yang berbeza untuk meningkatkan fleksibiliti strategi.

Dengan pengoptimuman ini, anda dapat meningkatkan lagi kestabilan dan keuntungan strategi ini.

ringkaskan

Strategi TURTLE-ATR adalah strategi pemantauan trend berdasarkan peraturan perdagangan badai. Strategi ini menggunakan indikator ATR untuk menentukan arah trend dan saiz kedudukan perdagangan, membuka kedudukan dengan memecahkan harga tertinggi atau terendah dalam beberapa waktu lalu, dan memegang kedudukan sehingga trend berbalik. Keunggulan strategi ini adalah dapat menangkap trend yang kuat, sambil mengawal risiko dengan ketat.

Kod sumber strategi
/*backtest
start: 2023-05-28 00:00:00
end: 2024-06-02 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © luisfeijoo22

//@version=5
strategy("Estrategia de las tortugas_ES", overlay=true, pyramiding=3)

// Parámetros 
atrLength = input.int(20, "Longitud del ATR")
atrFactor = input.float(2, "Factor del ATR")
entryBreakout = input.int(20, "Breakout de entrada")
exitBreakout = input.int(10, "Breakout de salida")
longOnly = input.bool(false, "Solo largos")
shortOnly = input.bool(false, "Solo cortos")


// Cálculo del ATR
atr = ta.atr(atrLength)

// Cálculo de los niveles de breakout
longEntry = ta.highest(high, exitBreakout)[1]
longExit = ta.lowest(low, exitBreakout)[1]
shortEntry = ta.lowest(low, exitBreakout)[1]
shortExit = ta.highest(high, exitBreakout)[1]

// Cálculo del tamaño de la posición
nContracts = math.floor((strategy.equity * 0.01) / (atrFactor * atr))

// Filtra las fechas según el rango deseado
// in_range = time >= timestamp(year(start_date), month(start_date), dayofmonth(start_date)) 

// Condiciones de entrada y salida
longCondition = not longOnly and close > longEntry and time >= timestamp("2023-03-15")
if longCondition
    strategy.entry("Long", strategy.long, qty = nContracts)

shortCondition = not shortOnly and close < shortEntry and time >=  timestamp("2023-03-15")
if shortCondition
    strategy.entry("Short", strategy.short, qty = nContracts)
    
strategy.exit("Exit Long", "Long", stop = longExit)
strategy.exit("Exit Short", "Short", stop = shortExit)

// Visualización de los niveles de breakout
plot(longEntry, "Entrada larga", color.green, style = plot.style_line)
plot(longExit, "Salida larga", color.red, style = plot.style_line)
plot(shortEntry, "Entrada corta", color.green, style = plot.style_line)
plot(shortExit, "Salida corta", color.red, style = plot.style_line)