Minggu, 08 Maret 2015

Konstanta dan variabel

Kedua istilah, konstan dan variabel, dianggap dalam satu bagian karena istilah ini sangat dekat dalam diri mereka.Gagasan konstan
Bagian dari program, konstanta adalah obyek yang memiliki nilai.
Sebuah konstan dalam program ini mirip dengan sebuah konstanta yang digunakan dalam persamaan matematika. Ini adalah nilai yang berubah-ubah. Untuk menggambarkan sifat konstan digunakan dalam bahasa algoritmik secara lebih rinci, mari kita simak konstanta fisik dan matematika terkenal.
Umat ​​manusia telah ditemukan, konstanta universal yang alami, nilai-nilai yang tidak tergantung pada kami dengan cara apapun. Misalnya, dalam fisika, percepatan jatuh bebas selalu sama dengan 9,8 m / s / s; dalam matematika, Pi = 3.14. Konstanta semacam itu berbeda dengan konstanta dalam bahasa algoritmik.
Konstan juga merupakan istilah yang digunakan dalam persamaan matematika. Misalnya, dalam persamaan Y = 3 * X + 7, nomor 3 dan 7 adalah konstanta. Nilai-nilai konstanta tersebut sepenuhnya tergantung pada kehendak orang yang telah membuat persamaan. Ini adalah analogi terdekat dari konstanta yang digunakan dalam program MQL4.
Sebuah konstan (sebagai nilai) ditempatkan oleh programmer dalam kode pada tahap penciptaannya. Konstanta ditandai hanya dengan nilainya, sehingga hal 'konstan' dan 'nilai konstan' adalah sinonim penuh.Konstanta teladan:
37, 3.14, benar, "Kazan"


Fig. 4. A Constant in the Memory of a PC. 

Sifat konstanta

Sifat konstan adalah kekuatan untuk mempertahankan (selama masa operasi Program) nilai yang ditetapkan oleh programmer dan menetapkan nilai ini ke program ketika program memintanya (Gambar 5). Untuk setiap konstan dalam program ini, komputer mengalokasikan bagian dari memori dengan ukuran yang diperlukan. Baik programmer maupun komputer dapat mengubah nilai konstan selama pelaksanaan program (Gambar 6).


icon_informationNilai konstanta tetap sama.

5 Gambar 5 Keadaan sel memori konstan saat menetapkan nilai ke program.

icon_stopNilai konstanta tidak dapat diubah selama operasi program.
6   Gambar 6 Tidak mungkin untuk mengubah nilai konstan selama pengoperasian program.
 Gagasan variabel
Variabel adalah bagian program yang memiliki nilai dan nama.
Istilah variabel di MQL4 ini mirip dengan yang diterima dalam matematika. Perbedaan antara mereka hanya terdiri dalam bahwa nilai variabel dalam matematika selalu tersirat, sedangkan nilai variabel dalam program mengeksekusi disimpan dalam sel memori khusus di komputer.
Variabel tersebut dimasukkan ke dalam teks kode oleh pemiliknya pada tahap coding sebagai nama variabel. Nama (atau, identifier) ​​dari variabel dapat terdiri dari huruf, angka, atau garis bawah. Namun, harus dimulai dengan huruf. MQL4 adalah case-sensitive, yaitu "S" dan "s" tidak sama.
Berikut adalah beberapa contoh nama variabel: Alpha, ALFA, beta, nomor, Num, A_37, A37, qwerty_123.
Pengidentifikasi variabel berikut mewakili nama-nama variabel yang berbeda: a_22 dan А_22; Massa dan Massa.
Berikut adalah beberapa contoh nilai variabel: 37, 3.14, benar, "Kazan".Sifat-sifat variabel
Properti variabel adalah kemampuan untuk mendapatkan nilai tertentu dari program ini, mempertahankan itu selama periode pelaksanaan program dan menetapkan nilai ini ke program ketika diminta oleh program. Untuk setiap variabel dalam program ini, komputer mengalokasikan bagian dari memori, bagian dengan ukuran yang diperlukan. Mari kita lihat Gambar 7 untuk mempelajari pembangunan variabel.


Fig. 7. A Variable in the Memory of a Computer. 
Gambar 7 Variabel dalam memori komputer.

Ada nilai variabel dalam sel memori komputer. Nilai ini dapat diminta untuk diproses dan diubah oleh program. Nama variabel tidak pernah berubah. Saat menulis kode, programmer dapat mengatur nama untuk variabel. Namun, segera setelah program siap diluncurkan, tidak programmer atau komputer, atau program, memiliki cara untuk mengubah nama variabel.

Jika, dalam proses eksekusi, program memenuhi nama variabel, program ini mengacu pada variabel ini untuk mendapatkan nilai untuk pengolahan. Ketika program mengacu variabel, variabel set salinan nilainya ke program. Pada saat itu, nilai variabel tetap sama, sedangkan program mendapatkan salinan dari nilai yang terkandung dalam sel memori yang dialokasikan untuk variabel ini (Gambar 8).
 


icon_informationKetika nilai variabel diatur ke program, nilai ini tetap tidak berubah. Juga, nama variabel tidak akan pernah berubah.

8 
Gambar 8 Keadaan sel memori dari variabel saat menetapkan nilai ke program.

Setelah program pelaksana telah disebut variabel, variabel tersebut tidak berhubungan dengan program untuk jangka waktu tertentu sampai program mengacu lagi. Selama periode ini, program bisa merujuk ke variabel lain atau membuat perhitungan yang diperlukan. Antara referensi program untuk variabel, variabel mempertahankan nilainya; yaitu, itu membuat tidak berubah.

Menurut algoritma program, dapat menjadi perlu untuk mengubah nilai variabel. Dalam hal ini, program set untuk variabel nilai baru. Variabel mendapat nilai ini dari program ini. Semua modifikasi yang diperlukan yang dibuat dalam sel memori itu sendiri. Hasilnya adalah bahwa nilai sebelumnya dari variabel dihapus, sedangkan nilai baru dari variabel yang ditetapkan oleh program berlangsung, seperti yang ditunjukkan pada Gambar 9.


icon_informationNilai dari variabel dapat diubah oleh program. Tapi, nama variabel selalu berubah.  

Konstanta teladan dan variabel dalam sebuah program
Dalam sebuah program, konstanta dan variabel dapat ditemukan di operator. Dalam kode di bawah, A dan B adalah variabel, dan 7 dan 3 adalah konstanta.
A = 7; // Baris 1B = A + 3; // Baris 2
Mari kita mempelajari bagaimana program bekerja dengan konstanta dan variabel. Pelaksana garis-garis ini, program ini akan membuat langkah-langkah berikut:
Line 1:
1.Constant 7 set nilainya ke program.
2.Variable A mendapat nilai 7 dari program ini.
Baris 2:
Program 1. telah menemukan ekspresi di sebelah kanan tanda kesetaraan, dan program ini mencoba untuk menghitung itu.
2.Constant 3 set nilainya ke program.
Program 3. mengacu pada variabel A dengan nama.
4.Variable A set nilainya (7) untuk program ini.
Program 5. membuat perhitungan (7 + 3).
6.Variable В mendapat nilai 10 dari program ini.
Nilai dari variabel dapat diubah selama operasi program. Sebagai contoh, bisa ada garis dalam program yang berisi kode berikut.
В = 33; // Baris 3
Dalam hal ini, berikut ini akan dilakukan pada pelaksanaan program:
1.Constant 33 set nilainya ke program.
2.Variable B mendapat (baru) nilai 33 dari program ini.
Sangat mudah untuk melihat bahwa variabel B mendapat nilai 10 pada tahap tertentu dari pelaksanaan program, dan kemudian mendapat nilai 33. Nama variabel B tetap tidak berubah selama semua peristiwa ini, sedangkan nilai variabel akan berubah.
Berikut Gambar 10 menunjukkan konstanta dan variabel dalam kode program.


Fig. 10. A Constant and a Variable in a Program. 
  Gambar 10 A konstan dan variabel dalam sebuah program.

Beberapa konsep dasar

Topik yang menarik kami adalah program yang ditulis dalam MQL4. Sebelum kita memulai presentasi rinci aturan menulis program, perlu untuk menjelaskan konsep-konsep dasar yang menjadi ciri program dan saling keterkaitan dengan lingkungan informasi. MetaTrader 4 Client Terminal bekerja dengan koneksi online. Situasi di pasar keuangan perubahan terus-menerus, yang mempengaruhi grafik simbol dalam terminal klien. Kutu menyediakan terminal klien dengan informasi tentang perubahan harga di pasar.Gagasan tanda centangSebuah centang merupakan acara yang ditandai dengan harga baru simbol di beberapa instan.Kutu dikirim ke setiap terminal klien dengan server yang dipasang di pusat dealing. Sesuai dengan situasi pasar saat ini, kutu dapat menerima lebih atau kurang sering, tetapi masing-masing dari mereka membawa kutipan baru ?? biaya satu mata uang dinyatakan dalam mata uang lain.Sebuah aplikasi yang beroperasi di dalam terminal klien dapat bekerja selama jangka waktu yang panjang, misalnya, beberapa hari atau minggu. Setiap aplikasi dijalankan sesuai dengan aturan yang ditetapkan untuk program jenis tertentu. Sebagai contoh, sebuah Expert Advisor (EA) tidak bekerja terus menerus sepanjang waktu. EA biasanya diluncurkan pada saat ketika kutu baru datang. Untuk alasan ini, kita tidak mencirikan centang hanya sebagai kutipan baru, tetapi sebagai ajang untuk diproses oleh terminal klien.Durasi operasi EA tergantung pada program apa kode termasuk dalam EA. EA biasa menyelesaikan satu siklus pemrosesan informasi selama beberapa persepuluh atau seratus detik. Dalam waktu ini, EA dapat telah memproses beberapa parameter, membuat keputusan perdagangan, asalkan pedagang dengan beberapa informasi yang berguna dan sebagainya. Setelah selesai ini bagian dari pekerjaannya, EA pergi ke modus menunggu sampai kutu baru datang. Tick ​​baru ini meluncurkan EA lagi, program ini membuat operasi yang sesuai yang lagi dan kembali ke mode tunggu. Penjelasan rinci tentang bagaimana penampilan operasi Program pengaruh centang baru berikut berikutnya.Gagasan kontrolKontrol adalah istilah yang digunakan untuk berbicara tentang aliran eksekusi kode dalam program, serta aliran antara program dan terminal klien.Kontrol adalah proses melakukan tindakan diatur oleh algoritma program dan fitur terminal klien. Kontrol dapat ditransfer dalam program dari satu baris kode satu sama lain, serta dari program ke terminal klien.Pengendalian ditransfer dalam cara yang mirip dengan salah satu pembicara memberikan lantai ke pembicara lain pada pertemuan. Seperti speaker pada pertemuan, terminal klien dan transfer kontrol program untuk satu sama lain. Pada saat itu, terminal klien mendominasi. Statusnya lebih tinggi dari status program, seperti kewenangan ketua adalah lebih tinggi dari pembicara biasa.Sebelum program ini diluncurkan, kontrol berada di bawah pengawasan terminal klien. Setelah program ini diluncurkan dan centang baru diterima, terminal klien mentransfer kontrol ke program. Kode program mulai dijalankan pada saat ini.Terminal klien, setelah itu telah dipindahkan kontrol untuk program ini, tidak berhenti operasinya. Ini terus bekerja dengan kinerja maksimal selama seluruh periode waktu yang diluncurkan pada PC. Program ini hanya bisa mulai beroperasi pada saat ketika terminal klien telah mentransfer kontrol untuk itu (seperti ketua pertemuan mengontrol pertemuan sepanjang waktu itu sedang terjadi, sedangkan speaker saat mengambil lantai hanya untuk jangka waktu terbatas ).Setelah selesai operasi, program kembali kontrol ke terminal klien dan tidak dapat memulai sendiri sendiri. Namun, sementara program memiliki kontrol, program menentukan kapan harus kembali kontrol ke terminal klien. Dengan kata lain, terminal klien tidak bisa mendapatkan kembali kontrol dari program dengan sendirinya. Tindakan dinamis pengguna (misalnya, penghentian paksa program) adalah pengecualian.Ketika membahas masalah kinerja dan struktur internal program, kami sangat tertarik dalam bagian dari kontrol yang ditransfer dalam sebuah program. Mari kita simak gambar berikut, Gambar 2. Hal ini menunjukkan sifat umum transfer kontrol ke, dari, dan dalam program. Lingkaran ditunjukkan pada gambar ciri beberapa kecil, fragmen logis menyelesaikan program, sedangkan panah antara lingkaran menunjukkan bagaimana kontrol ditransfer dari satu fragmen yang lain.

Fig. 2. Transferring Control in a Program 
Gambar 2 Mentransfer kontrol dalam sebuah program.Sebuah program mengeksekusi, yang merupakan salah satu yang telah menerima kontrol dari terminal klien, mulai mengambil tindakan sesuai dengan algoritma yang terkandung di dalamnya. Program ini berisi baris kode, yang menentukan urutan eksekusi program. Urutan umum pelaksanaan program terdiri dalam transfer berurutan kontrol dari satu baris ke yang lain ke arah atas ke bawah. Pada bagian berikut, kita akan mempertimbangkan apa yang dapat ditulis dalam baris program kode, dan menurut apa aturan itu dapat ditulis.Di sini, hanya penting untuk menekankan bahwa setiap fragmen logis selesai dijalankan ?? misalnya, beberapa perhitungan matematika yang dibuat, pesan ditampilkan pada layar, urutan perdagangan dibentuk dan sebagainya. Sampai fragmen saat program ini dijalankan, mempertahankan kontrol. Setelah itu telah selesai sepenuhnya, kontrol ditransfer ke fragmen lain. Dengan demikian, kontrol dalam program ditransfer dari satu fragmen logis selesai lain seperti yang dijalankan. Begitu fragmen terakhir dijalankan, program ini akan mengembalikan kontrol ke terminal klien.Gagasan komentarProgram terdiri dari dua jenis catatan: kode yang membentuk program itu sendiri, dan teks-teks penjelasan untuk kode program.Sebuah komentar adalah bagian opsional dan non-executable program yang menjelaskan kode.Jadi, komentar merupakan bagian opsional dari program. Ini berarti bahwa program siap akan bekerja sesuai dengan kode terlepas dari apakah ada komentar di dalamnya atau tidak. Namun, komentar memudahkan pemahaman dari kode program yang sangat banyak. Ada satu baris dan multi-line komentar. Sebuah komentar satu baris adalah setiap urutan karakter berikut garis miring ganda (//) pada baris yang sama. Tanda komentar satu baris diakhiri dengan pindah baris. Sebuah komentar multisaluran dimulai dengan karakter / * dan diakhiri dengan * / (lihat Gambar 3).

icon_informationKomentar digunakan untuk menjelaskan kode program. Sebuah program yang baik selalu mengandung komentar.

Fig. 3. Exemplary Comments in a Program.Gambar 3 Contoh komentar dalam sebuah program

Komentar yang banyak digunakan dalam pengkodean. Mereka biasanya ditampilkan dalam warna abu-abu. Kami akan menggunakan komentar, juga untuk menjelaskan kode kita dan membuat mereka lebih dimengerti.
 
 

Dasar-dasar dari MQL4

Bagian ini merupakan istilah dasar yang mendasari MQL4:
• Beberapa konsep dasarIstilah dasar dijelaskan, seperti kutu (perubahan harga), kontrol dalam algoritma, dan komentar dalam program. Acara utama ketika perdagangan di pasar keuangan adalah perubahan harga. Inilah sebabnya mengapa centang merupakan peristiwa penting yang membuat mekanisme dasar program MQL4 dijalankan. Apa yang terjadi ketika kutu baru datang? Tindakan apa yang harus terminal ambil? Ini adalah kontrol yang bergerak ke garis depan di sini. Tapi, jangan lupa untuk berkomentar pada kode Anda.
• Konstanta dan variabelIstilah konstan dan variabel diperkenalkan, dan perbedaan antara istilah-istilah ini dijelaskan. Sebagai istilah menunjukkan, konstanta adalah sesuatu yang tetap sama, set sekali untuk semua. Berbeda dengan konstanta, variabel adalah kode objek program yang dapat mengubah isinya. Tidak mungkin untuk menulis sebuah program tanpa menggunakan benda-benda yang tidak bisa diubah (konstanta) dan / atau benda-benda yang dapat diubah selama eksekusi program (variabel).
• Tipe dataBeberapa jenis data yang digunakan dalam bahasa pemrograman. Tipe data dari variabel yang dipilih sesuai dengan tujuannya. Bagaimana kita bisa mendeklarasikan variabel? Bagaimana kita bisa menginisialisasi (preset nilai awalnya)? Sebuah pilihan yang salah dari jenis untuk variabel dapat memperlambat program atau bahkan mengakibatkan tindakan yang salah.
• Operasi dan ekspresiOperasi beroperasi pada operan. Apa jenis operasi yang ada? Apa yang typecasting digunakan untuk? Apa fitur khusus operasi pada bilangan bulat? Mengapa penting untuk diingat tentang precedences data dari berbagai jenis? Tanpa mengetahui tentang fitur beberapa operasi, Anda dapat membuat kesalahan halus.
• OperatorAda operator yang sederhana dan operator majemuk. Sebuah tindakan yang diperlukan tidak harus selalu dijalankan oleh operator yang sederhana. Jika diperlukan bahwa sekelompok operator dijalankan sebagai satu operator besar, kelompok ini harus dimasukkan ke dalam satu operator majemuk. Persyaratan dan contoh-contoh spesifik menggunakan operator diberikan.
• FungsiPerlunya mendapatkan kode sederhana membawa kita ke fungsi jangka. Untuk menggunakan fungsi dari lokasi yang berbeda dalam program, maka perlu untuk menyediakan dengan parameter fungsi. Kami akan mempertimbangkan proses untuk membuat fungsi kustom. Contoh menggunakan fungsi standar yang diberikan.
• jenis ProgramScript, indikator, dan Expert Advisor adalah jenis program MQL4 yang memungkinkan Anda untuk menutupi hampir seluruh kelas masalah mengenai perdagangan di pasar keuangan. Hal ini diperlukan untuk memahami tujuan dari setiap jenis program untuk menggunakan MetaTrader 4 Client Terminal dengan cara yang terbaik.

Pengantar pemrograman MQL4

Sebelum mulai belajar pemrograman MQL4, kita akan menentukan ruang lingkup penelitian kami. Pertama-tama, perlu dicatat bahwa program yang dibahas dalam buku ini dapat digunakan sebagai aplikasi untuk bekerja di MetaTrader 4 Client Terminal. Ilustrasi berikut menunjukkan peran program ini dalam manajemen perdagangan. Untuk pemahaman yang lebih baik tentang pentingnya program ini dalam manajemen perdagangan, mari kita lihat ilustrasi.
Fig. 1. A program in MQL4 as a part of MetaTrader 4 Client Terminal. 
Gambar 1 Sebuah program di MQL4 sebagai bagian dari MetaTrader 4 Client Terminal.
Jika Anda tertarik dalam pemrograman MQL4, Anda harus berkenalan dengan terminal klien sekarang. Terminal klien adalah bagian dari sistem perdagangan online. Sistem online trading juga termasuk server dipasang di pusat dealing. Pusat dealing terhubung dengan pelaku pasar lainnya, seperti bank dan lembaga keuangan.
Terminal klien termasuk lingkungan informasi, satu set parameter dengan informasi tentang keadaan pasar dan sekitar hubungan antara pedagang dan berurusan pusat. Parameter ini meliputi informasi tentang harga saat ini, keterbatasan pada ukuran pesanan maksimum dan minimum, jarak minimum stop order, tunjangan dan larangan perdagangan otomatis, dan banyak parameter lain yang berguna mencirikan keadaan saat ini. Lingkungan informasi diperbarui ketika kutu baru diterima oleh terminal (jalur hijau pada Gambar 1 sebelumnya).Built-in tools
Terminal klien mengandung built-in alat yang memungkinkan Anda untuk melakukan analisis teknis pasar dan melaksanakan manajemen perdagangan manual. Untuk analisis pasar, Anda dapat menggunakan indikator teknis dan berbagai penelitian baris ?? garis support / resistance, saluran tren, tingkat Fibonacci dan sebagainya.
Untuk manajemen perdagangan manual, manajemen agar toolbar digunakan. Menggunakan toolbar ini, trader dapat membuka, menutup, dan memodifikasi perintah. Selain itu, terminal memiliki pilihan untuk manajemen otomatis dari posisi stop order. Tindakan Seorang pedagang dengan alat manajemen perdagangan built-in menghasilkan pembentukan pesanan perdagangan, yang dikirim ke server.
Untuk informasi lebih lanjut tentang terminal klien silahkan lihat "Userguide" (ClientTerminal_folder \ Terminal.chm).Tool pemrograman
Analisis pasar dan manajemen perdagangan MetaTrader 4 Client Terminal diimplementasikan dengan bantuan alat pemrograman. Bahasa MQL4 memungkinkan menciptakan program-program tersebut. Ada tiga jenis aplikasi yang dibuat di MQL4 dan ditujukan untuk bekerja di terminal klien:
• Indikator kustom adalah program yang menampilkan grafis keteraturan pasar menurut algoritma seorang penulis ditulis ke dalam program.
• Sebuah Expert Advisor adalah sebuah program yang memungkinkan otomatisasi parsial operasi perdagangan, atau memungkinkan sepenuhnya otomatis perdagangan.
• Script adalah program untuk melaksanakan tindakan satu kali, termasuk pelaksanaan operasi perdagangan.
Gambar 1 menunjukkan bahwa aplikasi memiliki sarana yang sama akses ke terminal klien lingkungan informasi sebagai built-in tools untuk trading manual (panah biru). Hal ini juga dapat membentuk pengaruh pengelolaan (panah merah), diteruskan ke terminal klien. Program dari berbagai jenis dapat digunakan secara bersamaan dan dapat bertukar data. Menggunakan aplikasi ini, programmer dapat mengotomatisasi sebagian besar dari operasi perdagangan, atau menciptakan robot yang akan diperdagangkan tanpa campur tangan trader.
Aplikasi dan alat manajemen pengguna dapat digunakan dalam terminal klien secara bersamaan, saling melengkapi.


icon_informationKarakteristik teknis dasar perdagangan menggunakan sistem online trading MetaTrader adalah bahwa semua tindakan pengelolaan diproduksi di terminal klien dan kemudian dikirim ke server. Program aplikasi (Expert Advisor, skrip, dan indikator) dapat bekerja hanya sebagai bagian dari terminal klien, asalkan terhubung ke server (dealing center). Tak satu pun dari program aplikasi yang diinstal pada server.

Server hanya akan memproses sinyal yang datang dari terminal klien. Jika terminal klien terputus dari Internet, atau jika program aplikasi (Expert Advisor atau script) berjalan di dalamnya tidak menghasilkan apapun mengelola tindakan, tidak akan terjadi pada server.

Ruang lingkup penelitian kami mencakup program (Expert Advisors, skrip, dan indikator kustom) yang melakukan perdagangan sebagian atau sepenuhnya otomatis dan secara signifikan memperluas pemeliharaan informasi perdagangan (lihat Gambar 1). Dalam buku ini, Anda akan menemukan deskripsi komponen program, dan Anda akan menemukan aturan utama menciptakan dan menggunakan program. Kami juga akan mempertimbangkan secara rinci contoh program dan contoh parameter lingkungan informasi dari terminal klien, yang tersedia untuk program selama pelaksanaannya.


icon_informationProgram untuk trading otomatis memiliki kegunaan yang jauh lebih potensial dari alat manual manajemen perdagangan.

Dalam kebanyakan kasus, program membuat pekerjaan trader lebih mudah, menghilangkan perlunya pelacakan konstan situasi pasar, duduk di depan komputer untuk jangka waktu yang panjang. Hal ini juga dapat membantu untuk meredakan ketegangan saraf dan menurunkan jumlah kesalahan yang muncul dalam periode ketegangan emosional yang ekstrim. Tapi, hal utama adalah bahwa dengan menggunakan metode program manajemen perdagangan memungkinkan para pedagang untuk mengembangkan ide-ide mereka sendiri dan menguji mereka pada data historis, untuk memilih parameter yang optimal untuk menerapkan ide-ide ini, dan akhirnya, untuk menerapkan strategi perdagangan pemikiran-out.    

Kata Pengantar

Sergey Kovalyov
"Saya sangat berhutang budi kepada Mr. Renat Fatkhullin, CEO MetaQuotes Software Corp., untuk kepercayaan dirinya, dukungan profesional dan setiap bantuan yang mungkin. Saya juga berterima kasih kepada karyawan perusahaan, Stanislav Starikov dan Rashid Umarov, untuk saran mereka berharga dan membantu dalam penulisan buku ini. "
Sergey Kovalyov
http://autograf.dp.ua
Ini adalah semacam kesulitan untuk mulai menulis sebuah buku tentang pemrograman untuk pemula, karena daerah pengetahuan dalam pertimbangan melibatkan beberapa konsep baru yang tidak didasarkan pada apa yang sebelumnya dikenal atau biasa.
Secara umum, masalah semacam ini dapat terjadi di setiap bidang pengetahuan lainnya. Sebagai contoh, titik dikenal dalam matematika sebagai lingkaran yang sangat kecil, sedangkan lingkaran itu sendiri didefinisikan sebagai satu set poin memerintahkan dengan cara tertentu. Seperti mudah untuk melihat, istilah ini didefinisikan melalui satu sama lain. Pada saat yang sama, ini "ketidaksengajaan" tidak menjadi batu sandungan bagi matematika. Kedua lingkaran dan titik berjalan dengan baik bersama-sama, serta dengan istilah lain yang diterapkan dalam matematika. Selain itu, semua orang mengerti dengan wawasan titik itu dan apa lingkaran adalah.
Sangat mudah untuk mengetahui bahwa sebagian besar istilah biasa memiliki batas-batas tak tentu. Beberapa batas-batas itu begitu kabur sehingga mereka meragukan beberapa pada keberadaan objek atau fenomena yang sangat ditentukan oleh istilah. Namun, sifat manusia adalah bahwa ini aneh (dalam hal yang normal logika) situasi tidak datang antara seorang pria dan keberadaannya dan kegiatan bermanfaat. Setelah istilah telah digunakan untuk sejumlah waktu tertentu, dibutuhkan pada akal lengkap bagi kita. Sulit untuk menjawab pertanyaan tentang bagaimana dan mengapa hal itu terjadi dengan cara ini. Tapi, itu tidak. Kita hanya tahu bahwa beberapa referensi untuk istilah memainkan peran penting dalam proses yang luar biasa dari segi pembelajaran.
Tugas-tugas berikut yang ditetapkan dalam pekerjaan sekarang ini:
• Unfolding arti istilah baru menggunakan analogi terkenal.
• Membuat arti setiap istilah intuitif jelas ketika terjadi untuk pertama kalinya.
• Memberikan pembaca informasi yang cukup untuk mengkarakterisasi program dan pemrograman.
Untuk tujuan ini, buku ini berisi banyak contoh dan angka. Teks mencakup referensi silang yang memungkinkan pembaca untuk mendapatkan informasi tentang topik yang terhubung.
Berikut adalah beberapa kata tentang penyajian materi. Beberapa buku tentang pemrograman mengundang pembaca mereka pada halaman pertama untuk mencetak "Hello, world!" menggunakan program yang sederhana. Penulis mereka berpikir bahwa segera setelah pembaca mereka mulai belajar pemrograman, mereka harus merujuk program teks dan secara bertahap terbiasa dengan bagaimana program mungkin terlihat, yang kemudian akan memfasilitasi belajar mereka. Namun, hasilnya adalah bahwa pembaca harus berurusan dengan beberapa istilah yang tidak diketahui pada saat yang sama dan memiliki hanya menebak isi dan sifat dari beberapa baris dalam program ini. Hal ini dapat mengakibatkan kesalahpahaman dan lowongan dalam pengetahuan pembaca.
Seperti yang saya lihat, itu akan lebih efektif untuk menggunakan metode di mana pembaca pergi ke bagian berikutnya dalam buku hanya setelah ia telah memiliki pemahaman yang menyeluruh dari bahan sebelumnya. Dalam rangka metode ini, program pertama akan ditawarkan kepada pembaca setelah ia telah menguasai semua persyaratan yang diperlukan dan memperoleh beberapa wawasan ke dalam prinsip-prinsip dasar coding. Ini adalah metode buku ini didasarkan pada.
Untuk menguasai pengetahuan yang diberikan dalam buku ini, pembaca harus menjadi pengguna PC dan memiliki pengalaman dalam bekerja dengan MetaTrader 4 diproduksi oleh MetaQuotes Software Corp.

Kursus pengantar

Saat ini, komputer pribadi menjadi sangat diperlukan bagi semua orang. Pesatnya perkembangan internet dan kinerja komputer modern membuka pandangan baru dalam berbagai bidang kegiatan manusia. Pada awal sepuluh tahun yang lalu, perdagangan pasar keuangan yang tersedia hanya untuk bank dan untuk komunitas terbatas spesialis. Hari ini, siapa pun dapat bergabung dengan dunia pedagang profesional dan memulai trading independen setiap saat.
Ratusan ribu pedagang di seluruh dunia telah menjatuhkan hukuman MetaTrader 4 Client Terminal pada manfaatnya. Penggunaan bahasa pemrograman yang tertanam, MQL4, mengangkat pedagang ke tingkat yang baru perdagangan - untuk trading otomatis. Sekarang, seorang trader dapat menerapkan ide-ide nya sebagai program aplikasi - menulis indikator kustom, script untuk melakukan operasi tunggal, atau membuat Expert Advisor - sistem perdagangan otomatis (robot trading). Expert Advisor (EA) dapat bekerja secara 24/7 tanpa intervensi apapun - melacak harga keamanan, mengirim pesan elektronik, SMS ke ponsel Anda, serta melakukan banyak hal berguna lainnya.
Keuntungan utama dari aplikasi ini adalah kemungkinan untuk melakukan trading sesuai dengan algoritma yang ditetapkan oleh pedagang. Setiap ide yang dapat dijelaskan dalam bahasa algoritmik (persimpangan dua moving average atau pengolahan digital sinyal, tiga layar Penatua atau analisis fraktal Peters ', jaringan saraf atau konstruksi geometris) dapat dikodekan dalam sebuah aplikasi dan kemudian digunakan dalam praktek perdagangan.
Pengembangan aplikasi untuk MetaTrader 4 Client Terminal membutuhkan pengetahuan tentang MQL4. Buku ini akan membantu Anda membuat sendiri Expert Advisors, skrip dan indikator dan menjelma di dalamnya ide-ide Anda - algoritma Anda perdagangan yang menguntungkan. Buku ini ditujukan untuk sejumlah besar pembaca tanpa pengalaman dalam pemrograman yang ingin belajar bagaimana mengembangkan aplikasi trading otomatis untuk MetaTrader 4 Client Terminal. Buku ini dirancang dengan metode sehingga untuk membuat belajar MQL4 nyaman dan konsekuen mungkin.

Sabtu, 07 Maret 2015

Pemograman

Jenis Program
Ketika mulai menulis sebuah program di MQL4, Anda harus,
pertama-tama, menjawab pertanyaan tentang apa jenis
Program itu akan. Isi dan fungsi
Program sepenuhnya bergantung pada ini. Di dalam MQL4, ada
tiga jenis program aplikasi: EA, script, dan
Indikator kustom. Setiap program Anda mengembangkan akan
termasuk salah satu jenis. Mereka semua memiliki mereka
tujuan dan fitur khusus. Mari kita pertimbangkan ini
jenis secara rinci.
Expert Advisor (EA) adalah sebuah program dikodekan dalam MQL4
dan disebut oleh terminal klien yang akan dijalankan di
setiap tick. Tujuan utama dari EA adalah
diprogram kontrol atas perdagangan. EA dikodekan oleh
pengguna. Tidak ada built-in EA di klien
terminal.
Skrip Sebuah program dikodekan dalam MQL4 dan dieksekusi oleh
klien terminal hanya sekali. Script dimaksudkan untuk
melakukan operasi yang harus dijalankan hanya
sekali. Script dikodekan oleh pengguna. Mereka tidak
disampaikan dengan klien terminal built-in
program.
Indikator kustom adalah program dikodekan dalam MQL4 dan
disebut oleh terminal klien yang akan dijalankan pada setiap
centang. Hal ini pada dasarnya ditujukan untuk menampilkan grafis
dari preliminarily dihitung data, seperti garis.
Indikator tidak bisa berdagang. Ada dua jenis
Indikator: teknis (built-in) indikator dan adat
indikator. Indikator dianggap secara rinci dalam
Penggunaan indikator teknis dan Penciptaan kustom
indikator.
Anda memilih jenis program untuk menulis
tergantung pada tujuan dari program tertentu dan
pada sifat dan keterbatasan dari berbagai jenis
program.
Sifat program
Peluncuran program untuk eksekusi
Ada kriteria yang membedakan EA dan adat
Indikator dari script. Ini adalah durasi menjalankan mereka. Di
Beberapa konsep dasar, kita disebutkan sudah bahwa
Program yang diluncurkan sesering ada tanda centang.
Pernyataan ini berlaku untuk EA dan indikator kustom,
tapi itu adalah palsu untuk script.
EA dan indikator kustom. Setelah Anda telah terpasang
Program (EA atau indikator kustom) ke simbol
window, program ini membuat beberapa persiapan dan
beralih ke modus tick-tunggu. Segera setelah baru
tik datang, program ini akan diluncurkan oleh
client terminal untuk eksekusi, maka itu membuat semua
operasi yang diperlukan ditentukan oleh algoritma.
Setelah selesai, program ini melewati kontrol untuk
terminal klien, yang beralih ke tick- yang
Modus menunggu.
Jika kutu baru datang ketika program ini sedang
dieksekusi, ini tidak memiliki efek pada program
eksekusi ?? program terus dieksekusi
menurut algoritma, dan program melewati
kontrol ke terminal klien hanya pada
selesai. Inilah sebabnya mengapa tidak semua kutu menghasilkan
meluncurkan EA atau indikator kustom. Hanya mereka
kutu yang datang di saat kontrol di klien
terminal dan ketika program ini di-tunggu tick
Modus memanggil EA atau indikator kustom.
Centang baru meluncurkan program untuk eksekusi.
Dengan demikian, EA atau indikator kustom dapat beroperasi dalam
jangka waktu yang panjang, yang melekat pada simbol
jendela dan mulai berjalan dari waktu ke waktu (sebagai
sesering kutu baru datang sementara program ini di
Modus tik-tunggu).
Selain itu, EA berbeda dari indikator oleh
perintah eksekusi pada peluncuran pertama dari program ini.
Perbedaan ini ditentukan oleh spesifik
sifat fungsi khusus dalam program dari
jenis tertentu (lihat fungsi khusus). Setelah melekat
jendela simbol, EA membuat diperlukan
persiapan yang terkandung dalam init () fungsi. Kemudian,
beralih ke modus tik-tunggu, memanggil start ()
berfungsi hanya pada tick masuk pertama. Tidak Seperti
EA, indikator kustom baik menjalankan init () function
dan panggilan fungsi start () satu kali untuk membuat yang pertama
perhitungan nilai indikator. Kemudian, pada baru
centang, program ini diluncurkan dengan menelepon hanya mulai ()
Fungsi. Artinya, operator dijalankan sesuai dengan
algoritma start () fungsi.
Script. Tidak seperti EA atau indikator, script akan
diluncurkan untuk eksekusi segera setelah telah
melekat pada jendela simbol, tanpa menunggu
tick baru. Seluruh kode script akan
dieksekusi sekali. Setelah semua baris program telah
dieksekusi, script selesai operasi dan
diturunkan dari jendela simbol. Sebuah skrip membantu
jika Anda ingin membuat operasi satu kali, seperti untuk
perintah membuka atau menutup, untuk menampilkan teks pada layar,
untuk menginstal objek grafis dan sebagainya.
Perbedaan dalam pelaksanaan EA, script, dan
Indikator kustom ditentukan oleh sifat-sifat
fungsi khusus mereka yang akan dipertimbangkan dalam
rinci dalam fungsi khusus.
Perdagangan
Salah satu kriteria utama yang menandai atas
program adalah kemungkinan untuk membuat perdagangan
instruksi. Sebuah instruksi trading adalah kontrol bahwa
Program lolos ke server perdagangan untuk membuka,
untuk menutup atau memodifikasi perintah. Instruksi perdagangan yang
dibentuk dalam program menggunakan fungsi built-in yang
kita sebut "fungsi perdagangan."
Hanya EA dan skrip dapat menggunakan fungsi perdagangan (hanya
jika opsi yang sesuai diaktifkan di EA /
Pengaturan script). Dilarang menggunakan perdagangan
fungsi dalam indikator kustom.
Penggunaan simultan
Program juga berbeda satu sama lain oleh
jumlah program dari berbagai jenis secara bersamaan
melekat pada jendela simbol.
EA. Anda dapat melampirkan satu EA dalam satu simbol
jendela; penggunaan simultan dari beberapa EA dalam satu
Jendela dilarang.
Script. Anda dapat melampirkan satu naskah dalam satu simbol
jendela; penggunaan simultan dari beberapa skrip di
satu jendela dilarang.
Indikator kustom. Anda dapat melampirkan beberapa indikator di
satu simbol jendela secara bersamaan; mereka tidak akan
mengganggu satu sama lain.
Program dari semua jenis dapat diluncurkan bersamaan
dalam satu simbol jendela disediakan sesuai dengan
keterbatasan masing-masing jenis. Misalnya, Anda dapat
meluncurkan satu EA, satu script, dan beberapa indikator di
satu jendela simbol pada waktu yang sama. Namun, Anda
mungkin tidak meluncurkan beberapa EA atau script dalam satu simbol
window, program jenis lain apa pun yang
diluncurkan bersamaan.
Pada saat yang sama, Anda mungkin secara bersamaan meluncurkan
program dari jenis yang sama di windows berbeda
satu simbol. Sebagai contoh, jika Anda ingin meluncurkan dua
EA untuk satu simbol, Anda dapat memulai satu EA dalam satu
jendela simbol ini dan satu lagi di lain
jendela simbol yang sama. Dalam hal ini, EA Anda
akan bekerja secara bersamaan. Namun, Anda harus mengambil
mempertimbangkan bahwa EA diluncurkan dengan cara ini
dapat membentuk petunjuk perdagangan bertentangan. Untuk
Misalnya, salah satu dari mereka bisa memberikan instruksi untuk membuka
perintah, sedangkan yang lain dapat memberikan instruksi kepada
perintah dekat. Hal ini dapat menyebabkan urutan panjang
perdagangan yang tidak berguna yang mengakibatkan total kerugian.
Program dari semua jenis dapat membuat variabel global
tersedia untuk semua program lain yang diluncurkan pada klien
terminal, termasuk yang diluncurkan pada jendela
simbol yang berbeda. Hal ini memungkinkan mesin untuk
mengkoordinasikan operasi simultan dari semua
program. Urutan menggunakan variabel global akan
khusus dipertimbangkan dalam bagian variabel global.
Memanggil program untuk eksekusi
Program dari semua jenis hanya dapat dijalankan pada
kehendak pengguna. Di dalam MQL4, Anda tidak dapat memanggil EA, script,
atau indikator untuk eksekusi dari dalam sebuah program.
Satu-satunya pengecualian adalah built-in fungsi iCustom ()
yang memungkinkan Anda untuk merujuk pada indikator kustom untuk
beberapa data, dan fungsi teknis
indikator. Mengacu iCustom () atau fungsi
indikator teknis tidak menghasilkan menampilkan
garis indikator di jendela simbol (lihat
Program sederhana di MQL4).
Properti
Program
EA Script Indicator
Jalankan durasi Selama
panjang
periode
Suatu kali Selama
panjang
periode
Perdagangan Boleh Dilarang
Menampilkan dari
baris
Tidak Tidak Ya
Serentak
penggunaan
hanya beberapa
program
sama
ketik satu
simbol
jendela
Dilarang Dilarang Diizinkan
Memanggil untuk
eksekusi
dari dalam
program
Dilarang Dilarang Dilarang
Tabel 2 Sifat utama dari EA, script, dan adat
indikator.
Jadi, jika kita ingin program yang akan mengelola
perdagangan menurut algoritma tertentu, kita harus
menulis EA atau script. Namun, jika kita ingin memiliki
ketergantungan tertentu grafis ditampilkan, kita harus
menggunakan indikator.