gw kasih X karena gw masih blom tau nomer berapa... (sekarang ude dikasih nomer, nomor 8..)
karena sebelum bab ini, ada 3-4 bagian lagi yang membahas operasi, loop & decision, dan function, dan..... belum inget...
ok, pada dasarnya, sebuah EA yang sederhana/standard (bukan EA yang kompleks seperti neural network, atau yang misalnya terdiri dari beberapa modul yang mengontrol trade sendiri2)... terdiri atas beberapa bagian/struktur.. bagian ini biasanya dibikinkan fungsi tersendiri, agar coding terlihat rapi, sekaligus mempermudah debugging
bagian2nya :
1) BuySignal : pada kondisi apa EA buka buy
2) SellSignal : pada kondisi apa EA buka sel
3) CloseBuySignal : pada kondisi apa EA nutup posisi buy (yang ini tidak harus ada, karena dapat menggunakan TP/SL sebagai closingnya)
4) CloseSellSignal : sama seperti CloseBuySignal
5) MoneyManagement : buat itung lotsize secara otomatis
6) Trail : buat trailling posisi, klo misalnya diperlukan
7) Confirmator : kalau misalnya EA cuman trade hari senin-kamis, maka biasanya ditaruh di bagian ini..
Klo 7 bagian itu sudah ketemu, bikin EA nya jadi lebih gampang
misalnya begini, gw mau bikin EA yang kayak di Bagian 2 - Contoh EA
Logika EA ini, kira2 (misal EA ini diletakkan di chart GBPUSD 1 Hour), Jika tidak ada posisi, jika candle jam lalu closenya diatas EMA 10, maka buy, kalau candle jam lalu closenya dibawah EMA 10, maka sell. TP nya 150 dan SL nya 100 pips
kalau di breakdown jadi 7 bagian tadi :
1) BuySignal : kalau harga close candle sebelumnya lebih besar/diatas EMA 10 pada candle sebelumnya
2) SellSignal : kalau harga close candle sebelumnya lebih kecil/dibawah EMA 10 pada candle sebelumnya
3) ga ada
4) ga ada
5) Lotnya otomatis diitung berdasarkan SL dan persen risiko.
6) Ga pake trail, jadi ga ada
7) Posis baru dibuka kalau sedang tidak ada posisi, dan juga tidak trade di hari Jumat (gw tambahi rulenya)
kira2 source code nya jadi begini
Code:
//+------------------------------------------------------------------+
//| ContohEA3.mq4 |
//| Copyright © 2008, Forexindo |
//| http://www.forexindo.com |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2008, Forexindo"
#property link "http://www.forexindo.com"
extern double RiskPercent=5;
extern int StopLoss=100;
extern int TakeProfit=150;
extern string txComment="Order EA1";
extern int MagicNumber=12345;
extern int Slippage=5;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
//----
if (bolehTrade()) //kalau boleh trade
{
if (BuySignal() ) //kalau ada signal buy
{
OrderSend(Symbol(),OP_BUY,itungLot(),Ask,Slippage,Ask-StopLoss*Point,Ask+TakeProfit*Point,txComment,MagicNumber);
}
else if (SellSignal() ) //kalau ada signal sell
{
OrderSend(Symbol(),OP_SELL,itungLot(),Bid,Slippage,Bid+StopLoss*Point,Bid-TakeProfit*Point,txComment,MagicNumber);
}
}
//----
return(0);
}
//+------------------------------------------------------------------+
bool BuySignal()
{
//kalau harga close candle sebelumnya lebih besar/diatas EMA 10 pada candle sebelumnya
if (iClose(Symbol(),0,1) > iMA(Symbol(),0,10,0,MODE_EMA,PRICE_CLOSE,1) )
{
return(true);
}
else
{
return(false);
}
}
bool SellSignal()
{
//kalau harga close candle sebelumnya lebih kecil/dibawah EMA 10 pada candle sebelumnya
if (iClose(Symbol(),0,1) < iMA(Symbol(),0,10,0,MODE_EMA,PRICE_CLOSE,1) )
{
return(true);
}
else
{
return(false);
}
}
bool bolehTrade()
{
//kalau jumat, EA ga trade ; atau kalau ada order terbuka, EA juga ga trade
if (DayOfWeek()==5 || OrdersTotal()>0) { return (false); } else { return(true); }
}
double itungLot()
{
//ini untuk itung lot secara otomatis berdasarkan SL dan persen risk
double xLots=0;
xLots=NormalizeDouble(AccountBalance()*RiskPercent/100 /StopLoss / 10,1);
return (xLots);
}
logikanya jadi rapi dan jelas...
oya, sekilas mengenai operator
|| berarti atau
&& berarti dan
Hello Everyone,
ReplyDeleteI've created a list of the most recommended FOREX brokers:
1. Most Recommended Forex Broker
2. eToro - $50 min. deposit.
Here is a list of top forex tools:
1. ForexTrendy - Recommended Odds Software.
2. EA Builder - Custom Strategies Autotrading.
3. Fast FX Profit - Secret Forex Strategy.
I hope you find these lists beneficial.