EUR/USD 1.067   |   USD/JPY 154.850   |   GBP/USD 1.237   |   AUD/USD 0.645   |   Gold 2,318.40/oz   |   Silver 27.15/oz   |   Wall Street 38,503.69   |   Nasdaq 15,696.64   |   IDX 7,174.53   |   Bitcoin 66,837.68   |   Ethereum 3,201.65   |   Litecoin 85.47   |   USD/CAD pertahankan pemulihan moderat, tetap di bawah level 1.3700 Jelang data AS, 2 jam lalu, #Forex Teknikal   |   NZD/USD menembus ke segitiga simetris, naik ke dekat level 0.5950, 2 jam lalu, #Forex Teknikal   |   Bank Indonesia menaikkan suku bunga bulan April ke 6.25%, 2 jam lalu, #Forex Fundamental   |   USD/CHF bertahan stabil di sekitar 0.9150, sejalan dengan level tertinggi enam bulan, 2 jam lalu, #Forex Teknikal   |   Dow Jones Industrial Average naik 0.69% menjadi 38,503. Indeks S&P 500 naik 1.20% menjadi 5,070. Nasdaq Composite naik 1.59% menjadi 15,696, 8 jam lalu, #Saham AS   |   PT Bumi Resources Tbk (BUMI) membukukan kenaikan laba bersih, mengantongi pendapatan senilai $311.01 juta hingga Maret 2024, 8 jam lalu, #Saham Indonesia   |   PT Rukun Raharja Tbk. (RAJA) mencetak pendapatan sebesar Rp994.15 miliar dengan laba bersih Rp129.11 miliar, 8 jam lalu, #Saham Indonesia   |   PT Tower Bersama Infrastructure Tbk. (TBIG) menyiapkan dana Rp800 miliar yang bersumber dari kas internal untuk mengeksekusi rencana buyback 396.50 juta saham, 8 jam lalu, #Saham Indonesia

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.