Struktur Program

Dalam bahagian pertama, kita membincangkan beberapa idea asas mengenai bahasa pengaturcaraan MQL4. Sekarang marilah kita mengkaji bagaimana sebuah program diadakan secara umum. Untuk menyelesaikan masalah ini, kita akan mengkaji skema strukturnya.

Seperti yang disebutkan di atas, kod program utama yang ditulis oleh seorang pengaturcara diletakkan di dalam fungsi pengguna yang ditetapkan dan khusus. Dalam Fungsi, kami membincangkan idea dan sifat fungsi terbina dalam dan pengguna. Secara ringkasnya, fungsi yang ditentukan pengguna mempunyai penerangan, dan panggilan fungsi digunakan untuk memulakan pelaksanaannya dalam suatu program.

Fungsi terbina dalam atau pengguna boleh dilaksanakan hanya selepas ia dipanggil. Dalam kes sedemikian, fungsi ini dikatakan dipanggil untuk pelaksanaan oleh suatu program.Ciri-ciri fungsi khas diterangkan secara terperinci dalam fungsi Khas. Di sini, kita hanya mempelajari maklumat utama tentang mereka. Fungsi khas adalah fungsi yang dipanggil untuk dilaksanakan oleh terminal klien. Berbeza dari fungsi umum, fungsi khas hanya mempunyai keterangan, dan fungsi khas tidak dipanggil dari dalam suatu program. Fungsi khas dipanggil untuk dilaksanakan oleh terminal pelanggan. (Terdapat kemungkinan teknikal untuk memanggil fungsi khas dari dalam program, tetapi kami akan mempertimbangkan kaedah ini tidak betul dan tidak akan membincangkannya di sini.) Apabila program dimulakan untuk pelaksanaan dalam tetingkap keselamatan, terminal klien melewati kawalan kepada salah satu daripada fungsi khas. Akibatnya, fungsi ini dilaksanakan.

Peraturan pengaturcaraan dalam MQL4 adalah berikut.

“Kod program mesti ditulis di dalam fungsi.

Ini bermakna baris program (operator dan panggilan fungsi) yang berada di luar fungsi khas tidak boleh dilaksanakan. Pada cubaan untuk mengkompilasi program sedemikian, MetaEditor akan menunjukkan mesej ralat yang bersamaan dan fail * * exe yang tidak dapat dieksekusi sebagai hasil kompilasi.

Marilah kita mempertimbangkan skim fungsi program biasa, EA.

Rajah 31 Skim fungsi program (EA).

Blok terbesar program yang ditulis dalam MQL4 adalah:

  1. Kepala bahagian program.
  2. Fungsi init () khas.
  3. Fungsi permulaan khas ().
  4. Fungsi deinit khas ().
  5. Fungsi yang ditentukan oleh pengguna.

Selanjutnya, kami akan menganalisis hanya kandungan dalaman blok-blok fungsi ini (bahagian integral) dari suatu program, sementara semua objek luar (contohnya, bidang maklumat terminal pelanggan atau perkakasan) akan berada di luar skop kepentingan kami.

Persekitaran maklumat Terminal Pelanggan MetaTrader 4

Persekitaran maklumat MT4 bukan sebahagian komponen program ini. Persekitaran maklumat adalah satu set parameter yang tersedia untuk diproses oleh suatu program. Sebagai contoh, harga keselamatan itu telah disertakan dengan tanda semak baru, jumlah terkumpul pada setiap semak baru, maklumat tentang harga maksimum dan minimum bar sejarah, parameter yang mencirikan keadaan perdagangan yang ditawarkan oleh pusat urus niaga dan sebagainya. Persekitaran maklumat sentiasa disimpan, dan pada setiap tick baru, ia dikemas kini oleh terminal pelanggan yang dihubungkan dengan pelayan.

Struktur Program

Bahagian kepala

Bahagian kepala terdiri daripada baris pertama pada awal program, yang mengandungi maklumat umum tentang program ini. Sebagai contoh, bahagian ini merangkumi garis perisytiharan dan permulaan pembolehubah global. (Keperluan untuk menyertakan maklumat ini atau ke bahagian kepala akan dibincangkan kemudian.) Tanda akhir bahagian kepala mungkin baris berikutnya yang mengandungi penerangan fungsi (fungsi pengguna atau fungsi khusus).

Fungsi khas

Biasanya, selepas bahagian kepala, fungsi khas dijelaskan. Penerangan fungsi khas kelihatan seperti perihalan fungsi yang ditentukan oleh pengguna, tetapi fungsi khas mempunyai nama yang sudah ditentukan: init (), start () dan deinit (). Fungsi khas adalah blok perhitungan dan berkaitan dengan persekitaran maklumat terminal klien dan fungsi pengguna yang ditentukan. Fungsi khas diterangkan dengan terperinci dalam fungsi Khas.

Fungsi yang ditentukan oleh pengguna

Penerangan fungsi fungsi pengguna biasanya diberikan selepas perihalan fungsi khas. Bilangan fungsi yang ditentukan pengguna dalam program tidak terhad. Dalam Rajah 31 sebelumnya, contoh kami mengandungi hanya dua fungsi yang ditentukan pengguna, tetapi program boleh mengandungi 10 atau 500, atau tidak. Jika tiada fungsi yang ditentukan pengguna digunakan dalam program, program ini akan mempunyai struktur yang mudah: bahagian kepala, dan penerangan fungsi khas.

Fungsi standard

Seperti yang dinyatakan sebelum ini, fungsi standard boleh dibentangkan hanya sebagai panggilan fungsi. Setiap fungsi standard, seperti fungsi khas dan tersuai, mempunyai perihalan, tetapi penerangan ini tidak diberikan dalam program (itulah sebabnya tidak termasuk dalam skema). Keterangan fungsi standard tersembunyi dari pengaturcara, dan oleh itu tidak dapat diubah. Walau bagaimanapun, ia tersedia untuk MetaEditor. Semasa penyusunan program, MetaEditor akan membentuk fail boleh laku, di mana semua fungsi standard dipanggil akan dilaksanakan dengan betul sepenuhnya.

Pengaturan bahagian dalam program

Bahagian kepala harus terletak di baris pertama. Penyusunan penerangan fungsi khusus dan pengguna tidak penting. Rajah 32 menunjukkan susunan biasa blok berfungsi, iaitu bahagian kepala, fungsi khas, dan fungsi yang ditentukan pengguna. Rajah 33 menunjukkan variasi struktur program lain. Dalam semua contoh, bahagian kepala akan menjadi lebih awal, manakala fungsi boleh diterangkan secara rawak.

Rajah 32 Pengaturan biasa blok fungsi dalam suatu program (disyorkan).
Rajah 33 Cara yang mungkin untuk mengatur blok fungsi dalam suatu program (perintah rawak).

Berikut ialah contoh perkiraan penjelasan fungsi yang salah.

Contoh 34 Contoh pengaturan fungsi yang salah dalam sesuatu program.

Sekiranya pengaturcara tidak sengaja membuat program di mana gambaran mana-mana fungsinya terletak di dalam penerangan fungsi lain, maka pada peringkat kompilasi, MetaEditor akan menunjukkan mesej ralat dan fail yang boleh dieksekusi tidak akan dibuat untuk program sedemikian.

Urutan pelaksanaan kod

Bahagian kepala dan fungsi khas

Pada saat program dimulakan di jendela keamanan, baris bagian kepala program dijalankan.Selepas persediaan yang diterangkan di bahagian kepala dilakukan, terminal pelanggan melewati mengawal fungsi khas init (), dan fungsi tersebut dijalankan (lulus kawalan ditunjukkan pada skema struktur dalam anak panah kuning besar). Fungsi init () khas dipanggil untuk pelaksanaan sekali sahaja pada permulaan operasi program. Fungsi ini biasanya mengandungi kod yang harus dilaksanakan hanya sekali sebelum operasi utama program bermula. Sebagai contoh, apabila init () dijalankan, beberapa pembolehubah global diinisialisasi, objek grafik dipaparkan dalam tetingkap carta atau mesej mungkin ditunjukkan. Selepas semua baris program dalam init () dilaksanakan, fungsi selesai pelaksanaannya, dan kawalan dikembalikan kepada terminal klien.Waktu operasi program utama ialah tempoh operasi fungsi permulaan khas (). Dalam beberapa keadaan (lihat fungsi fungsi khas dalam fungsi Khas), termasuk penerimaan tanda semak baru oleh terminal klien dari pelayan, terminal klien panggilan untuk pelaksanaan permulaan (). Fungsi ini (seperti fungsi lain) boleh merujuk kepada persekitaran maklumat terminal klien, melakukan pengiraan yang diperlukan, pesanan terbuka dan tutup, dan tidak lama lagi. Iaitu, ia boleh melakukan apa-apa tindakan yang dibenarkan oleh MQL4. Apabila permulaan () dijalankan, biasanya penyelesaian dihasilkan yang dilaksanakan sebagai tindakan kawalan (lihat anak panah merah dalam Rajah 31 sebelum ini). Kawalan ini boleh dilaksanakan sebagai permintaan dagangan untuk membuka, menutup atau mengubahsuai pesanan yang dibentuk oleh program.Selepas keseluruhan kod permulaan khas () fungsi EA dijalankan, mulakan () selesai operasi dan mengembalikan kawalan ke terminal klien. Terminal memegang kawalan untuk beberapa waktu, tidak memulakan apa-apa fungsi khas. Jeda muncul, di mana program tidak berfungsi. Kemudian, apabila tanda semak baru muncul, terminal pelanggan melewati kawalan untuk memulakan () sekali lagi, dan sebagai hasilnya, fungsi itu dilaksanakan semula.Proses ini diulang semasa program dilampirkan pada carta dan boleh diteruskan untuk minggu dan bulan. Sepanjang tempoh ini, EA boleh menjalankan perdagangan automatik, sehingga dapat melaksanakan tugas utamanya. Dalam Rajah 31 sebelumnya, panggilan mula berulang () ditunjukkan oleh beberapa anak panah kuning yang menyelubungi fungsi permulaan khas ().Apabila seorang peniaga menghilangkan EA dari carta, terminal pelanggan mengeksekusi fungsi deinit () khas sekali. Pelaksanaan fungsi ini diperlukan untuk penamatan operasi EA yang betul. Semasa operasi, sebuah program boleh, sebagai contoh, membuat objek grafik dan pembolehubah global terminal pelanggan. Fungsi deinit () boleh mengandungi kod untuk memadamkan objek dan pembolehubah yang tidak perlu. Selepas pelaksanaan deinit () selesai, kawalan dikembalikan kepada terminal klien.Fungsi khas yang dijalankan boleh merujuk kepada persekitaran maklumat (lihat anak panah biru nipis dalam Rajah 31 sebelumnya) dan panggil untuk melaksanakan fungsi yang ditentukan pengguna (lihat anak panah kuning nipis dalam Rajah 31 sebelumnya). Ambil perhatian bahawa fungsi khas dilaksanakan selepas dipanggil oleh terminal klien dalam susunan yang telah ditetapkan: init pertama (), maka sebarang panggilan mula () dan selepas itu deinit (). Syarat-syarat di mana terminal pelanggan memanggil fungsi khas diterangkan dalam fungsi Khas.Fungsi yang ditentukan oleh penggunaFungsi yang ditakrifkan pengguna dilaksanakan apabila panggilan kepada fungsi tersebut terkandung dalam beberapa fungsi. Dalam kes ini, kawalan tepat pada masanya diluluskan kepada fungsi yang ditentukan oleh pengguna, dan selepas pelaksanaan fungsi selesai, kawalan dikembalikan ke tempat panggilan (lihat anak panah oren nipis dalam Rajah 31 sebelumnya). Panggilan fungsi didefinisikan pengguna boleh terkandung bukan sahaja dalam perihalan fungsi khas, tetapi juga dalam perihalan fungsi pengguna yang lain. Satu fungsi yang ditentukan pengguna boleh memanggil fungsi yang ditentukan pengguna lain. Ini digunakan secara meluas dalam pengaturcaraan.Fungsi yang ditentukan pengguna tidak dipanggil untuk pelaksanaan oleh terminal klien. Mana-mana fungsi yang ditetapkan pengguna dilaksanakan dalam pelaksanaan fungsi khas yang mengembalikan kawalan ke terminal pelanggan. Fungsi-fungsi yang ditentukan pengguna juga boleh meminta untuk menggunakan nilai-nilai pemboleh ubah persekitaran maklumat terminal klien (lihat anak panah biru nipis dalam Rajah 31 sebelumnya).Jika suatu program mengandungi perihalan fungsi yang ditentukan pengguna, tetapi tidak ada panggilan fungsi ini, fungsi yang ditentukan pengguna ini akan dikecualikan daripada program siap pada peringkat kompilasi dan tidak akan digunakan dalam operasi program.

One thought on “Struktur Program

  1. Thank you so much for giving everyone an extraordinarily marvellous opportunity to check tips from this blog. It can be so excellent and as well , stuffed with a great time for me and my office friends to visit your web site no less than thrice weekly to see the latest tips you have got. And lastly, we are usually impressed for the extraordinary points served by you. Selected 4 ideas on this page are in fact the most efficient I have ever had.

Leave a Reply

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