Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
ЗЫ Код индикатора где ?
.
Индикатор валяется в любом углу в сети, не хочется ветку захламлять массивами кодов.
ЗЫ Код индикатора где ?
.
Индикатор валяется в любом углу в сети, не хочется ветку захламлять массивами кодов.
Этих реализаций "вагон" и все работают по-разному. Тогда в клуб из предыдущего моего поста: там догадаются какую реализацию Вы используете.
Вы, вообще, помощи хотите или просто поговорить ?
Если хотите помощи, так, какого лешего, тому кто пытается помочь, еще и надо лазить по сети и искать да потом еще и догадываться это тот код или нет ???????
Свое время Вы ценить пытаетесь - не разбираетесь сами через отладку, например, а спрашиваете - вдруг кто-то уже решал и сэкономит Вам время. Думаете время тех, кто захочет помочь менее ценное ? Скорее всего, совсем об этом не думаете ......
Впрочем, воля Ваша ......
#property indicator_buffers 3
#property indicator_color1 White
#property indicator_color2 Lime
#property indicator_color3 Red
extern int period=10;
double ExtBuffer0[];
double ExtBuffer1[];
double ExtBuffer2[];
int init()
{
SetIndexStyle(0,DRAW_HISTOGRAM,STYLE_SOLID,1,Red);
SetIndexStyle(1,DRAW_HISTOGRAM,STYLE_SOLID,1,Lime);
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[i]+Low[i])/2;
Value = 0.33*2*((price-MinL)/(MaxH-MinL)-0.5) + 0.67*Value1;
Value=MathMin(MathMax(Value,-0.999),0.999);
ExtBuffer0[i]=0.5*MathLog((1+Value)/(1-Value))+0.5*Fish1;
Value1=Value;
Fish1=ExtBuffer0[i];
}
bool up=true;
for(i=limit-2; i>=0; i--)
{
current=ExtBuffer0[i];
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[i]=current;
ExtBuffer1[i]=0.0;
}
else
{
ExtBuffer1[i]=current;
ExtBuffer2[i]=0.0;
}
// Alert(" 0 ",ExtBuffer1[0]," ",ExtBuffer2[0]);
//Alert(" 1 ",ExtBuffer1[1]," ",ExtBuffer2[1]);
}
return(0);
}
Вот индикатор.
А с этим "Свое время Вы ценить пытаетесь - не разбираетесь сами через отладку" вы сильно ошибаетесь. Думается что дело вообще не в самом индикаторе.
И ещё раз очень прошу - не надо МЕНЯ обсуждать, если есть чем помочь буду благодарен, нет - ....
Этих реализаций "вагон" и все работают по-разному. Тогда в клуб из предыдущего моего поста: там догадаются какую реализацию Вы используете.
Вы, вообще, помощи хотите или просто поговорить ?
Если хотите помощи, так, какого лешего, тому кто пытается помочь, еще и надо лазить по сети и искать да потом еще и догадываться это тот код или нет ???????
Свое время Вы ценить пытаетесь - не разбираетесь сами через отладку, например, а спрашиваете - вдруг кто-то уже решал и сэкономит Вам время. Думаете время тех, кто захочет помочь менее ценное ? Скорее всего, совсем об этом не думаете ......
Впрочем, воля Ваша ......
Вот! khorosh, благодарен Вам за понимание сути вопроса!
Возможно это вопрос к программистам метатрейдера
Вот индикатор.
А с этим "Свое время Вы ценить пытаетесь - не разбираетесь сами через отладку" вы сильно ошибаетесь. Думается что дело вообще не в самом индикаторе.
И ещё раз очень прошу - не надо МЕНЯ обсуждать, если есть чем помочь буду благодарен, нет - ....
Неверно рассчитывается количество баров для пересчета.
Решений масса:
1.проверить на минимально необходимое число баров для пересчета (их в данном случае 3)
2. поставить константу, например 200, но тогда все время будет пересчитываться 200 баров на каждом тике.
Кстати, как с перерисовкой бороться собираетесь ?
ЗЫ Самый верный вариант использования этой реализации я так и не указал - выкинуть ;).
Вопрос не в конкретном коде индюка, это наблюдается у многих индюков. Вопрос как программно делать обновление графика. Если этот будет реализовано, то и решится проблема для всех индюков.
Видимо, как всегда, корректно это возможно сделать с помощью библиотеки Жунко :))
Но это тупиковый путь, он проверен и не помогает переписывающимся индикаторам. А если их сделать непереписывающимися, они сразу теряют свою привлекательность. Показывают, сволочи, жестокую реальность :))
Вот! khorosh, благодарен Вам за понимание сути вопроса!
Возможно это вопрос к программистам метатрейдера
Нет там "сути" в Вашем случае - ошибка в кодах индикатора всего-то лишь.
2 khorosh надо руки "криворуким" программерам править ;) - вот и будет суть. А не выдумывать "костыли" для нивелирования багов ))))))))). ИМХО, конечно же.
Решений масса:
1.проверить на минимально необходимое число баров для пересчета (их в данном случае 3)
2. поставить константу, например 200, но тогда все время будет пересчитываться 200 баров на каждом тике.
Кстати, как с перерисовкой бороться собираетесь ?" - ставил константу - не помогло.
"Только через API. Например, переключением ТФ туда-обратно." -была эта мысль, "вручную" это работает, буду пытаться её реализовать, спасибо