EUR/USD 1.073   |   USD/JPY 155.850   |   GBP/USD 1.247   |   AUD/USD 0.658   |   Gold 2,320.91/oz   |   Silver 27.92/oz   |   Wall Street 39,056.39   |   Nasdaq 16,302.76   |   IDX 7,166.81   |   Bitcoin 61,187.94   |   Ethereum 2,973.66   |   Litecoin 81.64   |   Para trader valas sudah menantikan data inflasi minggu depan, 1 hari, #Forex Fundamental   |   Dolar AS bertahan pada kenaikan pemulihan karena pasar menilai Komentar the Fed, 1 hari, #Forex Fundamental   |   AUD/JPY melayang di sekitar level 102.00 di tengah RBA yang kurang hawkish, 1 hari, #Forex Teknikal   |   USD/CHF membukukan kenaikan moderat di atas level 0.9080 karena pernyataan hawkish the Fed, dolar AS menguat, 1 hari, #Forex Teknikal   |   PT Aneka Tambang Tbk. (ANTM) atau Antam akan melangsungkan rapat umum pemegang saham tahunan (RUPST) dengan agenda pembagian dividen, 1 hari, #Saham Indonesia   |   Harga saham PT Xolare RCR Energy Tbk (SOLA) mengalami kenaikan 13% ke level Rp125 setelah IPO pada hari ini (8/Mei), 1 hari, #Saham Indonesia   |   Elon Musk mengusulkan untuk menguji paket bantuan pengemudi canggih Tesla (NASDAQ: TSLA) di Cina dengan menerapkannya di robotaxis, selama kunjungannya baru-baru ini ke negara tersebut, 1 hari, #Saham AS   |   S&P 500 stabil di 5,214, sementara Nasdaq 100 datar di 18,205 pada pukul 19:15 ET (23:15 WIB). Dow Jones berada di kisaran 39,022, 1 hari, #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.