Peristiwa bar
Pembangun algoritma sering perlu merujuk kepada peristiwa bar untuk melaksanakan strategi dagangan tepat pada masanya sebagai tindak balas kepada harga yang dikemas kini. API menawarkan peristiwa BarOpened dan BarClosed untuk pencipta algo untuk menala cBot dengan tepat dan merebut peluang pada titik berbeza dalam kitaran bar.
Nota
Peristiwa bar hanya boleh dikendalikan semasa mengekod cBot. Indikator, sebaliknya, mempunyai kaedah Calculate() yang dipanggil pada setiap tick.
Dalam panduan ini, kami menjelaskan perbezaan antara kaedah OnBar() dan OnBarClosed() dan memberikan beberapa kes penggunaan.
Peristiwa bar dalam satu minit!
- Kaedah
OnBar()dicetuskan setiap kali bar baru dilukis pada carta di mana suatu contoh ditambah. Ia dipanggil untuk bar yang baru terbentuk. - Pengendali peristiwa
OnBarClosed()juga dicetuskan pada setiap bar baru. Walau bagaimanapun, ia dipanggil untuk bar terakhir yang ditutup (iaitu, sebelum bar semasa). - Dengan merujuk kepada peristiwa bar yang betul, anda meningkatkan ketepatan analisis teknikal anda dan memilih masa yang sesuai untuk tindakan algoritma.
- Jenis carta yang disokong untuk
BarOpeneddanBarClosedadalah carta bar masa, candlesticks, tick, Renko, julat dan Heikin Ashi.
Gunakan kaedah OnBar()
Kejadian peristiwa BarOpened bergantung pada jadual simbol dan kekerapan harga yang masuk. Biasanya, pengguna platform boleh melaraskan kejadian BarClosed dengan tetapan rangka masa carta.
Nota
Kaedah OnBar() boleh dipanggil sekerap yang dibenarkan oleh tetapan rangka masa carta. Sebaik sahaja bar ditutup, OnBar() tidak akan dicetuskan sehingga tick seterusnya tiba, yang secara logik mencetuskan bar baru untuk dibentuk.
Kaedah OnBar() dipanggil serentak dengan setiap bar baru yang dilukis pada carta di mana algoritma dilampirkan. Hasilnya, pengendali OnBar() adalah tempat yang sempurna untuk menentukan logik dagangan tersuai yang perlu diulang oleh cBot anda secara berkala.
Dalam editor kod, anda boleh menentukan pengendali OnBar() seperti berikut:
override void OnBar()
Gunakan kaedah OnBarClosed()
API Algo juga membolehkan pelaksanaan logik untuk bar terakhir yang ditutup, yang, bergantung pada strategi yang ingin anda laksanakan, mungkin merupakan alternatif yang lebih mudah dan tepat untuk mengendalikan peristiwa BarOpened. Pada pembukaan bar, bar baru muncul sebagai (lilin doji) dan tidak mengandungi data lengkap untuk analisis teknikal.
Peristiwa BarClosed adalah alias untuk peristiwa BarOpened, bermakna ia hanya berlaku sekiranya peristiwa BarOpened berlaku. Sebagai contoh, peristiwa BarClosed untuk bar terakhir pada hari Jumaat akan berlaku dengan bar pertama yang dibuka pada hari Isnin, dengan syarat simbol tersebut tidak didagangkan pada hujung minggu.
Nota
Kaedah OnBarClosed() tidak akan dipanggil sehingga tick tiba untuk membentuk bar baru.
Pengendali peristiwa OnBarClosed() boleh diisytiharkan seperti berikut:
override void OnBarClosed()
Dalam badan kaedah OnBarClosed(), anda boleh menentukan tindakan yang berkaitan yang akan dilakukan oleh cBot anda apabila peristiwa BarClosed dicetuskan (contohnya, melaksanakan pesanan, menggariskan corak, melukis visual analisis teknikal, dan sebagainya).
Apabila diakses dalam pengendali peristiwa ini, koleksi Bars tidak mengandungi bar langsung semasa, manakala koleksi lain (seperti Positions, Symbols, dan sebagainya) mengandungi data sebenar.
Pengendali peristiwa OnBar() dan OnBarClosed() berfungsi seperti yang dimaksudkan dalam ujian belakang dan pengoptimuman. Kedua-dua kaedah boleh digunakan pada jenis carta yang berbeza, termasuk carta bar masa, candlesticks, tick, Renko, julat dan Heikin Ashi.
Cipta contoh cBot
Contoh cBot berikut meletakkan pesanan pasaran apabila setiap bar ketiga pada carta 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 | |
Oleh kerana cBot dilancarkan pada carta m1, selang masa anggaran antara pesanan pasaran yang dilaksanakan adalah tiga minit.

Di bawah adalah contoh cBot dengan indikator Sistem Pergerakan Berarah (DMS) tersarang, yang mencetak (Aliran menaik!) jika nilai DI+ (garis hijau) melebihi nilai DI- (garis merah).

Apabila DI- lebih besar daripada DI+, (Aliran menurun!) 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
Kepelbagaian peristiwa bar yang wujud dalam API Algo membolehkan pembangun algoritma memilih masa yang tepat untuk kaedah yang dipanggil. Kaedah OnBar() boleh dipanggil dengan kekerapan yang berbeza bergantung pada jadual simbol dan tetapan rangka masa carta, yang juga menambah fungsi cBot. Kaedah OnBarClosed() adalah alias yang mudah untuk OnBar() untuk bekerja dengan indikator.