Pelajaran Coding no 1


//+------------------------------------------------------------------+
//| EA BykovTrend.mq4 |
//| Dwi M ea@dwim.web.id |
//| http://ea.dwim.web.id |
//+------------------------------------------------------------------+
#property copyright "Dwi M ea@dwim.web.id"
#property link "http://ea.dwim.web.id"

extern double Lot = 1.0;
extern int Slippage = 3;
extern bool UseTrailing = true;
extern int TrailingStop = 15;

double dPoint = 0;


//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----

CekDigitBroker(); // Periksa Jumlah Digit Broker

//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
//----
int iTrade=0;
double dUptrend=0, dDowntrend=0;

dUptrend = iCustom(Symbol(),0,"BykovTrend",3,9,500,0,0);
dDowntrend = iCustom(Symbol(),0,"BykovTrend",3,9,500,1,0);

Comment("EA BykovTrend\nDwi M ea@dwim.web.id\nhttp://ea.dwim.web.id","\ndUptrend :",dUptrend,"\ndDowntrend :",dDowntrend,"\nHour :",Hour());

if(OrdersTotal()<1)
{
if((Hour()==1) && (dUptrend==1 && dDowntrend==0))
{
Buy();
}
else if((Hour()==1) && (dUptrend==0 && dDowntrend==1))
{
Sell();
}
}

for(iTrade=0;iTrade<OrdersTotal();iTrade++)
{
OrderSelect(iTrade,SELECT_BY_POS,MODE_TRADES);
if(OrderType()==OP_BUY && OrderSymbol()==Symbol())
{
if(Hour()==23)
{
OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet);
}

BuyTrailing();
}
else if(OrderType()==OP_SELL && OrderSymbol()==Symbol())
{
if(Hour()==23)
{
OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet);
}

SellTrailing();
}
}

//----
return(0);
}
//+------------------------------------------------------------------+


/* Kumpulan Library */

//Memeriksa jumlah digit broker
void CekDigitBroker()
{
if(Digits==3 || Digits==5)
{
dPoint = Point*10;
}
else if(Digits==2 || Digits==4)
{
dPoint = Point;
}
}

/* Melakukan OP Buy */
void Buy()
{
OrderSend(Symbol(),OP_BUY,Lot,Ask,Slippage,0,0,0);

}

/* Melakukan OP Sell */
void Sell()
{
OrderSend(Symbol(),OP_SELL,Lot,Bid,Slippage,0,0,0);
}

/* Melakukan Trailing untuk Open Order Buy */
void BuyTrailing()
{

if(UseTrailing==true)
{
if(Bid-OrderOpenPrice()>dPoint*TrailingStop)
{
if(OrderStopLoss()<Bid-dPoint*TrailingStop)
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-dPoint*TrailingStop,OrderTakeProfit(),0,Green);
return(0);
}
}
}

}

/* Melakukan Trailing untuk Open Order Sell */
void SellTrailing()
{

if(UseTrailing==true)
{
if((OrderOpenPrice()-Ask)>(dPoint*TrailingStop))
{
if((OrderStopLoss()>(Ask+dPoint*TrailingStop)) || (OrderStopLoss()==0))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+dPoint*TrailingStop,OrderTakeProfit(),0,Red);
return(0);
}
}
}
}