Ошибки, баги, вопросы - страница 2257
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Я использовал такую запись в макросе (для обхода другой ошибки) чтобы запись внутри и вне класса имела одинаковый вид
Также использовал в том же ключе для генерации универсального С++\MQL кода, когда в ряде случаев С++ требует, а MQL не требует выноса реализации метода за пределы класса https://www.mql5.com/ru/forum/1111/page2065#comment_6023680
Там дальше по ссылкам не посмотреть, но суть ясна, спасибо.
Там дальше по ссылкам не посмотреть
что то запутался, проверить нет возможности т.к. рынок стоит, вот исходные данные:
1. шаг цены 1
2. цена в стакане на уровне 19705 по ask
3. цена в стакане на уровне 19701 по bid
4. спред равен 4
сделки же у нас в это время проходят по BUY по 19704, а по SELL по 19702 ?
или они идут по тем же уровням где края стакана, т.е. по BUY - 19705 и и по SELL - 19701 ?
На каком рынке торгуете? Если на биржевом, то 19705 и 19701. Откуда другие-то лоты возьмутся? Но меня смущает спред 4. На бирже он плавающий. Если Вы о форексе - то не знаю, на нем не торгую.
На каком рынке торгуете? Если на биржевом, то 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
—
—
—
//---
Для отслеживания этого события на других открытых графиках можно было бы включать мониторинг, указав идентификатор нужного графика.
Например, вот так:
Нужна возможность отслеживать изменения свойств всех графиков, а не только того, на котором размещена MQL-программа.
Сделайте костыль через таймер.
Сделайте костыль через таймер.
Не хочется делать костыль. Разработчики MQ могут расширить возможности.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Ошибки, баги, вопросы
Anatoli Kazharski, 2018.08.20 08:11
Нужна возможность отслеживать изменения свойств всех графиков, а не только того, на котором размещена MQL-программа.
Сейчас событие CHARTEVENT_CHART_CHANGE не содержит никаких других параметров:
Событие
Значение параметра id
Значение параметра lparam
Значение параметра dparam
Значение параметра sparam
Событие изменения размеров графика или изменения свойств графика через диалог свойств
CHARTEVENT_CHART_CHANGE
—
—
—
//---
Для отслеживания этого события на других открытых графиках можно было бы включать мониторинг, указав идентификатор нужного графика.
Например, вот так:
В качестве lparam-параметра может быть идентификатор графика, на котором были изменения. В качестве sparam-параметра название символа.
Ошибка при выполнении:
Результат: Ожидалось:
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