Hari Terdahulu ditutup dengan ATR Trend Tracking Strategy

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

img

Ringkasan

Strategi ini menetapkan tahap harga masuk panjang dan pendek dan tahap harga stop loss berdasarkan harga penutupan hari sebelumnya dan penunjuk ATR untuk mengesan trend.

Logika Strategi

Strategi ini menggunakan harga penutupan hari sebelumnya, harga tinggi, harga rendah dan penunjuk ATR untuk mengira tahap harga kemasukan dan tahap stop loss.

Tahap harga kemasukan panjang TPup = Penutupan hari sebelumnyas + ATR * 0.8
Tahap harga kemasukan pendek TPdown = Penutupan hari sebelumnya - ATR * 0.8

Long stop loss level slup = Hari sebelumnyas close + ATR * 0.2
Tahap Stop Loss Pendek sldown = Hari Terdahulus close - ATR * 0.2

Tahap mengambil keuntungan panjang Tahap keuntungan = Hari sebelumnyas rendah + ATR * 1.7
Tahap keuntungan mengambil pendek (Short Take Profit Level) Tahap keuntungan turun = Hari sebelumnyas tinggi - ATR * 1.7

Apabila harga menembusi TPup, pergi panjang 10 lot. Apabila harga menembusi TPdown, pergi pendek 10 lot. Kemudian tetapkan stop loss dan ambil keuntungan. Posisi keluar pada pemicu stop loss atau mengambil keuntungan.

Analisis Kelebihan

Kelebihan utama strategi ini ialah:

  1. Menggunakan penunjuk ATR untuk menetapkan tahap harga kemasukan dinamik dan tahap stop loss berdasarkan turun naik pasaran, menjadikan perdagangan lebih mudah menyesuaikan diri dengan keadaan pasaran.

  2. Menggunakan penutupan hari sebelumnya untuk menentukan arah dan digabungkan dengan penunjuk ATR untuk mengenal pasti tahap perdagangan tertentu, mengelakkan ditipu oleh terlalu banyak bunyi harga masa nyata.

  3. Menetapkan kedua-dua mekanisme stop loss dan mengambil keuntungan untuk mengawal risiko setiap perdagangan dengan berkesan.

Analisis Risiko

Risiko utama strategi ini ialah:

  1. Tahap harga yang ditetapkan oleh ATR mungkin terlalu ideal untuk benar-benar mencerminkan keadaan pasaran, yang membawa kepada pemicu stop loss yang kerap. Parameter ATR boleh diselaraskan atau julat stop loss boleh diperluaskan.

  2. Penutupan hari sebelumnya tidak dapat menentukan trend masa depan. Pembalikan drastis boleh mengelirukan pilihan arah. Indikator lain boleh digabungkan untuk mengesahkan trend.

  3. Stop loss dan take profit boleh dimanipulasi untuk mencetuskan, gagal untuk benar-benar menghentikan kerugian.

Arahan pengoptimuman

Strategi ini boleh dioptimumkan dalam aspek berikut:

  1. Mengoptimumkan parameter ATR untuk menjadikan tahap perdagangan lebih sesuai dengan turun naik pasaran.

  2. Tambah mekanisme penilaian trend untuk mengelakkan pembalikan perdagangan, contohnya menggabungkan dengan penunjuk MA.

  3. Sesuaikan julat mengambil keuntungan, mengekalkan keuntungan sambil mengurangkan kebarangkalian pemicu mengambil keuntungan.

  4. Tetapkan batch stop loss dan mengambil keuntungan untuk mengurangkan kebarangkalian terperangkap atau kehilangan.

  5. Tambah mekanisme saiz kedudukan untuk meningkatkan kedudukan dalam fasa trend.

Kesimpulan

Strategi ini menetapkan tahap perdagangan dinamik berdasarkan penutupan hari sebelumnya dan ATR untuk mengesan trend dengan berkesan. Ia juga menggunakan stop loss dan mengambil keuntungan untuk mengawal risiko perdagangan tunggal. Arahan pengoptimuman termasuk penyesuaian parameter, peningkatan mekanisme penghakiman, penyesuaian keuntungan dan saiz kedudukan dan sebagainya. Secara umum, strategi ini mencapai kesan trend 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 lanjut