Mempelajari MQL5 tanpa pengalaman pemrograman sebelumnya mungkin terasa sulit, namun bukan berarti tidak mungkin. Memahami MQL5, sebuah bahasa khusus yang diciptakan untuk perdagangan algoritmik, memerlukan pemahaman dalam pemrograman dan pasar keuangan. Dalam artikel-artikel saya berikutnya, saya bertujuan untuk menjembatani kesenjangan bagi individu tanpa latar belakang pemrograman yang tertarik untuk mempelajari MQL5, dengan konten yang disesuaikan untuk memecah konsep pemrograman dan membuat MQL5 dapat diakses oleh pemula.

Poin Rangkuman:

  1. Mempelajari MQL5 memerlukan pemahaman dalam pemrograman dan pasar keuangan.
  2. Artikel-artikel ini dirancang untuk membantu pemula memahami dasar-dasar MQL5.
  3. Konten akan disajikan dengan cara yang mudah dipahami bagi pemula tanpa latar belakang pemrograman.

Dasar-Dasar Bahasa Pemrograman

Saya akan memberikan dasar yang kokoh dalam fundamental pemrograman, memecah konsep seperti variabel, tipe data, perulangan, dan pernyataan kondisional dengan cara yang ramah pemula. Artikel-artikel ini akan mengambil pendekatan langkah demi langkah, membimbing pembaca melalui dasar-dasar MQL5. Saya akan memulai dengan skrip sederhana dan secara bertahap memperkenalkan topik-topik yang lebih kompleks, memastikan kurva pembelajaran yang lancar.

Poin Rangkuman:

  1. Pembaca akan dipandu melalui konsep dasar pemrograman seperti variabel, tipe data, perulangan, dan pernyataan kondisional.
  2. Artikel akan disusun dengan cara yang sistematis untuk memastikan pemahaman yang maksimal.

Contoh Praktis dan Interaktif

Belajar seringkali lebih efektif ketika disertai dengan contoh praktis. Saya akan menyertakan contoh dan skenario dunia nyata untuk mengilustrasikan bagaimana MQL5 diterapkan dalam perdagangan algoritmik. Untuk meningkatkan pemahaman, artikel-artikel ini akan mendorong pembelajaran interaktif. Pembaca akan didorong untuk berlatih menulis kode, bereksperimen dengan contoh, dan menerapkan pengetahuan mereka secara langsung. Pada intinya, artikel-artikel ini dirancang untuk memberdayakan individu tanpa latar belakang pemrograman untuk dengan percaya diri menjelajahi dunia MQL5, membentuk pengalaman belajar yang bertahap dan menyenangkan dalam perdagangan algoritmik.

Poin Rangkuman:

  1. Artikel akan mencakup contoh dunia nyata untuk mengilustrasikan penggunaan MQL5.
  2. Pembaca akan didorong untuk berlatih dan menerapkan pengetahuan mereka dalam situasi nyata.

Topik yang Akan Dibahas:

  1. Pengantar Pemrograman
  2. Jenis Program MQL5
  3. IDE MetaEditor
  4. Dasar-Dasar Bahasa MQL5

1. Pengantar ke Pemrograman

Pernahkah Anda bertanya-tanya bagaimana game dan perangkat lunak favorit Anda dibuat? Bagaimana karakter game favorit Anda mengikuti perintah Anda? Semua ini dimungkinkan karena pemrograman, pikirkan pemrograman sebagai serangkaian kode yang ditulis untuk membuat komunikasi manusia dan komputer menjadi mungkin.

Apa itu Bahasa Pemrograman?

Kata "pemrograman" berarti proses menetapkan aturan atau instruksi yang harus diikuti untuk mencapai tujuan tertentu. Di sisi lain, kata "bahasa" berarti sistem komunikasi yang memungkinkan individu untuk mengekspresikan ide, emosi, dan pemikiran kepada komputer. Komputer tidak memahami bahasa manusia, bagaimana kita berkomunikasi set instruksi kita untuk mencapai tujuan kita? Bahasa pemrograman berfungsi sebagai perantara antara manusia dan komputer dengan membantu manusia berkomunikasi dengan komputer.

Jenis-jenis Bahasa Pemrograman

Seperti halnya ada berbagai bahasa manusia, ada juga berbagai bahasa pemrograman, bahasa-bahasa ini diklasifikasikan menjadi dua:

Bahasa Pemrograman Tingkat Tinggi: Lebih dekat dengan bahasa manusia dan lebih mudah direlasikan. Contohnya termasuk MQL4, MQL5, Python, dan JavaScript.

Bahasa Pemrograman Tingkat Rendah: Lebih dekat dengan kode mesin dan lebih sulit bagi manusia untuk ditulis dan dipahami. Ini termasuk bahasa Assembly dan lebih erat terkait dengan perangkat keras komputer.

Klasifikasi Berdasarkan Tujuan

Bahasa Pemrograman Umum: Ini dirancang untuk melakukan berbagai fungsi. Contohnya termasuk Python, Java, dan C++.

Bahasa Pemrograman Khusus Domain: Ini adalah bahasa pemrograman yang melakukan tugas tertentu. Misalnya, MQL5 digunakan untuk mengembangkan bot perdagangan.

Istilah Penting dalam Pemrograman

IDE (Integrated Development Environment): Aplikasi perangkat lunak yang menyediakan fasilitas komprehensif kepada para programmer untuk pengembangan perangkat lunak. Ini adalah platform sentral di mana pengembang dapat menulis, menguji, debug, dan mendeploy perangkat lunak mereka. Contohnya termasuk Visual Studio Code, Code Blocks, dan Meta Editor 5.

Debugger: Alat ini membantu menemukan dan memperbaiki bug dalam kode dengan memungkinkan pengembang untuk melangkah melalui kode, menetapkan breakpoint, dan memeriksa variabel selama runtime.

Compiler/Interpreter: Banyak IDE dilengkapi dengan alat bawaan untuk mengkompilasi dan menjalankan kode langsung dalam lingkungan tersebut. Mereka dapat menjalankan kode, memeriksa kesalahan, dan menampilkan output.

Tipe Data: Berbagai kategori data yang dapat dimanipulasi oleh bahasa pemrograman. Contohnya termasuk integer, float, string, dan boolean.

Syntax: Sekumpulan aturan yang mendefinisikan kombinasi simbol dan kata dalam sebuah bahasa pemrograman. Setiap bahasa pemrograman memiliki sintaks yang unik yang membantu dalam eksekusi kode.

Algoritma: Sekumpulan instruksi yang terdefinisi dengan baik yang dirancang untuk memecahkan masalah tertentu atau melakukan tugas.

Fungsi: Sebuah blok kode yang melakukan tugas tertentu. Ini dapat digunakan kembali dan dapat dipanggil beberapa kali dalam sebuah program.

Pustaka: Kumpulan kode, fungsi, dan rutinitas yang telah ditulis sebelumnya yang dapat digunakan untuk melakukan tugas tertentu, membantu programmer menghindari reinventing the wheel.

Pernyataan Kondisional: Konstruksi seperti if-else atau switch-case yang memungkinkan program membuat keputusan berdasarkan kondisi tertentu.

Loop: Struktur kontrol yang mengulang blok kode sampai kondisi tertentu terpenuhi.

Variabel: Sebuah wadah yang digunakan untuk menyimpan data. Ia memiliki nama dan dapat menampung nilai-nilai yang berbeda yang dapat berubah selama eksekusi program.

2. Program MQL5

MQL5 (MetaQuotes Language 5) adalah bahasa pemrograman tingkat tinggi dan domain khusus. MQL5 adalah bahasa pemrograman khusus domain karena hanya melakukan tugas yang terkait dengan perdagangan. Contohnya adalah otomatisasi strategi perdagangan, pengembangan robot perdagangan, dan indikator teknis.

Dalam bahasa pemrograman MQL5, berbagai jenis program dapat dikembangkan untuk mengotomatisasi perdagangan, menganalisis pasar, dan meningkatkan pengalaman perdagangan secara keseluruhan. Berikut beberapa jenis program MQL5 yang umum:

Expert Advisors (EA): EA adalah jenis program MQL5 yang digunakan untuk mengotomatisasi strategi perdagangan. Ini membantu dalam eksekusi perdagangan berdasarkan aturan yang telah ditentukan sebelumnya. EA terikat pada chart dan menunggu suatu kejadian yang telah ditentukan sebelumnya terjadi, tidak peduli berapa lama waktu yang dibutuhkan sebelum mengeksekusi perintah.

Scripts: Script memiliki kemiripan dengan EA tetapi berbeda. Script seperti OTP satu kali yang menjalankan program segera setelah mereka diaktifkan, jika kondisi yang telah ditentukan terpenuhi, ia akan menjalankan program dan jika tidak, sebaliknya.

Custom Indicators: Berbeda dengan EA, indikator kustom tidak dapat mengeksekusi perdagangan, mereka adalah program yang menunjukkan bahwa suatu peristiwa tertentu telah terjadi di pasar berdasarkan aturan yang telah Anda tetapkan sebelumnya.

Library: Kumpulan kode, fungsi, dan rutinitas yang telah ditulis sebelumnya yang dapat digunakan untuk melakukan tugas tertentu, membantu programmer menghindari reinventing the wheel.

Include File: Dalam pemrograman, file include adalah file terpisah yang berisi kode atau deklarasi yang ingin Anda gunakan kembali di beberapa bagian program Anda. Direktif ‘#include’ digunakan untuk menyertakan konten dari file lain dalam file program utama Anda. File include umumnya digunakan untuk mengatur dan memodularisasi kode, mempromosikan penggunaan kembali kode dan kemudahan pemeliharaan.

3. MetaEditor IDE

MetaEditor 5 adalah IDE yang digunakan dalam bahasa pemrograman MQL5. Sebuah IDE mirip dengan lingkungan atau halaman di mana Anda dapat menulis, debug, mengompilasi, dan menguji kode Anda. MetaEditor 5 selalu disertakan dengan MetaTrader 5 saat diunduh.

Untuk mengakses MetaEditor, cukup klik tombol IDE di MetaTrader 5 Anda.

MetaEditor IDE
MetaEditor IDE

Bagian Navigator (Ctrl+D) menampilkan semua jenis program MQL5. Ketika Anda mengklik salah satu program, ini menampilkan semua kode yang telah Anda tulis.

MT5 Navigator
MT5 Navigator

Untuk membuka halaman untuk menulis kode Anda, klik tombol Baru (Ctrl+N), Anda perlu memilih jenis program MQL5 yang ingin Anda kembangkan, kemudian klik tombol Berikutnya > di bagian MQL Wizard setelah memilih jenis program yang ingin Anda kembangkan.

MQL Wizard
MQL Wizard

Selamat! Anda telah memiliki Meta Editor yang siap digunakan sepenuhnya untuk memulai menulis kode Anda.

MetaEditor
MetaEditor

Bagian ini menampilkan detail yang Anda masukkan sebelumnya.

Script pertama MQL5
Script pertama MQL5

Pada dasarnya, fungsi OnStart() adalah bagian penting dalam program skrip dalam bahasa MQL5. Fungsi ini dipanggil secara otomatis saat program skrip diaktifkan, dan semua kode di dalam tanda kurung kurawal {} akan dieksekusi satu kali pada saat itu juga.

OnStart() MQL5
OnStart() MQL5

Ketika Anda membuat skrip dalam bahasa MQL5, Anda perlu mendefinisikan fungsi OnStart() untuk menentukan apa yang akan dilakukan skrip tersebut saat dijalankan. Misalnya, Anda dapat menetapkan perintah perdagangan, menghitung indikator, atau melakukan tugas lainnya yang ingin Anda otomatisasikan dalam platform MetaTrader 5.

Penting untuk memahami bahwa OnStart() adalah tempat di mana Anda menempatkan logika utama dari skrip Anda. Semua tindakan atau instruksi yang Anda inginkan untuk dilakukan oleh skrip saat dijalankan harus ditempatkan di dalam fungsi ini.

Dengan demikian, fungsi OnStart() adalah kunci untuk menjalankan kode Anda dan memastikan bahwa skrip Anda berperilaku sesuai yang Anda harapkan ketika dijalankan di platform MetaTrader 5.

Mari kita tulis kode pertama kita untuk membuat skrip yang memberikan peringatan "Hello MQL5" saat diaktifkan. Berikut adalah contoh kode dalam bahasa MQL5:

//+------------------------------------------------------------------+
//|                                         HelloMQL5.mq5           |
//|                        Copyright 2024, MetaQuotes Software Corp. |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   // Display a message box with the text "Hello MQL5"
   Alert("Hello MQL5");
  }

Kompilator memeriksa apakah kode sudah benar atau tidak, dan memberikan saran tentang apa yang harus dilakukan untuk memperbaiki kode tersebut. Ketika Anda selesai menulis kode Anda, klik tombol Compile dan periksa bagian deskripsi untuk melihat apakah ada kesalahan dan peringatan.

Jika ada kesalahan atau peringatan, Anda perlu memperbaiki kode Anda sesuai dengan saran yang diberikan oleh kompilator. Setelah semua kesalahan diperbaiki, Anda dapat mengkompilasi ulang kode Anda. Jika tidak ada kesalahan atau peringatan, Anda dapat melanjutkan dengan menggunakan kode tersebut dalam platform MetaTrader 5.

Peringatan dari compiler MQL5
Peringatan dari compiler MQL5

Jika kode memiliki kesalahan, kode tersebut tidak akan berjalan sampai Anda melakukan koreksi. Kode dapat berjalan tanpa memperbaiki peringatan, tetapi lebih baik untuk menanganinya untuk menghindari masalah dengan program Anda. Dengan memperbaiki kesalahan dan peringatan, Anda dapat memastikan bahwa kode Anda berjalan dengan lancar dan sesuai dengan yang diharapkan.

Klik play untuk menjalankan script.

Run Script MQL5
Run Script MQL5
Eksekusi kode akan menghasilkan Alert seperti ini
Eksekusi kode akan menghasilkan Alert seperti ini

4. Basics Bahasa Pemrograman MQL5

Sebelum kita lanjut untuk mengembangkan program MQL5, penting untuk memahami beberapa hal dasar yang membentuk sebuah program. Contohnya adalah Tipe Data, Fungsi, Variabel, Komentar, dan Syntax MQL5.

Syntax

Syntax merujuk pada seperangkat aturan yang mengatur bagaimana program yang ditulis dalam bahasa tertentu seharusnya struktur. Ini seperti tata bahasa dari bahasa pemrograman. Sama seperti bahasa manusia memiliki aturan untuk membentuk kalimat, bahasa pemrograman memiliki aturan untuk membuat kode yang valid dan mudah dimengerti.

Berikut adalah beberapa aspek penting dari syntax:

Statement Termination
Setiap pernyataan dalam MQL5 umumnya diakhiri dengan titik koma (';'). Ini memberi tahu kompiler bahwa satu pernyataan telah berakhir, dan yang berikutnya akan dimulai.

void OnStart()
  {

   Alert("Hello MQL5");  // semicolon berarti berakhirnya kode

  }

Comments
Comments dalam MQL5 penting untuk memberikan penjelasan dan dokumentasi dalam kode Anda. Bayangkan komentar seperti tag yang Anda tambahkan ke baris kode hanya untuk merujuknya nanti atau menjelaskan tujuan dari suatu kode. Berikut adalah contoh detail cara menggunakan komentar dalam berbagai skenario:

Komentar Satu Baris: Komentar satu baris didahului oleh ‘//’. Mereka digunakan untuk penjelasan singkat.

void OnStart()
  {

   Print("Hello MQL5");   // kode ini akan memprint “Hello MQL5” ketika dijalankan

  }

Catatan: Compiler sepenuhnya mengabaikan apa pun yang ditulis setelah //.

Multi-Line Comments
Komentar multi-baris diapit oleh "/* */". Mereka cocok untuk penjelasan yang lebih luas. Ini dapat berguna untuk menuliskan rencana atau langkah-langkah detail untuk mengembangkan program.

void OnStart()
{

/* Dalam banyak bahasa pemrograman, termasuk MQL5
titik koma ";" digunakan untuk menandai akhir sebuah pernyataan.
Ini adalah elemen penting agar kompiler memahami struktur program.
*/

}

Komputer sepenuhnya mengabaikan segala sesuatu antara /* dan */

Komentar memainkan peran penting dalam membuat kode Anda mudah dibaca dan dimengerti. Mereka membantu tidak hanya dalam pemahaman Anda sendiri tetapi juga dalam siapa pun yang mungkin membaca atau berkolaborasi pada kode Anda. Gunakan komentar dengan banyak untuk meningkatkan kejelasan program MQL5 Anda.

Identifiers

Dalam pemrograman, sebuah identifikasi adalah nama yang diberikan kepada variabel, fungsi, atau item yang ditentukan pengguna lainnya dalam kode. Identifikasi memainkan peran penting dalam membuat kode mudah dibaca dan dimengerti. Berikut beberapa poin penting tentang identifikasi dalam MQL5:

Aturan Penamaan
Identifikasi harus mengikuti aturan penamaan tertentu. Mereka harus dimulai dengan huruf (A-Z atau a-z) dan dapat diikuti oleh huruf, digit (0-9), atau garis bawah (_).

Sensitivitas Huruf Besar dan Kecil
MQL5 bersifat case-sensitive, artinya huruf besar dan kecil dibedakan. Oleh karena itu, 'myVariable' dan 'MyVariable' dianggap sebagai identifikasi yang berbeda.

int umurSaya = 25; 
int UmurSaya = 25;  // umurSaya adalah identifikasi yang berbeda dari UmurSaya.

Nama-nama yang Bermakna
Pilihlah nama yang bermakna dan deskriptif untuk identifikasi. Hal ini meningkatkan keterbacaan kode dan memudahkan orang lain (atau diri Anda di masa depan) untuk memahami tujuan variabel atau fungsi.

Kata-kata Reserved
Hindari menggunakan kata-kata reserved sebagai identifikasi. Kata-kata yang dipesan adalah kata-kata yang memiliki makna khusus dalam bahasa pemrograman dan tidak dapat digunakan untuk tujuan lain. Contohnya termasuk Alert, Print, dan Comment.

int Age = 25;
Print(Age);
/*
Int adalah tipe data yang merupakan bilangan bulat karena 25 adalah bilangan bulat.
Age adalah identifikasi.
Print adalah sebuah kata yang dipesan dalam MQL5 dan berfungsi secara khusus. Ini berarti tidak dapat digunakan sebagai identifikasi.
*/

Tipe Data Dasar

Dalam pemrograman, tipe data mirip dengan wadah yang menyimpan berbagai jenis informasi. Bayangkan Anda memiliki kotak untuk menyimpan barang: beberapa kotak dapat menampung angka, beberapa dapat menampung kata-kata, dan beberapa dapat menampung sesuatu yang lebih kompleks. Berikut contohnya:

Bilangan Bulat (int)

Pikirkan ini sebagai kotak yang hanya menampung angka bulat. Ini dapat menyimpan angka seperti 1, 5, atau 10, tetapi tidak dapat menyimpan angka dengan titik desimal.

int myInteger = 10;

Bilangan Pecahan (Double)

Tipe ini mewakili angka dengan titik desimal.

double myDouble = 3.14;

Character
Dalam MQL5, karakter adalah tipe data yang digunakan untuk merepresentasikan satu karakter, seperti huruf, digit, atau simbol. Ini ditandai dengan kata kunci 'char'.

// Mendeklarasikan variabel karakter
char myChar = 'A';

// Mencetak karakter ke konsol
Print(myChar);

String
"string" adalah tipe data dalam bahasa MQL5 yang digunakan untuk merepresentasikan urutan karakter, biasanya digunakan untuk menyimpan dan memanipulasi data teks.

string myString = "Hello, MQL5!";

Alert(myString);

Boolean
Dalam pemrograman, tipe data boolean hanya memiliki dua nilai yang mungkin: benar (true) atau salah (false). Ini digunakan untuk menggambarkan keadaan logika, seperti kondisi dalam struktur percabangan atau pengulangan. Misalnya, dalam MQL5, kita dapat menggunakan tipe data boolean untuk menentukan apakah suatu kondisi benar atau salah sebelum mengambil tindakan tertentu dalam program.

bool iam25 = true;

Arrays
Arrays dalam MQL5 memungkinkan Anda menyimpan beberapa nilai dengan tipe data yang sama di bawah satu nama variabel. Mereka memberikan cara yang nyaman untuk bekerja dengan koleksi data.

Berikut adalah aspek utama dari array dalam MQL5:

Deklarasi Array: Anda mendeklarasikan sebuah array dengan menentukan tipe data dan nama, diikuti dengan tanda kurung siku '[]' yang menandakan array.

Integer array declaration

int numbers[5];

Inisialisasi: Anda dapat menginisialisasi sebuah array pada saat deklarasi dengan menyediakan daftar nilai yang dikelilingi oleh tanda kurung kurawal '{}'.

// Initializing an integer array

   int numbers[] = {1, 2, 3, 4, 5};

Mengakses Elemen: Elemen-elemen array diakses menggunakan indeks mereka, dimulai dari 0. Misalnya, dalam array 'numbers', 'numbers[0]' adalah elemen pertama. Array dalam MQL5 dapat digunakan untuk mendapatkan harga penutupan atau pembukaan dari candle sticks.

// Accessing elements of an array

   int firstNumber = numbers[0];  // Accesses the first element

Kesimpulan

Dalam kesimpulan, kita telah memulai perjalanan untuk menjelajahi dasar-dasar pemrograman dan dunia khusus dari MQL5. Dimulai dengan pengantar pemrograman, kita menelusuri berbagai jenis program MQL5, memahami pentingnya MetaEditor IDE dalam merancang algoritma perdagangan kita. Eksplorasi kita tentang dasar-dasar bahasa MQL5 telah menyiapkan landasan untuk membangun program yang lebih kompleks. Ingatlah, ini hanya awal, dan seiring berjalannya waktu, kekuatan pemrograman dengan MQL5 akan terungkap, memberdayakan Anda untuk membuat strategi perdagangan yang tangguh dan efisien. Tetap terhubung untuk wawasan dan artikel lebih lanjut tentang dunia yang menarik dari perdagangan algoritmik dan pemrograman MQL5!