Импорт функций библиотеки - Библиотека Custom HLOC

17 октября 2014, 00:00
Yurij Kozhevnikov
0
155
Библиотека Custom HLOC

для MetaTrader4

Импорт функций библиотеки

Импорт всех доступных в библиотеке функций осуществляется следующим образом:
#import "\\Market\\CustomHLOC.ex4"
void SetPathLib(
   string           path             // путь к библиотеке включая имя
   );
string GetLibInfo();
void InitHistory(
   string           symbol,          // символ
   ENUM_TIMEFRAMES  timeframe        // период
   );
int uBars(
   string           symbol,          // символ
   ENUM_TIMEFRAMES  timeframe        // период
   );
datetime uTime(
   string           symbol,          // символ
   ENUM_TIMEFRAMES  timeframe,       // период
   int              shift            // сдвиг
   );
double uHigh(
   string           symbol,          // символ
   ENUM_TIMEFRAMES  timeframe,       // период
   int              shift            // сдвиг
   );
double uLow(
   string           symbol,          // символ
   ENUM_TIMEFRAMES  timeframe,       // период
   int              shift            // сдвиг
   );
double uOpen(
   string           symbol,          // символ
   ENUM_TIMEFRAMES  timeframe,       // период
   int              shift            // сдвиг
   );
double uClose(
   string           symbol,          // символ
   ENUM_TIMEFRAMES  timeframe,       // период
   int              shift            // сдвиг
   );
long uVolume(
   string           symbol,          // символ
   ENUM_TIMEFRAMES  timeframe,       // период
   int              shift            // сдвиг
   );
#import
Пример использования библиотеки в советнике:
// Откомпилируйте этот пример, поставьте на график M1 любого символа и попробуйте
//
во входном параметре поставить стандартные и нестандартные таймфреймы.
#property copyright "©Yurij Kozhevnikov"
#property link      "https://www.mql5.com/ru/users/y.a.k._/seller"
#property strict
#property description "Демонстрационное подключение библиотеки CustomHLOC"

#import "\\Market\\CustomHLOC.ex4"
void SetPathLib(
   string           path             // путь к библиотеке включая имя
   );
string GetLibInfo();
void InitHistory(
   string           symbol,          // символ
   ENUM_TIMEFRAMES  timeframe        // период
   );
int uBars(
   string           symbol,          // символ
   ENUM_TIMEFRAMES  timeframe        // период
   );
datetime uTime(
   string           symbol,          // символ
   ENUM_TIMEFRAMES  timeframe,       // период
   int              shift            // сдвиг
   );
double uHigh(
   string           symbol,          // символ
   ENUM_TIMEFRAMES  timeframe,       // период
   int              shift            // сдвиг
   );
double uLow(
   string           symbol,          // символ
   ENUM_TIMEFRAMES  timeframe,       // период
   int              shift            // сдвиг
   );
double uOpen(
   string           symbol,          // символ
   ENUM_TIMEFRAMES  timeframe,       // период
   int              shift            // сдвиг
   );
double uClose(
   string           symbol,          // символ
   ENUM_TIMEFRAMES  timeframe,       // период
   int              shift            // сдвиг
   );
long uVolume(
   string           symbol,          // символ
   ENUM_TIMEFRAMES  timeframe,       // период
   int              shift            // сдвиг
   );
#import

bool Start;
int I;
input ENUM_TIMEFRAMES TF;

int OnInit()
{
   I=0;
   Start=true;
   SetPathLib("\\Libraries\\Market\\CustomHLOC.ex4");
   InitHistory(_Symbol,TF);
   Print("Библиотека ",GetLibInfo());
   Print("Символ ",_Symbol);
   Print("Период ",EnumToString(TF));
   return(INIT_SUCCEEDED);
}

void OnTick()
{
   if (Start)
   {
      Print("iBars(PERIOD_M1)=",iBars(_Symbol,PERIOD_M1));
      Print("uBars(PERIOD_M1)=",uBars(_Symbol,PERIOD_M1));
      Print("iTime(PERIOD_M1,iBars)=",iTime(_Symbol,PERIOD_M1,iBars(_Symbol,PERIOD_M1)));
   // Здесь будет ноль, потому что shift больше максимально допустимого
      Print("uTime(PERIOD_M1,uBars-1)=",uTime(_Symbol,PERIOD_M1,iBars(_Symbol,PERIOD_M1)));
   // Здесь будет реальное значение
      Print("------------------");
      Print("iBars(",EnumToString(TF),")=",iBars(_Symbol,TF));
      Print("uBars(",EnumToString(TF),")=",uBars(_Symbol,TF));
      Print("iTime(",EnumToString(TF),",uBars-1)=",iTime(_Symbol,TF,uBars(_Symbol,TF)-1));
      Print("uTime(",EnumToString(TF),",uBars-1)=",uTime(_Symbol,TF,uBars(_Symbol,TF)-1));
      Start=false;
   }
   if (I>=200)
   {
      Print("--------------------------------------------------");
      Print("iTime(PERIOD_M1,0)=",iTime(_Symbol,PERIOD_M1,0));
      Print("iTime(PERIOD_M1,1)=",iTime(_Symbol,PERIOD_M1,1));
      Print("uTime(",EnumToString(TF),",0)=",uTime(_Symbol,TF,0));
      Print("------------------------");
      Print("iOpen(PERIOD_M1,0)=",iOpen(_Symbol,PERIOD_M1,0));
      Print("iOpen(PERIOD_M1,1)=",iOpen(_Symbol,PERIOD_M1,1));
      Print("uOpen(",EnumToString(TF),",0)=",uOpen(_Symbol,TF,0));
      Print("------------------------");
      Print("iLow(PERIOD_M1,0)=",iLow(_Symbol,PERIOD_M1,0));
      Print("iLow(PERIOD_M1,1)=",iLow(_Symbol,PERIOD_M1,1));
      Print("uLow(",EnumToString(TF),",0)=",uLow(_Symbol,TF,0));
      Print("------------------------");
      Print("iHigh(PERIOD_M1,0)=",iHigh(_Symbol,PERIOD_M1,0));
      Print("iHigh(PERIOD_M1,1)=",iHigh(_Symbol,PERIOD_M1,1));
      Print("uHigh(",EnumToString(TF),",0)=",uHigh(_Symbol,TF,0));
      Print("------------------------");
      Print("iClose(PERIOD_M1,0)=",iClose(_Symbol,PERIOD_M1,0));
      Print("iClose(PERIOD_M1,1)=",iClose(_Symbol,PERIOD_M1,1));
      Print("uClose(",EnumToString(TF),",0)=",uClose(_Symbol,TF,0));
      Print("------------------------");
      Print("iVolume(PERIOD_M1,0)=",iVolume(_Symbol,PERIOD_M1,0));
      Print("iVolume(PERIOD_M1,1)=",iVolume(_Symbol,PERIOD_M1,1));
      Print("uVolume(",EnumToString(TF),",0)=",uVolume(_Symbol,TF,0));
      I=0;
   }
   I++;
}
Поделитесь с друзьями: