2 Äëÿ ðàáîòû èíäèêàòîðà ñëåäóåò ïîëîæèòü ôàéëû
\r
6 â ïàïêó (äèðåêòîðèþ): MetaTrader\experts\include\
\r
8 â ïàïêó (äèðåêòîðèþ): MetaTrader\indicators\
\r
10 //+SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS+
\r
12 //| MQL4+3color: Copyright © 2006, Nikolay Kositsin |
\r
13 //| Khabarovsk, farria@mail.redcom.ru |
\r
14 //+SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS+
\r
15 #property copyright "Nikolay Kositsin"
\r
16 #property link "farria@mail.redcom.ru"
\r
17 //---- îòðèñîâêà èíäèêàòîðà â îòäåëüíîì îêíå
\r
18 #property indicator_separate_window
\r
19 //---- êîëè÷åñòâî èíäèêàòîðíûõ áóôôåðîâ
\r
20 #property indicator_buffers 1
\r
21 //---- öâåòà èíäèêàòîðà
\r
22 #property indicator_color1 BlueViolet
\r
23 //---- ïàðàìåòðû ãîðèçîíòàëüíûõ óðîâíåé èíäèêàòîðà
\r
24 #property indicator_level1 0.5
\r
25 #property indicator_level2 -0.5
\r
26 #property indicator_level3 0.0
\r
27 #property indicator_levelcolor MediumBlue
\r
28 #property indicator_levelstyle 4
\r
29 //---- ÂÕÎÄÍÛÅ ÏÀÐÀÌÅÒÐÛ ÈÍÄÈÊÀÒÎÐÀ þþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþææ+
\r
30 extern int JCCIX.Length = 8; // ãëóáèíà ñãëàæèâàíèÿ èíäèêàòîðà
\r
31 extern int Input_Price_Customs = 0;//Âûáîð öåí, ïî êîòîðûì ïðîèçâîäèòñÿ ðàñ÷¸ò èíäèêàòîðà
\r
32 //(0-CLOSE, 1-OPEN, 2-HIGH, 3-LOW, 4-MEDIAN, 5-TYPICAL, 6-WEIGHTED, 7-Heiken Ashi Close, 8-SIMPL, 9-TRENDFOLLOW, 10-0.5*TRENDFOLLOW,
\r
33 //11-Heiken Ashi Low, 12-Heiken Ashi High, 13-Heiken Ashi Open, 14-Heiken Ashi Close.)
\r
34 //---- æææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ+
\r
35 //---- èíäèêàòîðíûå áóôôåðû
\r
36 double Ind_Buffer1[];
\r
37 //---- öåëûå ïåðåìåííûå
\r
39 //---- ïåðåìåííûå ñ ïëàâàþùåé òî÷êîé
\r
40 double price,JCCIX,UPCCI,DNCCI,JUPCCIX,JDNCCIX,Temp_Series,JMA;
\r
41 //+SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS+
\r
42 //| JCCIX initialization function |
\r
43 //+SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS+
\r
46 //---- ñòèëè èçîáðàæåíèÿ èíäèêàòîðà
\r
47 SetIndexStyle(0,DRAW_LINE);
\r
48 //---- 1 èíäèêàòîðíûé áóôôåð èñïîëüçîâàí äëÿ ñ÷¸òà.
\r
49 SetIndexBuffer(0,Ind_Buffer1);
\r
50 //---- óñòàíîâêà çíà÷åíèé èíäèêàòîðà, êîòîðûå íå áóäóò âèäèìû íà ãðàôèêå
\r
51 SetIndexEmptyValue(0,0);
\r
52 //---- èìåíà äëÿ îêîí äàííûõ è ëýéáû äëÿ ñóáúîêîí.
\r
53 SetIndexLabel(0,"JCCIX("+JCCIX.Length+")");
\r
54 IndicatorShortName("JCCIX(JCCIX.Length="+JCCIX.Length+")");
\r
55 //---- Óñòàíîâêà ôîðìàòà òî÷íîñòè (êîëè÷åñòâî çíàêîâ ïîñëå äåñÿòè÷íîé òî÷êè) äëÿ âèçóàëèçàöèè çíà÷åíèé èíäèêàòîðà
\r
57 //---- óñòàíîâêà àëåðòîâ íà íåäîïóñòèìûå çíà÷åíèÿ âõîäíûõ ïàðàìåòðîâ ==========================================================================+
\r
58 if(JCCIX.Length< 1) {Alert("Ïàðàìåòð JCCIX.Length äîëæåí áûòü íå ìåíåå 1"+ " Âû ââåëè íåäîïóñòèìîå "+JCCIX.Length+ " áóäåò èñïîëüçîâàíî 1");}//|
\r
59 PriceSeriesAlert(Input_Price_Customs);//---- îáðàùåíèå ê ôóíêöèè PriceSeriesAlert /////////////////////////////////////////////////////////////|
\r
60 //---- ========================================================================================================================================+
\r
61 //---- óñòàíîâêà íîìåðà áàðà, íà÷èíàÿ ñ êîòîðîãî áóäåò îòðèñîâûâàòüñÿ èíäèêàòîð
\r
62 SetIndexDrawBegin(0,JCCIX.Length+1);
\r
63 //---- êîðåêöèÿ íåäîïóñòèìîãî çíà÷åíèÿ ïàðàìåòðà JCCIX.Length
\r
64 if(JCCIX.Length<1)JCCIX.Length=1;
\r
65 //---- èíèöèàëèçàöèÿ êîýôôèöèåíòîâ äëÿ ðàñ÷¸òà èíäèêàòîðà
\r
66 if (JCCIX.Length>5) w=JCCIX.Length-1; else w=5;
\r
67 //---- çàâåðøåíèå èíèöèàëèçàöèè
\r
70 //+SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS+
\r
71 //| JCommodity Channel IndexX |
\r
72 //+SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS+
\r
75 //----+ Ââåäåíèå öåëûõ ïåðåìåííûõ è ïîëó÷åíèå óæå ïîäñ÷èòàííûõ áàðîâ
\r
76 //---- áëîêèðîâàíèå ïåðåñ÷¸òà âñåõ ïîäñ÷èòàííûõ è îòðèñîâàííûõ áàðîâ ïðè ïîäêëþ÷åíèè ê èíòåðíåòó
\r
77 int reset,MaxBar,limit,counted_bars=INDICATOR_COUNTED(0); INDICATOR_COUNTED(1);
\r
78 //---- ïðîâåðêà íà âîçìîæíûå îøèáêè
\r
79 if (counted_bars<0){INDICATOR_COUNTED(-1);return(-1);}
\r
80 //---- ïîñëåäíèé ïîäñ÷èòàííûé áàð äîëæåí áûòü ïåðåñ÷èòàí
\r
81 //---- (áåç ýòîãî ïåðåñ÷¸òà äëÿ counted_bars ôóíêöè JJMASeries è JurXSeries áóäóò ðàáîòàòü íåêîððåêòíî!!!)
\r
82 if (counted_bars>0) counted_bars--;
\r
83 //----+ Ââåäåíèå è èíèöèàëèçàöèÿ âíóòðåííèõ ïåðåìåííûõ ôóíêöèq JJMASeries è JurXSeries
\r
84 if (counted_bars==0){JJMASeriesReset(1);JurXSeriesReset(2);}
\r
85 //---- îïðåäåëåíèå íîìåðà ñàìîãî ñòàðîãî áàðà, íà÷èíàÿ ñ êîòîðîãî áóäåò ïðîèçåä¸í ïåðåñ÷¸ò íîâûõ áàðîâ
\r
86 limit=Bars-counted_bars-1; MaxBar=Bars-1;
\r
87 //---- êîðåêöèÿ ñòàðòîâîãî ðàñ÷¸òîãî áàðà â öèêëå
\r
88 if(limit>=MaxBar)limit=MaxBar;
\r
90 for(int bar=limit; bar>=0; bar--)
\r
92 //----+ Îáðàùåíèå ê ôóíêöèè PriceSeries äëÿ ïîëó÷åíèÿ âõîäíîé öåíû Series
\r
93 Temp_Series=PriceSeries(Input_Price_Customs, bar);
\r
94 //+----------------------------------------------------------------------------+
\r
95 //----+ Îäíî îáðàùåíèå ê ôóíêöèè JJMASeries çà íîìåðàì 0.
\r
96 //----+ Ïàðàìåòðû nJMAPhase è nJMALength íå ìåíÿþòñÿ íà êàæäîì áàðå (nJMAdin=0)
\r
97 //+----------------------------------------------------------------------------+
\r
98 JMA=JJMASeries(0,0,MaxBar,limit,100,JCCIX.Length,Temp_Series,bar,reset);
\r
99 //----+ ïðîâåðêà íà îòñóòñòâèå îøèáêè â ïðåäûäóùåé îïåðàöèè
\r
100 if(reset!=0){INDICATOR_COUNTED(-1);return(-1);}
\r
101 //+----------------------------------------------------------------------------+
\r
102 price=PriceSeries(Input_Price_Customs, bar);
\r
104 DNCCI=MathAbs(UPCCI);
\r
105 //----+ Äâà îáðàùåíèÿ ê ôóíêöèè JurXSeries çà íîìåðàìè 0 è 1. Ïàðàìåòð nJJurXLength íå ìåíÿtòñÿ íà êàæäîì áàðå (nJurXdin=0)
\r
106 //----+ ïðîâåðêà íà îòñóòñòâèå îøèáêè â ïðåäûäóùåé îïåðàöèè
\r
107 JUPCCIX=JurXSeries(0,0,MaxBar-30,limit,JCCIX.Length,UPCCI,bar,reset); if(reset!=0){INDICATOR_COUNTED(-1);return(-1);}
\r
108 JDNCCIX=JurXSeries(1,0,MaxBar-30,limit,JCCIX.Length,DNCCI,bar,reset); if(reset!=0){INDICATOR_COUNTED(-1);return(-1);}
\r
110 if (bar>MaxBar-30-w)JCCIX=0;
\r
114 JCCIX=JUPCCIX/JDNCCIX;
\r
115 if(JCCIX>1)JCCIX=1;
\r
116 if(JCCIX<-1)JCCIX=-1;
\r
119 Ind_Buffer1[bar]=JCCIX;
\r
125 //+---------------------------------------------------------------------------------------------------------------------------+
\r
126 //----+ Ââåäåíèå ôóíêöèè JJMASeries (ôàéë JJMASeries.mqh ñëåäóåò ïîëîæèòü â ïàïêó (äèðåêòîðèþ): MetaTrader\experts\include)
\r
127 //----+ Ââåäåíèå ôóíêöèè JJMASeriesReset (äîïîëíèòåëüíàÿ ôóíêöèÿ ôàéëà JJMASeries.mqh)
\r
128 //----+ Ââåäåíèå ôóíêöèè INDICATOR_COUNTED(äîïîëíèòåëüíàÿ ôóíêöèÿ ôàéëà JJMASeries.mqh)
\r
129 #include <JJMASeries.mqh>
\r
130 //+---------------------------------------------------------------------------------------------------------------------------+
\r
131 //----+ Ââåäåíèå ôóíêöèè JurXSeries (ôàéë JurXSeries.mqh ñëåäóåò ïîëîæèòü â ïàïêó (äèðåêòîðèþ): MetaTrader\experts\include)
\r
132 //----+ Ââåäåíèå ôóíêöèè JurXSeriesReset (äîïîëíèòåëüíàÿ ôóíêöèÿ ôàéëà JurXSeries.mqh)
\r
133 #include <JurXSeries.mqh>
\r
134 //+---------------------------------------------------------------------------------------------------------------------------+
\r
135 //----+ Ââåäåíèå ôóíêöèè PriceSeries, ôàéë PriceSeries.mqh ñëåäóåò ïîëîæèòü â ïàïêó (äèðåêòîðèþ): MetaTrader\experts\include
\r
136 //----+ Ââåäåíèå ôóíêöèè PriceSeriesAlert (äîïîëíèòåëüíàÿ ôóíêöèÿ ôàéëà PriceSeries.mqh)
\r
137 #include <PriceSeries.mqh>
\r
138 //+---------------------------------------------------------------------------------------------------------------------------+
\r