Pernahkah kamu berpikir untuk menggunakan EA (Expert Advisor) dalam trading? Saya juga! Di sini, saya akan berbagi tentang EA sederhana yang saya gunakan, dan ini adalah yang paling mudah yang pernah saya buat. Setelah membaca, jangan lupa untuk memberikan penilaian, ya!
EA ini bekerja pada satu pasangan mata uang saja. Kamu bisa mengatur periode waktu, lot, stop loss, dan take profit melalui menu properti yang tersedia.

extern ENUM_TIMEFRAMES TF = PERIOD_CURRENT;// Pilih Time Frame
extern int period = 8;// Periode DeMarker
extern double lt = 0.01;// Lot
extern int sl = 100;// Stop Loss
extern int tp = 100;// Take Profit
extern double OB = 0.7;// Over Sold
extern double OS = 0.3;// Over Bought
extern bool OPENBAR = false;// Trading di harga open bar baru
Berikut adalah rahasianya, saya membagi variabel ini menjadi 3 bagian:
1. Data | Timeframe
2. Order
3. Pair
//+------------------------------------------------------------------+
//-- time frame|indicator
double dmrk[5];
int signal =-1;//-- 0.buy 1.sell
int hold = 0;
//-- order
int ticket =0;
double lot =0.0;
int typ =-1;
//-- pair
datetime t1=0;
bool newbar=false;
bool entry =false;
//+------------------------------------------------------------------+
Di fungsi OnInit(), saya harus menginisialisasi array variabel indikator DeMarker dan juga memeriksa ukuran lot minimum untuk jenis broker tertentu.
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void OnInit()
{
ArrayInitialize(dmrk,0.0);
//---
const double test_lot = SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MIN);
if(lt<test_lot) lt = test_lot;
}
Di fungsi OnTick(), saya menghitung indikator dan menentukan sinyal beli dan jual.
//---------------------------------------------------------------------------
signal = -1;
//---------------------------------------------------------------------------
//---calc
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 sinyal 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 penutupan...
if(entry == true) // penutupan
{
if(OrderSelect(ticket,SELECT_BY_TICKET))
{
if(OrderCloseTime() == 0)//-- order masih aktif
{
/* todo kondisi untuk menutup */
//entry = false;
}
//else
if(OrderCloseTime() != 0)//-- close by 1. manual 2. sl/tp 3. ea
{
entry = false;//reset entry
}
}
}


Postingan terkait
- MQL5 Wizard: Mengoptimalkan Sinyal Perdagangan dengan Morning/Evening Stars dan MFI
- MQL5 Wizard: Ciptakan Expert Advisor Berdasarkan Pola Candlestick dan MFI
- MQL5 Wizard: Membuat EA dengan Sinyal Trading Berdasarkan Pola Morning/Evening Stars dan Stochastic
- Menggunakan MQL5 Wizard untuk Sinyal Perdagangan: Pola Hammer/Hanging Man dan RSI
- Membuat Expert Advisor MQL5 untuk Sinyal Trading Berdasarkan Dark Cloud Cover dan Piercing Line dengan RSI