STik





//+------------------------------------------------------------------+
//|                                                         STik.mq4 |
//|                                                              sem |
//|                                                          http:// |
//+------------------------------------------------------------------+
#property copyright "sem"
#property link      "http://"

#property indicator_separate_window
#property indicator_buffers 1


extern datetime            Start = 0;
extern int                 TikChart = 350;

double ExtMapBuffer1[];
       
int    mass1[120960,2];


bool    tim;
int     tickCounter;
int     Handle1;
int     Handle2;
int init()
  {
   SetIndexBuffer(0,ExtMapBuffer1);
   SetIndexStyle(0,DRAW_LINE,EMPTY,2,White);
   ArrayInitialize(mass1,0);
   IndicatorShortName("STik");
   FileOpenn();
   tickk();
   return(0);
  }
int start()
  {
     int temp;
     mass1[tickCounter,0] = Bid * MathPow(10,Digits);
     mass1[tickCounter,1] = TimeCurrent();
     temp = tickCounter;
     if (Start > 0)
     {while (mass1[temp,1] > Start){temp = LoopRevers(temp);}
       OutChart(temp);}
     else OutChart(tickCounter);
     if (tim && TimeMinute(TimeCurrent()) == 0) deinit();
     if (TimeMinute(TimeCurrent()) > 0) tim = true;
     tickCounter = Loop(tickCounter);
   return(0);
  }
void OutChart(int temp)
  {
   double a,b;
   int c,d,h = 0;
   int g = WindowFind("STik");
   string l;
   ObjectsDeleteAll(g,OBJ_VLINE);
   for(int i = 0;i < TikChart;i++)
    {ExtMapBuffer1[i] = mass1[temp,0] / MathPow(10,Digits);
     while (d >= 2){temp = LoopRevers(temp);
      if (mass1[temp,0] != mass1[LoopRevers(temp),0]) d = 0;}
     if (mass1[temp,0] == mass1[LoopRevers(temp),0])d++;
     else d = 0;
     int t = LoopRevers(temp);
     if (mass1[temp,1] < StrToTime(TimeToStr(Time[h]))) 
      {l = TimeToStr(mass1[LoopRevers(temp),1],TIME_DATE|TIME_SECONDS);
       l = StringConcatenate("PT  ",l);
       ObjectCreate(l,OBJ_VLINE,g,Time[i],mass1[LoopRevers(temp),0]);
       ObjectSet(l,OBJPROP_STYLE,STYLE_DOT);
       ObjectSet(l,OBJPROP_COLOR,Gold);
       while (mass1[LoopRevers(t),1] < StrToTime(TimeToStr(Time[h]))) h = h + 1;}
     temp = LoopRevers(temp);
     if (mass1[temp,0] == 0) i = TikChart + 1;}
   return(0);
  }
int Loop(int a)
  {a++;
   if (a >= ArrayRange(mass1,0)) a = 0;
   return(a);}
int LoopRevers(int a)
  {a--;
   if (a < 0)
    a = ArrayRange(mass1,0)-1;
   return(a);}
int tickk()
   {int a;
    static int b;
    static int c;
    a = GetTickCount();
    if (a<b) c = (4294967296-b) + a;
    else c = a-b;
    if (b == 0) c = 0;
    b = a;
    return(c);}
void FileOpenn()
   {
    int a = 0,b = 0,size = ArraySize(mass1);
    Handle1 = FileOpen("mass.bin",FILE_BIN|FILE_READ);a = GetLastError();
    Handle2 = FileOpen("var.bin",FILE_BIN|FILE_READ);b = GetLastError();
    if (Handle1 < 0 || Handle2 < 0)
     {Print(" îòñóòñòâóþò ôàéëû àðõèâîâ!!. îøèáêà ïî ìàññèâó ¹  ",a,"  ïî èíäåêñó ¹  ",b);
      ArrayInitialize(mass1,0);
      tickCounter = 0;}
    else 
     {FileReadArray(Handle1,mass1,0,size);
      tickCounter = FileReadInteger(Handle2,LONG_VALUE);
      FileClose(Handle1);
      FileClose(Handle2);
      if (mass1[LoopRevers(tickCounter),1] < TimeLocal() - 691200)
       {Print("  äàííûå óñòàðåëè, íà÷èíàþ âåäåíèå àðõèâîâ çàíîâî.");
        FileDelete("mass.bin");
        FileDelete("var.bin");
        ArrayInitialize(mass1,0);
        tickCounter = 0;}}
    return(0);
   }
int deinit()
  {
   int size= ArraySize(mass1);
   Handle1 = FileOpen("mass.bin",FILE_BIN|FILE_WRITE);
   Handle2 = FileOpen("var.bin",FILE_BIN|FILE_WRITE);
   FileWriteArray(Handle1,mass1,0,size);
   FileWriteInteger(Handle2,tickCounter,LONG_VALUE);
   FileClose(Handle1);
   FileClose(Handle2);
   tim = false;
   return(0);
  }



Sample





Analysis



Market Information Used:

Series array that contains open time of each bar


Indicator Curves created:


Implements a curve of type DRAW_LINE

Indicators Used:



Custom Indicators Used:

Order Management characteristics:

Other Features:

Uses files from the file system
It reads information from a file
It writes information to file