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

 

Баг сайта со ссылками.

Если форумное сообщение было перенесено модератором в другую ветку, то в профиль-поиске "Все сообщения" это сообщение ссылается на старое место. Соответственно, не перейти на него.

 
A100:

MT5\1653\32\Win10 - у меня доходит до строки //Результат: false

Если в Вас тоже 32-разрядная и возникает invalid pointer - тогда вообще какая то случайная ошибка  

СервисДеск пишет что: Функция f пустая и вызов вырезается оптимизатором, как и вызов оператора копирования

Но если

то Результат:

2017.09.26 14:03:55.853 Demo (GBPUSD,M15) A::f
2017.09.26 14:03:55.853 Demo (GBPUSD,M15) false
по сути не меняется

Дополню, функция f не содержит адресации к полям объекта, поэтому для функции f  указатель на объект (this) не нужен.
Оптимизатор удаляет ненужное разыменовывание хендла (напомню, в MQL указатель это хендл) в указатель на объект, т.к. он (указатель)  не используется внутри f

 
Ilyas:

Дополню, функция f не содержит адресации к полям объекта, поэтому для функции f  указатель на объект (this) не нужен.
Оптимизатор удаляет ненужное разыменовывание хендла (напомню, в MQL указатель это хендл) в указатель на объект, т.к. он (указатель)  не используется внутри f

Ясно, работа с f, как со static. Но как объяснить, что у одного проходит выполнение, а у другого - прерывается?

 
В самом деле, удобно было бы хотя бы такое
input string Value = _MarketWatch; // Выпадающий список (а-ля enum) символов из Обзора рынка

Forum on trading, automated trading systems and testing trading strategies

ENUM Symbol list as an INPUT

Martin Nohejl, 2017.09.26 13:01

Hi, I am going to do following:

I want to have symbol as an input parameter, so I want an input variable (enum) from which I will choose the right symbol, like this:

I have done this by this code:

enum ENUM_SYMBOL
   { 
    EURUSD=0, 
    GPBUSD=1, 
    USDCHF=2
   };

That works for me perfectly. But I would like to fullfill the enum dynamicaly by the whole list of symbols (SymbolsTotal(0);).

Somehow probably by code:

int a = SymbolsTotal(0);
for(int i=0; i!=a;i++){
....
}
 
fxsaber:

Ясно, работа с f, как со static. Но как объяснить, что у одного проходит выполнение, а у другого - прерывается?

Скорее всего Вы запускаете отладку (F5), а A100 сначала компилирует (F7) и потоми накидывает на чарт.

При компиляции под отладку оптимизатор только удаляет явно неиспользуемый код, все остальные оптимизации не проводятся.
 
Ilyas:
Скорее всего Вы запускаете отладку (F5), а A100 сначала компилирует (F7) и потоми накидывает на чарт.

При компиляции под отладку оптимизатор только удаляет явно неиспользуемый код, все остальные оптимизации не проводятся.

Эту особенность учел сразу. Сейчас еще раз себя перепроверил.

Release-вариант:

Test (EURUSD,H1)        invalid pointer access in 'Test.mq5' (9,11)
 
fxsaber:

Эту особенность учел сразу. Сейчас еще раз себя перепроверил.

Release-вариант:

Да, действительно, есть разница в подведении 32 битного и 64 битного кода, приведём к одному поведению.
 
fxsaber:
В самом деле, удобно было бы хотя бы такое

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

Хотя если советником открывать график, то нужен список MarketWatch

В любом случае поддерживаю...

 
fxsaber:
В самом деле, удобно было бы хотя бы такое

По работе с символами предложение:

Пока алгоритм работы со типом string затратный - реализовать хотя бы возможность работать с цифровым индексом символа брокера.

int OrderSymbolIndex()//приходит напрямую с сервера

int SymbolIndex((string)symbol_name)//т.к. синхронизировано с индексами брокера в терминале - исполняется локально


выгоды очевидны на уровне хранения (можно в простых структурах, массивах), обработки (процессор и память) и передачи информации

 
Kirill Belousov:

По работе с символами предложение:

Пока алгоритм работы со типом string затратный - реализовать хотя бы возможность работать с цифровым индексом символа брокера.

int OrderSymbolIndex()//приходит напрямую с сервера

int SymbolIndex((string)symbol_name)//т.к. синхронизировано с индексами брокера в терминале - исполняется локально


выгоды очевидны на уровне хранения (можно в простых структурах, массивах), обработки (процессор и память) и передачи информации

Предлагать можно многое, но, наверное, стоит немного представлять себя на месте разработчиков. Работу со строками, скорее всего, ускорят.