Lompat ke konten Lompat ke sidebar Lompat ke footer

Bagaimana Cara Membuat Expert Advisor Part4 (Belajar MQ4 #3 - Switch)

Saya tertarik untuk membahas perintah switch karena pernah mengalami error saat menggunakannya.
Kesalahan yang pernah saya lakukan adalah:


Code:
int _buy = OP_BUY;
int sell = OP_SELL;
switch(OrderType())
{
 case _buy: total_buy++; break;
 case _sell: total_sell++; break;
}
Ternyata setelah case, tidak boleh menggunakan variabel atau output function, tetapi harus menggunakan angka biasa atau konstanta.
Akhirnya diubah seperti ini baru error mau hilang:

Code:
switch(OrderType())
{
 case OP_BUY: total_buy++; break;
 case OP_SELL: total_sell++; break;
}
Dasar pemikirannya adalah bahwa switch merupakan padanan if, tetapi switch mempunyai batasan-batasan, sehingga tidak bisa leluasa seperti saat menggunakan if.
Jika menggunakan if, maka tidak akan ada error, seperti berikut:

Code:
int _buy = OP_BUY;
int sell = OP_SELL;
if(OrderType() == _buy) total_buy++;
else if(OrderType() == _sell) total_sell++;
Jadi apakah switch lebih buruk dibandingkan if ???
Jelas tidak, masing-masing mempunyai kekuatan dan kecocokan pada suatu masalah.

switch
Sangat membantu saat menghadapi pilihan yang sifatnya seragam.
Misalnya, sebuah hari, jika sudah dinyatakan Senin, pasti tidak bisa dinyatakan hari yang lain.
Sebuah order, jika sudah bertipe OP_BUY, pasti pada saat yang sama bertype yang lain.
Dari sisi estetika, barangkali switch lebih "indah" dibanding if.

if
Sangat leluasa untuk segala jenis kondisi.
Penyusun kondisi tidak harus operand bertype integer seperti pada switch.

Mereka berdua, switch dan if, akan sangat baik bila disinergikan.
Karena, tidak semua switch bisa dilakukan secara mudah dengan if.
Sebaliknya, tidak semua if bisa dilakukan dengan switch.

Sumber: Dokumentasi MetaEditor http://book.mql4.com/
http://indo.mt5.com/showthread.php?1103-Belajar-MQ4 (susupapa) 
     

1 komentar untuk "Bagaimana Cara Membuat Expert Advisor Part4 (Belajar MQ4 #3 - Switch)"