//+------------------------------------------------------------------+
//| Candle.mq4 |
//| Copyright 2015, MetaQuotes Software Corp. |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2015, MetaQuotes Software Corp."
#property link "https://www.mql5.com"
#property version "1.00"
#property strict
input int TakeProfit=30;
input int StopLoss=30;
input double Lot =0.01;
input int Magic=12345;
double H4;
double H1;
double M5;
int tipe;
int open;
double Price;
double TP,SL;
int point;
datetime LastOpen;
int ticket;
double Lots;
int total;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//---
if(!GlobalVariableCheck("LastOpen"))GlobalVariableSet("LastOpen_"+Symbol(),TimeCurrent());
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
//---
if(!GlobalVariableCheck("LastOpen"))GlobalVariableSet("LastOpen_"+Symbol(),TimeCurrent());
if(MarketInfo(Symbol(),MODE_DIGITS)==3 ||MarketInfo(Symbol(),MODE_DIGITS)==5)point=10;
else point=1;
LastOpen=(datetime)GlobalVariableGet("LastOpen_"+Symbol());
Lots=Lot;
H4=iClose(Symbol(),PERIOD_H4,1);
H1=iClose(Symbol(),PERIOD_H1,1);
M5=iClose(Symbol(),PERIOD_M5,0);
// SYARAT OP
//close candle 1 jam diatas close candle 4jam dan candle 5menit diatas close candle 1 jam dan diatas close candle 4 jam
if(H1 > H4 && M5 > H1 && M5 > H4)open=1;
//close candle 1 jam dibawah close candle 4jam dan candle 5menit dibawah close candle 1 jam dan dibawah close candle 4 jam
if(H1 < H4 && M5 < H1 && M5 < H4)open=2;
//--------------------------------------------------------------------------------------------------------------------------
total=0;
for(int i=0;i<OrdersTotal();i++)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol())total++;
}
if(open==1){
tipe=0;
Price=MarketInfo(Symbol(),MODE_ASK);
TP=Price+(TakeProfit*point*Point);
SL=Price-(StopLoss*point*Point);
}
if(open==2){
tipe=1;
Price=MarketInfo(Symbol(),MODE_BID);
TP=Price-(TakeProfit*point*Point);
SL=Price+(StopLoss*point*Point);
}
if(total==0 && open !=0 && TimeCurrent() > LastOpen + 3600 ){
ticket=OrderSend(Symbol(),tipe,Lot,Price,100,SL,TP,"Candle_"+Symbol(),Magic,clrGreen);
if(ticket>0)GlobalVariableSet("LastOpen_"+Symbol(),TimeCurrent());
if(ticket<0)
{
Alert("OrderSend failed with error #",GetLastError());
}
else
Alert("OrderSend placed successfully");
}
}
//+------------------------------------------------------------------+