Backtest lebih akurat dengan Pembesar Bar

May 30, 2022

Pemegang akun premium dapat memperoleh pengisian order yang lebih realistis dalam backtest strategi mereka dengan menggunakan opsi Pembesar Bar. Alat ini menggunakan pemeriksaan intrabar untuk mendapatkan perincian yang lebih dalam tentang pergerakan harga di dalam bar, memungkinkan pengisian order yang lebih tepat. Saat dipilih, mode Pembesar Bar menggantikan asumsi yang harus dibuat oleh emulator broker pada pergerakan harga dengan hanya nilai OHLC untuk bar historis.

Kerangka waktu intrabar yang digunakan dengan Pembesar Bar secara dinamis menyesuaikan dengan kerangka waktu chart. Tabel ini mencantumkan kerangka waktu intrabar yang digunakan untuk kerangka waktu chart secara progresif:

Kerangka Waktu Chart, T Kerangka Waktu Intrabar yang Digunakan
1S < T < 30S 1S
30S <= T < 5 5S
5 <= T < 30 15S
30 <= T < 60 1
60 <= T < 240 5
240 <= T < D 15
D <= T < W 60
W <= T < 2W 120
T >= 2W D

Tabel 1. Kerangka waktu intrabar yang digunakan

Berikut contoh strategi yang menggunakan stop order tanpa menggunakan opsi Pembesar Bar:

//@version=5
strategy("bar_magnifier_demo", overlay = true, use_bar_magnifier = false)

if bar_index  == 10381
    strategy.entry("Long", strategy.long, stop = 157.0)
    strategy.exit("Exit", stop = 156.0)

Emulator broker menempatkan stop order pada bar #10381 dan mengisi order dengan harga 157.0 pada bar berikutnya segera setelah kondisi stop = 157.0 terpenuhi. Emulator broker memperkirakan bahwa di dalam bar itu sendiri, harga berubah dari “penutupan” ke “terendah”, lalu ke “tertinggi” (memicu entri), lalu ke “penutupan”. Setelah beberapa bar (11 hari untuk kerangka waktu saat ini), kondisi untuk keluar dari posisi dengan harga stop = 156.0 dipicu:

Saat pembesar Bar diaktifkan (parameter use_bar_magnifier = true), harga keluar dan masuk tidak berubah; namun, keluar dari posisi terjadi di dalam bar yang sama di mana entri terjadi:

//@version=5
strategy("bar_magnifier_demo", overlay = true, use_bar_magnifier = true)

if bar_index  == 10381
    strategy.entry("Long", strategy.long, stop = 157.0)
    strategy.exit("Exit", stop = 156.0)

Jika kita memeriksa chart dengan kerangka waktu lebih rendah untuk simbol yang sama (chart 60 menit, menurut tabel kerangka waktu intrabar) dan menemukan rentang waktu yang berkoresponden ke bar 10382, kita dapat melihat bahwa pada kerangka waktu satu jam, setelah mencapai 157.0 dan memicu entri, harga turun kebawah 156.0, dan memenuhi kondisi stop = 156.0:

Dengan Bar Magnifier aktif, emulator broker mendapatkan akses ke perubahan harga dari kerangka waktu yang lebih rendah selama backtesting, membuat perilakunya lebih mirip dengan apa yang akan terjadi selama pengujian ke depan strategi untuk periode waktu yang sama.

Berikut adalah contoh strategi yang menggunakan kerangka waktu yang lebih rendah untuk mencapai pengisian limit dan stop order yang lebih tepat:

//@version=5
strategy(
 title                  =   "Magnifier On",
 overlay                =   true, 
 calc_on_order_fills    =   true,
 calc_on_every_tick     =   true,
 precision              =   3, 
 default_qty_type       =   strategy.cash, 
 currency               =   currency.USD, 
 default_qty_value      =   1000, 
 initial_capital        =   1000,
 use_bar_magnifier      =   true)

trailPoints = input.int(150, "Trail Points (in ticks)")
trailOffset = input.int(100, "Trail Offset (in ticks)")
stopSize    = input.int(300, "Stop Offset (in ticks)")

longCondition = bar_index % 25 == 0 and not (strategy.closedtrades.exit_bar_index(strategy.closedtrades - 1) == bar_index)

if (longCondition)
    strategy.entry("Long", strategy.long)

strategy.exit("Exit", loss = stopSize, trail_points = trailPoints, trail_offset = trailOffset)

Dengan opsi pembesar bar aktif, hasil strategi lebih dekat dengan apa yang akan terjadi secara real-time. Profit untuk pengujian strategi kami adalah 50% lebih buruk saat diaktifkan, yang cukup mengecewakan bagi strategi itu sendiri, namun menunjukkan betapa pentingnya menggunakan data kerangka waktu yang lebih rendah untuk mendapatkan data backtest yang lebih akurat:

Opsi Pembesar Bar dapat diaktifkan dengan mengaktifkan input yang sesuai di jendela “Pengaturan/Properti” strategi:

Setelah mematikan opsi, strategi dihitung ulang dengan logika yang lama, menunjukkan kepada kita informasi yang kurang akurat tentang perilaku strategi:

Untuk tetap mendapat informasi tentang fitur-fitur baru Pine, selalu pantau Catatan Rilis Panduan Pengguna. Akun PineCoders juga menyiarkan pembaruan dari channel Telegram Squawk Box, akun Twitter, dan dari obrolan publik “Skrip Pine™ Q&A” di TradingView.

Kami harap peningkatan ini bermanfaat bagi anda. Silakan teruskan mengirimkan umpan balik anda kepada kami. Kami membangun TradingView untuk pengguna kami dan kami senang mendengar dari anda.

Look first Then leap

TradingView dibangun untuk anda, karenanya manfaatkan fitur-fitur luar biasa kami semaksimal mungkin
Luncurkan Chart