Скачать MetaTrader 5

Индекатор

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Konstantin
13
Konstantin  

ЗДРАВСТВУЙТЕ

Помогите понять, или под скажите кто может помочь как переделать индикатор фишер1 вобщем переделывать не надо, надо просто чтобы фишер1 рисовал вот так |||||||||||||||||| ну конечно это пример просто, так как черточки должны быть разного цвета да это вы и сами знаете я смог сделать чтобы так рисовалось но только относительно нулевой линии то есть синие рисуются вышы нуля а розовые ниже нуля а вот что изменить в коде чтоб и розовые рисовались вышы ноля не как не могу понять ну теперь вот и сам код фишира1 БУДУ ОЧЕНЬ БЛАГОДАРЕН ЗА ПОМОЩЬ!!!

#property copyright "Copyright © 2005, Yura Prokofiev"
#property link "Yura.prokofiev@gmail.com"

#property indicator_separate_window
#property indicator_buffers 3
#property indicator_color1 Black
#property indicator_color2 Blue
#property indicator_color3 White

extern int period=10;

double ExtBuffer0[];
double ExtBuffer1[];
double ExtBuffer2[];


int init()
{


SetIndexStyle(0,DRAW_HISTOGRAM,STYLE_SOLID,2,White);
SetIndexStyle(1,DRAW_HISTOGRAM,STYLE_SOLID,2,Blue);
SetIndexStyle(2,DRAW_HISTOGRAM);
IndicatorDigits(Digits+1);

SetIndexBuffer(0,ExtBuffer0);
SetIndexBuffer(1,ExtBuffer1);
SetIndexBuffer(2,ExtBuffer2);

IndicatorShortName("Fisher");
SetIndexLabel(1,NULL);
SetIndexLabel(2,NULL);

return(0);
}


int start()
{
//int period=10;
int limit;
int counted_bars=IndicatorCounted();
double prev,current,old;
double Value=0,Value1=0,Value2=0,Fish=0,Fish1=0,Fish2=0;
double price;
double MinL=0;
double MaxH=0;


if(counted_bars>0) counted_bars--;
limit=Bars-counted_bars;


for(int i=0; i<limit; i++)
{ MaxH = High[Highest(NULL,0,MODE_HIGH,period,i)];
MinL = Low[Lowest(NULL,0,MODE_LOW,period,i)];
price = (High+Low)/2;
Value = 0.33*2*((price-MinL)/(MaxH-MinL)-0.5) + 0.67*Value1;
Value=MathMin(MathMax(Value,-0.999),0.999);
ExtBuffer0=0.5*MathLog((1+Value)/(1-Value))+0.5*Fish1;
Value1=Value;
Fish1=ExtBuffer0;

}


bool up=true;
for(i=limit-2; i>=0; i--)
{
current=ExtBuffer0;
prev=ExtBuffer0[i+1];

if (((current<0)&&(prev>0))||(current<0)) up= false;
if (((current>0)&&(prev<0))||(current>0)) up= true;

if(!up)
{
ExtBuffer2=current;
ExtBuffer1=0.0;
}

else
{
ExtBuffer1=current;
ExtBuffer2=0.0;
}
}

return(0);
}

khorosh
9044
khorosh  

Угадайте слово, если первые пять букв индек.

А вот и не угадали, не индекс, а индекатор.))

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий