MQL5 для дилетантов - страница 4

 

Здравствуйте!

Ошибка в индикаторе, по моему, может формироваться только в одном месте

      if(rates_total<nBars)   return(0);

где: nBars - число баров для расчета.

В Пн проверю, спасибо.

Еще один вопрос, никак не могу понять ... почему, если используешь, например,

High[rates_total] 

возникает ошибка Array out of range?

Если rates_total - это по идее индекс формирующегося (текущего) бара.

А если High[rates_total-1], то всё нормально - ?

Если только опять, что нибудь не напутал :)

 
Индексы считаются с нуля, поэтому последний элемент - это High[rates_total-1]

 
Renat   :
Индексы считаются с нуля, поэтому последний элемент - это High[rates_total-1]

Блин ... :) Спасибо. Надо отдыхать, так и изобрести что-нибудь не долго :)

 

Зуд творчества :)

Ещё одна проблема. Не могу разобраться.

Используемый тип графического построения DRAW_FILLING.

Объекты (области цен) - получаются все те, что хотелось бы видеть.

Отдельные области с заливкой, наложение областей, перекрытие, мозаика и даже "мультик" :) ... класс.

В чём проблема.

Рисунок первый. Последовательность областей ... номера ... 0 - первые два буфера, 1 - вторые два буфера.

Чтобы область цен с номером 0, например, не отрисовывалась на месте области с номером 1 ...

Присваиваю ... Buffer3=0.0 Buffer4=0.0 ...аналогично и для областей с номером 1.

Результат на рисунке 2.

Если вместо 0.0 использовать EMPTY_VALUE ... результат на рисунке 3.

Если вообще не присваивать никакие значения ... вероятно, поумолчанию ... мт5 использует 0.0 .... результат, как рисунке 2.

Ответа в аналогичных инди ... например ... Trading Sessions Open Close ... не нашёл ... там таже проблема с 0.0.

Кто подскажет в чём может быть ошибка?

Файлы:
pic1.png  15 kb
pic2.png  16 kb
pic3.png  13 kb
 

Привет.

При объявлении dll возникает ошибка:

- arrays passed by reference only

#import "Z.dll"
void fastZ(double X[],int,int,int,double Y[]);
#import

Кто пояснит в чём суть и каковы возможные решения этой проблемы?

 
SHerh   :

Привет.

При объявлении dll возникает ошибка:

- arrays passed by reference only

#import "Z.dll"
void fastZ(double X[],int,int,int,double Y[]);
#import

Кто пояснит в чём суть и каковы возможные решения этой проблемы?


При объявлении обязательно проставлять ссылку

 

#import "Z.dll"
void fastZ(double &X[],int,int,int,double &Y[]);
#import
 

 
mql5   :


При объявлении обязательно проставлять ссылку

 

#import "Z.dll"
void fastZ(double &X[],int,int,int,double &Y[]);
#import
 


Ясно. Спасибо!

 

С этим вообще никогда не сталкивался:

2010.01.13 20:19:11    ИзучаемMQL5 (EURUSD,D1)    Unhandled exception 0xC0000005

Вопрос ... библиотеки dll, что работали в мт4 - будут работать в мт5?

 
SHerh   :

С этим вообще никогда не сталкивался:

2010.01.13 20:19:11    ИзучаемMQL5 (EURUSD,D1)    Unhandled exception 0xC0000005

МТ5 отлавливает креши в DLL и не позволяет терминалу упасть.

Вопрос ... библиотеки dll, что работали в мт4 - будут работать в мт5?

Да, будут при совместимости передаваемых параметров.

 
SHerh   :

С этим вообще никогда не сталкивался:

2010.01.13 20:19:11    ИзучаемMQL5 (EURUSD,D1)    Unhandled exception 0xC0000005

Вопрос ... библиотеки dll, что работали в мт4 - будут работать в мт5?

Работать будет не всё, строки в MQL5 юникодные,а MQL4 анси