EUR/USD 1.067   |   USD/JPY 154.540   |   GBP/USD 1.245   |   AUD/USD 0.642   |   Gold 2,393.93/oz   |   Silver 28.68/oz   |   Wall Street 37,841.35   |   Nasdaq 15,601.50   |   IDX 7,087.32   |   Bitcoin 63,512.75   |   Ethereum 3,066.03   |   Litecoin 80.80   |   XAU/USD bullish efek masih berlanjutnya tensi konflik Israel-Iran, 8 jam lalu, #Emas Fundamental   |   Pasar bergerak dalam mode risk-off di tengah berita utama mengenai serangan Israel ke Iran, 8 jam lalu, #Forex Fundamental   |   Poundsterling menemukan area support, meskipun sentimen risk-off membuat bias penurunan tetap terjaga, 8 jam lalu, #Forex Fundamental   |   GBP/JPY bertahan di bawah level 192.00 setelah data penjualan ritel Inggris, 8 jam lalu, #Forex Teknikal   |   PT Pembangunan Jaya Ancol Tbk (PJAA) mencatat jumlah pengunjung saat libur lebaran 2024 ini mencapai 432,700 orang, 14 jam lalu, #Saham Indonesia   |   S&P 500 turun 0.2% menjadi 5,039, sementara Nasdaq 100 turun 0.4% menjadi 17,484 pada pukul 20:09 ET (00:09 GMT). Dow Jones turun 0.2% menjadi 37,950, 14 jam lalu, #Saham AS   |   Netflix turun hampir 5% dalam perdagangan aftermarket setelah prospek pendapatannya pada kuartal kedua meleset dari estimasi, 14 jam lalu, #Saham AS   |   Apple menghapus WhatsApp dan Threads milik Meta Platforms (NASDAQ:META) dari App Store di Cina pada hari Jumat setelah diperintahkan oleh pemerintah Cina, 14 jam lalu, #Saham AS

Code Mendeteksi Eror pada EA

Penulis

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.

Code Mendeteksi Error pada EA
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.

114966
Penulis

Parmadita mengenal forex mulai tahun 2010. Sejak saat itu, menggali beragam pengetahuan dan pengalaman terkait forex dari berbagai sumber, baik tentang indikator teknikal biasa, psikologi trading, maupun Expert Advisor.