Hari sebelumnya ditutup dengan strategi pelacakan tren ATR

Penulis:ChaoZhang, Tanggal: 2024-01-31 14:39:09
Tag:

img

Gambaran umum

Strategi ini menetapkan tingkat harga masuk panjang dan pendek dan tingkat harga stop loss berdasarkan harga penutupan hari sebelumnya dan indikator ATR untuk melacak tren.

Logika Strategi

Strategi ini menggunakan indikator harga penutupan hari sebelumnya, harga tinggi, harga rendah dan indikator ATR untuk menghitung tingkat harga masuk dan tingkat stop loss.

Tingkat harga masuk panjang TPup = Penutupan hari sebelumnya + ATR * 0,8
Tingkat harga masuk pendek TPdown = Penutupan hari sebelumnya - ATR * 0,8

Long stop loss level slup = Previous days close + ATR * 0.2
Level stop loss pendek sldown = Close hari sebelumnya - ATR * 0.2

Tingkat laba long take profitlevelup = Hari sebelumnyas low + ATR * 1.7
Tingkat keuntungan short take profitleveldown = Hari sebelumnyas tinggi - ATR * 1.7

Ketika harga melewati TPup, pergi panjang 10 lot. Ketika harga melewati TPdown, pergi pendek 10 lot. Kemudian atur stop loss dan ambil keuntungan. Posisi keluar pada stop loss trigger atau ambil profit trigger.

Analisis Keuntungan

Keuntungan utama dari strategi ini adalah:

  1. Menggunakan indikator ATR untuk menetapkan tingkat harga masuk yang dinamis dan tingkat stop loss berdasarkan volatilitas pasar, membuat perdagangan lebih mudah beradaptasi dengan kondisi pasar.

  2. Menggunakan penutupan hari sebelumnya untuk menentukan arah dan menggabungkan dengan indikator ATR untuk mengidentifikasi tingkat perdagangan tertentu, menghindari tertipu oleh terlalu banyak kebisingan harga real-time.

  3. Menetapkan mekanisme stop loss dan take profit untuk mengontrol risiko setiap perdagangan secara efektif.

Analisis Risiko

Risiko utama dari strategi ini adalah:

  1. Tingkat harga yang ditetapkan oleh ATR mungkin terlalu idealistis untuk benar-benar mencerminkan kondisi pasar, yang mengarah pada pemicu stop loss yang sering. Parameter ATR dapat disesuaikan atau rentang stop loss dapat diperluas.

  2. Penutupan hari sebelumnya tidak dapat menentukan tren masa depan. Pembalikan drastis dapat menyesatkan pilihan arah. Indikator lain dapat dikombinasikan untuk mengkonfirmasi tren.

  3. Stop loss dan take profit dapat dimanipulasi untuk memicu, gagal untuk benar-benar menghentikan kerugian. Batch stop loss dapat digunakan untuk menghindari terjebak.

Arahan Optimasi

Strategi ini dapat dioptimalkan dalam aspek berikut:

  1. Mengoptimalkan parameter ATR agar tingkat perdagangan lebih sesuai dengan volatilitas pasar.

  2. Tambahkan mekanisme penilaian tren untuk menghindari pembalikan perdagangan, misalnya menggabungkan dengan indikator MA.

  3. Sesuaikan rentang mengambil keuntungan, menjaga profitabilitas sambil mengurangi kemungkinan pemicu mengambil keuntungan.

  4. Atur batch stop loss dan profit taking untuk mengurangi kemungkinan terjebak atau kehilangan.

  5. Tambahkan mekanisme ukuran posisi untuk meningkatkan posisi dalam fase tren.

Kesimpulan

Strategi ini menetapkan tingkat perdagangan dinamis berdasarkan penutupan hari sebelumnya dan ATR untuk melacak tren secara efektif. Ini juga menggunakan stop loss dan take profit untuk mengendalikan risiko perdagangan tunggal. Arah optimasi termasuk penyesuaian parameter, peningkatan mekanisme penilaian, penyesuaian profit dan ukuran posisi dll. Secara umum, strategi ini mencapai efek tren berikut yang baik.


/*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")
 

Lebih banyak