//+------------------------------------------------------------------+
//|                                               vfx_indicators.mqh |
//|                                                       Alexandr M |
//|                                               http://vfxlab.net/ |
//+------------------------------------------------------------------+
#property copyright "Alexandr M"
#property link      "http://vfxlab.net/"
#property version   "1.04"

#property strict
#define m1 PERIOD_M1
#define m5 PERIOD_M5
#define m15 PERIOD_M15
#define m30 PERIOD_M30
#define h1 PERIOD_H1
#define h4 PERIOD_H4
int _Buy = 1;
int _Sell = -1;

string symb = Symbol();

double xRSI14(int period) {
  int ap = PRICE_TYPICAL;
  if (period<=1) ap = PRICE_OPEN;
  
  return iRSI(symb,period,14,ap,0);
}

double xATR14(int period) {
   int shift = 0;
   if (period==1) shift = 1;
   
  return iATR(symb,period,14,shift);
  
}

double xMA50(int period) {
   int ap = PRICE_TYPICAL;
   if (period<=1) ap = PRICE_OPEN;
  
   return (iMA(symb,period,14,0,MODE_EMA,ap,0) - iMA(NULL,period,50,0,MODE_EMA,ap,0))/MarketInfo(symb,MODE_POINT);;
   
    
}

double xMA100(int period) {
    int ap = PRICE_TYPICAL;
    if (period<=1) ap = PRICE_OPEN;

   return (iMA(symb,period,50,0,MODE_EMA,ap,0) - iMA(NULL,period,100,0,MODE_EMA,ap,0))/MarketInfo(symb,MODE_POINT);
}

double xForce14(int period) {
    int ap = PRICE_TYPICAL;
    if (period<=1) ap = PRICE_OPEN;

    return iForce(symb,period,14,MODE_EMA,ap,0);
    
}

double xMom14(int period) {
    int ap = PRICE_TYPICAL;
    if (period<=1) ap = PRICE_OPEN;

   return iMomentum(symb,period,14,ap,0);
   
}

double xBulls(int period) {
    int ap = PRICE_TYPICAL;
    if (period<=1) ap = PRICE_OPEN;

   return iBullsPower(symb,period,14,ap,0);

}

double xBears(int period) {
    int ap = PRICE_TYPICAL;
    if (period<=1) ap = PRICE_OPEN;

   return iBearsPower(symb,period,14,ap,0);

}

double xCCI14(int period) {
    int ap = PRICE_TYPICAL;
    if (period<=1) ap = PRICE_OPEN;

   return iCCI(NULL,period,14,ap,0);
  
}

double xOsMA(int period) {
   int ap = PRICE_TYPICAL;
   if (period<=1) ap = PRICE_OPEN;

   return iOsMA(symb,period,12,26,9,ap,0);
  
}


bool between(double ivalue, double a, double b)  {
   if(ivalue >=a && ivalue < b)
      return true;
      
   return false;    
}

bool more(double ivalue, double than)  {
   if(ivalue > than)
      return true;
      
   return false;    
}

bool less(double ivalue, double than)  {
   if(ivalue < than)
      return true;
      
   return false;    
}
