Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
static string res = "012345678901234567890... ...255 "; /// ну я не могу 255 сивмолов А вы сможете :-)
// и не надо ее динамически наращивать!Все равно не помогает.
Првда, чисто по ощущениям мусора стало меньше. Но он все равно есть
--- проверьте DLL, отладку DLL проведите
--- например пишите из DLL в файл куда нибудь то что она возвращает
--- вы уверенны что DLL не возвращает мусор ?
YuraZ писал (а):
то есть если хотим передавать строки в эксперт из DLL то надо заранее проинициализировтаь строки максимальным значением типа
А кусочка кода DLL на Delphi не найдется. А то как не пытаюсь реализовать эту конструкцию получаю стабильный трабл MT4
YuraZ писал (а):
то есть если хотим передавать строки в эксперт из DLL то надо заранее проинициализировтаь строки максимальным значением типа
А кусочка кода DLL на Delphi не найдется. А то как не пытаюсь реализовать эту конструкцию получаю стабильный трабл MT4
увы нету, не практикую Delphi...
YuraZ писал (а):
то есть если хотим передавать строки в эксперт из DLL то надо заранее проинициализировтаь строки максимальным значением типа
А кусочка кода DLL на Delphi не найдется. А то как не пытаюсь реализовать эту конструкцию получаю стабильный трабл MT4
посмотрите еще вот это
РАБОТА СО СТРОКАМИ
Заметил странную особенность:
Чем на большем количестве инструменов работает советник тем больше мусора получается.
если работает на 1-2 инструментаз мусора нет вообще.
на 4-х начинает появлятся
на 8 - практически каждую минуту
Счем это может быть связано ...
Заметил странную особенность:
Чем на большем количестве инструменов работает советник тем больше мусора получается.
если работает на 1-2 инструментаз мусора нет вообще.
на 4-х начинает появлятся
на 8 - практически каждую минуту
Счем это может быть связано ...
стоит советник на разных парах ?
если на одной то для каждой пары попробуте свой массив
ResEURUSD = "..."
ResGBPJPY = "..." // 250 симовлов и т д
вообще явно что то не так, где то косяк
Заметил странную особенность:
Чем на большем количестве инструменов работает советник тем больше мусора получается.
если работает на 1-2 инструментаз мусора нет вообще.
на 4-х начинает появлятся
на 8 - практически каждую минуту
Счем это может быть связано ...
стоит советник на разных парах ?
если на одной то для каждой пары попробуте свой массив
ResEURUSD = "..."
ResGBPJPY = "..." // 250 симовлов и т д
вообще явно что то не так, где то косяк
Стоит на разных парах.
А про косяк понятно что он есть. А вот где он есть понять не могу
--- проверьте DLL, отладку DLL проведите
--- например пишите из DLL в файл куда нибудь то что она возвращает
--- вы уверенны что DLL не возвращает мусор ?
Проверил из DLL возвращается 'ОК' всегда
Првда, чисто по ощущениям мусора стало меньше. Но он все равно есть
Ребяты! сорри что влез, просто тоже беспокоит периодический мусор или точнее
сбой принимаемого файла при использовании wininet.dll
В цитате выше явно видно что мусор сыпется из ранних параметров:
можно бы предположить косяк конкатенации, но мне кажется проблема в длине строк.
Именно при приёме файлов с длинными строками и возникают проблемы...
Чего нет и ещё ни разу не добился принимая файл строками не длинее 100 символов.
Кажется понял в чем дело.
Написал приложение, котрое имитирует работу советника на нескольких инструментах по вызову этой функции. Мусора нет.
Тогда я предположил что в МТ 4 не все ладно с многопоточностью. Если предположить что каждая пара работает в своем потоке и при передаче параметров они каким то образом перехлестываются, то все становится понятно с получением мусора. Пока один поток передает параметры, другой получает результат.
Тогда я ввел в советник семафор, который блокирует вызов функции из DLL, если она находится в обработке какой либо другой парой.
МУСОР ПРОПАЛ !!!. Уже 2 часа полет нормальный. При этом даже не надо заморачиваться с начальной инициализацией переменной в которую принимается результат.
Вот что в итоге получилось:
Интересно мнение разработчиков по этому поводу