Скачать MetaTrader 5

подскажите почему не работает вот этот простой индикатор? :(

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Forex Trader
114320
Forex Trader  
Индюк призван просто рисовать на графика отношение текущей цены к High за всю историю графика, а в итоге ничего вообще не отображает, хотя в комменты выводятся значения заполнения основного буфера. в чем может быть дело?

#property copyright "Other price"
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Red

double ExtMapBuffer1[];

int init()
  {
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0,ExtMapBuffer1);
   return(0);
  }

int deinit(){return(0);}
  
   
  

int start()
  {
   
   int CountLevel=Bars-1, i,j,limit,counted_bars=IndicatorCounted();
   
   
   if(counted_bars<0) return(-1);
   if(counted_bars>0) counted_bars--;
   limit=Bars-counted_bars;
   
   for(i=0; i<limit; i++)
   {
     ExtMapBuffer1[i]= ND(iClose(Symbol(),Period(),0))/ND(iHigh(Symbol(),Period(),CountLevel)) ; 
   }
   
   return(0);
  }

double ND(double var){return(NormalizeDouble(var,Digits+3));}
Forex Trader
114320
Forex Trader  
Оригинальное прочтенение функций iHigh() и iClose() . Читайте справку.
Forex Trader
114320
Forex Trader  
всмысле "Оригинальное прочтенение" - вы хотите сказать что эти объекты встроенного языка несовместимы с другими однотипными объектами в контексте одного модуля? их что в отдельной библиотеке объявлять?
Forex Trader
114320
Forex Trader  
Вы думаете, что выражение
iHigh(Symbol(),Period(),CountLevel)


возвращает Вам максимальное значение High на всей истории, на самом деле оно должно вернуть High самого левого бара на графике.

Вот что у Вас написано:

Индюк призван просто рисовать на графика отношение текущей цены к High за всю историю графика

Forex Trader
114320
Forex Trader  
Вы думаете, что выражение
iHigh(Symbol(),Period(),CountLevel)


возвращает Вам максимальное значение High на всей истории, на самом деле оно должно вернуть High самого левого бара на графике.

Вот что у Вас написано:

Индюк призван просто рисовать на графика отношение текущей цены к High за всю историю графика



Да тут все просто на самом деле.. :) Не знаю что он там должен показывать, но нашел явную ошибку:

   for(i=0; i<limit; i++)
   {
     ExtMapBuffer1[i]= ND(iClose(Symbol(),Period(),0))/ND(iHigh(Symbol(),Period(),CountLevel)) ; 
   }



а должно быть..

   for(i=0; i<limit; i++)
   {
     ExtMapBuffer1[i]= ND(iClose(Symbol(),Period(),i))/ND(iHigh(Symbol(),Period(),CountLevel)) ; 
   }



.. после этого он что-то показывает.. :)

Forex Trader
114320
Forex Trader  
Спасибо Registr это я как раз и упустил :]
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий