Tick-Tack-toe_v1.1

Author: Copyright � 2009, GoldenFox Corp.
Tick-Tack-toe_v1.1
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.1
//+-------------------------------------------------------------------+
//|                                              Tick-Tack-toe_v1.mq4 |
//|                                 Copyright © 2009, GoldenFox corp. |
//|                                                                   |
//|                     Ãðàôèê "Êðåñòèêè-Íîëèêè"                      |
//|                                                                   |
//|                                                                   |
//| Ìåòîä îòîáðàæåíèÿ ãðàôèêà îñíîâàí íà ñêðèïòå Period_Converter.mq4 |
//| âûëîæåííûé íà ñàéòå http://mql4.com/ru/                           |
//|                                                                   |
//| Äëÿ çàïóñêà ñêðèïòà íåîáõîäèìî ïåðåòàùèòü åãî íà òåêóùèé  ãðàôèê, |
//| â ïîÿâèâøåìñÿ îêíå ïàðàìåòðîâ ñêðèïòà íà âêëàäêå "Îáùèå"  óñòàíî- |
//| âèòü ãàëî÷êó "Ðàçðåøèòü èìïîðò ôóíêöèé èç DLL", è  ñíÿòü  ãàëî÷êó |
//| "Ðó÷íîå ïîäòâåðæäåíèå âûçîâà".  Íà  âêëàäêå  "Âõîäíûå  ïàðàìåòðû" |
//| óñòàíîâèòü íåîáõîäèìûå ïàðàìåòðû ðàáîòû ñêðèïòà è íàæàòü "ÎÊ".    |
//|                                                                   |
//| Âõîäíûå ïàðàìåòðû:                                                |
//|   Kletka   - ðàçìåð êëåòêè â ïóíêòàõ                              |
//|   Razvorot - êîë-âî êëåòêîê, íåîáõîäèìîå äëÿ ðàçâîðîòà            |
//|                                                                   |
//|          (çíà÷åíèÿ ïî óìîë÷àíèþ âçÿòû äëÿ ïàðû 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.1";       //âåðñèÿ èíäèêàòîðà

extern int     Kletka=50;        //ðàçìåð êëåòêè â ïóíêòàõ
extern int     RazvorotKletka=2; //êîë-âî êëåòîê íåîáõîäèìûõ äëÿ ðàçâîðîòà (øóì)

static int     Revers=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;
static int     hwnd=0;
static int     ind_period=2;  //Ïåðèîä ãðàôèêà èíäèêàòîðà
static int     i_period=0;    //ïåðèîä òåêóùåãî ãðàôèêà â ìèíóòàõ
static string  c_symbol;      //ñèìâîë òåêóùåãî ãðàôèêà
static bool    b_work=false;  //false - ïèøåì èñòîðèþ; true - ðàáîòàåì

//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
int start()
{
//---- Çàãîëîâî÷íûå äàííûå
   int    version=400;
   string c_copyright="(C)opyright 2003, MetaQuotes Software Corp.";
   c_symbol=Symbol();                           //âàëþòíàÿ ïàðà (ñèìâîë)   
   int i_unused[13];                            //ðåçåðâíûå íå èñïîëüçóåòñÿ
   i_digits=Digits;                             //êîë-âî çíàêîâ ïîñëå çàïÿòîé
   d_point=NormalizeDouble(Point,i_digits+1);   //öåíà ïóíêòà
   i_period=Period()*60;                        //ïåðèîä òåêóùåãî ãðàôèêà â ìèíóòàõ
   Revers=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();  //ïèøåì èñòîðèþ.   
   Comment("\nÑêðèïò Êðåñòèêè-Íîëèêè v",s_ver," çàïóùåí. Êëåòêà: ",Kletka,"p. Ðàçâîðîò ", Revers, "p.",
           "\nÎòêðîéòå àâòîíîìíûé ãðàôèê ",c_symbol,",M",ind_period,
           "\n(Ôàéë -> Îòêðûòü àâòîíîìíî -> ",c_symbol,",M",ind_period," -> Îòêðûòü)");
     
//---------------- îñíîâíîé öèêë
   while(IsStopped()==false) //Ðàáîòàåì ïîêà íå ïîëó÷åíà êîìàíäà çàâåðøåíèÿ
     { 
      if(RefreshRates())         //åñëè åñòü íîâàÿ êîòèðîâêà 
        {
         Kurs=(NormalizeDouble(Bid, i_digits+1)/d_point)-MathMod(NormalizeDouble(Bid, i_digits+1)/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>Revers)   //åñëè ðàçíèöà íîâîãî êóðñà è ìèíèìóìà òåêóùåãî áàðà èíäèêàòîðà áîëüøå øóìà
           {                           //òî ðàçâîðîò (íîâûé áàð ââåðõ)
            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>Revers)      //åñëè ðàçíèöà çàêðûòèÿ òåêóùåãî áàðà èíäèêàòîðà è íîâîãî êóðñà áîëüøå øóìà
           {                              //òî ðàçâîðîò (íîâûé áàð âíèç)
            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, 0, SEEK_CUR); //äëÿ èñêëþ÷åíèÿ îøèáîê ïåðåìåùåíèÿ
   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, 0, SEEK_CUR);         //äëÿ èñêëþ÷åíèÿ îøèáîê ïåðåìåùåíèÿ
   if (b_work)                               //åñëè íå ïèøåì èñòîðèþ, òî îáíîâèì èíäèêàòîð
     {
      if(hwnd==0)hwnd=WindowHandle(Symbol(),ind_period);    //íàéäåì îêíî èíäèêàòîðà
      if(hwnd!=0) PostMessageA(hwnd,WM_COMMAND,33324,0);    //åñëè åñòü îêíî, òî îáíîâèì åãî
     }   
   return(0);
}
   
void WriteBar() //ôóíêöèÿ ïåðåçàïèñè òåêóùåãî áàðà
{
   FileSeek(ExtHandle, -44, SEEK_CUR); //ïåðåìåùàåìñÿ íà íà÷àëî òåêóùåãî áàðà
   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, 0, SEEK_CUR);                           //äëÿ èñêëþ÷åíèÿ îøèáîê ïåðåìåùåíèÿ
   if (b_work)                                                 //åñëè íå ïèøåì èñòîðèþ, òî îáíîâèì èíäèêàòîð
     {
      if(hwnd==0)hwnd=WindowHandle(Symbol(),ind_period);   //íàéäåì îêíî èíäèêàòîðà
      if(hwnd!=0) PostMessageA(hwnd,WM_COMMAND,33324,0); //åñëè åñòü îêíî, òî îáíîâèì åãî
     }   
   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=NormalizeDouble(Low[i],i_digits+1)/d_point;   //ìèíèìóì áàðà â ïóíêòàõ
   i_low=i_low-MathMod(i_low,Kletka);     //íîðìàëèçóåì ìèíèìóì ê êëåòêå
   i_high=NormalizeDouble(High[i],i_digits+1)/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-ãî ñòàðåéøåãî
     { 
      if (i>0) i_time=Time[i]+i_period;   //åñëè íå ïîñëåäíèé áàð, òî áåðåì âðåìÿ çàêðûòèÿ òåêóùåãî áàðà íà ãðàôèêå
      else i_time=TimeCurrent();          //èíà÷å áåðåì òåêóùåå âðåìÿ ñåðâåðà
      if (i_open>i_close)        //åñëè ïðåäûäóùèé áàð èíäèêàòîðà âíèç
        {
         l=NormalizeDouble(Low[i],i_digits+1)/d_point;  //ìèíèìóì òåêóùåãî áàðà íà ãðàôèêå â ïóíêòàõ
         l=l-MathMod(l,Kletka);     //íîðìàëèçóåì ìèíèìóì ê êëåòêå
         if (l<i_close)             //åñëè ìèíèìóì òåêóùåãî áàðà ìåíüøå ïîñëåäíåãî áàðà èíäèêàòîðà
           {                        // òî äâèæåíèå âíèç ïðîäîëæàåòñÿ. ñîõðàíèì êîòèðîâêó           
            i_close=l;                 //çàêðûòèå áàðà èíäèêàòîðà ðàâíî ìèíèìóìó òåêóùåãî áàðà
            i_low=l;                   //ìèíèìóì áàðà èíäèêàòîðà ðàâåí ìèíèìóìó òåêóùåãî áàðà        
            WriteBar();                //ïåðåïèøåì áàð èíäèêàòîðà
           } 
         else                       //èíà÷å âîçìîæíî ðàçâîðîò 
           {
            h=NormalizeDouble(High[i],i_digits+1)/d_point; //ìàêñèìóì òåêóùåãî áàðà íà ãðàôèêå â ïóíêòàõ
            h=h-MathMod(h,Kletka);     //íîðìàëèçóåì ìàêñèìóì ê êëåòêå   
            if (h-i_close>Revers)        //åñëè ðàçíèöà ìàêñèìóìà òåêóùåãî áàðà è çàêðûòèÿ ïîñëåäíåãî áàðà èíäèêàòîðàè áîëüøå øóìà                 
              {                        //òî ðàçâîðîò ââåðõ
               i_open=i_close+Kletka;     //îòêðûòèå íîâîãî áàðà èíäèêàòîðà íà êëåòêó ââåðõ
               i_low=i_open;              //ìèíèìóì íîâîãî áàðà èíäèêàòîðà ðàâåí îòêðûòèþ ïðåäûäóùåãî áàðà èíäèêàòîðà
               i_close=h;                 //çàêðûòèå íîâîãî áàðà èíäèêàòîðà ðàâíî ìàêñèìóìó òåêóùåãî áàðà ãðàôèêà
               i_high=h;                  //ìàêñèìóì íîâîãî áàðà èíäèêàòîðà ðàâíî ìàêñèìóìó òåêóùåãî áàðà ãðàôèêà
               WriteNewBar();             //çàïèøåì íîâûé áàð èíäèêàòîðà
              } 
           }
        }
      else                       //èíà÷å ïðåäûäóùèé áàð èíäèêàòîðà ââåðõ
        {
         h=NormalizeDouble(High[i],i_digits+1)/d_point;  //ìàêñèìóì òåêóùåãî áàðà íà ãðàôèêå
         h=h-MathMod(h,Kletka);     //íîðìàëèçóåì ìàêñèìóì ê êëåòêå  
         if (h>i_close)             //åñëè ìàêñèìóì òåêóùåãî áàðà áîëüøå ïîñëåäíåãî áàðà èíäèêàòîðà
           {                        // òî äâèæåíèå ââåðõ ïðîäîëæàåòñÿ. ñîõðàíèì êîòèðîâêó           
            i_close=h;                 //çàêðûòèå áàðà èíäèêàòîðà ðàâíî ìàêñèìóìó òåêóùåãî áàðà
            i_high=h;                  //ìàêñèìóì áàðà èíäèêàòîðà ðàâåí ìàêñèìóìó òåêóùåãî áàðà
            WriteBar();                //ïåðåïèøåì áàð èíäèêàòîðà
           }
         else                       //èíà÷å âîçìîæíî ðàçâîðîò 
           {
            l=NormalizeDouble(Low[i],i_digits+1)/d_point;  //ìèíèìóì òåêóùåãî áàðà íà ãðàôèêå â ïóíêòàõ
            l=l-MathMod(l,Kletka);     //íîðìàëèçóåì ìèíèìóì ê êëåòêå 
            if (i_close-l>Revers)        // åñëè ðàçíèöà çàêðûòèÿ ïîñëåäíåãî áàðà èíäèêàòîðàè è ìèíèìóìà òåêóùåãî áàðà áîëüøå øóìà                 
              {                        //òî ðàçâîðîò âíèç
               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. Ðàçâîðîò ", Revers, "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;   // ñîõðàíèì çàêðûòèå ïîñëåäíåãî áàðà èíäèêàòîðà
   if(hwnd==0)hwnd=WindowHandle(Symbol(),ind_period);   //íàéäåì îêíî èíäèêàòîðà
   if(hwnd!=0) PostMessageA(hwnd,WM_COMMAND,33324,0); //åñëè åñòü îêíî, òî îáíîâèì åãî
   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 ---