Strategi ini adalah strategi trend breakout berdasarkan penunjuk ATR. Idea utamanya adalah untuk mengambil perdagangan trend breakout apabila harga melebihi kelipatan tertentu ATR. Strategi ini juga termasuk pengesahan trend dan mengehadkan perdagangan dalam julat tarikh.
Strategi ini menggunakan penunjuk ATR untuk mengukur turun naik harga. ATR bermaksud Julat Benar Purata dan mengukur turun naik purata dalam tempoh. Parameter panjang dalam strategi mengira tempoh ATR dan numATRs mewakili pengganda ATR untuk pecah.
Apabila harga pecah di atas kelipatan numATRs atas ATR, kedudukan panjang diambil. Apabila harga pecah di bawah kelipatan numATRs bawah ATR, kedudukan pendek diambil.
Di samping itu, strategi ini merangkumi pembolehubah bool needlong dan needshort untuk mengawal hanya perdagangan panjang atau hanya perdagangan pendek.
Strategi ini menggunakan pembolehubah saiz untuk menentukan saiz kedudukan dan mengira saiz pesanan berdasarkan peratusan ekuiti akaun.
Menggunakan ATR untuk menyesuaikan diri secara automatik dengan turun naik pasaran tanpa tetapan keuntungan / kerugian manual.
Fleksibel untuk memilih panjang, pendek atau panjang/pendek sahaja.
Boleh menetapkan julat tarikh untuk mengelakkan perdagangan pada peristiwa penting.
Ukuran kedudukan yang fleksibel berdasarkan peratusan ekuiti akaun.
ATR hanya mempertimbangkan turun naik harga. Ia mungkin tidak mempunyai stop loss yang mencukupi semasa turun naik pasaran yang besar. Penunjuk lain boleh digabungkan.
Had julat tarikh mungkin terlepas peluang jika tidak ada persediaan yang baik sebelum / selepas.
Ukuran peratusan ekuiti berisiko kerugian besar pada perdagangan tunggal.
Tambah purata bergerak untuk penapis trend untuk mengurangkan perdagangan bunyi pecah palsu.
Uji tempoh ATR untuk mencari parameter optimum.
Gabungkan dengan strategi lain untuk memanfaatkan kekuatan dan meningkatkan kestabilan.
Ini adalah trend yang dapat difahami mengikuti strategi menggunakan ATR untuk menyesuaikan diri dengan turun naik. pengoptimuman parameter dan menggabungkan dengan strategi lain dapat meningkatkan prestasi dan kestabilan. tetapi kerugian tunggal yang besar harus dielakkan dan berhenti yang tidak mencukupi semasa turun naik yang besar harus diperhatikan.
/*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)))