Pembolehubah Predefined dan RefreshRates Function

By | 27/09/2019

Terdapat pembolehubah dengan nama yang telah ditetapkan dalam bahasa MQL4.

Pembolehubah yang telah ditetapkan adalah pemboleh ubah dengan nama yang sudah ditentukan, nilai yang ditentukan oleh terminal klien dan tidak dapat diubah oleh metode program. Pembolehubah yang telah ditentukan mencerminkan keadaan carta semasa pada saat permulaan program (Penasihat Pakar, naskah atau penunjuk adat) atau akibat pelaksanaan RefreshRates ().

Senarai nama-nama pembolehubah yang mudah dijelaskan

  • Ask harga jualan terakhir keselamatan semasa;
  • Bid harga beli terakhir keselamatan semasa yang diketahui;
  • Bars – bilangan bar pada carta semasa;
  • Point – Saiz mata titik keselamatan semasa dalam mata wang quote;
  • Digits – bilangan digit selepas titik perpuluhan dalam harga keselamatan semasa.

Senarai nama-nama Arrays-Timeseries yang telah ditetapkan

  • Time – masa pembukaan setiap bar pada carta semasa;
  • Open – Harga pembukaan – setiap bar pada carta semasa;
  • Close – harga penutup setiap bar pada carta semasa;
  • High – Harga tinggi maksimum setiap bar pada carta semasa;
  • Low – Harga minimum – minimum setiap bar pada carta semasa;
  • Volume – keluarkan jumlah setiap bar pada carta semasa.

(konsep “tatasusunan” dan “arrays-timeseries” diterangkan dalam bahagian Arrays).

Sifat-sifat Pembolehubah Predefined

Nama pembolehubah yang telah ditetapkan tidak boleh digunakan untuk mengenal pasti pembolehubah yang ditentukan pengguna. Pemboleh ubah yang dipraktikkan boleh digunakan dalam ungkapan sama dengan pembolehubah lain mengikut peraturan yang sama, tetapi nilai pemboleh ubah yang dipratentukan tidak dapat diubah. Apabila cuba menyusun program yang mengandungi pengendali tugasan, di mana pembolehubah yang telah ditetapkan diletakkan di sebelah kanan tanda kesamaan, MetaEditor akan menunjukkan mesej ralat. Dari segi kebolehlihatan pembolehubah yang telah ditetapkan, merujuk kepada global, iaitu mereka boleh didapati dari mana-mana bahagian program (lihat Jenis Pembolehubah).

Ciri utama pembolehubah yang telah ditentukan adalah seperti berikut:

Nilai semua pembolehubah yang telah ditetapkan secara automatik dikemas kini oleh terminal pelanggan pada masa ini apabila fungsi khas dimulakan untuk pelaksanaan.

Nilai sebelum dan semasa bagi pembolehubah yang telah ditentukan mungkin sama, tetapi nilai itu sendiri akan dikemas kini. Pada saat nilai permulaan fungsi khas pemboleh ubah ini telah dikemas kini dan tersedia dari baris program pertama. Mari ilustrasikan pembaharuan pembolehubah yang telah ditetapkan pada contoh berikut (Pakar Penasihat yang dipratentukan.mq4):

//--------------------------------------------------------------------
// predefined.mq4
// The code should be used for educational purpose only.
//--------------------------------------------------------------------
int start()                                     // Special funct. start
  {
   Alert("Bid = ", Bid);                        // Current price
   return;                                      // Exit start()
  }
//--------------------------------------------------------------------

Memulakan program ini adalah mudah untuk melihat bahawa nilai-nilai Bid pembolehubah yang dipaparkan dalam isyarat akan sama dengan harga semasa setiap kali. Dengan cara yang sama anda boleh menyemak nilai pembolehubah lain bergantung pada keadaan semasa. Contohnya, Tanya berubah juga bergantung kepada harga semasa. Nilai Bar ubah juga akan berubah sekiranya bilangan bar berubah. Ini mungkin berlaku pada satu tanda, di mana bar baru dibentuk dalam tetingkap carta. Nilai Titik bergantung pada spesifikasi keselamatan. Sebagai contoh, untuk EUR / USD nilai ini adalah 0.0001, untuk USD / JPY adalah 0.01. Nilai Digit untuk sekuriti ini bersamaan dengan 4 dan 2.

Berikut adalah satu lagi ciri penting pembolehubah yang telah ditetapkan:

Terminal klien mewujudkan set salinan tempatan bagi pembolehubah yang telah ditetapkan secara berasingan untuk setiap program yang dimulakan. Setiap program bermula berfungsi dengan salinan data bersejarahnya sendiri yang ditetapkan.

Dalam satu terminal pelanggan beberapa program aplikasi (Penasihat Pakar, skrip, penunjuk) boleh berjalan pada masa yang sama, dan bagi setiap daripada mereka terminal klien akan membuat satu set salinan berasingan bagi semua nilai pembolehubah yang telah ditetapkan – data bersejarah. Mari kita analisis secara terperinci sebab-sebab keperluan ini. Rajah 52 menunjukkan kemungkinan operasi Pakar Penasihat dengan panjang pelaksanaan yang berbeza dari permulaan fungsi khas (). Untuk kesederhanaan mari kita anggap bahawa dalam Penasihat Pakar dianalisis tidak ada fungsi istimewa lain dan kedua Penasihat Pakar beroperasi pada jangka masa yang sama dari keselamatan yang sama.

Fig. 52. Operation time of start() can be larger or smaller than a time interval between ticks.

Expert Advisors berbeza pada masa mula () pelaksanaan. Bagi Penasihat Pakar peringkat pertengahan yang sama masa ini adalah kira-kira sama dengan 1 hingga 100 milisaat. Penasihat Pakar lain boleh dilaksanakan lebih lama, contohnya, beberapa saat atau puluhan detik. Selang masa antara kutu juga berbeza: dari beberapa milisaat hingga minit dan kadang kala puluhan minit. Mari analisis pada contoh yang diberikan bagaimana kekerapan tanda kutip mempengaruhi operasi Expert Advisors 1 dan Expert Advisors 2 yang hav

Leave a Reply

Your email address will not be published. Required fields are marked *