Pada kod sebelum ini, saya menggunakan masa untuk mengesan bar baru. Kali ini, mari kita gunakan kiraan bar untuk mengesan bar baru. Kaedah ini lebih ringan dan pantas berbanding dengan kaedah masa.
- Nyatakan pembolehubah dalam jenis data integer untuk menyimpan kiraan bar.
- Tetapkan kiraan bar untuk "BarsTotal_OnInt" semasa inisialisasi.
- Gunakan fungsi iBars(); untuk menetapkan kiraan bar bagi pembolehubah "BarsTotal_OnTick" pada carta langsung. Pembolehubah ini akan dikemas kini pada setiap tick.
- Gunakan komen dan peringatan untuk memeriksa ketepatan kod.

int BarsTotal_OnInt; int BarsTotal_OnTick; //+------------------------------------------------------------------+ //| Fungsi inisialisasi pakar | //+------------------------------------------------------------------+ int OnInit() { BarsTotal_OnInt = iBars(NULL,PERIOD_CURRENT); // Menetapkan jumlah bar semasa inisialisasi return(INIT_SUCCEEDED); } void OnTick() // Fungsi OnTick { BarsTotal_OnTick = iBars(NULL,PERIOD_CURRENT); // Menyimpan jumlah terkini if(BarsTotal_OnTick > BarsTotal_OnInt) // Bar baru telah tiba { BarsTotal_OnInt = BarsTotal_OnTick; // Mengemas kini sejarah. Alert("Bar Baru telah tiba"); Comment("Kiraan Bar dalam sejarah -: ", BarsTotal_OnInt, "\n", "Kiraan Bar dalam Langsung -: ", BarsTotal_OnTick); // Kod anda di sini. -------------------------- // Anda boleh mengemas kini "bendera" / pembolehubah untuk digunakan kemudian juga. } }
Komen 0