Menu

Code Mendeteksi Eror pada EA

Parmadita

Artikel yang lalu telah membahas tentang adanya alert pada EA. Kali ini kita akan menggunakan kode yang sedikit lebih banyak. Code ini digunakan untuk mendeteksi adanya kesalahan pada proses EA. Kesalahan bisa terjadi karena ketidaksesuaiannya antara harga yang diorder dengan jumlah posisi yang dijalankan.Proses eror sebenarnya bermacam-macam, bisa jadi karena market perhitungan kalkulasi

Artikel yang lalu telah membahas tentang adanya alert pada EA. Kali ini kita akan menggunakan kode yang sedikit lebih banyak. Code ini digunakan untuk mendeteksi adanya kesalahan pada proses EA. Kesalahan bisa terjadi karena ketidaksesuaiannya antara harga yang diorder dengan jumlah posisi yang dijalankan.

Proses eror sebenarnya bermacam-macam, bisa jadi karena market perhitungan kalkulasi pada fungsi, atau perbedaan antar harga dan equity. Semuanya bisa saja terjadi. Tujuannya dari eror tersebut, trader bisa mengetahui kesalahan yang terjadi.


Penggunannya tetap menggunakan alert seperti pada artikel terdahulu, namun akan lebih cenderung kepada bentuk erornya. Jika alert biasanya menampilkan pesan tambahan sebagai informasi kepada trader sekaligus sebagai pengingat, kini eror bisa dijadikan informasi berharga ketika terjadi ketidaksesuaian EA dimarket.

Nah solusinya adalah diberikan tambahan code pendeteksi adanya suatu kesalahan. Pendeteksian sendiri berfungsi untuk menampilkan sebuah kesalahan dan memunculkannya dipermukaan, sehingga trader tahu ada kesalahan yang perlu dibenahi segera.

Dibawah ini adalah code dasar dalam mendeteksi adanya jenis kesalahan. Berikut code yang bisa dipergunakan :

int iTickNum = 0;
int iLastError = 0;
...
iTickNum = OrderSet (OP_BUY, g_Lots, Ask, 3, 0, Ask + g_TakeProfit * g_Points, Red);
if (iTickNum {
iLastError = GetLastError();
if (iLastError != ERROR_SUCCESS) Alert("Some Message");

Di disini fungsi yang paling penting adalah GetLastError. Fungsi tersebut akan membaca suatu bentuk eror. Yang perlu diperhatikan adalah jangan memanggil GetLastError lebih dari satu kali. Kenapa? Karena disaat code tersebut dipanggil ia akan berusaha melakukan reset atau mengembalikan ke bentuk semua.

Hal ini akan terjadi perulangan yang terus menerus jika pemanggilan dilakukan lebih dari satu kali. Tentunya akan merepotkan trader dalam menyelesaikan bentuk eror ini. Solusinya adalah panggillah satu kali saja, maka eror tersebut akan ditampilkan hanya satu kali. Sebagai contoh pemrogramannya :

// check for long position (BUY) possibilit
if(MacdCurrentSignalCurrent && MacdPrevious MathAbs(MacdCurrent)>(MACDOpenLevel*Point) && MaCurrent>MaPrevious)
{
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+TakeProfit*Point,"macd
sample",16384,0,Green);
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("BUY order opened :
",OrderOpenPrice());
}
else Print("Error opening BUY order : ",GetLastError());
return(0);
}

Kesimpulan
Penggunaan alert bisa bermacam-macam, namun kali ini penampilan alert karena suatu kesalahan. Pesan ini bisa dijadikan acuan trader dalam mengenali gejala yang mungkin mengganggu dikemudian hari. Gunakan GetLastError sebagai langkah aman dalam mengembalikan kesalahan ke bentuk semula.



Saran dan kritik yang membangun tetap kami harapkan untuk dapat menyajikan informasi code lebih baik dan menarik untuk Anda baca dimasa yang akan datang. Sampaikan pendapat, pengalaman, cerita, saran, dan kritik Anda pada kotak post di bawah ini.



Klik di sini untuk tahu cara belajar dan menguasai trading dengan mudah.




KONTAK KAMI PASANG IKLAN BROKER BELAJAR ANALISA ARTIKEL TERM OF USE