//+-------------------------------------------------------------------+ //| 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," âûãðóæåí"); }
Sample
Analysis
Market Information Used:
Series array that contains open time of each bar
Series array that contains the lowest prices of each bar
Series array that contains the highest prices of each bar
Series array that contains close prices for each bar
Series array that contains open prices of each bar
Indicator Curves created:
Indicators Used:
Custom Indicators Used:
Order Management characteristics:
Other Features:
It writes information to file