Ошибки, баги, вопросы - страница 154

 

Почему-то не удается получить данные от индикатора, используя стандартную библиотеку. Вот скрипт:

//---------------------------------------------------------------------
#include  <Indicators\Trend.mqh>
//---------------------------------------------------------------------
CiSAR  price_source;
//---------------------------------------------------------------------
void
OnStart( )
{
  if( price_source.Create( Symbol( ), PERIOD_CURRENT, 0.01, 0.2 ) == true )
  {
    for( int i = 0; i < 10; i++ )
    {
      Print( "Price[ ", i, " ] = ", price_source.Main( i ));
    }
  }
}
//---------------------------------------------------------------------

Вот результат его работы:

2010.10.04 13:31:17    TestIndicator (AUDUSD,H1)    Price[ 9 ] = 1.797693134862316e+308
2010.10.04 13:31:17    TestIndicator (AUDUSD,H1)    Price[ 8 ] = 1.797693134862316e+308
2010.10.04 13:31:17    TestIndicator (AUDUSD,H1)    Price[ 7 ] = 1.797693134862316e+308
2010.10.04 13:31:17    TestIndicator (AUDUSD,H1)    Price[ 6 ] = 1.797693134862316e+308
2010.10.04 13:31:17    TestIndicator (AUDUSD,H1)    Price[ 5 ] = 1.797693134862316e+308
2010.10.04 13:31:17    TestIndicator (AUDUSD,H1)    Price[ 4 ] = 1.797693134862316e+308
2010.10.04 13:31:17    TestIndicator (AUDUSD,H1)    Price[ 3 ] = 1.797693134862316e+308
2010.10.04 13:31:17    TestIndicator (AUDUSD,H1)    Price[ 2 ] = 1.797693134862316e+308
2010.10.04 13:31:17    TestIndicator (AUDUSD,H1)    Price[ 1 ] = 1.797693134862316e+308
2010.10.04 13:31:17    TestIndicator (AUDUSD,H1)    Price[ 0 ] = 1.797693134862316e+308

Вместо значений выдается, видимо, EMPTY_VALUE.

Что я делаю не так?

 
Dima_S:


Что я делаю не так?


Попробуйте добавить

price_source.Refresh(-1);


Перед тем как запрашивать данные.

 

Спасибо, помогло. Хорошо бы это в справке отразить.

void CIndicator::Refresh(int flags)

Так понимаю, что flags - это бинарная маска тайм-фреймов, которые рефрешатся? Если -1, то все ТФ обновляются?
 
Dima_S:
Так понимаю, что flags - это бинарная маска тайм-фреймов, которые рефрешатся? Если -1, то все ТФ обновляются?

Именно так. Можете использовать константы видимости объектов.

https://www.mql5.com/ru/docs/constants/objectconstants/visible

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Видимость объектов
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Видимость объектов
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы объектов / Видимость объектов - Документация по MQL5
 

Что-то не могу понять, пропустил видимо. Вот это:

class dfgdfg
{                                
   void sgsfd();
};

 компилируется нормально. Так и должно быть? 

Так понимаю оптимизатор метод вырезает как не используемый ещё до компиляции и в итоге сообщение об ошибке 111 не выдается.

+Ещё и неиспользуемые методы с ошибками в реализации тоже компилируются без сообщений.

 

Моя проблема кому-нибудь интересна?

https://www.mql5.com/ru/forum/2172/page1

Не обновляются некоторые графики
Не обновляются некоторые графики
  • www.mql5.com
Непосредственно в индикаторе выбирается необходимый инструмент и период графика.
 

Ещё вылезла проблема.

Массивы инициализируются только при старте индикатора

Это соотносится с какой-то ошибкой в стандартном зигзаге:


 
МТ 5 не работает через прокси(http,socks 4,5) Билд 328. При этом МТ 4 через эти прокси работает нормально.
 
AlexSTAL:

Моя проблема кому-нибудь интересна?

https://www.mql5.com/ru/forum/2172/page1

Да, ваши сообщения видели.

Пытаемся повторить.

 
AlexSTAL:

Ещё вылезла проблема.

Массивы инициализируются только при старте индикатора

Это соотносится с какой-то ошибкой в стандартном зигзаге:


Когда вы получаете Memory exception дальнейшее продолжение работы терминала смысла не имеет. Самое разумное - перезапустить терминал и разбираться почему потребовалось столько памяти и попытаться уменьшить аппетиты.