
Strategi ini berdasarkan harga penutupan pada hari sebelumnya dan penunjuk ATR menetapkan harga bukaan dan harga hentian kosong, untuk menjejaki trend. Apabila harga menembusi harga bukaan, bukaan lebih rendah, hentikan atau tutup selepas berhenti.
Strategi ini menggunakan harga penutupan, harga tertinggi, harga terendah, dan ATR pada hari sebelumnya untuk mengira harga masuk dan harga hentian. Formula pengiraan khusus adalah seperti berikut:
TPup = harga penutupan hari sebelumnya + ATR* 0.8 TPdown = harga penutupan hari sebelumnya - ATR* 0.8
Slup harga hentian berbilang kepala = harga penutupan sehari sebelumnya + ATR* 0.2 Stop loss kosong sldown = harga penutupan hari sebelumnya - ATR* 0.2
harga profitlevelup = harga terendah sehari sebelumnya + ATR* 1.7
Hulu berhenti harga profitleveldown = harga tertinggi sehari sebelumnya - ATR* 1.7
Apabila harga menembusi harga bukaan kedudukan TPup, lakukan lebih banyak mengikut 10 langkah; apabila harga menembusi harga bukaan kedudukan TPdown, lakukan kosong mengikut 10 langkah. Selepas itu, atur hentikan dan hentikan, harga menyentuh harga hentikan dan hentikan selepas harga hentikan dan hentikan selepas harga hentikan.
Kelebihan utama strategi ini ialah:
Harga bukaan dan harga hentian yang dinamik yang ditetapkan menggunakan indikator ATR boleh disesuaikan dengan turun naik pasaran, menjadikan perdagangan lebih sesuai dengan keadaan pasaran.
Menggunakan harga penutupan hari sebelumnya untuk menentukan arah, kemudian menggabungkan dengan penunjuk ATR untuk menentukan harga dagangan tertentu, untuk mengelakkan daripada tertipu oleh harga masa nyata yang terlalu bising.
Ia juga menyediakan mekanisme hentian dan penangguhan kerugian untuk mengawal risiko perdagangan tunggal.
Risiko utama dalam strategi ini ialah:
Harga yang ditetapkan oleh penunjuk ATR mungkin terlalu ideal dan tidak dapat benar-benar mencerminkan keadaan pasaran, menyebabkan hentian yang kerap. Anda boleh menyesuaikan parameter ATR atau meningkatkan lebar hentian dengan sewajarnya.
Harga penutupan hari sebelumnya tidak dapat menentukan trend masa depan, dan jika berlaku pembalikan yang teruk, ia akan mengelirukan pilihan arah perdagangan. Anda boleh mempertimbangkan untuk mengesahkan trend bersama-sama dengan petunjuk lain.
Penangguhan dan penangguhan kedudukan mungkin dipicu oleh manipulasi, tidak boleh benar-benar berhenti. Anda boleh menetapkan komponen batch berhenti, untuk mengelakkan yang tersandung.
Strategi ini boleh dioptimumkan dalam beberapa aspek:
Mengoptimumkan parameter ATR untuk menjadikan harga dagangan lebih sesuai dengan turun naik pasaran.
Menambah mekanisme penilaian trend, mengelakkan perdagangan berbalik pasaran.
Menyesuaikan markah penangguhan untuk mengurangkan kemungkinan keuntungan penangguhan akan dicetuskan sambil mengekalkan keuntungan.
Setting batch stop loss and stop stop untuk mengurangkan kemungkinan tersedak dan kehilangan.
Menambah mekanisme pengurusan kedudukan, yang boleh meningkatkan kedudukan pada peringkat trend.
Strategi ini berdasarkan harga dagangan yang dinamika pada hari penutupan dan penunjuk ATR hari sebelumnya, untuk menjejaki trend secara berkesan. Pada masa yang sama, menetapkan mekanisme berhenti dan berhenti untuk mengawal risiko perdagangan tunggal. Arah pengoptimuman termasuk pengoptimuman parameter, peningkatan mekanisme penghakiman, penyesuaian berhenti dan pengurusan kedudukan.
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("PC with ATR Strategy (by Zhipengcfel)", shorttitle="PC_ATR", pyramiding=1, overlay=true)
// Zhipengcfel's Previous day's close with ATR Strategy
//
// Version 1.0
// @copyright Idea by Zhipengcfel on June 29, 2017.
//Previous day's close plus ATR strategy.
//Buy (if breaking PC+ATR*0.8) or sell (if breaking PC-0.8*ATR).
//This is just a demo vision and can not be used for real auto trading
///////////// ATR value
ATRlength = input(14, minval=1, title="lookback length of ATR")
//ATR = atr(ATRlength)
ATR = request.security(syminfo.tickerid, 'D', atr(ATRlength))
///////////// Entry levels and target levels
entr = input(0.8, minval=0.1, step = 0.05, title="Entry level for ATR")
tplevel = input(1.7, minval=0.1, step = 0.05, title="Exit level for ATR")
yesterday = request.security(syminfo.tickerid, 'D', close[1])
dl = request.security(syminfo.tickerid, 'D', low[1])
dh = request.security(syminfo.tickerid, 'D', high[1])
TPup = yesterday+entr*ATR
TPdown = yesterday-entr*ATR
profitlevelup = dl+tplevel*ATR
profitleveldown = dh-tplevel*ATR
///////////// Stop loss level
sl = input( 0.2 ,minval=0.01, step = 0.05, title="Stop loss level for ATR") //82 for 2, 83 for 3 and more positions
slup = yesterday+sl*ATR
sldown = yesterday-sl*ATR
///////////// Starting year to backtest
yer = input( 2014 , title="Backtest Starting year")
///////////// strategy: PC + ATR
if (close > TPup) and (close < profitlevelup)
strategy.entry("LONG", strategy.long, 10, comment="Buy", when = year > yer, oca_name="My oca")
strategy.exit("Stopped", "LONG", stop = slup, limit= profitlevelup, oca_name="My oca")
if (close < TPdown) and (close > profitleveldown)
strategy.entry("SHORT", strategy.short, 10, comment="Sell", when = year > yer, oca_name="My oca")
strategy.exit("Stopped", "SHORT", stop = sldown, limit= profitleveldown, oca_name="My oca")