Новая версия платформы MetaTrader 5 build 2650: Фоновая загрузка графиков и улучшения в профилировщике MQL5-кода - страница 30

 
Denis Kirichenko:

Алексей, тут long как старшая матрёшка: в неё помещаются младшие. Зачем плодить разные сущности? :-))

Попробуйте так, с явным приведением типа:

Спасибо конечно, но с этим фокусом я знаком - так и сделал. Но тот же Ренат (если не путаю) высказывался, что мол так делать нельзя и это сильно затормаживает код.

Речь же о том, что логика в названии переменной и её описание в хелпе не соответствуют действительности.

 
Я всегда так пишу:
int("123456")
long ("123456")
string (123466)

 

Английская версия этого отчета о проблеме находится здесь:https://www.mql5.com/en/forum/354642

Дорогие люди, Попробовав спросить в существующей старой ветке (https://www.mql5.com/en/forum/300712#comment_18993310) и проведя множество экспериментов, я снова здесь, чтобы спросить. Поскольку мне не удалось создать собственный символ из файла csv, как сообщил автор другого потока (точно такая же проблема), я сказал себе: «Давайте сделаем это программно». И вот пошагово вся моя процедура. Скажите, пожалуйста, в чем я ошибаюсь (или ... если есть какие-то проблемы с платформой). 1. Создаю в терминале новый пользовательский символ:

2. Я просто «беру как есть» особенности символа существующей валюты. Я просто "переименовал":

3. Символ создан правильно. Обратите внимание, что все еще остались остатки всех моих вчерашних испытаний. Я НИКОГДА не могу от этого избавиться. Я могу нажать кнопку «Удалить пользовательский символ» в контекстном меню, я могу удалить файлы из каталога .... / base / Custom. Этот символ "rw_AUDCAD" остается там даже после перезапуска терминала!

4. Что ж, тогда я использую свой сценарий:

//+---------------------------------------------------------------------------+
//|                                                       TestCutomeRates.mq5 |
//| Just testing                                                              |
//+---------------------------------------------------------------------------+
#property version   "1.00"

void OnStart() {
  MqlRates  destination[];
  datetime start = StringToTime("2020.01.02 00:00");
  datetime stop  = StringToTime("2020.10.30 22:00");
  int copied = CopyRates("AUDCAD", PERIOD_M1, start, stop, destination);
  printf("Number of copied bars: %i", copied);
  
  int ctr = CustomRatesUpdate("my_AUDCAD", destination);
  printf("Number of bars into new symbol: %i", ctr);
  Alert("Done");  
}
//+------------------------------------------------------------------+

5. Скрипт работает отлично (насколько можно судить):

6. Но на терминале НИЧЕГО не произошло:

7. Собственно, скрипт действительно заработал, и эффекты видны в файловой системе:

Вы видите, что в папке base / Custom / history / был создан каталог my_AUDCAD, и он даже содержит 18 МБ данных HCC. Это не странно? Конечно в терминале, даже после перезапуска, я даже не могу выбрать "my_AUDCAD" для открытия графика! Разве это не странно в целом? Я использую сборку 2650 в Windows 10 (64-разрядная версия Intel)

Please help with custom symbols!
Please help with custom symbols!
  • 2020.10.31
  • www.mql5.com
Dear people, After having tried to ask in an existing old thread ( https://www.mql5...
 
2666 билд,  профилировщик мертв....
 
Fab:

Английская версия этого отчета о проблеме находится здесь:https://www.mql5.com/en/forum/354642

Дорогие люди, Попробовав спросить в существующей старой ветке (https://www.mql5.com/en/forum/300712#comment_18993310) и проведя множество экспериментов, я снова здесь, чтобы спросить. Поскольку мне не удалось создать собственный символ из файла csv, как сообщил автор другого потока (точно такая же проблема), я сказал себе: «Давайте сделаем это программно». И вот пошагово вся моя процедура. Скажите, пожалуйста, в чем я ошибаюсь (или ... если есть какие-то проблемы с платформой). 1. Создаю в терминале новый пользовательский символ:

2. Я просто «беру как есть» особенности символа существующей валюты. Я просто "переименовал":

3. Символ создан правильно. Обратите внимание, что все еще остались остатки всех моих вчерашних испытаний. Я НИКОГДА не могу от этого избавиться. Я могу нажать кнопку «Удалить пользовательский символ» в контекстном меню, я могу удалить файлы из каталога .... / base / Custom. Этот символ "rw_AUDCAD" остается там даже после перезапуска терминала!

4. Что ж, тогда я использую свой сценарий:

5. Скрипт работает отлично (насколько можно судить):

6. Но на терминале НИЧЕГО не произошло:

7. Собственно, скрипт действительно заработал, и эффекты видны в файловой системе:

Вы видите, что в папке base / Custom / history / был создан каталог my_AUDCAD, и он даже содержит 18 МБ данных HCC. Это не странно? Конечно в терминале, даже после перезапуска, я даже не могу выбрать "my_AUDCAD" для открытия графика! Разве это не странно в целом? Я использую сборку 2650 в Windows 10 (64-разрядная версия Intel)

Судя по скриншоту со словом "Empty!!!!", Вы не нажали на кнопку Request - на скриншоте над таблицей нет никакого сообщения

График my_AUDCAD открывается?

 
Билд 2650, последний релизный. В советник не грузится set-файл со входными данными, если файл в уникоде. Хорошо бы для всех загружаемых файлов проверять кодировку и работать как с анси, так и с уникодом. Учитывая, что строки по дефолту в уникоде.
 
Slava :

Judging by the screenshot with the word "Empty !!!!", you did not click on the Request button - there is no message in the screenshot above the table

Is the my_AUDCAD chart opening?

Дорогой Слава, спасибо вам огромное! Как обычно, «ты» тот парень, который решает проблемы! Пока мне никто не подсказал. Но тогда у меня есть еще два вопроса:

  1. При программной загрузке данных, как в моем скрипте, будут ли данные доступны для дальнейшей обработки также без вмешательства графического интерфейса (т.е. без того, чтобы пользователь нажимал на «Запрос»?
  2. Я попытался загрузить данные для другой пользовательской системы (rw_AUDCAD) из пользовательского интерфейса без сценария. Что ж: вы видите данные во вкладке «Бары», но как только вы закрываете окно «Пользовательские символы», диаграмма становится недоступной, а если вы вернетесь к символам, история баров rw_AUDCAD снова станет пустой, как и данные были не особо загружены. Все равно файл .hcc был написан. Почему я не могу импортировать файлы csv из пользовательского интерфейса (данные были сгенерированы как для my_AUDCAD, просто сохранены в файле). Огромное спасибо заранее!
Объем импорта г/г - экономический индекс Японии
Объем импорта г/г - экономический индекс Японии
  • www.mql5.com
Объем импорта г/г (Imports y/y) отражает изменение объема импорта товаров и услуг в отчетном месяце по сравнению с тем же месяцем прошлого года. Показатели импорта используются для оценки внешней торговой активности Японии и спроса на импортируемые товары внутри страны. Из-за последствий "финансового кризиса" США Япония также столкнулась с...
 
Fab:

Дорогой Слава, спасибо вам огромное! Как обычно, «ты» тот парень, который решает проблемы! Пока мне никто не подсказал. Но тогда у меня есть еще два вопроса:

  1. При программной загрузке данных, как в моем скрипте, будут ли данные доступны для дальнейшей обработки также без вмешательства графического интерфейса (т.е. без того, чтобы пользователь нажимал на «Запрос»?
  2. Я попытался загрузить данные для другой пользовательской системы (rw_AUDCAD) из пользовательского интерфейса без сценария. Что ж: вы видите данные во вкладке «Бары», но как только вы закрываете окно «Пользовательские символы», диаграмма становится недоступной, а если вы вернетесь к символам, история баров rw_AUDCAD снова станет пустой, как и данные были не особо загружены. Все равно файл .hcc был написан. Почему я не могу импортировать файлы csv из пользовательского интерфейса (данные были сгенерированы как для my_AUDCAD, просто сохранены в файле). Огромное спасибо заранее!

1. Да. Данные будут доступны и без графического интерфейса.

2. Каким образом Вы пытались загрузить данные без скрипта? Экспорт из AUDCAD и импорт в rw_AUDCAD?

Совет. Если Ваш кастомный символ my_AUDCAD является форексным, то лучше назовите его AUDCAD_my из-за особенности формирования имён валютных пар

 

Уже несколько релизных версий подряд периодически бывают краши при прогоне скрипта. Иногда может неделю гонять скрипт и нормально. Иногда по несколько раз подряд крашит. Обычно если начал крашить, будет продолжать, пока не рестартуешь терминал или не сребилдишь скрипт.

Access violation at 0x000007F726B0A2B5 read to 0x00000001FFFFFFF0
              000007F726B0A250 55                push       rbp
              000007F726B0A251 4157              push       r15
              000007F726B0A253 4156              push       r14
              000007F726B0A255 4155              push       r13
              000007F726B0A257 4154              push       r12
              000007F726B0A259 56                push       rsi
              000007F726B0A25A 57                push       rdi
              000007F726B0A25B 53                push       rbx
              000007F726B0A25C 4881EC88000000    sub        rsp, 0x88
              000007F726B0A263 488DAC2480000000  lea        rbp, [rsp+0x80]
              000007F726B0A26B 4883FA10          cmp        rdx, 0x10
              000007F726B0A26F 722C              jb         0x7f726b0a29d

              000007F726B0A271 4889D3            mov        rbx, rdx
              000007F726B0A274 F6C30F            test       bl, 0xf
              000007F726B0A277 7439              jz         0x7f726b0a2b2

              000007F726B0A279 48895C2420        mov        [rsp+0x20], rbx
              000007F726B0A27E 488D0DE3FA6E00    lea        rcx, [rip+0x6efae3]
              000007F726B0A285 4C8D05C84E5800    lea        r8, [rip+0x584ec8]
              000007F726B0A28C 4C8D0D35675400    lea        r9, [rip+0x546735]
              000007F726B0A293 BA02000000        mov        edx, 0x2
              000007F726B0A298 E89359CCFF        call       0x7f7267cfc30  ; #5436 (terminal64.exe)
              000007F726B0A29D 90                nop        
              000007F726B0A29E 4881C488000000    add        rsp, 0x88
              000007F726B0A2A5 5B                pop        rbx
              000007F726B0A2A6 5F                pop        rdi
              000007F726B0A2A7 5E                pop        rsi
              000007F726B0A2A8 415C              pop        r12
              000007F726B0A2AA 415D              pop        r13
              000007F726B0A2AC 415E              pop        r14
              000007F726B0A2AE 415F              pop        r15
              000007F726B0A2B0 5D                pop        rbp
              000007F726B0A2B1 C3                ret        

              000007F726B0A2B2 4889CE            mov        rsi, rcx
   crash -->  000007F726B0A2B5 4C8B43F0          mov        r8, [rbx-0x10]
              000007F726B0A2B9 4C3B81E8000000    cmp        r8, [rcx+0xe8]
              000007F726B0A2C0 0F838B000000      jae        dword 0x7f726b0a351
              000007F726B0A2C6 488B86E0000000    mov        rax, [rsi+0xe0]
              000007F726B0A2CD 4E8B2CC0          mov        r13, [rax+r8*8]
              000007F726B0A2D1 4C89E8            mov        rax, r13
              000007F726B0A2D4 4883E003          and        rax, 0x3

00: 0x000007F726B0A2B5

или так крашит

Access violation at 0x000007F726B0A2B5 read to 0x00000001FFFFFFF0
   crash -->  000007F726B0A2B5 4C8B43F0          mov        r8, [rbx-0x10]
              000007F726B0A2B9 4C3B81E8000000    cmp        r8, [rcx+0xe8]
              000007F726B0A2C0 0F838B000000      jae        dword 0x7f726b0a351
              000007F726B0A2C6 488B86E0000000    mov        rax, [rsi+0xe0]
              000007F726B0A2CD 4E8B2CC0          mov        r13, [rax+r8*8]
              000007F726B0A2D1 4C89E8            mov        rax, r13
              000007F726B0A2D4 4883E003          and        rax, 0x3

00: 0x000007F726B0A2B5
01: 0x000007F726B36051
02: 0x000000DE50C37F57

Сложно сказать, с чем связано, скрипт большой, повторяется не всегда, после ребилда или под отладкой не повторяется. Где-то выходит за границы памяти, что ли. Или портит память. Некоторые части скрипта используются в других местах, там норм. Возможно как-то связано с загрузкой из файлов FileLoad в массив или структуру. Но это предположение и пальцем в небо. Хотел бы предоставить больше информации, но пока как есть.

 
traveller00:

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

Возможно, на это нарвались.

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