EUR/USD 1.078   |   USD/JPY 155.830   |   GBP/USD 1.254   |   AUD/USD 0.661   |   Gold 2,359.97/oz   |   Silver 28.42/oz   |   Wall Street 39,512.84   |   Nasdaq 16,340.87   |   IDX 7,421.21   |   Bitcoin 60,793.71   |   Ethereum 2,911.60   |   Litecoin 81.35   |   Ekonomi Inggris kembali mengalami pertumbuhan di kuartal pertama, 2 hari, #Forex Fundamental   |   USD/CHF tetap lemah di dekat level 0.9050 di tengah sentimen dovish The Fed, 2 hari, #Forex Teknikal   |   EUR/GBP bertahan di bawah level 0.8600 setelah data PDB Inggris, 2 hari, #Forex Teknikal   |   PDB awal Inggris berekspansi 0.6% QoQ di kuartal pertama versus ekspektasi 0.4%, 2 hari, #Forex Fundamental   |   Produsen Semen Merah Putih PT Cemindo Gemilang Tbk. (CMNT) menilai permintaan semen mulai meningkat pada Mei 2024, 2 hari, #Saham Indonesia   |   Entitas Grup PT United Tractors Tbk. (UNTR), PT Energia Prima Nusantara membidik penambahan kapasitas listrik menjadi 156 MWp, 2 hari, #Saham Indonesia   |   S&P 500 naik 0.1% menjadi 5,244, sementara Nasdaq 100 naik 0.1% menjadi 18,235 pada pukul 19.45 ET (23.45 GMT). Dow Jones naik 0.1% menjadi 39,592, 2 hari, #Saham AS   |   Apple (NASDAQ:AAPL) meminta maaf setelah sebuah iklan untuk model iPad Pro terbarunya memicu kritik dengan menampilkan animasi alat musik dan simbol-simbol kreativitas lainnya yang dihancurkan, 2 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.