//Version January 7, 2007 Final //+------------------------------------------------------------------+ //| JJMASeries0(Exp).mqh | //| JMA code: Copyright © 1998, Jurik Research | //| http://www.jurikres.com | //| MQL4 JJMASeries0: Copyright © 2006, Nikolay Kositsin | //| Khabarovsk, farria@mail.redcom.ru | //+------------------------------------------------------------------+ /* +SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS <<< Ôóíêöèÿ JJMASeries0() >>> SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS+ +-----------------------------------------+ <<< Íàçíà÷åíèå >>> +----------------------------------------------------+ Ôóíêöèÿ JJMASeries0() ïðåäíàçíà÷åíà äëÿ èñïîëüçîâàíèÿ àëãîðèòìà JMA ïðè íàïèñàíèè ýêñïåðòîâ, äëÿ çàìåíû ðàñ÷¸òà êëàññè÷åñêîãî óñðåäíåíèÿ íà ýòîò àëãîðèòì. Ôàéë ñëåäóåò ïîëîæèòü â ïàïêó MetaTrader\experts\include\ Ñëåäóåò ó÷åñòü, ÷òî åñëè nJMA0.bar áîëüøå, ÷åì nJMA0.MaxBar, òî ôóíêöèÿ JJMASeries0()âîçâðàùàåò çíà÷åíèå ðàâíîå íóëþ! íà ýòîì áàðå! È, ñëåäîâàòåëüíî, òàêîå çíà÷åíèå íå ìîæåò ïðèñóòñòâîâàòü â çíàìåíàòåëå êàêîé-ëèáî äðîáè â ðàñ÷¸òå èíäèêàòîðà! Ýòà âåðñèÿ ôóíêöèè JJMASeries0() íå ïîääåðæèâàåò ýêñïåðòîâ ïðè å¸ èñïîëüçîâàíèè â ïîëüçîâàòåëüñêèõ èíäèêàòîðàõ, ê êîòîðûì îáðàùàåòñÿ ýêñïåðò. Ýòà âåðñèÿ ôóíêöèè JJMASeries0() ïîääåðæèâàåò ýêñïåðòîâ ïðè å¸ èñïîëüçîâàíèè â êîäå èíäèêàòîðà, êîòîðûé ïîëíîñòüþ ïîìåù¸í â êîä ýêñïåðòà ñ ñîõðàíåíèåì âñåõ îïåðàòîðîâ öèêëà è ïåðåìåííûõ! Ïðè ýêñïåðòîâ ñ èñïîëüçîâàíèåì ôóíêöèè JJMASeries0(), íå ðåêîìåíäóåòñÿ ïåðåìåííûì äàâàòü èìåíà íà÷èíàþùèåñÿ ñ nJMA0.... èëè dJMA0.... Ôóíêöèÿ JJMASeries0()ìîæåò áûòü èñïîëüçîâàíà âî âíóòðåííåì êîäå äðóãèõ ïîëüçîâàòåëüñêèõ ôóíêöèé, íî ïðè ýòîì ñëåäóåò ó÷èòûâàòü òîò ôàêò, ÷òî â êàæäîì îáðàùåíèè ê òàêîé ïîëüçîâàòåëüñêîé ôóíêöèè ó êàæäîãî îáðàùåíèÿ ê JJMASeries0() äîëæåí áûòü ñâîé óíèêàëüíûé íîìåð nJMA0.number. Ýòó âåðñèþ ôóíêöèè JJMASeries0() ñëåäóåò ïðèìåíÿòü â ýêñïåðòàõ, ðàáîòàþùèõ ñ íóëåâûì áàðîì. Ôóíêöèÿ JJMASeries0() ìîæåò áûòü èñïîëüçîâàíà âî âíóòðåííåì êîäå äðóãèõ ïîëüçîâàòåëüñêèõ ôóíêöèé, íî ïðè ýòîì ñëåäóåò ó÷èòûâàòü òîò ôàêò, ÷òî â êàæäîì îáðàùåíèè ê òàêîé ïîëüçîâàòåëüñêîé ôóíêöèè ó êàæäîãî îáðàùåíèÿ ê JJMASeries0() äîëæåí áûòü ñâîé óíèêàëüíûé íîìåð (nJMA0.number). +-------------------------------------+ <<< Âõîäíûå ïàðàìåòðû >>> +-------------------------------------------------+ nJMA0.number - ïîðÿäêîâûé íîìåð îáðàùåíèÿ ê ôóíêöèè JJMASeries0(). (0, 1, 2, 3 è.ò.ä....) nJMA0.dinJ - ïàðàìåòð, ïîçâîëÿþùèé èçìåíÿòü ïàðàìåòðû nJMA0.Length è nJMA0.Phase íà êàæäîì áàðå. 0 - çàïðåò èçìåíåíèÿ ïàðàìåòðîâ, ëþáîå äðóãîå çíà÷åíèå - ðàçðåøåíèå. nJMA0.MaxBar - Ìàêñèìàëüíîå çíà÷åíèå, êîòîðîå ìîæåò ïðèíèìàòü íîìåð ðàññ÷èòûâàåìîãî áàðà(bar). Îáû÷íî ðàâíî Bars-1-period; Ãäå "period" - ýòî êîëè÷åñòâî áàðîâ, íà êîòîðûõ èñõîäíàÿ âåëè÷èíà dJMA0.series íå ðàññ÷èòûâàåòñÿ; nJMA0.limit - Êîëè÷åñòâî åù¸ íå ïîäñ÷èòàííûõ áàðîâ èëè íîìåð ïðåäïîñëåäíåãî íåïîñ÷èòàííîãî áàðà, nJMA0.Length - ãëóáèíà ñãëàæèâàíèÿ nJMA0.Phase - ïàðàìåòð, èçìåíÿþùèéñÿ â ïðåäåëàõ -100 ... +100, âëèÿåò íà êà÷åñòâî ïåðåõîäíîãî ïðîöåññà; dJMA0.series - Âõîäíîé ïàðàìåòð, ïî êîòîðîìó ïðîèçâîäèòñÿ ðàñ÷¸ò ôóíêöèè JJMASeries0; nJMA0.bar - íîìåð ðàññ÷èòûâàåìîãî áàðà, ïàðàìåòð äîëæåí èçìåíÿòüñÿ îïåðàòîðîì öèêëà îò ìàêñèìàëüíîãî çíà÷åíèÿ ê íóëåâîìó. Ïðè÷¸ì åãî ìàêñèìàëüíîå çíà÷åíèå âñåãäà äîëæíî ðàâíÿòüñÿ çíà÷åíèþ ïàðàìåòðà nJMA0.limit!!! +------------------------------------+ <<< Âûõîäíûå ïàðàìåòðû >>> +-------------------------------------------------+ JJMASeries0()- çíà÷åíèå ôóíêöèè dJMA0.JMA. Ïðè çíà÷åíèÿõ nJMA0.bar áîëüøå ÷åì nJMA0.MaxBar-30 ôóíêöèÿ JJMASeries0() âñåãäà âîçâðàùàåò íîëü!!! nJMA0.reset - ïàðàìåòð, âîçâðàùàþùèé ïî ññûëêå çíà÷åíèå, îòëè÷åííîå îò 0 , åñëè ïðîèçîøëà îøèáêà â ðàñ÷¸òå ôóíêöèè, 0, åñëè ðàñ÷¸ò ïðîø¸ë íîðìàëüíî. Ýòîò ïàðàìåòð ìîæåò áûòü òîëüêî ïåðåìåííîé, íî íå çíà÷åíèåì!!!! +-----------------------------------+ <<< Èíèöèàëèçàöèÿ ôóíêöèè >>> +-----------------------------------------------+ Ïåðåä îáðàùåíèÿìè ê ôóíêöèè JJMASeries0() â áëîêå èíèöèàëèçàöèè ýêñïåðòà ñëåäóåò èçìåíèòü ðàçìåðû âíóòðåííèõ áóôåðíûõ ïåðåìåííûõ ôóíêöèè, äëÿ ýòîãî íåîáõîäèìî îáðàòèòüñÿ ê ôóíêöèè JJMASeries0() ÷åðåç âñïîìîãàòåëüíóþ ôóíêöèþ JJMASeries0Resize() ñî ñëåäóþùèìè ïàðàìåòðàìè: JJMASeries0Resize(nJMA0.number+1); íåîáõîäèìî ñäåëàòü ïàðàìåòð nJMA0.number(MaxJMA.number) ðàâíûì êîëè÷åñòâó îáðàùåíèé ê ôóíêöèè JJMASeries0(), òî åñòü íà åäèíèöó áîëüøå, ÷åì ìàêñèìàëüíûé nJMA0.number. +--------------------------------------+ <<< Èíäèêàöèÿ îøèáîê >>> +-------------------------------------------------+ Ïðè îòëàäêå èíäèêàòîðîâ è ýêñïåðòîâ èõ êîäû ìîãóò ñîäåðæàòü îøèáêè, äëÿ âûÿñíåíèÿ ïðè÷èí êîòîðûõ ñëåäóåò ñìîòðåòü ëîã ôàéë. Âñå îøèáêè ôóíêöèÿ JJMASeries0() ïèøåò â ëîã ôàéë â ïàïêå \MetaTrader\EXPERTS\LOGS\. Åñëè, ïåðåä îáðàùåíèåì ê ôóíêöèè JJMASeries0() â êîäå, êîòîðûé ïðåäøåñòâîâàë ôóíêöèè, âîçíèêëà MQL4 îøèáêà, òî ôóíêöèÿ çàïèøåò â ëîã ôàéë êîä îøèáêè è ñîäåðæàíèå îøèáêè. Åñëè ïðè âûïîëíåíèè ôóíêöèè JJMASeries0()â àëãîðèòìå JJMASeries0()ïðîèçîøëà MQL4 îøèáêà, òî ôóíêöèÿ òàêæå çàïèøåò â ëîã ôàéë êîä îøèáêè è ñîäåðæàíèå îøèáêè. Ïðè íåïðàâèëüíîì çàäàíèè íîìåðà îáðàùåíèÿ ê ôóíêöèè JJMASeries0() nJMA0.number èëè íåâåðíîì îïðåäåëåíèè ðàçìåðà áóôåðíûõ ïåðåìåííûõ nJJMAResize.Size â ëîã ôàéë áóäåò çàïèñàíû ñîîáùåíèÿ î íåâåðíîì îïðåäåëåíèè ýòèõ ïàðàìåòðîâ. Òàêæå â ëîã ôàéë ïèøåòñÿ èíôîðìàöèÿ ïðè íåïðàâèëüíîì îïðåäåëåíèè ïàðàìåòðà nJMA0.limit. Åñëè ïðè âûïîëíåíèè ôóíêöèè èíèöèàëèçàöèè init() ïðîèçîø¸ë ñáîé ïðè èçìåíåíèè ðàçìåðîâ áóôåðíûõ ïåðåìåííûõ ôóíêöèè JJMASeries0(), òî ôóíêöèÿ JJMASeries0Resize() çàïèøåò â ëîã ôàéë èíôîðìàöèþ î íåóäà÷íîì èçìåíåíèè ðàçìåðîâ áóôåðíûõ ïåðåìåííûõ. Åñëè ïðè îáðàùåíèè ê ôóíêöèè JJMASeries0()÷åðåç âíåøíèé îïåðàòîð öèêëà áûëà íàðóøåíà ïðàâèëüíàÿ ïîñëåäîâàòåëüíîñòü èçìåíåíèÿ ïàðàìåòðà nJMA0.bar, òî â ëîã ôàéë áóäåò çàïèñàíà è ýòà èíôîðìàöèÿ. Ñëåäóåò ó÷åñòü, ÷òî íåêîòîðûå îøèáêè ïðîãðàììíîãî êîäà áóäóò ïîðîæäàòü äàëüíåéøèå îøèáêè â åãî èñïîëíåíèè è ïîýòîìó, åñëè ôóíêöèÿ JJMASeries0()ïèøåò â ëîã ôàéë ñðàçó íåñêîëüêî îøèáîê, òî óñòðàíÿòü èõ ñëåäóåò â ïîðÿäêå âðåìåíè âîçíèêíîâåíèÿ.  ïðàâèëüíî íàïèñàííîì ýêñïåðòå ôóíêöèÿ JJMASeries0()ìîæåò äåëàòü çàïèñè â ëîã ôàéë òîëüêî ïðè íàðóøåíèÿõ ðàáîòû îïåðàöèîííîé ñèñòåìû. Èñêëþ÷åíèå ñîñòàâëÿåò çàïèñü èçìåíåíèÿ ðàçìåðîâ áóôåðíûõ ïåðåìåííûõ ïðè ïåðåçàãðóçêå ýêñïåðòà, êîòîðàÿ ïðîèñõîäèò ïðè êàæäîì âûçîâå ôóíêöèè init(). +---------------------------------+ <<< Ïðèìåð îáðàùåíèÿ ê ôóíêöèè >>> +--------------------------------------------+ //----+ îïðåäåëåíèå ôóíêöèé JJMASeries0() #include //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- îïðåäåëåíèå ñòèëÿ èñïîëíåíèÿ ãðàôèêà SetIndexStyle (0,DRAW_LINE); //---- 1 èíäèêàòîðíûé áóôåð èñïîëüçîâàí äëÿ ñ÷¸òà SetIndexBuffer(0,Ind_Buffer); //----+ Èçìåíåíèå ðàçìåðîâ áóôåðíûõ ïåðåìåííûõ ôóíêöèè JJMASeries0, nJMA0.number=1(Îäíî îáðàùåíèå ê ôóíêöèè JJMASeries0) if(JJMASeries0Resize(1)==0)return(-1); return(0); } //+------------------------------------------------------------------+ //| Custom indicator function | //+------------------------------------------------------------------+ int start() { //----+ Ââåäåíèå öåëûõ ïåðåìåííûõ è ïîëó÷åíèå óæå ïîäñ÷èòàííûõ áàðîâ int reset,bar,MaxBar,limit,counted_bars=IndicatorCounted(); //---- ïðîâåðêà íà âîçìîæíûå îøèáêè if (counted_bars<0)return(-1); //---- ïîñëåäíèé ïîäñ÷èòàííûé áàð äîëæåí áûòü ïåðåñ÷èòàí (áåç ýòîãî ïåðåñ÷¸òà ôóíêöèÿ JJMASeries0() ñâîé ðàñ÷¸ò ïðîèçâîäèòü íå áóäåò!!!) if (counted_bars>0) counted_bars--; //---- îïðåäåëåíèå íîìåðà ñàìîãî ñòàðîãî áàðà, íà÷èíàÿ ñ êîòîðîãî áóäåò ïðîèçåä¸í ïåðåñ÷¸ò íîâûõ áàðîâ int limit=Bars-counted_bars-1; MaxBar=Bars-1; //----+ for(bar=limit;bar>=0;bar--) ( double Series=Close[bar]; //----+ Îáðàùåíèå ê ôóíêöèè JJMASeries0() çà íîìåðîì 0 äëÿ ðàñ÷¸òà áóôåðà Ind_Buffer[], //ïàðàìåòðû nJMA0.Phase è nJMA0.Length íå ìåíÿþòñÿ íà êàæäîì áàðå (nJMA0.din=0) double Resalt=JJMASeries0(0,0,MaxBar,limit,Phase,Length,Series,bar,reset); if (reset!=0)return(-1); Ind_Buffer[bar]=Resalt; } return(0); } //----+ */ //SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS+ //+++++++++++++++++++++++++++++++++++++++++++++++++++++ <<< JJMASeries0()>>> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++| //SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS+ //----++ <<< Ââåäåíèå ïåðåìåííûõ >>> +SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS+ double dJMA0_f18[1],dJMA0_f38[1],dJMA0_fA8[1],dJMA0_fC0[1],dJMA0_fC8[1],dJMA0_s8[1],dJMA0_s18[1],dJMA0_v1[1],dJMA0_v2[1]; double dJMA0_v3[1],dJMA0_f90[1],dJMA0_f78[1],dJMA0_f88[1],dJMA0_f98[1],dJMA0_JMA[1],dJMA0_list[1][128],dJMA0_ring1[1][128]; double dJMA0_ring2[1][11],dJMA0_buffer[1][62],dJMA0_mem1[1][8],dJMA0_mem3[1][128],dJMA0_RING1[1][128],dJMA0_RING2[1][11]; double dJMA0_LIST[1][128],dJMA0_Kg[1],dJMA0_Pf[1]; //--+ int nJMA0_s28[1],nJMA0_s30[1],nJMA0_s38[1],nJMA0_s40[1],nJMA0_s48[1],nJMA0_f0[1],nJMA0_s50[1],nJMA0_s70[1],nJMA0_LP2[1]; int nJMA0_LP1[1],nJMA0_mem2[1][7],nJMA0_mem7[1][11]; int nJMA0_TIME[1],nJMA0_Test[1]; //--+ +-------------------------------------------------------------------------------------------------------------+ double dJMA0_fA0,dJMA0_vv,dJMA0_v4,dJMA0_f70,dJMA0_s20,dJMA0_s10,dJMA0_fB0,dJMA0_fD0,dJMA0_f8,dJMA0_f60,dJMA0_f20,dJMA0_f28; double dJMA0_f30,dJMA0_f40,dJMA0_f48,dJMA0_f58,dJMA0_f68; //--+ int nJMA0_v5,nJMA0_v6,nJMA0_fE0,nJMA0_fD8,nJMA0_fE8,nJMA0_val,nJMA0_s58,nJMA0_s60,nJMA0_s68,nJMA0_aa,nJMA0_size; int nJMA0_ii,nJMA0_jj,nJMA0_m,nJMA0_n,nJMA0_Tnew,nJMA0_Told,nJMA0_Error,nJMA0_Resize; //----++ <<< Îáúÿâëåíèå ôóíêöèè JJMASeries0() >>> +SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS+ double JJMASeries0 ( int nJMA0_number, int nJMA0_din, int nJMA0_MaxBar, int nJMA0_limit, int nJMA0_Phase, int nJMA0_Length, double dJMA0_series, int nJMA0_bar, int& nJMA0_reset ) //----++ +SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS+ { nJMA0_n=nJMA0_number; nJMA0_reset=1; //=====+ <<< Ïðîâåðêè íà îøèáêè >>> ====================================================================================================+ if (nJMA0_bar==nJMA0_limit) { //----++ ïðîâåðêà íà èíèöèàëèçàöèþ ôóíêöèè JJMASeries0() if(nJMA0_Resize<1) { Print("JJMASeries0 number ="+nJMA0_n+ ". Íå áûëî ñäåëàíî èçìåíåíèå ðàçìåðîâ áóôåðíûõ ïåðåìåííûõ ôóíêöèåé JJMASeries0Resize()"); if(nJMA0_Resize==0) Print("JJMASeries0 number ="+nJMA0_n+ ". Ñëåäóåò äîïèñàòü îáðàùåíèå ê ôóíêöèè JJMASeries0Resize() â áëîê èíèöèàëèçàöèè"); return(0.0); } //----++ ïðîâåðêà íà îøèáêó â èñïîëíåíèè ïðîãðàììíîãî êîäà, ïðåäøåñòâîâàâøåãî ôóíêöèè JJMASeries0() nJMA0_Error=GetLastError(); if(nJMA0_Error>4000) { Print("JJMASeries0 number ="+nJMA0_n+ ".  êîäå, ïðåäøåñòâóþùåì îáðàùåíèþ ê ôóíêöèè JJMASeries0() number = "+nJMA0_n+" îøèáêà!!!"); Print("JJMASeries0 number ="+nJMA0_n+ ". ",JMA_ErrDescr0(nJMA0_Error)); } //----++ ïðîâåðêà íà îøèáêó â çàäàíèè ïåðåìåííûõ nJMA0.number è nJMA0Resize.Number nJMA0_size=ArraySize(dJMA0_JMA); if (nJMA0_size< nJMA0_n) { Print("JJMASeries0 number ="+nJMA0_n+ ". Îøèáêà!!! Íåïðàâèëüíî çàäàíî çíà÷åíèå ïåðåìåííîé nJMA0.number=" +nJMA0_n+" ôóíêöèè JJMASeries0()"); Print("JJMASeries0 number ="+nJMA0_n+ ". Èëè íåïðàâèëüíî çàäàíî çíà÷åíèå ïåðåìåííîé nJJMAResize.Size=" +nJMA0_size+" ôóíêöèè JJMASeries0Resize()"); return(0.0); } } //----++ ïðîâåðêà íà îøèáêó â ïîñëåäîâàòåëüíîñòè èçìåíåíèÿ ïåðåìåííîé nJMA0.bar if((nJMA0_limit>=nJMA0_MaxBar)&&(nJMA0_bar==0)) if((nJMA0_MaxBar>30)&&(nJMA0_Test[nJMA0_n]==0)) Print("JJMASeries0 number ="+nJMA0_n+ ". Îøèáêà!!! Íàðóøåíà ïðàâèëüíàÿ ïîñëåäîâàòåëüíîñòü èçìåíåíèÿ ïàðàìåòðà nJMA0.bar âíåøíèì îïåðàòîðîì öèêëà!!!"); //----++ +==============================================================================================================================+ if (nJMA0_bar> nJMA0_MaxBar){nJMA0_reset=0;return(0.0);} if((nJMA0_bar==nJMA0_MaxBar)||(nJMA0_din!=0)) { //----++ <<< Ðàñ÷¸ò êîýôôèöèåíòîâ >>> +SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS+ nJMA0_Test[nJMA0_n]=1; double nJMA0_Dr,nJMA0_Ds,nJMA0_Dl; if(nJMA0_Length < 1.0000000002) nJMA0_Dr = 0.0000000001; else nJMA0_Dr= (nJMA0_Length - 1.0) / 2.0; if((nJMA0_Phase >= -100)&&(nJMA0_Phase <= 100))dJMA0_Pf[nJMA0_n] = nJMA0_Phase/100.0 + 1.5; if (nJMA0_Phase > 100) dJMA0_Pf[nJMA0_n] = 2.5; if (nJMA0_Phase < -100) dJMA0_Pf[nJMA0_n] = 0.5; nJMA0_Dr = nJMA0_Dr * 0.9; dJMA0_Kg[nJMA0_n] = nJMA0_Dr/(nJMA0_Dr + 2.0); nJMA0_Ds=MathSqrt(nJMA0_Dr);nJMA0_Dl=MathLog(nJMA0_Ds); dJMA0_v1[nJMA0_n]= nJMA0_Dl;dJMA0_v2[nJMA0_n] = dJMA0_v1[nJMA0_n]; if((dJMA0_v1[nJMA0_n] / MathLog(2.0)) + 2.0 < 0.0) dJMA0_v3[nJMA0_n]= 0.0; else dJMA0_v3[nJMA0_n]=(dJMA0_v2[nJMA0_n]/MathLog(2.0))+ 2.0; dJMA0_f98[nJMA0_n]= dJMA0_v3[nJMA0_n]; if( dJMA0_f98[nJMA0_n] >= 2.5 ) dJMA0_f88[nJMA0_n] = dJMA0_f98[nJMA0_n] - 2.0; else dJMA0_f88[nJMA0_n]= 0.5; dJMA0_f78[nJMA0_n]= nJMA0_Ds * dJMA0_f98[nJMA0_n]; dJMA0_f90[nJMA0_n]= dJMA0_f78[nJMA0_n] / (dJMA0_f78[nJMA0_n] + 1.0); //----++SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS+ } //--+ if((nJMA0_bar==nJMA0_limit)&&(nJMA0_limit>> +SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS+ nJMA0_Tnew=Time[nJMA0_limit+1]; nJMA0_Told=nJMA0_TIME[nJMA0_n]; //--+ if(nJMA0_Tnew==nJMA0_Told) { for(nJMA0_aa=127;nJMA0_aa>=0;nJMA0_aa--)dJMA0_list [nJMA0_n][nJMA0_aa]=dJMA0_LIST [nJMA0_n][nJMA0_aa]; for(nJMA0_aa=127;nJMA0_aa>=0;nJMA0_aa--)dJMA0_ring1[nJMA0_n][nJMA0_aa]=dJMA0_RING1[nJMA0_n][nJMA0_aa]; for(nJMA0_aa=10; nJMA0_aa>=0;nJMA0_aa--)dJMA0_ring2[nJMA0_n][nJMA0_aa]=dJMA0_RING2[nJMA0_n][nJMA0_aa]; //--+ dJMA0_fC0[nJMA0_n]=dJMA0_mem1[nJMA0_n][00];dJMA0_fC8[nJMA0_n]=dJMA0_mem1[nJMA0_n][01]; dJMA0_fA8[nJMA0_n]=dJMA0_mem1[nJMA0_n][02];dJMA0_s8 [nJMA0_n]=dJMA0_mem1[nJMA0_n][03]; dJMA0_f18[nJMA0_n]=dJMA0_mem1[nJMA0_n][04];dJMA0_f38[nJMA0_n]=dJMA0_mem1[nJMA0_n][05]; dJMA0_s18[nJMA0_n]=dJMA0_mem1[nJMA0_n][06];dJMA0_JMA[nJMA0_n]=dJMA0_mem1[nJMA0_n][07]; nJMA0_s38[nJMA0_n]=nJMA0_mem2[nJMA0_n][00];nJMA0_s48[nJMA0_n]=nJMA0_mem2[nJMA0_n][01]; nJMA0_s50[nJMA0_n]=nJMA0_mem2[nJMA0_n][02];nJMA0_LP1[nJMA0_n]=nJMA0_mem2[nJMA0_n][03]; nJMA0_LP2[nJMA0_n]=nJMA0_mem2[nJMA0_n][04];nJMA0_s40[nJMA0_n]=nJMA0_mem2[nJMA0_n][05]; nJMA0_s70[nJMA0_n]=nJMA0_mem2[nJMA0_n][06]; } //--+ ïðîâåðêà íà îøèáêè if(nJMA0_Tnew!=nJMA0_Told) { nJMA0_reset=-1; //--+ èíäèêàöèÿ îøèáêè â ðàñ÷¸òå âõîäíîãî ïàðàìåòðà nJMA0.limit ôóíêöèè JJMASeries0() if (nJMA0_Tnew>nJMA0_Told) { Print("JJMASeries0 number ="+nJMA0_n+ ". Îøèáêà!!! Ïàðàìåòð nJMA0.limit ôóíêöèè JJMASeries0() ìåíüøå, ÷åì íåîáõîäèìî"); } else { int nJMA0_LimitERROR=nJMA0_limit+1-iBarShift(NULL,0,nJMA0_Told,TRUE); Print("JMASerries number ="+nJMA0_n+ ". Îøèáêà!!! Ïàðàìåòð nJMA0.limit ôóíêöèè JJMASeries0() áîëüøå, ÷åì íåîáõîäèìî íà " +nJMA0_LimitERROR+""); } //--+ Âîçâðàò ÷åðåç nJMA0.reset=-1; îøèáêè â ðàñ÷¸òå ôóíêöèè JJMASeries0 return(0); } //----+SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS+ } if ((nJMA0_bar==0)&&(nJMA0_limit!=0)) { //--+ <<< Ñîõðàíåíèå çíà÷åíèé ïåðåìåííûõ >>> +SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS+ for(nJMA0_aa=127;nJMA0_aa>=0;nJMA0_aa--)dJMA0_LIST [nJMA0_n][nJMA0_aa]=dJMA0_list [nJMA0_n][nJMA0_aa]; for(nJMA0_aa=127;nJMA0_aa>=0;nJMA0_aa--)dJMA0_RING1[nJMA0_n][nJMA0_aa]=dJMA0_ring1[nJMA0_n][nJMA0_aa]; for(nJMA0_aa=10; nJMA0_aa>=0;nJMA0_aa--)dJMA0_RING2[nJMA0_n][nJMA0_aa]=dJMA0_ring2[nJMA0_n][nJMA0_aa]; //--+ dJMA0_mem1[nJMA0_n][00]=dJMA0_fC0[nJMA0_n];dJMA0_mem1[nJMA0_n][01]=dJMA0_fC8[nJMA0_n]; dJMA0_mem1[nJMA0_n][02]=dJMA0_fA8[nJMA0_n];dJMA0_mem1[nJMA0_n][03]=dJMA0_s8 [nJMA0_n]; dJMA0_mem1[nJMA0_n][04]=dJMA0_f18[nJMA0_n];dJMA0_mem1[nJMA0_n][05]=dJMA0_f38[nJMA0_n]; dJMA0_mem1[nJMA0_n][06]=dJMA0_s18[nJMA0_n];dJMA0_mem1[nJMA0_n][07]=dJMA0_JMA[nJMA0_n]; nJMA0_mem2[nJMA0_n][00]=nJMA0_s38[nJMA0_n];nJMA0_mem2[nJMA0_n][01]=nJMA0_s48[nJMA0_n]; nJMA0_mem2[nJMA0_n][02]=nJMA0_s50[nJMA0_n];nJMA0_mem2[nJMA0_n][03]=nJMA0_LP1[nJMA0_n]; nJMA0_mem2[nJMA0_n][04]=nJMA0_LP2[nJMA0_n];nJMA0_mem2[nJMA0_n][05]=nJMA0_s40[nJMA0_n]; nJMA0_mem2[nJMA0_n][06]=nJMA0_s70[nJMA0_n];nJMA0_TIME[nJMA0_n]=Time[1]; //--+SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS+ } //----+ if (nJMA0_LP1[nJMA0_n]<61){nJMA0_LP1[nJMA0_n]++; dJMA0_buffer[nJMA0_n][nJMA0_LP1[nJMA0_n]]=dJMA0_series;} if (nJMA0_LP1[nJMA0_n]>30) { //++++++++++++++++++ if (nJMA0_f0[nJMA0_n] != 0) { nJMA0_f0[nJMA0_n] = 0; nJMA0_v5 = 1; nJMA0_fD8 = nJMA0_v5*30; if (nJMA0_fD8 == 0) dJMA0_f38[nJMA0_n] = dJMA0_series; else dJMA0_f38[nJMA0_n] = dJMA0_buffer[nJMA0_n][1]; dJMA0_f18[nJMA0_n] = dJMA0_f38[nJMA0_n]; if (nJMA0_fD8 > 29) nJMA0_fD8 = 29; } else nJMA0_fD8 = 0; for(nJMA0_ii=nJMA0_fD8; nJMA0_ii>=0; nJMA0_ii--) { nJMA0_val=31-nJMA0_ii; if (nJMA0_ii == 0) dJMA0_f8 = dJMA0_series; else dJMA0_f8 = dJMA0_buffer[nJMA0_n][nJMA0_val]; dJMA0_f28 = dJMA0_f8 - dJMA0_f18[nJMA0_n]; dJMA0_f48 = dJMA0_f8 - dJMA0_f38[nJMA0_n]; if (MathAbs(dJMA0_f28) > MathAbs(dJMA0_f48)) dJMA0_v2[nJMA0_n] = MathAbs(dJMA0_f28); else dJMA0_v2[nJMA0_n] = MathAbs(dJMA0_f48); dJMA0_fA0 = dJMA0_v2[nJMA0_n]; dJMA0_vv = dJMA0_fA0 + 0.0000000001; //{1.0e-10;} if (nJMA0_s48[nJMA0_n] <= 1) nJMA0_s48[nJMA0_n] = 127; else nJMA0_s48[nJMA0_n] = nJMA0_s48[nJMA0_n] - 1; if (nJMA0_s50[nJMA0_n] <= 1) nJMA0_s50[nJMA0_n] = 10; else nJMA0_s50[nJMA0_n] = nJMA0_s50[nJMA0_n] - 1; if (nJMA0_s70[nJMA0_n] < 128) nJMA0_s70[nJMA0_n] = nJMA0_s70[nJMA0_n] + 1; dJMA0_s8[nJMA0_n] = dJMA0_s8[nJMA0_n] + dJMA0_vv - dJMA0_ring2[nJMA0_n][nJMA0_s50[nJMA0_n]]; dJMA0_ring2[nJMA0_n][nJMA0_s50[nJMA0_n]] = dJMA0_vv; if (nJMA0_s70[nJMA0_n] > 10) dJMA0_s20 = dJMA0_s8[nJMA0_n] / 10.0; else dJMA0_s20 = dJMA0_s8[nJMA0_n] / nJMA0_s70[nJMA0_n]; if (nJMA0_s70[nJMA0_n] > 127) { dJMA0_s10 = dJMA0_ring1[nJMA0_n][nJMA0_s48[nJMA0_n]]; dJMA0_ring1[nJMA0_n][nJMA0_s48[nJMA0_n]] = dJMA0_s20; nJMA0_s68 = 64; nJMA0_s58 = nJMA0_s68; while (nJMA0_s68 > 1) { if (dJMA0_list[nJMA0_n][nJMA0_s58] < dJMA0_s10){nJMA0_s68 = nJMA0_s68 *0.5; nJMA0_s58 = nJMA0_s58 + nJMA0_s68;} else if (dJMA0_list[nJMA0_n][nJMA0_s58]<= dJMA0_s10) nJMA0_s68 = 1; else{nJMA0_s68 = nJMA0_s68 *0.5; nJMA0_s58 = nJMA0_s58 - nJMA0_s68;} } } else { dJMA0_ring1[nJMA0_n][nJMA0_s48[nJMA0_n]] = dJMA0_s20; if (nJMA0_s28[nJMA0_n] + nJMA0_s30[nJMA0_n] > 127){nJMA0_s30[nJMA0_n] = nJMA0_s30[nJMA0_n] - 1; nJMA0_s58 = nJMA0_s30[nJMA0_n];} else{nJMA0_s28[nJMA0_n] = nJMA0_s28[nJMA0_n] + 1; nJMA0_s58 = nJMA0_s28[nJMA0_n];} if (nJMA0_s28[nJMA0_n] > 96) nJMA0_s38[nJMA0_n] = 96; else nJMA0_s38[nJMA0_n] = nJMA0_s28[nJMA0_n]; if (nJMA0_s30[nJMA0_n] < 32) nJMA0_s40[nJMA0_n] = 32; else nJMA0_s40[nJMA0_n] = nJMA0_s30[nJMA0_n]; } nJMA0_s68 = 64; nJMA0_s60 = nJMA0_s68; while (nJMA0_s68 > 1) { if (dJMA0_list[nJMA0_n][nJMA0_s60] >= dJMA0_s20) { if (dJMA0_list[nJMA0_n][nJMA0_s60 - 1] <= dJMA0_s20) nJMA0_s68 = 1; else {nJMA0_s68 = nJMA0_s68 *0.5; nJMA0_s60 = nJMA0_s60 - nJMA0_s68; } } else{nJMA0_s68 = nJMA0_s68 *0.5; nJMA0_s60 = nJMA0_s60 + nJMA0_s68;} if ((nJMA0_s60 == 127) && (dJMA0_s20 > dJMA0_list[nJMA0_n][127])) nJMA0_s60 = 128; } if (nJMA0_s70[nJMA0_n] > 127) { if (nJMA0_s58 >= nJMA0_s60) { if ((nJMA0_s38[nJMA0_n] + 1 > nJMA0_s60) && (nJMA0_s40[nJMA0_n] - 1 < nJMA0_s60)) dJMA0_s18[nJMA0_n] = dJMA0_s18[nJMA0_n] + dJMA0_s20; else if ((nJMA0_s40[nJMA0_n] + 0 > nJMA0_s60) && (nJMA0_s40[nJMA0_n] - 1 < nJMA0_s58)) dJMA0_s18[nJMA0_n] = dJMA0_s18[nJMA0_n] + dJMA0_list[nJMA0_n][nJMA0_s40[nJMA0_n] - 1]; } else if (nJMA0_s40[nJMA0_n] >= nJMA0_s60) {if ((nJMA0_s38[nJMA0_n] + 1 < nJMA0_s60) && (nJMA0_s38[nJMA0_n] + 1 > nJMA0_s58)) dJMA0_s18[nJMA0_n] = dJMA0_s18[nJMA0_n] + dJMA0_list[nJMA0_n][nJMA0_s38[nJMA0_n] + 1]; } else if (nJMA0_s38[nJMA0_n] + 2 > nJMA0_s60) dJMA0_s18[nJMA0_n] = dJMA0_s18[nJMA0_n] + dJMA0_s20; else if ((nJMA0_s38[nJMA0_n] + 1 < nJMA0_s60) && (nJMA0_s38[nJMA0_n] + 1 > nJMA0_s58)) dJMA0_s18[nJMA0_n] = dJMA0_s18[nJMA0_n] + dJMA0_list[nJMA0_n][nJMA0_s38[nJMA0_n] + 1]; if (nJMA0_s58 > nJMA0_s60) { if ((nJMA0_s40[nJMA0_n] - 1 < nJMA0_s58) && (nJMA0_s38[nJMA0_n] + 1 > nJMA0_s58)) dJMA0_s18[nJMA0_n] = dJMA0_s18[nJMA0_n] - dJMA0_list[nJMA0_n][nJMA0_s58]; else if ((nJMA0_s38[nJMA0_n] < nJMA0_s58) && (nJMA0_s38[nJMA0_n] + 1 > nJMA0_s60)) dJMA0_s18[nJMA0_n] = dJMA0_s18[nJMA0_n] - dJMA0_list[nJMA0_n][nJMA0_s38[nJMA0_n]]; } else { if ((nJMA0_s38[nJMA0_n] + 1 > nJMA0_s58) && (nJMA0_s40[nJMA0_n] - 1 < nJMA0_s58)) dJMA0_s18[nJMA0_n] = dJMA0_s18[nJMA0_n] - dJMA0_list[nJMA0_n][nJMA0_s58]; else if ((nJMA0_s40[nJMA0_n] + 0 > nJMA0_s58) && (nJMA0_s40[nJMA0_n] - 0 < nJMA0_s60)) dJMA0_s18[nJMA0_n] = dJMA0_s18[nJMA0_n] - dJMA0_list[nJMA0_n][nJMA0_s40[nJMA0_n]]; } } if (nJMA0_s58 <= nJMA0_s60) { if (nJMA0_s58 >= nJMA0_s60) { dJMA0_list[nJMA0_n][nJMA0_s60] = dJMA0_s20; } else { for( nJMA0_jj = nJMA0_s58 + 1; nJMA0_jj<=nJMA0_s60 - 1 ;nJMA0_jj++)dJMA0_list[nJMA0_n][nJMA0_jj - 1] = dJMA0_list[nJMA0_n][nJMA0_jj]; dJMA0_list[nJMA0_n][nJMA0_s60 - 1] = dJMA0_s20; } } else { for( nJMA0_jj = nJMA0_s58 - 1; nJMA0_jj>=nJMA0_s60 ;nJMA0_jj--) dJMA0_list[nJMA0_n][nJMA0_jj + 1] = dJMA0_list[nJMA0_n][nJMA0_jj]; dJMA0_list[nJMA0_n][nJMA0_s60] = dJMA0_s20; } if (nJMA0_s70[nJMA0_n] <= 127) { dJMA0_s18[nJMA0_n] = 0; for( nJMA0_jj = nJMA0_s40[nJMA0_n] ; nJMA0_jj<=nJMA0_s38[nJMA0_n] ;nJMA0_jj++) dJMA0_s18[nJMA0_n] = dJMA0_s18[nJMA0_n] + dJMA0_list[nJMA0_n][nJMA0_jj]; } dJMA0_f60 = dJMA0_s18[nJMA0_n] / (nJMA0_s38[nJMA0_n] - nJMA0_s40[nJMA0_n] + 1.0); if (nJMA0_LP2[nJMA0_n] + 1 > 31) nJMA0_LP2[nJMA0_n] = 31; else nJMA0_LP2[nJMA0_n] = nJMA0_LP2[nJMA0_n] + 1; if (nJMA0_LP2[nJMA0_n] <= 30) { if (dJMA0_f28 > 0.0) dJMA0_f18[nJMA0_n] = dJMA0_f8; else dJMA0_f18[nJMA0_n] = dJMA0_f8 - dJMA0_f28 * dJMA0_f90[nJMA0_n]; if (dJMA0_f48 < 0.0) dJMA0_f38[nJMA0_n] = dJMA0_f8; else dJMA0_f38[nJMA0_n] = dJMA0_f8 - dJMA0_f48 * dJMA0_f90[nJMA0_n]; dJMA0_JMA[nJMA0_n] = dJMA0_series; if (nJMA0_LP2[nJMA0_n]!=30) continue; if (nJMA0_LP2[nJMA0_n]==30) { dJMA0_fC0[nJMA0_n] = dJMA0_series; if ( MathCeil(dJMA0_f78[nJMA0_n]) >= 1) dJMA0_v4 = MathCeil(dJMA0_f78[nJMA0_n]); else dJMA0_v4 = 1.0; if(dJMA0_v4>0)nJMA0_fE8 = MathFloor(dJMA0_v4);else{if(dJMA0_v4<0)nJMA0_fE8 = MathCeil (dJMA0_v4);else nJMA0_fE8 = 0.0;} if (MathFloor(dJMA0_f78[nJMA0_n]) >= 1) dJMA0_v2[nJMA0_n] = MathFloor(dJMA0_f78[nJMA0_n]); else dJMA0_v2[nJMA0_n] = 1.0; if(dJMA0_v2[nJMA0_n]>0)nJMA0_fE0 = MathFloor(dJMA0_v2[nJMA0_n]);else{if(dJMA0_v2[nJMA0_n]<0)nJMA0_fE0 = MathCeil (dJMA0_v2[nJMA0_n]);else nJMA0_fE0 = 0.0;} if (nJMA0_fE8== nJMA0_fE0) dJMA0_f68 = 1.0; else {dJMA0_v4 = nJMA0_fE8 - nJMA0_fE0; dJMA0_f68 = (dJMA0_f78[nJMA0_n] - nJMA0_fE0) / dJMA0_v4;} if (nJMA0_fE0 <= 29) nJMA0_v5 = nJMA0_fE0; else nJMA0_v5 = 29; if (nJMA0_fE8 <= 29) nJMA0_v6 = nJMA0_fE8; else nJMA0_v6 = 29; dJMA0_fA8[nJMA0_n] = (dJMA0_series - dJMA0_buffer[nJMA0_n][nJMA0_LP1[nJMA0_n] - nJMA0_v5]) * (1.0 - dJMA0_f68) / nJMA0_fE0 + (dJMA0_series - dJMA0_buffer[nJMA0_n][nJMA0_LP1[nJMA0_n] - nJMA0_v6]) * dJMA0_f68 / nJMA0_fE8; } } else { if (dJMA0_f98[nJMA0_n] >= MathPow(dJMA0_fA0/dJMA0_f60, dJMA0_f88[nJMA0_n])) dJMA0_v1[nJMA0_n] = MathPow(dJMA0_fA0/dJMA0_f60, dJMA0_f88[nJMA0_n]); else dJMA0_v1[nJMA0_n] = dJMA0_f98[nJMA0_n]; if (dJMA0_v1[nJMA0_n] < 1.0) dJMA0_v2[nJMA0_n] = 1.0; else {if(dJMA0_f98[nJMA0_n] >= MathPow(dJMA0_fA0/dJMA0_f60, dJMA0_f88[nJMA0_n])) dJMA0_v3[nJMA0_n] = MathPow(dJMA0_fA0/dJMA0_f60, dJMA0_f88[nJMA0_n]); else dJMA0_v3[nJMA0_n] = dJMA0_f98[nJMA0_n]; dJMA0_v2[nJMA0_n] = dJMA0_v3[nJMA0_n];} dJMA0_f58 = dJMA0_v2[nJMA0_n]; dJMA0_f70 = MathPow(dJMA0_f90[nJMA0_n], MathSqrt(dJMA0_f58)); if (dJMA0_f28 > 0.0) dJMA0_f18[nJMA0_n] = dJMA0_f8; else dJMA0_f18[nJMA0_n] = dJMA0_f8 - dJMA0_f28 * dJMA0_f70; if (dJMA0_f48 < 0.0) dJMA0_f38[nJMA0_n] = dJMA0_f8; else dJMA0_f38[nJMA0_n] = dJMA0_f8 - dJMA0_f48 * dJMA0_f70; } } if (nJMA0_LP2[nJMA0_n] >30) { dJMA0_f30 = MathPow(dJMA0_Kg[nJMA0_n], dJMA0_f58); dJMA0_fC0[nJMA0_n] =(1.0 - dJMA0_f30) * dJMA0_series + dJMA0_f30 * dJMA0_fC0[nJMA0_n]; dJMA0_fC8[nJMA0_n] =(dJMA0_series - dJMA0_fC0[nJMA0_n]) * (1.0 - dJMA0_Kg[nJMA0_n]) + dJMA0_Kg[nJMA0_n] * dJMA0_fC8[nJMA0_n]; dJMA0_fD0 = dJMA0_Pf[nJMA0_n] * dJMA0_fC8[nJMA0_n] + dJMA0_fC0[nJMA0_n]; dJMA0_f20 = dJMA0_f30 *(-2.0); dJMA0_f40 = dJMA0_f30 * dJMA0_f30; dJMA0_fB0 = dJMA0_f20 + dJMA0_f40 + 1.0; dJMA0_fA8[nJMA0_n] =(dJMA0_fD0 - dJMA0_JMA[nJMA0_n]) * dJMA0_fB0 + dJMA0_f40 * dJMA0_fA8[nJMA0_n]; dJMA0_JMA[nJMA0_n] = dJMA0_JMA[nJMA0_n] + dJMA0_fA8[nJMA0_n]; } } //++++++++++++++++++ if (nJMA0_LP1[nJMA0_n] <=30)dJMA0_JMA[nJMA0_n]=0.0; //----+ //----++ ïðîâåðêà íà îøèáêó â èñïîëíåíèè ïðîãðàììíîãî êîäà ôóíêöèè JJMASeries0() nJMA0_Error=GetLastError(); if(nJMA0_Error>4000) { Print("JJMASeries0 number ="+nJMA0_n+". Ïðè èñïîëíåíèè ôóíêöèè JJMASeries0() ïðîèçîøëà îøèáêà!!!"); Print("JJMASeries0 number ="+nJMA0_n+ ". ",JMA_ErrDescr0(nJMA0_Error)); return(0.0); } nJMA0_reset=0; return(dJMA0_JMA[nJMA0_n]); //----+ Çàâåðøåíèå âû÷èñëåíèé ôóíêöèè JJMASeries0() --------------------------+ } //+SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS+ // JJMASeries0Resize - Ýòî äîïîëíèòåëüíàÿ ôóíêöèÿ äëÿ èçìåíåíèÿ ðàçìåðîâ áóôåðíûõ ïåðåìåííûõ | // ôóíêöèè JJMASeries0. Ïðèìåð îáðàùåíèÿ: JJMASeries0Resize(5); ãäå 5 - ýòî êîëè÷åñòâî îáðàùåíèé ê| // JJMASeries0()â òåêñòå èíäèêàòîðà. Ýòî îáðàùåíèå ê ôóíêöèè JJMASeries0Resize ñëåäóåò ïîìåñòèòü | // â áëîê èíèöèàëèçàöèè ïîëüçîâàòåëüñêîãî èíäèêàòîðà èëè ýêñïåðòà | //+SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS+ int JJMASeries0Resize(int nJJMAResize_Size) { //----+ if(nJJMAResize_Size<1) { Print("JJMASeries0Resize: Îøèáêà!!! Ïàðàìåòð nJJMAResize.Size íå ìîæåò áûòü ìåíüøå åäèíèöû!!!"); nJMA0_Resize=-1; return(0); } int nJJMAResize_reset,nJJMAResize_cycle; //--+ while(nJJMAResize_cycle==0) { //----++ <<< èçìåíåíèå ðàçìåðîâ áóôåðíûõ ïåðåìåííûõ >>> +SSSSSSSSSSSSSSSSSSSSSSS+ if(ArrayResize(dJMA0_list, nJJMAResize_Size)==0){nJJMAResize_reset=-1;break;} if(ArrayResize(dJMA0_ring1, nJJMAResize_Size)==0){nJJMAResize_reset=-1;break;} if(ArrayResize(dJMA0_ring2, nJJMAResize_Size)==0){nJJMAResize_reset=-1;break;} if(ArrayResize(dJMA0_buffer,nJJMAResize_Size)==0){nJJMAResize_reset=-1;break;} if(ArrayResize(dJMA0_mem1, nJJMAResize_Size)==0){nJJMAResize_reset=-1;break;} if(ArrayResize(nJMA0_mem2, nJJMAResize_Size)==0){nJJMAResize_reset=-1;break;} if(ArrayResize(nJMA0_mem7, nJJMAResize_Size)==0){nJJMAResize_reset=-1;break;} if(ArrayResize(dJMA0_mem3, nJJMAResize_Size)==0){nJJMAResize_reset=-1;break;} if(ArrayResize(dJMA0_LIST, nJJMAResize_Size)==0){nJJMAResize_reset=-1;break;} if(ArrayResize(dJMA0_RING1, nJJMAResize_Size)==0){nJJMAResize_reset=-1;break;} if(ArrayResize(dJMA0_RING2, nJJMAResize_Size)==0){nJJMAResize_reset=-1;break;} if(ArrayResize(dJMA0_Kg, nJJMAResize_Size)==0){nJJMAResize_reset=-1;break;} if(ArrayResize(dJMA0_Pf, nJJMAResize_Size)==0){nJJMAResize_reset=-1;break;} if(ArrayResize(dJMA0_f18, nJJMAResize_Size)==0){nJJMAResize_reset=-1;break;} if(ArrayResize(dJMA0_f38, nJJMAResize_Size)==0){nJJMAResize_reset=-1;break;} if(ArrayResize(dJMA0_fA8, nJJMAResize_Size)==0){nJJMAResize_reset=-1;break;} if(ArrayResize(dJMA0_fC0, nJJMAResize_Size)==0){nJJMAResize_reset=-1;break;} if(ArrayResize(dJMA0_fC8, nJJMAResize_Size)==0){nJJMAResize_reset=-1;break;} if(ArrayResize(dJMA0_s8, nJJMAResize_Size)==0){nJJMAResize_reset=-1;break;} if(ArrayResize(dJMA0_s18, nJJMAResize_Size)==0){nJJMAResize_reset=-1;break;} if(ArrayResize(dJMA0_JMA, nJJMAResize_Size)==0){nJJMAResize_reset=-1;break;} if(ArrayResize(nJMA0_s50, nJJMAResize_Size)==0){nJJMAResize_reset=-1;break;} if(ArrayResize(nJMA0_s70, nJJMAResize_Size)==0){nJJMAResize_reset=-1;break;} if(ArrayResize(nJMA0_LP2, nJJMAResize_Size)==0){nJJMAResize_reset=-1;break;} if(ArrayResize(nJMA0_LP1, nJJMAResize_Size)==0){nJJMAResize_reset=-1;break;} if(ArrayResize(nJMA0_s38, nJJMAResize_Size)==0){nJJMAResize_reset=-1;break;} if(ArrayResize(nJMA0_s40, nJJMAResize_Size)==0){nJJMAResize_reset=-1;break;} if(ArrayResize(nJMA0_s48, nJJMAResize_Size)==0){nJJMAResize_reset=-1;break;} if(ArrayResize(dJMA0_v1, nJJMAResize_Size)==0){nJJMAResize_reset=-1;break;} if(ArrayResize(dJMA0_v2, nJJMAResize_Size)==0){nJJMAResize_reset=-1;break;} if(ArrayResize(dJMA0_v3, nJJMAResize_Size)==0){nJJMAResize_reset=-1;break;} if(ArrayResize(dJMA0_f90, nJJMAResize_Size)==0){nJJMAResize_reset=-1;break;} if(ArrayResize(dJMA0_f78, nJJMAResize_Size)==0){nJJMAResize_reset=-1;break;} if(ArrayResize(dJMA0_f88, nJJMAResize_Size)==0){nJJMAResize_reset=-1;break;} if(ArrayResize(dJMA0_f98, nJJMAResize_Size)==0){nJJMAResize_reset=-1;break;} if(ArrayResize(nJMA0_s28, nJJMAResize_Size)==0){nJJMAResize_reset=-1;break;} if(ArrayResize(nJMA0_s30, nJJMAResize_Size)==0){nJJMAResize_reset=-1;break;} if(ArrayResize(nJMA0_f0, nJJMAResize_Size)==0){nJJMAResize_reset=-1;break;} if(ArrayResize(nJMA0_TIME, nJJMAResize_Size)==0){nJJMAResize_reset=-1;break;} if(ArrayResize(nJMA0_Test, nJJMAResize_Size)==0){nJJMAResize_reset=-1;break;} //+SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS+ nJJMAResize_cycle=1; } //--+ if(nJJMAResize_reset==-1) { Print("JJMASeries0Resize: Îøèáêà!!! Íå óäàëîñü èçìåíèòü ðàçìåðû áóôåðíûõ ïåðåìåííûõ ôóíêöèè JJMASeries0()."); int nJJMAResize_Error=GetLastError(); if(nJJMAResize_Error>4000)Print("JJMASeries0Resize: ",JMA_ErrDescr0(nJJMAResize_Error)); nJMA0_Resize=-2; return(0); } else { Print("JJMASeries0Resize: JJMASeries0 Size = "+nJJMAResize_Size+""); //----+-------------------------------------------------------------------+ ArrayInitialize(nJMA0_f0, 1); ArrayInitialize(nJMA0_s28,63); ArrayInitialize(nJMA0_s30,64); for(int rrr=0;rrr 100)) {Alert("Ïàðàìåòð "+JJMASeries0Alert_name+" äîëæåí áûòü îò -100 äî +100" + " Âû ââåëè íåäîïóñòèìîå "+JJMASeries0Alert_ExternVar+ " áóäåò èñïîëüçîâàíî -100");} } } //--+ --------------------------------------------------------------------------------------------+ /* ïåðåâîä ñäåëàí Íèêîëàåì Êîñèöèíûì 01.12.2006 //+------------------------------------------------------------------+ JMA_ErrDescr0(MQL4_RUS).mqh | Copyright © 2004, MetaQuotes Software Corp. | http://www.metaquotes.net/ | ôóíêöèÿ JMA_ErrDescr0() ïî êîäó MQL4 îøèáêè âîçâðàùàåò ñòðèíãîâóþ | ñòðîêó ñ êîäîì è ñîäåðæàíèåì îøèáêè. | -------------------- Ïðèìåð èñïîëüçîâàíèÿ ----------------------- | int Error=GetLastError(); | if(Error>4000)Print(JMA_ErrDescr0(Error)); | //+------------------------------------------------------------------+ */ string JMA_ErrDescr0(int error_code) { string error_string; //---- switch(error_code) { //---- MQL4 îøèáêè case 4000: error_string="Êîä îøèáêè = "+error_code+". íåò îøèáêè"; break; case 4001: error_string="Êîä îøèáêè = "+error_code+". Íåïðàâèëüíûé óêàçàòåëü ôóíêöèè"; break; case 4002: error_string="Êîä îøèáêè = "+error_code+". èíäåêñ ìàññèâà íå ñîîòâåòñòâóåò åãî ðàçìåðó"; break; case 4003: error_string="Êîä îøèáêè = "+error_code+". Íåò ïàìÿòè äëÿ ñòåêà ôóíêöèé"; break; case 4004: error_string="Êîä îøèáêè = "+error_code+". Ïåðåïîëíåíèå ñòåêà ïîñëå ðåêóðñèâíîãî âûçîâà"; break; case 4005: error_string="Êîä îøèáêè = "+error_code+". Íà ñòåêå íåò ïàìÿòè äëÿ ïåðåäà÷è ïàðàìåòðîâ"; break; case 4006: error_string="Êîä îøèáêè = "+error_code+". Íåò ïàìÿòè äëÿ ñòðîêîâîãî ïàðàìåòðà"; break; case 4007: error_string="Êîä îøèáêè = "+error_code+". Íåò ïàìÿòè äëÿ âðåìåííîé ñòðîêè"; break; case 4008: error_string="Êîä îøèáêè = "+error_code+". Íåèíèöèàëèçèðîâàííàÿ ñòðîêà"; break; case 4009: error_string="Êîä îøèáêè = "+error_code+". Íåèíèöèàëèçèðîâàííàÿ ñòðîêà â ìàññèâå"; break; case 4010: error_string="Êîä îøèáêè = "+error_code+". Íåò ïàìÿòè äëÿ ñòðîêîâîãî ìàññèâà"; break; case 4011: error_string="Êîä îøèáêè = "+error_code+". Ñëèøêîì äëèííàÿ ñòðîêà"; break; case 4012: error_string="Êîä îøèáêè = "+error_code+". Îñòàòîê îò äåëåíèÿ íà íîëü"; break; case 4013: error_string="Êîä îøèáêè = "+error_code+". Äåëåíèå íà íîëü"; break; case 4014: error_string="Êîä îøèáêè = "+error_code+". Íåèçâåñòíàÿ êîìàíäà"; break; case 4015: error_string="Êîä îøèáêè = "+error_code+". Íåïðàâèëüíûé ïåðåõîä (never generated error)"; break; case 4016: error_string="Êîä îøèáêè = "+error_code+". Íåèíèöèàëèçèðîâàííûé ìàññèâ"; break; case 4017: error_string="Êîä îøèáêè = "+error_code+". Âûçîâû DLL íå ðàçðåøåíû"; break; case 4018: error_string="Êîä îøèáêè = "+error_code+". Íåâîçìîæíî çàãðóçèòü áèáëèîòåêó"; break; case 4019: error_string="Êîä îøèáêè = "+error_code+". Íåâîçìîæíî âûçâàòü ôóíêöèþ"; break; case 4020: error_string="Êîä îøèáêè = "+error_code+". Âûçîâû âíåøíèõ áèáëèîòå÷íûõ ôóíêöèé íå ðàçðåøåíû"; break; case 4021: error_string="Êîä îøèáêè = "+error_code+". Íåäîñòàòî÷íî ïàìÿòè äëÿ ñòðîêè, âîçâðàùàåìîé èç ôóíêöèè"; break; case 4022: error_string="Êîä îøèáêè = "+error_code+". Ñèñòåìà çàíÿòà (never generated error)"; break; case 4050: error_string="Êîä îøèáêè = "+error_code+". Íåïðàâèëüíîå êîëè÷åñòâî ïàðàìåòðîâ ôóíêöèè"; break; case 4051: error_string="Êîä îøèáêè = "+error_code+". Íåäîïóñòèìîå çíà÷åíèå ïàðàìåòðà ôóíêöèè"; break; case 4052: error_string="Êîä îøèáêè = "+error_code+". Âíóòðåííÿÿ îøèáêà ñòðîêîâîé ôóíêöèè"; break; case 4053: error_string="Êîä îøèáêè = "+error_code+". Îøèáêà ìàññèâà"; break; case 4054: error_string="Êîä îøèáêè = "+error_code+". Íåïðàâèëüíîå èñïîëüçîâàíèå ìàññèâà-òàéìñåðèè"; break; case 4055: error_string="Êîä îøèáêè = "+error_code+". Îøèáêà ïîëüçîâàòåëüñêîãî èíäèêàòîðà"; break; case 4056: error_string="Êîä îøèáêè = "+error_code+". Ìàññèâû íåñîâìåñòèìû"; break; case 4057: error_string="Êîä îøèáêè = "+error_code+". Îøèáêà îáðàáîòêè ãëîáàëüíûåõ ïåðåìåííûõ"; break; case 4058: error_string="Êîä îøèáêè = "+error_code+". Ãëîáàëüíàÿ ïåðåìåííàÿ íå îáíàðóæåíà"; break; case 4059: error_string="Êîä îøèáêè = "+error_code+". Ôóíêöèÿ íå ðàçðåøåíà â òåñòîâîì ðåæèìå"; break; case 4060: error_string="Êîä îøèáêè = "+error_code+". Ôóíêöèÿ íå ïîäòâåðæäåíà"; break; case 4061: error_string="Êîä îøèáêè = "+error_code+". Îøèáêà îòïðàâêè ïî÷òû"; break; case 4062: error_string="Êîä îøèáêè = "+error_code+". Îæèäàåòñÿ ïàðàìåòð òèïà string"; break; case 4063: error_string="Êîä îøèáêè = "+error_code+". Îæèäàåòñÿ ïàðàìåòð òèïà integer"; break; case 4064: error_string="Êîä îøèáêè = "+error_code+". Îæèäàåòñÿ ïàðàìåòð òèïà double"; break; case 4065: error_string="Êîä îøèáêè = "+error_code+".  êà÷åñòâå ïàðàìåòðà îæèäàåòñÿ ìàññèâ"; break; case 4066: error_string="Êîä îøèáêè = "+error_code+". Çàïðîøåííûå èñòîðè÷åñêèå äàííûå â ñîñòîÿíèè îáíîâëåíèÿ"; break; case 4067: error_string="Êîä îøèáêè = "+error_code+". Îøèáêà ïðè âûïîëíåíèè òîðãîâîé îïåðàöèè"; break; case 4099: error_string="Êîä îøèáêè = "+error_code+". Êîíåö ôàéëà"; break; case 4100: error_string="Êîä îøèáêè = "+error_code+". Îøèáêà ïðè ðàáîòå ñ ôàéëîì"; break; case 4101: error_string="Êîä îøèáêè = "+error_code+". Íåïðàâèëüíîå èìÿ ôàéëà"; break; case 4102: error_string="Êîä îøèáêè = "+error_code+". Ñëèøêîì ìíîãî îòêðûòûõ ôàéëîâ"; break; case 4103: error_string="Êîä îøèáêè = "+error_code+". Íåâîçìîæíî îòêðûòü ôàéë"; break; case 4104: error_string="Êîä îøèáêè = "+error_code+". Íåñîâìåñòèìûé ðåæèì äîñòóïà ê ôàéëó"; break; case 4105: error_string="Êîä îøèáêè = "+error_code+". Íè îäèí îðäåð íå âûáðàí"; break; case 4106: error_string="Êîä îøèáêè = "+error_code+". Íåèçâåñòíûé ñèìâîë"; break; case 4107: error_string="Êîä îøèáêè = "+error_code+". Íåïðàâèëüíûé ïàðàìåòð öåíû äëÿ òîðãîâîé ôóíêöèè"; break; case 4108: error_string="Êîä îøèáêè = "+error_code+". Íåâåðíûé íîìåð òèêåòà"; break; case 4109: error_string="Êîä îøèáêè = "+error_code+". Òîðãîâëÿ íå ðàçðåøåíà"; break; case 4110: error_string="Êîä îøèáêè = "+error_code+". Äëèííûå ïîçèöèè íå ðàçðåøåíû"; break; case 4111: error_string="Êîä îøèáêè = "+error_code+". Êîðîòêèå ïîçèöèè íå ðàçðåøåíû"; break; case 4200: error_string="Êîä îøèáêè = "+error_code+". Îáúåêò óæå ñóùåñòâóåò"; break; case 4201: error_string="Êîä îøèáêè = "+error_code+". Çàïðîøåíî íåèçâåñòíîå ñâîéñòâî îáúåêòà"; break; case 4202: error_string="Êîä îøèáêè = "+error_code+". Îáúåêò íå ñóùåñòâóåò"; break; case 4203: error_string="Êîä îøèáêè = "+error_code+". Íåèçâåñòíûé òèï îáúåêòà"; break; case 4204: error_string="Êîä îøèáêè = "+error_code+". Íåò èìåíè îáúåêòà"; break; case 4205: error_string="Êîä îøèáêè = "+error_code+". Îøèáêà êîîðäèíàò îáúåêòà"; break; case 4206: error_string="Êîä îøèáêè = "+error_code+". Íå íàéäåíî óêàçàííîå ïîäîêíî"; break; case 4207: error_string="Êîä îøèáêè = "+error_code+". Îøèáêà ïðè ðàáîòå ñ îáúåêòîì"; break; default: error_string="Êîä îøèáêè = "+error_code+". íåèçâåñòíàÿ îøèáêà"; } //---- return(error_string); } //+------------------------------------------------------------------+