#property indicator_separate_window // â ïîäîêíå #property indicator_buffers 6 #property indicator_color1 Blue // ñòîõàñòèê #property indicator_color2 Magenta // óïðàâëÿþùèé ñèãíàë #property indicator_color3 Green // óðîâåíü ïåðåêóïëåííîñòè #property indicator_color4 Red // óðîâåíü ïåðåïðîäàííîñòè #property indicator_maximum 100 #property indicator_minimum 0 // Âîõîäíûå ïàðàìåòðû MasterSlave extern int Source=1; // 0 - îáúåì; 1 - ñò.äåâèàöèÿ öåíû; 2 - ATR; 3 - öåíà; extern int SourcePeriod=88; // ïåðèîä âõîäíîãî èíäèêàòîðà extern int Window=111; // äëèíà âûáîðêè íîðìèðîâàíèÿ extern double Sensitivity=0; // ÷óâñòâèòåëüíîñòü extern int Signal=55; // ñãëàæèâàíèå íîðìèðîâàííîãî èíäèêàòîðà (ñèãíàëüíàÿ) // Âõîäíûå ïàðàìåòðû ñòîõàñòèêà extern int KperiodFrom=22; // íà÷àëüíîå çíà÷åíèå %K extern int KperiodTo=5; // êîíå÷íîå extern int SlowingFrom=12; // íà÷àëüíîå çíà÷åíèå Slowing extern int SlowingTo=3; // êîíå÷íîå extern int OverSoldFrom=3; // íà÷àëüíîå çíà÷åíèå óðîâíÿ ïåðåïðîäàííîñòè extern int OverSoldTo=22; // êîíå÷íîå // èíäèêàòîðíûå áóôåðû double Stoch[]; // ñòîõàñòèê double Master[]; // óïðàâëÿþùèé ñèãíàë double OB[]; // óðîâåíü ïåðåêóïëåííîñòè double OS[]; // óðîâåíü ïåðåïðîäàííîñòè double K[]; // %Ê ñòîõàñòèêà double Slow[]; // Slowing ñòîõàñòèêà bool first=1; // ôëàã ïåðâîãî çàïóñêà èíäèêàòîðà int init() { SetIndexBuffer(0,Stoch); SetIndexStyle(0,DRAW_LINE); SetIndexLabel(0,"Stoch"); SetIndexBuffer(1,Master); SetIndexStyle(1,DRAW_LINE); SetIndexLabel(1,"Master"); SetIndexBuffer(2,OB); SetIndexStyle(2,DRAW_LINE,2); SetIndexLabel(2,"OB"); SetIndexBuffer(3,OS); SetIndexStyle(3,DRAW_LINE,2); SetIndexLabel(3,"OS"); SetIndexBuffer(4,K); SetIndexStyle(4,DRAW_NONE); SetIndexLabel(4,"%K"); SetIndexBuffer(5,Slow); SetIndexStyle(5,DRAW_NONE); SetIndexLabel(5,"Slow"); return(0); } int start() { int ic=IndicatorCounted(); if(!first && Bars-ic>2) ic=reinit(); // åñëè åñòü ïðîïóùåííûå áàðû íå íà ïîäêëþ÷åíèè (â ðàáîòå) int limit=Bars-ic-1; for(int i=limit; i>=0; i--) { // óïðàâëÿþùèé ñèãíàë double k=iCustom(NULL,0,"_MasterSlave",Source,SourcePeriod,Window,Sensitivity,Signal, 0,i); Master[i]=100*k; // Óïðàâëÿåìûå ïàðàìåòðû Ñòîõàñòèêà int Kperiod=KperiodFrom+k*(KperiodTo-KperiodFrom); K[i]=Kperiod; // %K ñòîõàñòêà int Slowing=SlowingFrom+k*(SlowingTo-SlowingFrom); Slow[i]=Slowing; // Slowing ñòîõàñòèêà OS[i]=OverSoldFrom+k*(OverSoldTo-OverSoldFrom); OB[i]=100-OS[i]; // óðîâíè ÏÏ/ÏÊ // Ñòîõàñòèê Stoch[i]=iStochastic(NULL,0,Kperiod,1,Slowing,0,0, 0,i); } first=0; // ñáðîñ ôëàãà ïåðâîãî ïîäêëþ÷åíèÿ return(0); } //+------------------------------------------------------------------+ int reinit() { // äîïîëíèòåëüíàÿ èíèöèàëèçàöèÿ ArrayInitialize(Stoch,0.0); ArrayInitialize(Master,0.0); ArrayInitialize(OB,0.0); ArrayInitialize(OS,0.0); ArrayInitialize(K,0.0); ArrayInitialize(Slow,0.0); return(0); }
Sample
Analysis
Market Information Used:
Indicator Curves created:
Implements a curve of type DRAW_LINE
Implements a curve of type DRAW_NONE
Indicators Used:
Stochastic oscillator
Custom Indicators Used:
_MasterSlave
Order Management characteristics:
Other Features: