Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Пиши программы на заказ. Зарабатывай с помощью сервиса Фриланс!
Konstantin
13
Konstantin 2014.02.14 13:35 

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

Помогите понять, или под скажите кто может помочь как переделать индикатор фишер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
8058
khorosh 2014.02.14 14:33  

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

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

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