Pernahkah anda terfikir untuk menggunakan EA (Robot Perdagangan) dalam trading anda? Saya juga pernah terfikir dan hari ini saya ingin berkongsi EA paling mudah yang pernah saya gunakan. Selepas membaca, sila beri penilaian tentang EA ini ya!
EA ini berfungsi untuk satu pasangan mata wang sahaja. Semua tetapan seperti jangka masa, lot, stop loss dan take profit boleh dimasukkan melalui menu sifat.

extern ENUM_TIMEFRAMES TF = PERIOD_CURRENT;// Pilih Jangka Masa extern int period = 8;// Tempoh DeMarker extern double lt = 0.01;// Lot extern int sl = 100;// Stop Loss extern int tp = 100;// Take Profit extern double OB = 0.7;// Terlampau Jual extern double OS = 0.3;// Terlampau Beli extern bool OPENBAR = false;// Berdagang pada harga buka bar baru
Ini rahsianya, saya bahagikan kepada 3 bahagian pembolehubah:
1. data | jangka masa
2. pesanan
3. pasangan
//+------------------------------------------------------------------+ //-- jangka masa|indikator double dmrk[5]; int signal =-1;//-- 0.beli 1.jual int hold = 0; //-- pesanan int ticket =0; double lot =0.0; int typ =-1; //-- pasangan datetime t1=0; bool newbar=false; bool entry =false; //+------------------------------------------------------------------+
Dalam fungsi OnInit(), saya perlu menginisialisasi pembolehubah array indikator DeMarker dan juga memeriksa ukuran lot minimum untuk keperluan broker tertentu.
//+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void OnInit() { ArrayInitialize(dmrk,0.0); //--- const double test_lot = SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MIN); if(lt<test_lot) lt = test_lot; }
Dalam fungsi OnTick(), ini adalah untuk mengira indikator dan menentukan isyarat beli dan jual.
//--------------------------------------------------------------------------- signal = -1; //--------------------------------------------------------------------------- //---kira for(int i=0; i<ArraySize(dmrk); i++) { dmrk[i] = iDeMarker(Symbol(),TF,period,i); } //--- if(dmrk[1] > OB) { hold = 1;//set } else if(dmrk[1] < OS) { hold = -1;//set } else { hold = 0;//reset } if(hold == 1) { if(dmrk[0]<OB && dmrk[1]>OB) { signal = OP_SELL; } } if(hold == -1) { if(dmrk[0]>OS && dmrk[1]<OS) { signal = OP_BUY; } }
Untuk membuka isyarat beli dan jual...
//--------------------------------------------------------------------------- if(signal != -1) if(newbar==true) if(entry==false)//pintu terbuka { //--- entry =true;//set //--- if(signal == OP_BUY) { ticket = OrderSend(Symbol(),OP_BUY,lt,Ask,(int)((Ask-Bid)/Point, sl>0?Bid-sl*Point:0.0, tp>0?Bid+tp*Point:0.0, EAName+":signal= "+IntegerToString(signal)+":hold= "+IntegerToString(hold), EANumber, 0, clrBlue); signal=-1; //hold =0; }//reset else if(signal == OP_SELL) { ticket = OrderSend(Symbol(),OP_SELL,lt,Bid,(int)((Ask-Bid)/Point, sl>0?Ask+sl*Point:0.0, tp>0?Ask-tp*Point:0.0, EAName+":signal= "+IntegerToString(signal)+":hold= "+IntegerToString(hold), EANumber, 0, clrRed); signal=-1; //hold =0; }//reset signal }
Dan untuk menutup...
if(entry == true) // tutup { if(OrderSelect(ticket,SELECT_BY_TICKET)) { if(OrderCloseTime() == 0)//-- pesanan aktif { /* todo syarat untuk tutup */ //entry = false; } //else if(OrderCloseTime() != 0)//-- ditutup oleh 1. manual 2. sl/tp 3. ea { entry = false;//reset entry } } }


Siaran berkaitan
- MQL5 Wizard: Cipta Isyarat Dagangan Menggunakan Corak Morning/Evening Star dan MFI
- MQL5 Wizard: Cipta Sistem Trading Berdasarkan Pola Morning/Evening Star dan RSI
- Pemprosesan Pesanan Visual - Sistem Trading untuk MetaTrader 4
- Panduan Lengkap MQL5 Wizard untuk Isyarat Dagangan Berdasarkan Morning/Evening Stars dan Stochastic
- MQL5 Wizard: Cipta Signal Dagangan Berdasarkan Corak Candlestick Dark Cloud Cover dan Piercing Line + MFI