// Only EURUSD 1H
int durum=0;
extern double HedefLot=1.0; // Lots
extern double Lotsinc=0.10;  // lots Inc
extern double Maxlots=50;   
extern int    OrderSayisi=5;

extern double HedefKar=97.00;  // TakeProfit
extern double HedefZarar=125.00; // StopLost
extern double TrailingStop       = 0;

extern int BuyMagic=11416;
extern int SellMagic=11418;
// TrendALexCud Paramaters 
extern int MANUAL_Tick=0;  //Variable for initiation recalculation!!!!! Instead of a price tic and only
extern int maTrendPeriod_1 = 5;
extern int maTrendPeriod_2 = 8;
extern int maTrendPeriod_3 = 13;
extern int maTrendPeriod_4 = 21;
extern int maTrendPeriod_5 = 34;
double Lots=0;
int m,m1,m2,m3,m4,m5,m6;
double v4=0;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
double MaH11,  MaH41, MaD11, MaH1pr1, MaH4pr1, MaD1pr1;
double MaH12,  MaH42, MaD12, MaH1pr2, MaH4pr2, MaD1pr2;
double MaH13,  MaH43, MaD13, MaH1pr3, MaH4pr3, MaD1pr3;
double MaH14,  MaH44, MaD14, MaH1pr4, MaH4pr4, MaD1pr4;
double MaH15,  MaH45, MaD15, MaH1pr5, MaH4pr5, MaD1pr5;
 string H11, H41, D11;
 string H12, H42, D12;
 string H13, H43, D13;
 string H14, H44, D14;
 string H15, H45, D15;
 color co11 , co41 , co61;
 color co12 , co42 , co62;
 color co13 , co43 , co63;
 color co14 , co44 , co64;
 color co15 , co45 , co65;
 
double u1x5, u1x8, u1x13, u1x21, u1x34;
double u2x5, u2x8, u2x13, u2x21, u2x34;
double u3x5, u3x8, u3x13, u3x21, u3x34;
double u1ac, u2ac, u3ac;

double d1x5, d1x8, d1x13, d1x21, d1x34;
double d2x5, d2x8, d2x13, d2x21, d2x34;
double d3x5, d3x8, d3x13, d3x21, d3x34;
double d1ac, d2ac, d3ac;
int prevtime;

double Points;

   int ticket,k,i,j,limit,hhb,llb,hhb1,llb1;
  
int init()  {
   // İlk değerler Set ediliyorki ikinci sinyalde karar verir.
   Points = MarketInfo (Symbol(), MODE_POINT);
  if (Maxlots==0) Maxlots=MarketInfo(Symbol(),MODE_MAXLOT);

 return;
}
void CheckForClose()
  {
   for(int i=0;i<OrdersTotal();i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false)        break;
      if(OrderSymbol()!=Symbol()) continue;
      
      if ((OrderType()==OP_BUY) && (OrderMagicNumber()==BuyMagic))
if(TrailingStop>0)  
              {                
               if(Bid-OrderOpenPrice()>Points*TrailingStop)
                 {
                  if(OrderStopLoss()<Bid-Points*TrailingStop)
                    {
                     ticket=OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Points*TrailingStop,OrderTakeProfit(),0,Red);
                     Print("Bilet=",ticket);
                     return(0);
                    }
                 }
              }        
        
        
      if((OrderType()==OP_SELL) && (OrderMagicNumber()==SellMagic))
if(TrailingStop>0)  
              {              
               if((OrderOpenPrice()-Ask)>(Points*TrailingStop))
                 {
                  if(OrderStopLoss()==0.0 || 
                     OrderStopLoss()>(Ask+Points*TrailingStop))
                    {
                     OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Points*TrailingStop,OrderTakeProfit(),0,Red);
                     return(0);
                    }
                 }
              }     
     }
 
 
  }


int HepsiniKapat(int durum)
{

  int total = OrdersTotal();
   for(int i=total-1;i>=0;i--)
  {

      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false)        break;
      if(OrderSymbol()!=Symbol()) continue;
      if ((durum==1) && (OrderMagicNumber()==BuyMagic) && (OrderType()==OP_BUY))  OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), 5, Red );
      if ((durum==2) && (OrderMagicNumber()==SellMagic)&& (OrderType()==OP_SELL)) OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), 5, Red );
    }
  
  return(0);
}

int Buyvar(string durum)
{
  int sonuc=0;
  int total = OrdersTotal();
   for(int i=total-1;i>=0;i--)
    {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false)        break;
      if(OrderSymbol()!=Symbol()) continue;
      if (OrderMagicNumber()==BuyMagic) sonuc=1; 
    }
    return(sonuc);
}

int Sellvar(string durum)
{
  int sonuc=0;
  int total = OrdersTotal();
   for(int i=total-1;i>=0;i--)
    {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false)        break;
      if(OrderSymbol()!=Symbol()) continue;
     if (OrderMagicNumber()==SellMagic) sonuc=1; 
    }
return(sonuc);    
}

int start()
 {
 if (TrailingStop>0) CheckForClose();
  int sonucx=0;
  // if(Bars<100 || IsTradeAllowed()==false) return;
   if(prevtime == Time[0]) return(0);
     prevtime = Time[0]; 
//Print("Max Lost=",Maxlots);

   int v1=Alexcud();
//Print("Hedef Lots=",HedefLot);
    if ((v1==1) && (Buyvar(Symbol())==0)) // Buy  sinyali Geldi. ve Buy Emri Yok o zaman Buy Emri Giriniz.
       {ticket=OrderSend(Symbol(),OP_BUY,HedefLot,Ask,3,Ask-HedefZarar*Point,Ask+HedefKar*Point,"HaskayaFxTrendAlexcutBuy"+Symbol(),BuyMagic,0,Green);
        Print(" Buy Hata Kod=",GetLastError());
      HedefLot=HedefLot+Lotsinc;
      if (HedefLot>=50) Lotsinc=Maxlots;

       }
    if ((v1==2) && (Sellvar(Symbol())==0)) // Sell  sinyali Geldi. ve Sell Emri Yok o zaman Sell Emri Giriniz.
          {ticket=OrderSend(Symbol(),OP_SELL,HedefLot,Bid,3,Bid+HedefZarar*Point,Bid-HedefKar*Point,"HaskayaFxTrendAlexcutSell"+Symbol(),SellMagic,0,Green);
            Print(" Sell Hata Kod=",GetLastError());
      HedefLot=HedefLot+Lotsinc;
      if (HedefLot>=50) Lotsinc=Maxlots;

          }

//  Print("Hedef Lots Son =",HedefLot);
    

    return(0);
}
// Karar Fonksiyonları

int Alexcud()
  {
/*
  m1=GlobalVariableGet("Signal_EURUSD"); if(m1>0){m1--;  GlobalVariableSet("Signal_EURUSD",m1);} if(m1<0){m1++;  GlobalVariableSet("Signal_EURUSD",m1);}
  m2=GlobalVariableGet("Signal_USDCHF"); if(m2>0){m2--;  GlobalVariableSet("Signal_USDCHF",m2);} if(m2<0){m2++;  GlobalVariableSet("Signal_USDCHF",m2);}
  m3=GlobalVariableGet("Signal_USDJPY"); if(m3>0){m3--;  GlobalVariableSet("Signal_USDJPY",m3);} if(m3<0){m3++;  GlobalVariableSet("Signal_USDJPY",m3);}
   m=GlobalVariableGet("Signal_GBPUSD"); if(m>0) {m--;   GlobalVariableSet("Signal_GBPUSD",m );} if(m<0) {m++;   GlobalVariableSet("Signal_GBPUSD",m );}
  m4=GlobalVariableGet("Signal_EURJPY"); if(m4>0){m4--;  GlobalVariableSet("Signal_EURJPY",m4);} if(m4<0){m4++;  GlobalVariableSet("Signal_EURJPY",m4);}
  m5=GlobalVariableGet("Signal_GBPJPY"); if(m5>0){m5--;  GlobalVariableSet("Signal_GBPJPY",m5);} if(m5<0){m5++;  GlobalVariableSet("Signal_GBPJPY",m5);}
  m6=GlobalVariableGet("Signal_AUDUSD"); if(m6>0){m6--;  GlobalVariableSet("Signal_AUDUSD",m6);} if(m6<0){m6++;  GlobalVariableSet("Signal_AUDUSD",m6);}
 */ 
     
     int start,j;
     j=ObjectGet("start",OBJPROP_TIME1);     
    if(GetLastError()==0) start=iBarShift(NULL,0,j,False); else start=0;
     
     MaH11=iMA(NULL,PERIOD_H1,maTrendPeriod_1,0,MODE_SMA,PRICE_CLOSE,start);    MaH1pr1=iMA(NULL,PERIOD_H1,maTrendPeriod_1,0,MODE_SMA,PRICE_CLOSE,start+1);
     MaH12=iMA(NULL,PERIOD_H1,maTrendPeriod_2,0,MODE_SMA,PRICE_CLOSE,start);    MaH1pr2=iMA(NULL,PERIOD_H1,maTrendPeriod_2,0,MODE_SMA,PRICE_CLOSE,start+1);
     MaH13=iMA(NULL,PERIOD_H1,maTrendPeriod_3,0,MODE_SMA,PRICE_CLOSE,start);   MaH1pr3=iMA(NULL,PERIOD_H1,maTrendPeriod_3,0,MODE_SMA,PRICE_CLOSE,start+1);
     MaH14=iMA(NULL,PERIOD_H1,maTrendPeriod_4,0,MODE_SMA,PRICE_CLOSE,start);   MaH1pr4=iMA(NULL,PERIOD_H1,maTrendPeriod_4,0,MODE_SMA,PRICE_CLOSE,start+1);
     MaH15=iMA(NULL,PERIOD_H1,maTrendPeriod_5,0,MODE_SMA,PRICE_CLOSE,start);   MaH1pr5=iMA(NULL,PERIOD_H1,maTrendPeriod_5,0,MODE_SMA,PRICE_CLOSE,start+1);
    
     MaH41=iMA(NULL,PERIOD_H4,maTrendPeriod_1 ,0,MODE_SMA,PRICE_CLOSE,start);   MaH4pr1=iMA(NULL,PERIOD_H4,maTrendPeriod_1,0,MODE_SMA,PRICE_CLOSE,start+1);
     MaH42=iMA(NULL,PERIOD_H4,maTrendPeriod_2,0,MODE_SMA,PRICE_CLOSE,start);    MaH4pr2=iMA(NULL,PERIOD_H4,maTrendPeriod_2,0,MODE_SMA,PRICE_CLOSE,start+1);
     MaH43=iMA(NULL,PERIOD_H4,maTrendPeriod_3,0,MODE_SMA,PRICE_CLOSE,start);   MaH4pr3=iMA(NULL,PERIOD_H4,maTrendPeriod_3,0,MODE_SMA,PRICE_CLOSE,start+1);
     MaH44=iMA(NULL,PERIOD_H4,maTrendPeriod_4,0,MODE_SMA,PRICE_CLOSE,start);   MaH4pr4=iMA(NULL,PERIOD_H4,maTrendPeriod_4,0,MODE_SMA,PRICE_CLOSE,start+1);
     MaH45=iMA(NULL,PERIOD_H4,maTrendPeriod_5,0,MODE_SMA,PRICE_CLOSE,start);   MaH4pr5=iMA(NULL,PERIOD_H4,maTrendPeriod_5,0,MODE_SMA,PRICE_CLOSE,start+1);
     
     MaD11=iMA(NULL,PERIOD_D1,maTrendPeriod_1,0,MODE_SMA,PRICE_CLOSE,start);    MaD1pr1=iMA(NULL,PERIOD_D1,maTrendPeriod_1,0,MODE_SMA,PRICE_CLOSE,start+1);
     MaD12=iMA(NULL,PERIOD_D1,maTrendPeriod_2,0,MODE_SMA,PRICE_CLOSE,start);    MaD1pr2=iMA(NULL,PERIOD_D1,maTrendPeriod_2,0,MODE_SMA,PRICE_CLOSE,start+1);
     MaD13=iMA(NULL,PERIOD_D1,maTrendPeriod_3,0,MODE_SMA,PRICE_CLOSE,start);   MaD1pr3=iMA(NULL,PERIOD_D1,maTrendPeriod_3,0,MODE_SMA,PRICE_CLOSE,start+1);
     MaD14=iMA(NULL,PERIOD_D1,maTrendPeriod_4,0,MODE_SMA,PRICE_CLOSE,start);   MaD1pr4=iMA(NULL,PERIOD_D1,maTrendPeriod_4,0,MODE_SMA,PRICE_CLOSE,start+1);
     MaD15=iMA(NULL,PERIOD_D1,maTrendPeriod_5,0,MODE_SMA,PRICE_CLOSE,start);   MaD1pr5=iMA(NULL,PERIOD_D1,maTrendPeriod_5,0,MODE_SMA,PRICE_CLOSE,start+1);
     
   //  MaH4=iMA(NULL,PERIOD_M30,34,0,MODE_SMA,PRICE_CLOSE,0);
     if (MaH11 < MaH1pr1)   u1x5 = 0; d1x5 = 1;
     if (MaH11 > MaH1pr1)   u1x5 = 1; d1x5 = 0; 
     if (MaH11 == MaH1pr1)  u1x5 = 0; d1x5 = 0;           
     if (MaH41 < MaH4pr1)   u2x5 = 0; d2x5 = 1;            
     if (MaH41 > MaH4pr1)   u2x5 = 1; d2x5 = 0;
     if (MaH41 == MaH4pr1)  u2x5 = 0; d2x5 = 0;            
     if (MaD11 < MaD1pr1)   u3x5 = 0; d3x5 = 1;            
     if (MaD11 > MaD1pr1)   u3x5 = 1; d3x5 = 0;
     if (MaD11 == MaD1pr1)  u3x5 = 0; d3x5 = 0;  
     
     if (MaH12 < MaH1pr2)   u1x8 = 0; d1x8 = 1;
     if (MaH12 > MaH1pr2)   u1x8 = 1; d1x8 = 0;
     if (MaH12 == MaH1pr2)  u1x8 = 0; d1x8 = 0;            
     if (MaH42 < MaH4pr2)   u2x8 = 0; d2x8 = 1;            
     if (MaH42 > MaH4pr2)   u2x8 = 1; d2x8 = 0; 
     if (MaH42 == MaH4pr2)  u2x8 = 0; d2x8 = 0;           
     if (MaD12 < MaD1pr2)   u3x8 = 0; d3x8 = 1;             
     if (MaD12 > MaD1pr2)   u3x8 = 1; d3x8 = 0;
     if (MaD12 == MaD1pr2)  u3x8 = 0; d3x8 = 0; 
     
     if (MaH13 < MaH1pr3){H13 = " V "; co13 = Red;    u1x13 = 0; d1x13 = 1;}
     if (MaH13 > MaH1pr3){H13 = " /\\ "; co13 = Blue; u1x13 = 1; d1x13 = 0;}
     if (MaH13 ==MaH1pr3){H13 = " 0 "; co13 = Green;  u1x13 = 0; d1x13 = 0;}              
     if (MaH43 < MaH4pr3){H43 = " V "; co43 = Red; u2x13 = 0; d2x13 = 1;}            
     if (MaH43 > MaH4pr3){H43 = " /\\ "; co43 = Blue; u2x13 = 1; d2x13 = 0;}
     if (MaH43 ==MaH4pr3){H43 = " 0 "; co43 = Green;  u2x13 = 0; d2x13 = 0;}            
     if (MaD13 < MaD1pr3){D13 = " V "; co63 = Red; u3x13 = 0; d3x13 = 1;}            
     if (MaD13 > MaD1pr3){D13 = " /\\ "; co63 = Blue; u3x13 = 1; d3x13 = 0;}
     if (MaD13 ==MaD1pr3){D13 = " 0 "; co63 = Green;  u3x13 = 0; d3x13 = 0;}
     
     if (MaH14 < MaH1pr4){H14 = " V "; co14 = Red;    u1x21 = 0; d1x21 = 1;}
     if (MaH14 > MaH1pr4){H14 = " /\\ "; co14 = Blue; u1x21 = 1; d1x21 = 0;}
     if (MaH14 == MaH1pr4){H14 = " 0 "; co14 = Green; u1x21 = 0; d1x21 = 0;}              
     if (MaH44 < MaH4pr4){H44 = " V "; co44 = Red; u2x21 = 0; d2x21 = 1;}            
     if (MaH44 > MaH4pr4){H44 = " /\\ "; co44 = Blue; u2x21 = 1; d2x21 = 0;}
     if (MaH44 == MaH4pr4){H44 = " 0 "; co44 = Green; u2x21 = 0; d2x21 = 0;}            
     if (MaD14 < MaD1pr4){D14 = " V "; co64 = Red; u3x21 = 0; d3x21 = 1;}            
     if (MaD14 > MaD1pr4){D14 = " /\\ "; co64 = Blue; u3x21 = 1; d3x21 = 0;} 
     if (MaD14 == MaD1pr4){D14 = " 0 "; co64 = Green; u3x21 = 0; d3x21 = 0;}  
     
     if (MaH15 < MaH1pr5){H15 = " V "; co15 = Red;    u1x34 = 0; d1x34 = 1;}
     if (MaH15 > MaH1pr5){H15 = " /\\ "; co15 = Blue; u1x34 = 1; d1x34 = 0;} 
     if (MaH15 == MaH1pr5){H15 = " 0 "; co15 = Green; u1x34 = 0; d1x34 = 0;}             
     if (MaH45 < MaH4pr5){H45 = " V "; co45 = Red;    u2x34 = 0; d2x34 = 1;}            
     if (MaH45 > MaH4pr5){H45 = " /\\ "; co45 = Blue; u2x34 = 1; d2x34 = 0;}
     if (MaH45 == MaH4pr5){H45 = " 0 "; co45 = Green; u2x34 = 0; d2x34 = 0;}            
     if (MaD15 < MaD1pr5){D15 = " V "; co65 = Red;    u3x34 = 0; d3x34 = 1;}            
     if (MaD15 > MaD1pr5){D15 = " /\\ "; co65 = Blue; u3x34 = 1; d3x34 = 0;}
     if (MaD15 == MaD1pr5){D15 = " 0 "; co65 = Green; u3x34 = 0; d3x34 = 0;}                      
             
//----------------------------------------------------------------------------
// AC Bil Vil

double  ac  = iAC(NULL, 60, 0);
double  ac1 = iAC(NULL, 60, 1);
double  ac2 = iAC(NULL, 60, 2);
double  ac3 = iAC(NULL, 60, 3);
//double  ac4 = iAO(NULL, 0, 4);             
string ach11;
color acco11;

if ((ac1>ac2 && ac2>ac3 && ac<0 && ac>ac1) || (ac>ac1 && ac1>ac2 && ac>0)) 
{ach11 = "/\\ " ; acco11 = Blue; u1ac = 3; d1ac = 0;} 
if ((ac1<ac2 && ac2<ac3 && ac>0 && ac<ac1) || (ac<ac1 && ac1<ac2 && ac<0)) 
{ach11 = "V " ; acco11 = Red; u1ac = 0; d1ac = 3;}
if ((((ac1<ac2 || ac2<ac3) && ac<0 && ac>ac1) || (ac>ac1 && ac1<ac2 && ac>0))||
(((ac1>ac2 || ac2>ac3) && ac>0 && ac<ac1) || (ac<ac1 && ac1>ac2 && ac<0)))
{ach11 = "0 " ; acco11 = Green; u1ac = 0; d1ac = 0;}    

  
double  ac03  = iAC(NULL, 1440, 0);
double  ac13 = iAC(NULL, 1440, 1);
double  ac23 = iAC(NULL, 1440, 2);
double  ac33 = iAC(NULL, 1440, 3);
//double  ac4 = iAO(NULL, 0, 4);             
string ach13;
color acco13;

if ((ac13>ac23 && ac23>ac33 && ac03<0 && ac03>ac13) || (ac03>ac13 && ac13>ac23 && ac03>0)) 
{ach13 = "/\\ " ; acco13 = Blue; u3ac = 3; d3ac = 0;}     
if ((ac13<ac23 && ac23<ac33 && ac03>0 && ac03<ac13) || (ac03<ac13 && ac13<ac23 && ac03<0)) 
{ach13 = "V " ; acco13 = Red; u3ac = 0; d3ac = 3;}     
if ((((ac13<ac23 || ac23<ac33) && ac03<0 && ac03>ac13) || (ac03>ac13 && ac13<ac23 && ac03>0))||
(((ac13>ac23 || ac23>ac33) && ac03>0 && ac03<ac13) || (ac03<ac13 && ac13>ac23 && ac03<0)))
{ach13 = "0 " ; acco13 = Green; u3ac = 0; d3ac = 0;}

double  ac02  = iAC(NULL, 240, 0);
double  ac12 = iAC(NULL, 240, 1);
double  ac22 = iAC(NULL, 240, 2);
double  ac32 = iAC(NULL, 240, 3);
//double  ac4 = iAO(NULL, 0, 4);             
string ach12;
color acco12;
if ((ac12>ac22 && ac22>ac32 && ac02<0 && ac02>ac12) || (ac02>ac12 && ac12>ac22 && ac02>0)) 
{ach12 = "/\\ " ; acco12 = Blue; u2ac = 3; d2ac = 0;}     
if ((ac12<ac22 && ac22<ac32 && ac02>0 && ac02<ac12) || (ac02<ac12 && ac12<ac22 && ac02<0)) 
{ach12 = "V " ; acco12 = Red; u2ac = 0; d2ac = 3;}     
if ((((ac12<ac22 || ac22<ac32) && ac02<0 && ac02>ac12) || (ac02>ac12 && ac12<ac22 && ac02>0))||
(((ac12>ac22 || ac22>ac32) && ac02>0 && ac02<ac12) || (ac02<ac12 && ac12>ac22 && ac02<0)))
{ach12 = "0 " ; acco12 = Green; u2ac = 0; d2ac = 0;}
 
  double uitog1 = (u1x5 + u1x8 + u1x13 + u1x21 + u1x34 + u1ac) * 12.5;
  double uitog2 = (u2x5 + u2x8 + u2x13 + u2x21 + u2x34 + u2ac) * 12.5;
  double uitog3 = (u3x5 + u3x8 + u3x13 + u3x21 + u3x34 + u3ac) * 12.5;
 
  double ditog1 = (d1x5 + d1x8 + d1x13 + d1x21 + d1x34 + d1ac) * 12.5;
  double ditog2 = (d2x5 + d2x8 + d2x13 + d2x21 + d2x34 + d2ac) * 12.5;
  double ditog3 = (d3x5 + d3x8 + d3x13 + d3x21 + d3x34 + d3ac) * 12.5;
  
  string hr1, hr2, hr3, hr4, hr5,hr6;
  string dhr1, dhr2, dhr3, dhr4, dhr5, dhr6;
  
  string txt;
  txt = "Beklemekte Yarar Var!..";
  if (uitog1 >= 75 && uitog2 >= 75 && uitog3 >= 75 )
    {
//     txt = "Mükemmel Alış -BUY- AlexCud";
      return(1);
 }
  
  if (ditog1 >= 75 && ditog2 >= 75 && ditog3 >= 75)
  {
      return(2);
       txt = "Mükemmel Satış -SELL- AlexCud";
   
  }
  
   return(0);
  }

