Пользовательский индикатор на графике работает, а в эксперте нет. - страница 2

 
Так я индикатор и подправил.
Файлы:
 

В сущности, индикатор - это функция. Любая функция, отработав, обретает некоторое значение, кот. выдаёт внешнему миру посредством оператора return(). Это значение и передаётся в функцию iCustom. В Вашем индикаторе при любых обстоятельствах return() принимает нулевое значение.

 
if(Period()==PERIOD_M1){period=0;}

period - не может равняться нулю

if(Period()==PERIOD_M1){period=1;}
 
SK. писал (а):

В сущности, индикатор - это функция. Любая функция, отработав, обретает некоторое значение, кот. выдаёт внешнему миру посредством оператора return(). Это значение и передаётся в функцию iCustom. В Вашем индикаторе при любых обстоятельствах return() принимает нулевое значение.

Не соглашусь...
Индикатор не возвращает значения посредством оператора ретурн, он заполняет буффер, а уже функция иКастум его возвращает.
Или я чего-то не понял?
 
и еще: period - никогда не называй переменные именем имеющихся функций, у МТ от этого могут заворачиваться мозги, он ведь достаточно нежный...
 
komposter писал (а):
SK. писал (а):

В сущности, индикатор - это функция. Любая функция, отработав, обретает некоторое значение, кот. выдаёт внешнему миру посредством оператора return(). Это значение и передаётся в функцию . В Вашем индикаторе при любых обстоятельствах return() принимает нулевое значение.

Не соглашусь...
Индикатор не возвращает значения посредством оператора ретурн, он заполняет буффер, а уже функция иКастум его возвращает.
Или я чего-то не понял?

на мой взгляд абсолютно правильно, iCustom возвращает значение заполненного буфера
 
ustim писал (а):
...он ведь достаточно нежный...

не в обиду разработчикам, чес слово :)
 
ustim:
и еще: period - никогда не называй переменные именем имеющихся функций, у МТ от этого могут заворачиваться мозги, он ведь достаточно нежный...
МТ различает регистр слов, поэтому period, pEriod, peRiod, periOd и perioD - это 5 разных переменных, ни одна из которых не будет конфликтовать с функцией Period() ;)
 
komposter писал (а):
ustim писал (а):
и еще: period - никогда не называй переменные именем имеющихся функций, у МТ от этого могут заворачиваться мозги, он ведь достаточно нежный...
МТ различает регистр слов, поэтому period, pEriod, peRiod, periOd и perioD - это 5 разных переменных, ни одна из которых не будет конфликтовать с функцией Period() ;)

ага, у меня была тема, когда я в коде вместо Point написал Point(), он все намана откомпилял, а при выполнении творил ерунду, а т. к. неизвестно от чего еще у него может быть несварение, дык луче перестраховаться... :)
 
ustim писал (а):
if(Period()==PERIOD_M1){period=0;}

period - не может равняться нулю

if(Period()==PERIOD_M1){period=1;}

Ну как же он не может равняться 0, 0 - текущий период, можно вместо 0 поставить PERIOD_M1.