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

 

У меня есть Buf[0], Buf[1], а функция  

Обращение по начальной позиции и количеству требуемых элементов

int  CopyBuffer(
   int       indicator_handle,     // handle индикатора
   int       buffer_num,           // номер буфера индикатора
   int       start_pos,            // откуда начнем 
   int       count,                // сколько копируем
   double    buffer[]              // массив, куда будут скопированы данные
   );

 

CopyBuffer(M_Handl[In][AO_D],0,0,2,Buf);  // я копирую 0-й и 1-й бар по идее

А в Buf-то нет 0-го бара, есть только 1-й бар и 2-й бар. Есть тики или нет, но последнее значение индюка на 0-м баре должно же быть, а оно по своему значению даже близко не совпадает со значеним в Buf[1], зато полностью совпадает со значеним индикатора на баре № 1. 

 

Модератор
216

stringo  2010.07.19 15:59 2010.07.19 15:59:06

Ключевое слово OnTimer

Хорошо, подумаю!
 
void OnDeinit(const int reason)
  {
//--   
   int LeftBar = ChartGetInteger(0,CHART_FIRST_VISIBLE_BAR);
   Print(LeftBar);  
  }

Если reason - смена таймфрейма, то LeftBar=0;

Если reason - перекомпеляция то все ок. 

Так должно быть ? 

 

Скажите, пожалуйста.

 Должен ли терминал сохранять свою работоспособность при любых ошибках в коде программ, допущенных трейдором?

Например деление на ноль, обращение к несуществующим данным массива и т.д.

Функция 

bool  IndicatorRelease(
   int       indicator_handle,     // handle индикатора
   );

 Удаляет хэндл индикатора и освобождает расчетную часть индикатора, если ею больше никто не пользуется.

В приведенном примере она используется в теле  void OnTick().

Я решил позкспериментировать с ней в  void OnDeinit.

В справке не нашел инфу где ее пользовать, хотя наверное при  деинициализации хэндлы освобождаются автоматически и нет нужды ее использовать там. Правда я так и не понимаю, что такое хэндл.

Так вот. Терминал стал падать при удалении эксперта с графика. 

Прилагаю коды. 

Если надо и это баг, могу оформить через сервисдеск.

Документация по MQL5: Доступ к таймсериям и индикаторам / IndicatorRelease
Документация по MQL5: Доступ к таймсериям и индикаторам / IndicatorRelease
  • www.mql5.com
Доступ к таймсериям и индикаторам / IndicatorRelease - Документация по MQL5
Файлы:
servis_2.mq5  1 kb
servis_3.mq5  2 kb
 

PS  Спасибо за исправления в 294 билде,  все выявленные ранее проблемы устранились.

Будем искать новые ))) 

 
SHOOTER777:

PS  Спасибо за исправления в 294 билде,  все выявленные ранее проблемы устранились.

Будем искать новые ))) 

Хендл (handle) - Уникальный идентификатор (обычно число) который идентифицирует определенный объект (экземпляр класса) для доступа к нему.

Также хендл может  идентифицирующий определенные типы данных, за исключением простых (хотя тут есть вопрос).


Этот термин наиболее широко прижился в Windows API. Обозначает идентификатор выделенного системой ресурса. Например, открыли некий файл - получили хэндл открытого файла, загрузили DLL - получили хэндл, с помощью которого можно выполнять некие действие с DLL. Аналогичные объекты существуют и в API других ОС, например в Linux. Сам по себе хэндл (физически) - являющееся индексом или указателем на системные объекты ОС. Хэндл выполняет роль идентификатора системного объекта и передается в качестве аргумента при вызове функций API, выполняющих действия над системным объектом. Существуют также функции, создающие новые системные объекты, например CreateFile в Windows API или socket() в Linux. Такие функции возвращают хэндл в качестве результата своей работы или специальное оговоренное в документации значение, если вызов функции по какой-либо причине не был удачно выполнен ОС.

С точки зрения языка программирования (например, Си) хэндл - всего лишь один из типов данных (в большинстве случаев - целое число). Создавать его столь же банально, как и любой другой объект существующего типа. Но смысл значение хэндла имеет только в контексте выполняющихся в ОС процессов. Другими словами, хэндл со значением 123456 будет воспринят с очень большой вероятностью как ошибочный и его использование в функциях API ничего полезного не даст.

 

Разработчикам

Обратите плиз внимание на мою заявку №18959 (не могу понять логику работы со свопами, и добиться вразумительного ответа тоже не могу). Хоть скажите это ошибка, временные трудности или я сам дурак? Особо меня интересует вопрос начисления свопов на чемпионате...

Также обратите внимание на заявку 19046 - там проблемы округления цены открытия при некоторых торговых операциях (доливке и урезке объема позиции).

 

Errors, MetaTrader 5 MQL, Открыта, Начата: 2010.07.20 09:38, #19056 

Обратите внимание. 

 

Добрый день..

баги?

* Перемещаясь в редакторе ctrl+TAB  или переходя в терминал-возвращаясь, компилируя по F7.. не вижу текстового курсора до тех пор, пока не ткну мышой в имя файла на закладке..

* не могу сделать RenameALL по alt+A.. опять приходится использовать мыша.. которого нет.. //lang eng

 
EQU:

Добрый день..

баги?

* Перемещаясь в редакторе ctrl+TAB  или переходя в терминал-возвращаясь, компилируя по F7.. не вижу текстового курсора до тех пор, пока не ткну мышой в имя файла на закладке..

* не могу сделать RenameALL по alt+A.. опять приходится использовать мыша.. которого нет.. //lang eng


1. Не получилось повторить. Перемещение по Ctrl+Tab, Ctrl+Shift+Tab отрабатывает, при этом фокус ввода остается в окне редактора. Может есть какие-то особенности воспроизведения?

2. А что должно делать сочетание Alt+A? Если перемещение по правке и замене, то оно делается по Shift+Tab, Tab.

Причина обращения: