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

Sergey Dzyublik:

Дефект в работе отладчика ME(build 2370) - после срабатывания breakpoint вместо продолжения выполнения кода при нажатии (F5), в действительности повторно срабатывает тот же breakpoint без выполнения какого-либо кода.

Шаги по воспроизведению:
1) Вручную установить 
breakpoint для обоих строк " arr.Add()";
2) Запустить отладку (F5);
3) С помощью ПКМ открыть вложенный файл <Generic\ArrayList.mqh> в новой вкладке.
4) Найти строку "if(m_size==ArraySize(m_items))" в функции "bool CArrayList::Add(T item)" и установить вручную breakpoint.
5) Находясь во вкладке "
ArrayList.mqh" продолжить выполнение кода (F5).

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

 

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

Исправлено

fxsaber:

Потому что речь только о Тестере без использования Sleep - 99% советников.

По произвольным задержкам Тестера не возьмусь утверждать, т.к. никогда не видел этот режим полезным.

Ничего принципиально не меняя, проще сделать (что по факту так и есть), чтобы запись:

SymbolInfoTick( NULL, tick ); //1

означала бы

SymbolInfoTick( Symbol(), tick ); //2

по крайней мере вопрос о копировании строк отпадает

A100:

Ничего принципиально не меняя, проще сделать (что по факту так и есть), чтобы запись:

означала бы

по крайней мере вопрос о копировании строк отпадает

он другое в итоге просит, нужен максимально быстрый доступ к структуре MqlTick на каждом тике

тут как бы парадокс, что есть доступ к _Symbol .... но нет такого доступа к 

const MqlTick _Tick; // Текущий _Symbol-тик.

хотя язык MQL позиционируется как язык разработки торговый стратегий.... я не знаю какие бывают ТС если не знать на текущем тике текущие цены

Igor Makanu:

он другое в итоге просит, нужен максимально быстрый доступ к структуре MqlTick на каждом тике

А чем вариант

SymbolInfoTick( NULL, tick ); //1

не устраивает? Покажите где здесь узкое место? Если и это медленно, то у Разработчиков есть возможность заинлайнить\оптимизировать такой вызов - без принципиальных изменений

A100:

А чем вариант

не устраивает? Если и это медленно, то у Разработчиков есть возможность заинлайнить\оптимизировать такой вызов

да это медленно, по крайней мере в тестере, я так в тестере пишу https://www.mql5.com/ru/forum/1111/page2749#comment_16487642

при большом количестве проходов оптимизатора появляется выигрыш


не знаю как обьяснить, не умею элементарные вещи обьяснять.. 

ну как пишутся ЕА? - собираешь себе библиотеку, в процедурном или ООП стиле, каждая функция полностью переносима в другой проект, и чтобы это обеспечить пишешь везде  Bid, Ask  - мой пример. Потом собираешь из заготовок торговую стратегию. То что сейчас предлагают разработчики - пишешь везде SymbolInfoDouble()

Igor Makanu:

тут как бы парадокс, что есть доступ к _Symbol .... но нет такого доступа к 

const MqlTick _Tick; // Текущий _Symbol-тик.

хотя язык MQL позиционируется как язык разработки торговый стратегий

Вот как-раз не нужно этого ***.  _Symbol - это константа, поэтому с ним проблем нет (хотя правильней всё ж вызывать Symbol()).  А тик - это переменная.  Как это вы себе представляете, что она у вас объявлена const, но значение её меняется.

Alexey Navoykov:

Как это вы себе представляете, что она у вас объявлена const, но значение её меняется.

увы, я такой же как и Вы... такой же идеалист, которому логичнее и понятнее писать в VS C# - там компилятор не дает отделить логичное понятие константа от машинной проверки С++ перед компиляцией

вот не стеснялся задавал вопросы 

https://www.mql5.com/ru/forum/1111/page2680#comment_15546412


суть - в С++ это все логичное ;)

Alexey Navoykov:

Вот как-раз не нужно этого ***.  _Symbol - это константа, поэтому с ним проблем нет (хотя правильней всё ж вызывать Symbol()).

Что плохого, что за пользователя написано это?

const string _Symbol = ::Symbol();

А тик - это переменная.  Как это вы себе представляете, что она у вас объявлена const, но значение её меняется.

Bid/Ask в MT4. Там, конечно, RefreshRates() есть.


Совсем недавно обнаружил символ, на котором Digits было неверно задано. Попросил брокера исправить. Он это сделал сходу. Не смотрел, менялось ли значение переменой _Digits и Digits(). Но просто факт, что символ может поменять свои значения на ходу.

   Уважаемые разработчики, можно ли привести окно графика к виду других окон, как в WIN 10? Либо предусмотреть возможность "перекрашивать" рамку окна графика, да и рамку терминала в целом, в чёрный цвет.
В зависимости от цветовой схемы, например. Широкие белые рамки на чёрных графиках  нервируют, раздражают и мешают разбогатеть. Пожалуйста!!
Igor Makanu:

увы, я такой же как и Вы... такой же идеалист, которому логичнее и понятнее писать в VS C# - там компилятор не дает отделить логичное понятие константа от машинной проверки С++ перед компиляцией

вот не стеснялся задавал вопросы 

https://www.mql5.com/ru/forum/1111/page2680#comment_15546412

Там у вас в первом случае меняется статическая переменная, а не член класса.  Поэтому константность вообще ни при чём.