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

 
A100:

Я использовал такую запись в макросе (для обхода другой ошибки) чтобы запись внутри и вне класса имела одинаковый вид

Также использовал в том же ключе для генерации универсального С++\MQL кода, когда в ряде случаев С++ требует, а MQL не требует выноса реализации метода за пределы класса https://www.mql5.com/ru/forum/1111/page2065#comment_6023680
Ошибки, баги, вопросы
Ошибки, баги, вопросы
  • 2017.11.07
  • www.mql5.com
Общее обсуждение: Ошибки, баги, вопросы
 
A100:
Также использовал в том же ключе для генерации универсального С++\MQL кода, когда в ряде случаев С++ требует, а MQL не требует выноса реализации метода за пределы класса https://www.mql5.com/ru/forum/1111/page2065#comment_6023680

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

 
fxsaber:

Там дальше по ссылкам не посмотреть

Опять же вопрос к Разработчикам: почему ссылки становятся со временем битыми, если сайт позиционируется теперь как основное средство для решения возникающих у пользователей вопросов?
 
Konstantin:

что то запутался, проверить нет возможности т.к. рынок стоит, вот исходные данные:

1. шаг цены 1
2. цена в стакане на уровне 19705 по ask
3. цена в стакане на уровне 19701 по bid
4. спред равен 4

сделки же у нас в это время проходят по BUY по 19704, а по SELL по 19702 ?
или они идут по тем же уровням где края стакана, т.е. по BUY - 19705 и и по SELL - 19701 ?

На каком рынке торгуете? Если на биржевом, то 19705 и 19701. Откуда другие-то лоты возьмутся? Но меня смущает спред 4. На бирже он плавающий. Если Вы о форексе - то не знаю, на нем не торгую.

 
Sergey Savinkin:

На каком рынке торгуете? Если на биржевом, то 19705 и 19701. Откуда другие-то лоты возьмутся? Но меня смущает спред 4. На бирже он плавающий. Если Вы о форексе - то не знаю, на нем не торгую.

рынок биржевой, срочная секция на moex

по спреду нет ни какой разницы какой он для самого вопроса, суть то в другом )) но спасибо за разъяснение, немного еще уточню:

1. стоит объем например по ask 2000 на цене 19705
2. край стакана по ask 19705, дальше спред

разве флаг TICK_FLAG_BUY из MqlTick пройдет по цене 19705 ?

ps. ступил )) сделка пройдет по 19705 если хватит объема, а дальше по таблице стакана выше пока не будет исполнена вся заявка...

 

Нужна возможность отслеживать изменения свойств всех графиков, а не только того, на котором размещена MQL-программа.

Сейчас событие CHARTEVENT_CHART_CHANGE не содержит никаких других параметров:

Событие

Значение параметра id

Значение параметра lparam

Значение параметра dparam

Значение параметра  sparam

Событие изменения размеров графика или изменения свойств графика через диалог свойств

CHARTEVENT_CHART_CHANGE

//---

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

Например, вот так:

ChartSetInteger(chart_id,CHART_EVENT_CHART_CHANGE,true);
 
Anatoli Kazharski:

Нужна возможность отслеживать изменения свойств всех графиков, а не только того, на котором размещена MQL-программа.

Сделайте костыль через таймер.

 
fxsaber:

Сделайте костыль через таймер.

Не хочется делать костыль. Разработчики MQ могут расширить возможности.

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Ошибки, баги, вопросы

Anatoli Kazharski, 2018.08.20 08:11

Нужна возможность отслеживать изменения свойств всех графиков, а не только того, на котором размещена MQL-программа.

Сейчас событие CHARTEVENT_CHART_CHANGE не содержит никаких других параметров:

Событие

Значение параметра id

Значение параметра lparam

Значение параметра dparam

Значение параметра  sparam

Событие изменения размеров графика или изменения свойств графика через диалог свойств

CHARTEVENT_CHART_CHANGE

//---

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

Например, вот так:

ChartSetInteger(chart_id,CHART_EVENT_CHART_CHANGE,true);
//---


В качестве lparam-параметра может быть идентификатор графика, на котором были изменения. В качестве sparam-параметра название символа.

 
A100:

Ошибка при выполнении:

Результат:                         Ожидалось:

A::f<int>:1                         A::f<int>:1
A::f<int>:753790661           A::f<int>:2
A::f<int>:Error:4007

А так:

нормально. А какая разница? С чего вдруг размер массива стал равен 753790660 (вместо единицы) и как следствие память вдруг закончилась (4007) ? MT5\1881\32

Более того... если в первом варианте удалить в классе буквально три символа - результат также будет нормальным

Спасибо за сообщение.

Исправлено.


Для работы в текущем билде не указывайте скоп класса при объявлении его методов.


Сообщения об остальных ошибках связаны с этой и после внесённых исправлений не воспроизводятся.

 

пример из справки не работает:

https://www.mql5.com/ru/docs/basis/function/operationoverload

не работает пример в самом низу страницы, со слов:

Другой пример перегрузки операции индексирования - работа с матрицами. Матрица представляет собою двумерный динамический массив, размеры массивов заранее неопределены. Поэтому нельзя объявить массив вида array[][] без указания размера второго измерения и затем передавать этот массив в качестве параметра. Выходом может служить специальный класс CMatrix, который содержит в себе массив объектов класса CRow.

компилятор пишет:

object of 'CMatrix' cannot be returned, copy constructor 'CMatrix::CMatrix(const CMatrix &)' not found tst.mq5 244 14

object of 'CMatrix' cannot be returned, copy constructor 'CMatrix::CMatrix(const CMatrix &)' not found tst.mq5 261 11

object of 'CMatrix' cannot be returned, copy constructor 'CMatrix::CMatrix(const CMatrix &)' not found tst.mq5 281 14

object of 'CMatrix' cannot be returned, copy constructor 'CMatrix::CMatrix(const CMatrix &)' not found tst.mq5 303 11

4 error(s), 0 warning(s) 5 1




Документация по MQL5: Основы языка / Функции / Перегрузка операций
Документация по MQL5: Основы языка / Функции / Перегрузка операций
  • www.mql5.com
Перегрузка операций позволяет использовать операционную нотацию (запись в виде простых выражений) к сложным объектам - структурам и классам. Запись выражений с использованием перегруженных операций упрощает восприятие исходного кода, так как более сложная реализация сокрыта. Для примера рассмотрим широко применяемые в математике комплексные...