Strategi Pecah Arah ATR Adaptif


Tarikh penciptaan: 2023-10-31 15:58:46 Akhirnya diubah suai: 2023-10-31 15:58:46
Salin: 0 Bilangan klik: 690
1
fokus pada
1617
Pengikut

Strategi Pecah Arah ATR Adaptif

Gambaran keseluruhan

Strategi ini adalah strategi penembusan trend berdasarkan indikator ATR. Idea utamanya adalah untuk melakukan operasi penembusan trend apabila harga melebihi ATR beberapa kali ganda. Strategi ini juga mengandungi pengesahan trend dan fungsi untuk membatasi perdagangan menggunakan julat tarikh.

Prinsip

Strategi menggunakan ATR untuk menentukan amplitudo pergerakan harga. ATR mewakili amplitudo sebenar rata-rata, yang mengukur amplitudo pergerakan harga rata-rata dalam tempoh masa tertentu.

Apabila harga naik menembusi numATRs di atas berganda ATR, lakukan operasi berganda; apabila harga turun menembusi numATRs di bawah berganda ATR, lakukan operasi shorting.

Di samping itu, strategi menambah pembolehubah BOOL yang memerlukan kedudukan panjang ((needlong) dan yang memerlukan posisi kosong ((needshort), yang boleh mengawal hanya melakukan lebih banyak atau hanya melakukan kosong. Strategi juga menetapkan julat tarikh untuk berdagang hanya antara tarikh yang ditetapkan, yang membolehkan batasan julat masa.

Strategi menggunakan pembolehubah saiz untuk menilai kedudukan, mengira jumlah tangan tunggal berdasarkan keadaan kedudukan. Jumlah tangan dikira mengikut peratusan hak dan kepentingan akaun.

Kelebihan

  • Menggunakan penunjuk ATR untuk menyesuaikan diri secara automatik dengan kadar turun naik pasaran, tanpa perlu menetapkan jarak henti rugi secara manual
  • Fleksibiliti untuk membuat lebih banyak atau hanya lebih banyak / kosong
  • Anda boleh menetapkan tarikh untuk berdagang dan mengelakkan masa penting.
  • Fleksibiliti dalam telefon bimbit, mengikut peratusan hak dan faedah akaun

Risiko dan penyelesaian

  • Indeks ATR hanya mengambil kira turun naik harga, jika berlaku perubahan yang teruk, jarak henti mungkin terlalu kecil dan perlu dioptimumkan dengan kombinasi indikator lain
  • Apabila perdagangan dibatasi oleh julat tarikh, julat tarikh boleh diperluaskan dengan sewajarnya jika tidak ada peluang yang sesuai pada masa-masa penting, yang mungkin menyebabkan kehilangan peluang perdagangan
  • Apabila menggunakan peratusan hak dan kepentingan akaun, peratusan yang munasabah diperlukan untuk mengelakkan kerugian tunggal yang berlebihan

Optimum idea

  • Anda boleh mempertimbangkan untuk memasukkan indikator trend seperti purata bergerak untuk menapis perdagangan bunyi bising yang disebabkan oleh penembusan bukan trend.
  • Boleh menguji parameter kitaran ATR yang berbeza untuk memilih kombinasi parameter terbaik
  • Ia boleh dipertimbangkan untuk digunakan bersama-sama dengan pakej strategi lain untuk memanfaatkan kelebihan masing-masing dan meningkatkan kestabilan strategi

ringkaskan

Strategi ini secara keseluruhan mudah difahami, menggunakan indikator ATR untuk menyesuaikan diri dengan turun naik pasaran secara automatik, merupakan strategi trend trend umum. Dengan mengoptimumkan parameter dan menggabungkan strategi lain, prestasi dan kestabilan strategi dapat ditingkatkan lagi.

Kod sumber strategi
/*backtest
start: 2023-09-30 00:00:00
end: 2023-10-30 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2018

//@version=3
strategy(title = "Noro's Volty Strategy v1.0", shorttitle = "Volty 1.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 100)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(false, defval = false, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot, %")
length = input(5)
numATRs = input(0.75)
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//Indicator
atrs = sma(tr, length) * numATRs

//Trading
size = strategy.position_size
lot = 0.0
lot := size == 0 ? strategy.equity / close * capital / 100 : lot[1]
if (not na(close[length])) and needlong
    strategy.entry("L", strategy.long, lot, stop = close + atrs, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
if (not na(close[length])) and needlong == false
    strategy.entry("L", strategy.long, 0, stop = close + atrs, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
if (not na(close[length])) and needshort
    strategy.entry("S", strategy.short, lot, stop = close - atrs, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
if (not na(close[length])) and needshort == false
    strategy.entry("S", strategy.short, 0, stop = close - atrs, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))