Tick-Tack-toe_v1

Author: Copyright � 2009, GoldenFox Corp.
Tick-Tack-toe_v1
Miscellaneous
It writes information to fileIt writes information to fileIt writes information to fileIt writes information to file
0 Views
0 Downloads
0 Favorites
Tick-Tack-toe_v1
//+-------------------------------------------------------------------+
//|                                              Tick-Tack-toe_v1.mq4 |
//|                                 Copyright © 2009, GoldenFox corp. |
//|                                                                   |
//|                     Ãðàôèê "Êðåñòèêè-Íîëèêè"                      |
//|                                                                   |
//|                                                                   |
//| Ìåòîä îòîáðàæåíèÿ ãðàôèêà îñíîâàí íà ñêðèïòå Period_Converter.mq4 |
//| âûëîæåííûé íà ñàéòå http://mql4.com/ru/                           |
//|                                                                   |
//| Äëÿ çàïóñêà ñêðèïòà íåîáõîäèìî ïåðåòàùèòü åãî íà òåêóùèé  ãðàôèê, |
//| â ïîÿâèâøåìñÿ îêíå ïàðàìåòðîâ ñêðèïòà íà âêëàäêå "Îáùèå"  óñòàíî- |
//| âèòü ãàëî÷êó "Ðàçðåøèòü èìïîðò ôóíêöèé èç DLL", è  ñíÿòü  ãàëî÷êó |
//| "Ðó÷íîå ïîäòâåðæäåíèå âûçîâà".  Íà  âêëàäêå  "Âõîäíûå  ïàðàìåòðû" |
//| óñòàíîâèòü íåîáõîäèìûå ïàðàìåòðû ðàáîòû ñêðèïòà è íàæàòü "ÎÊ".    |
//|                                                                   |
//| Âõîäíûå ïàðàìåòðû:                                                |
//|   Kletka   - ðàçìåð êëåòêè â ïóíêòàõ                              |
//|   RazvorotKletka - êîë-âî êëåòêîê, íåîáõîäèìîå äëÿ ðàçâîðîòà      |
//|                                                                   |
//|          (çíà÷åíèÿ ïî óìîë÷àíèþ âçÿòû äëÿ ïàðû EUR/USD è          |
//|              5-òè çíàêîâ ïîñëå çàïÿòîé â êîòèðîâêå)               |
//|                                                                   |
//| Ïîñëå ïîÿâëåíèÿ íà òåêóùåì ãðàôèêå èíôîðìàöèè î çàïóñêå,  íåîáõî- |
//| äèìî îòêðûòü àâòîíîìíûé äâóõìèíóòíûé ãðàôèê ïî òåêóùåìó èíñòðóìå- |
//| íòó ñëåäóþùèì îáðàçîì. Â ìåíþ "Ôàéë" âûáðàòü "Îòêðûòü àâòîíîìíî", |
//| â ïîÿâèâøåìñÿ îêíå íàéòè äâóõìèíóòíûé àâòîíîìíûé ãðàôèê ïî âàøåìó |
//| èíñòðóìåíòó (íàïðèìåð EURUSD,M2) è íàæàòü êíîïêó  îòêðûòü.  Äàëåå |
//| íà îòêðûâøåìñÿ ãðàôèêå âêëþ÷èòü ðåæèì "ßïîíñêèå ñâå÷è".           |
//|                                                                   |
//| Ïîñòðîåíèå ãðàôèêà ïî èñòîðè÷åñêèì äàííûì ñîäåðæàùèìñÿ íà òåêóùåì |
//| ðàáî÷åì ãðàôèêå ïðîèçâîäèòñÿ â ñîîòâåòñòâèè ñ êëàñè÷åñêèì  îïèñà- |
//| íèåì ãðàôèêà "Êðåñòèêè-Íîëèêè". Äàëåå ãðàôèê ñòðîèòñÿ ïî  òåêóùèì |
//| êîòèðîâêàì.                                                       |
//|                                                                   |
//|  ïàðàìåòðå "Îáúåì" äëÿ êàæäîé ñâå÷è îòîáðàæàåòñÿ âûcîòà ñòîëáèêà |
//| â ïóíêòàõ, à â  êà÷åñòâå  âðåìåíè  èñïîëüçóåòñÿ  âðåìÿ  îêîí÷àíèÿ |
//| ñòîëáèêà.                                                         |
//|                                                                   |
//| Äëÿ áîëåå íàãëÿäíîãî îòîáðàæåíèÿ òåêóùåé êîòèðîâêè ïîñëåäíÿÿ ñâå- |
//| ÷à íà ãðàôèêå îòîáðàæàåòñÿ ñ òåíüþ. Áîëåå ñòàðûå ñâå÷è  îòîáðàæà- |
//| þòñÿ áåç òåíåé.                                                   |
//|                                                                   |
//+-------------------------------------------------------------------+

#property copyright "Copyright © 2009, GoldenFox Corp."
#property link      ""
#property show_inputs
#include <WinUser32.mqh>

static string s_ver="1.0"; //âåðñèÿ èíäèêàòîðà

extern int Kletka=50; //ðàçìåð êëåòêè â ïóíêòàõ
extern int RazvorotKletka=2; //øóì - êîë-âî êëåòîê, ñ÷èòàþùèõñÿ øóìàìè ðûíêà
static int     Shum=0; //Âåëè÷èíà Øóìà ïðè íàõîæäåíèè íàïðàâëåíèÿ
static int     ExtHandle=-1; //Óêàçàòåëü íà ôàéë êîòèðîâîê èíäèêàòîðà
static int     Kurs=0; //òåêóùèé êóðñ â ïóíêòàõ
static int     i_digits, i_time, i_open, i_low, i_high, i_close, i_last_close, last_fpos;
static double  d_point,d_volume=10.0;
static int     hwnd=0,cnt=0;
static int     ind_period=2; //Ïåðèîä ãðàôèêà èíäèêàòîðà
static int     i_period=0; //ïåðèîä òåêóùåãî ãðàôèêà â ìèíóòàõ
static string  c_symbol; //ñèìâîë òåêóùåãî ãðàôèêà
static bool b_work=false; //fals - ïèøåì èñòîðèþ; true - ðàáîòàåì

//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
int start()
{
//---- Çàãîëîâî÷íûå äàííûå
   int    version=400;
   string c_copyright;
   c_copyright="(C)opyright 2003, MetaQuotes Software Corp.";
   c_symbol=Symbol();
   
   int i_unused[13];
   i_digits=Digits;   
   d_point=Point;
   i_period=Period()*60; //ïåðèîä òåêóùåãî ãðàôèêà â ìèíóòàõ
   Shum=Kletka*RazvorotKletka;
  
//----  Cîçäàåì íîâûé ôàéë èíäèêàòîðà (äâóõìèíóòíûé ïî òåêóùåìó ñèìâîëó)
   ExtHandle=FileOpenHistory(c_symbol+ind_period+".hst", FILE_BIN|FILE_WRITE);
   if(ExtHandle < 0) return(-1); //åñëè íå îòêðûëñÿ òî âûõîä ñ îøèáêîé       
   //---------Çàïèñûâàåì çàãîëîâî÷íûå äàííûå
   FileWriteInteger(ExtHandle, version, LONG_VALUE);  // 4 áàéòà âåðñèÿ
   FileWriteString(ExtHandle, c_copyright, 64);       //64 áàéòà êîïèðàéò
   FileWriteString(ExtHandle, c_symbol, 12);          //12 áàéò  ñèìâîë
   FileWriteInteger(ExtHandle, ind_period, LONG_VALUE); // 4 áàéòà ïåðèîä ãðàôèêà
   FileWriteInteger(ExtHandle, i_digits, LONG_VALUE); // 4 áàéòà êîë-âî çíàêîâ ïîñëå çàïÿòîé
   FileWriteInteger(ExtHandle, 0, LONG_VALUE);        // 4 áàéòà timesign
   FileWriteInteger(ExtHandle, 0, LONG_VALUE);        // 4 áàéòà last_sync
   FileWriteArray(ExtHandle, i_unused, 0, 13);        //52 áàéò 
                                                 // âñåãî 148 áàéò 
   WriteHistory();                                    //ïèøåì èñòîðèþ.   
   if(hwnd==0)hwnd=WindowHandle(Symbol(),i_period);   //íàéäåì îêíî èíäèêàòîðà
   if(hwnd!=0) PostMessageA(hwnd,WM_COMMAND,33324,0); //åñëè åñòü îêíî, òî îáíîâèì åãî  
   Comment("\nÈíäèêàòîð Êðåñòèêè-Íîëèêè v",s_ver," çàïóùåí. Êëåòêà: ",Kletka,"p. Ðàçâîðîò ", Shum, "p.",
           "\nÎòêðîéòå àâòîíîìíûé ãðàôèê ",c_symbol,",M",ind_period,
           "\n(Ôàéë -> Îòêðûòü àâòîíîìíî -> ",c_symbol,",M",ind_period," -> Îòêðûòü)");
   RefreshRates();                                    //îáíîâèì êîòèðîâêó
   Kurs=(Bid/d_point)-MathMod(Bid/d_point,Kletka);    //íîðìàëèçóåì êóðñ ê êëåòêå
   CalculateBar();                                    //äîáàâèì òåêóùóþ êîòèðîâêó â ôàéë        
//---------------- îñíîâíîé öèêë
   while(IsStopped()==false) //Ðàáîòàåì ïîêà íå ïîëó÷åíà êîìàíäà çàâåðøåíèÿ
     { 
      if(RefreshRates())         //åñëè åñòü íîâàÿ êîòèðîâêà 
        {
         Kurs=(Bid/d_point)-MathMod(Bid/d_point,Kletka);    //íîâûé íîðìàëèçîâàííûé ê êëåòêå êóðñ
         CalculateBar();                                    //äîáàâèì òåêóùóþ êîòèðîâêó â ôàéë        
        } 
     } 
//--------------------------------------
   return(0);
}
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+

void CalculateBar() //Ôóíêöèÿ îáðàáîòêè òåêóùèõ êîòèðîâîê (êîòèðîâêè â ïóíêòàõ)
{ 
   if (i_open>i_last_close)      //åñëè îòêðûòèå òåêóùåãî áàðà èíäèêàòîðà áîëüøå çàêðûòèÿ, òî íàïð.âíèç
     {            
      if (i_last_close>Kurs)        //åñëè ïðåäûäóùåå çàêðûòèå áîëüøå íîðìàëèçîâàííîãî êóðñà
        {                           // òî äâèæåíèå âíèç ïðîäîëæàåòñÿ. ñîõðàíèì êîòèðîâêó
         i_time=TimeCurrent();         //âðåìÿ çàêðûòèÿ òåêóùåãî áàðà èíäèêàòîðà ðàâíî òåêóùåìó âðåìåíè ñåðâåðà
         i_close=Kurs;                 //çàêðûòèå òåêóùåãî áàðà èíäèêàòîðà ðàâíî êóðñó
         i_low=i_close;                //ìèíèìóì òåêóùåãî áàðà èíäèêàòîðà ðàâåí çàêðûòèþ
         i_last_close=i_low;           //ñîõðàíèì ìèíèìóì òåêóùåãî áàðà èíäèêàòîðà
         WriteBar();                   //ïåðåïèøåì òåêóùèé áàð èíäèêàòîðà
        } 
      else                          //èíà÷å ïðîâåðÿåì íà ðàçâîðîò 
        { 
         if (Kurs-i_last_close>Shum)   //åñëè ðàçíèöà íîâîãî êóðñà è çàêðûòèÿ òåêóùåãî áàðà èíäèêàòîðà áîëüøå øóìà
           {                           //òî ðàçâîðîò (íîâûé áàð ââåðõ)
            i_close=i_last_close;         //çàêðûòèå òåêóùåãî áàðà èíäèêàòîðà ðàâíî ðàâíî åãî ìèíèìóìó
            WriteBar();                   //ïåðåïèøåì òåêóùèé áàð èíäèêàòîðà
            i_open=i_last_close+Kletka;   //îòêðûòèå íîâîãî áàðà èíäèêàòîðà íà êëåòêó ââåðõ
            i_low=i_open;                 //ìèíèìóì íîâîãî áàðà èíäèêàòîðà ðàâåí åãî îòêðûòèþ
            i_close=Kurs;                 //çàêðûòèå íîâîãî áàðà èíäèêàòîðà ðàâíî êóðñó            
            i_high=i_close;               //ìàêñèìóì íîâîãî áàðà èíäèêàòîðà ðàâåí åãî çàêðûòèþ
            i_last_close=i_high;          //ñîõðàíèì ìàêñèìóì íîâîãî áàðà èíäèêàòîðà
            i_time=TimeCurrent();         //âðåìÿ çàêðûòèÿ íîâîãî áàðà èíäèêàòîðà ðàâíî òåêóùåìó âðåìåíè ñåðâåðà
            WriteNewBar();                //çàïèøåì íîâûé áàð èíäèêàòîðà
           } 
         else                          //èíà÷å øóì íå ïðåâûøåí, íàðèñóåì òåíü
           {
            if (i_close!=Kurs)         //åñëè çàêðûòèå òåêóùåãî áàðà èíäèêàòîðà íå ðàâíî êóðñó
              {                        //òî ïåðåïèøåì òåêóùèé áàð èíäèêàòîðà ñ òåíüþ
               i_close=Kurs;              //çàêðûòèå òåêóùåãî áàðà èíäèêàòîðà ðàâíî êóðñó       
               WriteBar();                //ïåðåïèøåì òåêóùèé áàð èíäèêàòîðà
              }
           } 
        }             
     }
   else                            //èíà÷å îòêðûòèå òåêóùåãî áàðà èíäèêàòîðà ìåíüøå çàêðûòèÿ (íàïð.ââåðõ)
     {            
      if (i_last_close<Kurs)           //åñëè ïðåäûäóùåå çàêðûòèå ìåíüøå íîðìàëèçîâàííîãî êóðñà    
        {                              // òî äâèæåíèå ââåðõ ïðîäîëæàåòñÿ. ñîõðàíèì êîòèðîâêó
         i_time=TimeCurrent();            //âðåìÿ çàêðûòèÿ òåêóùåãî áàðà èíäèêàòîðà ðàâíî òåêóùåìó âðåìåíè ñåðâåðà
         i_close=Kurs;                    //çàêðûòèå òåêóùåãî áàðà èíäèêàòîðà ðàâíî êóðñó           
         i_high=i_close;                  //ìàêñèìóì íîâîãî áàðà èíäèêàòîðà ðàâåí åãî çàêðûòèþ      
         i_last_close=i_high;             //ñîõðàíèì ìàêñèìóì íîâîãî áàðà èíäèêàòîðà
         WriteBar();                      //ïåðåïèøåì òåêóùèé áàð èíäèêàòîðà
        } 
      else                             //èíà÷å ïðîâåðÿåì íà ðàçâîðîò  
         if (i_last_close-Kurs>Shum)      //åñëè ðàçíèöà çàêðûòèÿ òåêóùåãî áàðà èíäèêàòîðà è íîâîãî êóðñà áîëüøå øóìà
           {                              //òî ðàçâîðîò (íîâûé áàð âíèç)
            i_close=i_last_close;         //çàêðûòèå òåêóùåãî áàðà èíäèêàòîðà ðàâíî ðàâíî åãî ìàêñèìóìó
            WriteBar();                   //ïåðåïèøåì òåêóùèé áàð èíäèêàòîðà                      
            i_open=i_close-Kletka;        //îòêðûòèå íîâîãî áàðà èíäèêàòîðà íà êëåòêó âíèç
            i_high=i_open;                //ìàêñèìóì íîâîãî áàðà èíäèêàòîðà ðàâåí îòêðûòèþ ïðåäûäóùåãî
            i_close=Kurs;                 //çàêðûòèå íîâîãî áàðà èíäèêàòîðà ðàâíî êóðñó
            i_low=i_close;                //ìèíèìóì íîâîãî áàðà èíäèêàòîðà ðàâåí åãî çàêðûòèþ
            i_last_close=i_low;           //ñîõðàíèì ìèíèìóì òåêóùåãî áàðà èíäèêàòîðà
            i_time=TimeCurrent();         //âðåìÿ çàêðûòèÿ íîâîãî áàðà èíäèêàòîðà ðàâíî òåêóùåìó âðåìåíè ñåðâåðà
            WriteNewBar();                //çàïèøåì íîâûé áàð èíäèêàòîðà                 
           }   
         else                          //èíà÷å øóì íå ïðåâûøåí, íàðèñóåì òåíü
           {                           
            if (i_close!=Kurs)            //åñëè çàêðûòèå òåêóùåãî áàðà èíäèêàòîðà íå ðàâíî êóðñó
              {                           //òî ïåðåïèøåì òåêóùèé áàð èíäèêàòîðà ñ òåíüþ
               i_close=Kurs;              //çàêðûòèå òåêóùåãî áàðà èíäèêàòîðà ðàâíî êóðñó
               WriteBar();                //ïåðåïèøåì òåêóùèé áàð èíäèêàòîðà
              }
           } 
     }
   return(0);
}
     
void WriteNewBar() //ôóíêöèÿ çàïèñè íîâîãî áàðà
{ 
   FileSeek(ExtHandle, last_fpos+44, SEEK_SET); //ïåðåìåùàåìñÿ â êîíåö ôàéëà   
   WriteBar();                                  //Çàïèñûâàåì íîâûé áàð 
   return(0);
}
   
void WriteBar() //ôóíêöèÿ ïåðåçàïèñè òåêóùåãî áàðà
{
   last_fpos=FileTell(ExtHandle); //ïîëó÷àåì ïîçèöèþ ïîñëåäíåãî áàðà â ôàéëå
   FileWriteInteger(ExtHandle, i_time, LONG_VALUE);            //4 áàéòà òåêóùåå âðåìÿ ñåðâåðà
   FileWriteDouble(ExtHandle, i_open*d_point, DOUBLE_VALUE);     //8 áàéò îòêðûòèå
   FileWriteDouble(ExtHandle, i_low*d_point, DOUBLE_VALUE);      //8 áàéò ìèíèìóì
   FileWriteDouble(ExtHandle, i_high*d_point, DOUBLE_VALUE);     //8 áàéò ìàêñèìóì
   FileWriteDouble(ExtHandle, i_close*d_point, DOUBLE_VALUE);    //8 áàéò çàêðûòèå   
   FileWriteDouble(ExtHandle, i_high-i_low, DOUBLE_VALUE);     //8 áàéò âûñîòà áàðà â ïóíêòàõ
   FileFlush(ExtHandle);                     //ñáðîñ áóôåðà â ôàéë
   FileSeek(ExtHandle, last_fpos, SEEK_SET); //ïåðåìåùàåìñÿ íà íà÷àëî çàïèñàííîãî áàð
   if (b_work) //åñëè íå ïèøåì èñòîðèþ, òî îáíîâèì èíäèêàòîð
     {
      if(hwnd==0)hwnd=WindowHandle(Symbol(),ind_period);   //íàéäåì îêíî èíäèêàòîðà
      if(hwnd!=0) PostMessageA(hwnd,WM_COMMAND,33324,0); //åñëè åñòü îêíî, òî îáíîâèì åãî
     }   
   //Print ("Çàïèñü: âðåìÿ ",TimeToStr(i_time,TIME_DATE|TIME_MINUTES|TIME_SECONDS)," i_open ",i_open," i_low ",i_low," i_high ",i_high," i_close ",i_close," ðàçìàõ ",d_volume);
   return(0);
}
  
int WriteHistory() //ôóíêöèÿ çàïèñè èñòîðèè
{ 
   b_work=false;                          //ñíîñèì ôëàã ðàáîòû (ïèøåì èñòîðèþ)
   int i=0;                               //èíäåêñ ñàìîãî ñòàðîãî áàðà íà òåêóùåì ãðàôèêå
   int t=0;                               //ñ÷åò÷èê çàïèñàííûõ áàðîâ â ôàéë èíäèêàòîðà
   int l,h;                               //ìèíèìóì è ìàêñèìóì òåêóùåãî áàðà íà òåêóùåì ãðàôèêå
   i=Bars-2;                              //áåðåì èíäåêñ ñàìîãî ñòàðîãî áàðà íà òåêóùåì ãðàôèêå   
//----------------------Ïèøåì ñàìûé ïåðâûé áàð
   i_time=Time[i]+i_period;               //âðåìÿ çàêðûòèÿ áàðà
   i_low=Low[i]/d_point;                  //ìèíèìóì áàðà â ïóíêòàõ
   i_low=i_low-MathMod(i_low,Kletka);     //íîðìàëèçóåì ìèíèìóì ê êëåòêå
   i_high=High[i]/d_point;                //ìàêñèìóì áàðà â ïóíêòàõ
   i_high=i_high-MathMod(i_high,Kletka);  //íîðìàëèçóåì ìàêñèìóì ê êëåòêå
   if (Open[i]>Close[i])                  //åñëè îòêðûòè ñàìîãî ñòàðîãî áàðà ãðàôèêà áîëüøå çàêðûòèÿ
     {                                    //òî áàð âíèç
      i_open=i_high;                         //îòêðûòèå ïåðâîãî áàðà èíäèêàòîðà ðàâíî ìàêñèìóìó áàðà ãðàôèêà
      i_close=i_low;                         //çàêðûòèå ïåðâîãî áàðà èíäèêàòîðà ðàâíî ìèíèìóìó áàðà ãðàôèêà
     }
   else                                   //èíà÷å ñàìûé ñòàðûé áàð ãðàôèêà ââåðõ
     {
      i_open=i_low;                          //îòêðûòèå ïåðâîãî áàðà èíäèêàòîðà ðàâíî ìèíèìóìó áàðà ãðàôèêà
      i_close=i_high;                        //çàêðûòèå ïåðâîãî áàðà èíäèêàòîðà ðàâíî ìàêñèìóìó áàðà ãðàôèêà
     }  
   WriteBar();                            //çàïèøåì ïåðâûé áàð
//----------------------------------------------   
   
   for (i=i-1; i>=0; i--) //äëÿ âñåx áàðîâ ãðàôèêà íà÷èíàÿ ñî 2-ãî ñòàðåéøåãî
     { 
      i_time=Time[i]+i_period;   //âðåìÿ çàêðûòèÿ òåêóùåãî áàðà íà ãðàôèêå
      if (i_open>i_close)        //åñëè ïðåäûäóùèé áàð èíäèêàòîðà âíèç
        {
         l=Low[i]/d_point;          //ìèíèìóì òåêóùåãî áàðà íà ãðàôèêå â ïóíêòàõ
         l=l-MathMod(l,Kletka);     //íîðìàëèçóåì ìèíèìóì ê êëåòêå
         if (l<i_close)             //åñëè ìèíèìóì òåêóùåãî áàðà ìåíüøå ïîñëåäíåãî áàðà èíäèêàòîðà
           {                        // òî äâèæåíèå âíèç ïðîäîëæàåòñÿ. ñîõðàíèì êîòèðîâêó           
            i_close=l;                 //çàêðûòèå áàðà èíäèêàòîðà ðàâíî ìèíèìóìó òåêóùåãî áàðà
            i_low=l;                   //ìèíèìóì áàðà èíäèêàòîðà ðàâåí ìèíèìóìó òåêóùåãî áàðà        
            WriteBar();                //ïåðåïèøåì áàð èíäèêàòîðà
           } 
         else                       //èíà÷å âîçìîæíî ðàçâîðîò 
           {
            h=High[i]/d_point;         //ìàêñèìóì òåêóùåãî áàðà íà ãðàôèêå â ïóíêòàõ
            h=h-MathMod(h,Kletka);     //íîðìàëèçóåì ìàêñèìóì ê êëåòêå   
            if (h-i_close>Shum)        //åñëè ðàçíèöà ìàêñèìóìà òåêóùåãî áàðà è çàêðûòèÿ ïîñëåäíåãî áàðà èíäèêàòîðàè áîëüøå øóìà                 
              {                        //òî ðàçâîðîò ââåðõ
               i_open=i_close+Kletka;     //îòêðûòèå íîâîãî áàðà èíäèêàòîðà íà êëåòêó ââåðõ
               i_low=i_open;              //ìèíèìóì íîâîãî áàðà èíäèêàòîðà ðàâåí îòêðûòèþ ïðåäûäóùåãî áàðà èíäèêàòîðà
               i_close=h;                 //çàêðûòèå íîâîãî áàðà èíäèêàòîðà ðàâíî ìàêñèìóìó òåêóùåãî áàðà ãðàôèêà
               i_high=h;                  //ìàêñèìóì íîâîãî áàðà èíäèêàòîðà ðàâíî ìàêñèìóìó òåêóùåãî áàðà ãðàôèêà
               WriteNewBar();             //çàïèøåì íîâûé áàð èíäèêàòîðà
              } 
           }
        }
      else                       //èíà÷å ïðåäûäóùèé áàð èíäèêàòîðà ââåðõ
        {
         h=High[i]/d_point;         //ìàêñèìóì òåêóùåãî áàðà íà ãðàôèêå
         h=h-MathMod(h,Kletka);     //íîðìàëèçóåì ìàêñèìóì ê êëåòêå  
         if (h>i_close)             //åñëè ìàêñèìóì òåêóùåãî áàðà áîëüøå ïîñëåäíåãî áàðà èíäèêàòîðà
           {                        // òî äâèæåíèå ââåðõ ïðîäîëæàåòñÿ. ñîõðàíèì êîòèðîâêó           
            i_close=h;                 //çàêðûòèå áàðà èíäèêàòîðà ðàâíî ìàêñèìóìó òåêóùåãî áàðà
            i_high=h;                  //ìàêñèìóì áàðà èíäèêàòîðà ðàâåí ìàêñèìóìó òåêóùåãî áàðà
            WriteBar();                //ïåðåïèøåì áàð èíäèêàòîðà
           }
         else                       //èíà÷å âîçìîæíî ðàçâîðîò 
           {
            l=Low[i]/d_point;          //ìèíèìóì òåêóùåãî áàðà íà ãðàôèêå â ïóíêòàõ
            l=l-MathMod(l,Kletka);     //íîðìàëèçóåì ìèíèìóì ê êëåòêå 
            if (i_close-l>Shum)        // åñëè ðàçíèöà çàêðûòèÿ ïîñëåäíåãî áàðà èíäèêàòîðàè è ìèíèìóìà òåêóùåãî áàðà áîëüøå øóìà                 
              {                        //òî ðàçâîðîò âíèç
               i_open=i_close-Kletka;     //îòêðûòèå íîâîãî áàðà èíäèêàòîðà íà êëåòêó âíèç
               i_high=i_open;             //ìàêñèìóì íîâîãî áàðà èíäèêàòîðà ðàâåí îòêðûòèþ ïðåäûäóùåãî áàðà èíäèêàòîðà
               i_close=l;                 //çàêðûòèå íîâîãî áàðà èíäèêàòîðà ðàâíî ìèíèìóìó òåêóùåãî áàðà ãðàôèêà
               i_low=l;                   //ìèíèìóì íîâîãî áàðà èíäèêàòîðà ðàâåí ìèíèìóìó òåêóùåãî áàðà ãðàôèêà
               WriteNewBar();             //çàïèøåì íîâûé áàð èíäèêàòîðà
              } 
           }
        }   
 //----------÷åðåç êàæäûå 1000 çàïèñåé  îáíîâèì îêíî èíäèêàòîðà åñëè åñòü è íàðèñóåì êîìåíòàðèé
      t++;           //óâåëè÷èì ñ÷åò÷èê çàïèñè áàðîâ èíäèêàòîðà
      if (t>1000)
        {
         t=0;
         if(hwnd==0)hwnd=WindowHandle(Symbol(),ind_period);   //íàéäåì îêíî èíäèêàòîðà
         if(hwnd!=0) PostMessageA(hwnd,WM_COMMAND,33324,0); //åñëè åñòü îêíî, òî îáíîâèì åãî
         Comment ("\nÈíäèêàòîð Êðåñòèêè-Íîëèêè v",s_ver," çàïóùåí. Êëåòêà: ",Kletka,"p. Ðàçâîðîò ", Shum, "p.",
                     "\nÎòêðîéòå àâòîíîìíûé ãðàôèê ",c_symbol,",M",ind_period,
                     "\n(Ôàéë -> Îòêðûòü àâòîíîìíî -> ",c_symbol,",M",ind_period," -> Îòêðûòü)",
                     "\n\nÏèøåì èñòîðèþ: Âðåìÿ ",TimeToStr(i_time,TIME_DATE|TIME_MINUTES|TIME_SECONDS));         
        }
     }   
   i_last_close=i_close;   // ñîõðàíèì çàêðûòèå ïîñëåäíåãî áàðà èíäèêàòîðà
   b_work=true;            //óñòàíîâèì ôëàã ðàáîòû (çàêîí÷èëè ïèñàòü èñòîðèþ: ðàáîòàåì)
   return(0);
} 
      
void deinit() //âûãðóçêà ñêðèïòà èíäèêàòîðà
{
   if(ExtHandle>=0) { FileClose(ExtHandle); ExtHandle=-1; } //çàêðîåì ôàéë èíäèêàòîðà åñëè åñòü
   Comment("\nÑêðèïò Êðåñòèêè-íîëèêè v",s_ver," âûãðóæåí");
}


Comments

Markdown supported. Formatting help

Markdown Formatting Guide

Element Markdown Syntax
Heading # H1
## H2
### H3
Bold **bold text**
Italic *italicized text*
Link [title](https://www.example.com)
Image ![alt text](image.jpg)
Code `code`
Code Block ```
code block
```
Quote > blockquote
Unordered List - Item 1
- Item 2
Ordered List 1. First item
2. Second item
Horizontal Rule ---