Peristiwa bar
Pengembang algoritma sering perlu merujuk pada peristiwa bar untuk mengeksekusi strategi trading tepat waktu sebagai respons terhadap harga yang diperbarui. API menawarkan peristiwa BarOpened dan BarClosed bagi pembuat algo untuk menyempurnakan cBot dan menangkap peluang pada titik-titik berbeda dalam siklus bar.
Catatan
Peristiwa bar hanya dapat ditangani saat membuat kode cBot. Indikator, sebaliknya, memiliki metode Calculate() yang dipanggil pada setiap tick.
Dalam panduan ini, kami menjelaskan perbedaan antara metode OnBar() dan OnBarClosed() serta memberikan beberapa contoh penggunaan.
Peristiwa bar dalam satu menit!
- Metode
OnBar()dipicu setiap kali bar baru digambar pada grafik tempat sebuah instance ditambahkan. Metode ini dipanggil untuk bar yang baru terbentuk. - Penangan peristiwa
OnBarClosed()juga dipicu pada setiap bar baru. Namun, metode ini dipanggil untuk bar terakhir yang ditutup (yaitu, sebelum bar saat ini). - Dengan merujuk pada peristiwa bar yang tepat, Anda meningkatkan akurasi analisis teknikal Anda dan memilih waktu yang sesuai untuk tindakan algoritma.
- Tipe grafik yang didukung untuk
BarOpeneddanBarClosedadalah grafik bar waktu, candlestick, tick, Renko, rentang, dan Heikin Ashi.
Menggunakan metode OnBar()
Terjadinya peristiwa BarOpened bergantung pada jadwal simbol dan frekuensi harga yang masuk. Biasanya, pengguna platform dapat menyesuaikan terjadinya BarClosed dengan pengaturan timeframe grafik.
Catatan
Metode OnBar() dapat dipanggil sesering yang diizinkan oleh pengaturan timeframe grafik. Setelah sebuah bar ditutup, OnBar() tidak akan dipicu sampai tick berikutnya tiba, yang secara logis memicu pembentukan bar baru.
Metode OnBar() dipanggil bersamaan dengan setiap bar baru yang digambar pada grafik tempat algoritma ditambahkan. Hasilnya, penangan OnBar() adalah tempat yang sempurna untuk mendefinisikan logika trading kustom yang harus diulang secara teratur oleh cBot Anda.
Di editor kode, Anda dapat menentukan penangan OnBar() sebagai berikut:
override void OnBar()
Menggunakan metode OnBarClosed()
Algo API juga memungkinkan untuk mengeksekusi logika untuk bar terakhir yang ditutup, yang, tergantung pada strategi yang ingin Anda terapkan, mungkin merupakan alternatif yang lebih nyaman dan akurat daripada menangani peristiwa BarOpened. Pada pembukaan bar, bar baru muncul sebagai (lilin doji) dan tidak berisi data lengkap untuk analisis teknikal.
Peristiwa BarClosed adalah alias dari peristiwa BarOpened, yang berarti bahwa peristiwa ini hanya terjadi jika peristiwa BarOpened terjadi. Misalnya, peristiwa BarClosed untuk bar terakhir pada hari Jumat akan terjadi dengan bar pertama yang dibuka pada hari Senin, asalkan simbol tersebut tidak diperdagangkan selama akhir pekan.
Catatan
Metode OnBarClosed() tidak akan dipanggil sampai tick tiba untuk membentuk bar baru.
Penangan peristiwa OnBarClosed() dapat dideklarasikan sebagai berikut:
override void OnBarClosed()
Dalam badan metode OnBarClosed(), Anda dapat menentukan tindakan terkait apa yang akan dilakukan cBot Anda ketika peristiwa BarClosed dipicu (misalnya, mengeksekusi order, menguraikan pola, menggambar visual analisis teknikal, dll.).
Ketika diakses dalam penangan peristiwa ini, koleksi Bars tidak berisi bar langsung saat ini, sedangkan koleksi lain (seperti Positions, Symbols, dll.) berisi data aktual.
Penangan peristiwa OnBar() dan OnBarClosed() bekerja sebagaimana dimaksud dalam backtesting dan optimisasi. Kedua metode dapat digunakan pada berbagai tipe grafik, termasuk grafik bar waktu, candlestick, tick, Renko, rentang, dan Heikin Ashi.
Buat contoh cBot
Contoh cBot berikut menempatkan order pasar ketika setiap bar ketiga pada grafik EURCHF dibuka.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | |
Karena cBot dijalankan pada grafik m1, interval waktu perkiraan antara order pasar yang dieksekusi adalah tiga menit.

Di bawah ini adalah contoh cBot dengan indikator Directional Movement System (DMS) yang bersarang, yang mencetak (Uptrend!) jika nilai DI+ (garis hijau) melebihi nilai DI- (garis merah).

Ketika DI- lebih besar dari DI+, (Downtrend!) dicetak dalam peristiwa BarClosed.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | |
Ringkasan
Berbagai peristiwa bar yang ada dalam Algo API memungkinkan pengembang algoritma untuk memilih waktu yang akurat untuk metode yang dipanggil. Metode OnBar() dapat dipanggil dengan frekuensi berbeda tergantung pada jadwal simbol dan pengaturan timeframe grafik, yang juga menambah fungsionalitas cBot. Metode OnBarClosed() adalah alias yang nyaman dari OnBar() untuk bekerja dengan indikator.