Новая версия платформы MetaTrader 4 build 1045 - страница 2

 
ANG3110:
Не работает функция ChartApplyTemplate(); То есть скриптом выводишь на график темплейт c индикаторами. С первого раза выводится. Затем удаляешь с графика допустим какой-нибудь индикатор, и пытаешься повторно скриптом вывести темплейт. Все, больше не выводится. Хотя если переключить график на другой таймфрейм, график с индикаторами выводится. Так же не работает ChartIndicatorDelete();
Пробовали воспроизвести описанную вами проблему на билдах 1031 и 1045. Функции ChartApplyTemplate() и ChartIndicatorDelete() работают корректно.
Поэтому от вас необходимо больше подробностей, в том числе шаблон, индикаторы, скрипты и тд.

Спасибо.
 
Evgeny Chernyshev:
Пробовали воспроизвести описанную вами проблему на билдах 1031 и 1045. Функции ChartApplyTemplate() и ChartIndicatorDelete() работают корректно.
Поэтому от вас необходимо больше подробностей, в том числе шаблон, индикаторы, скрипты и тд.

Спасибо.
Мне просто сложно передать весь скрипт, так как там много прицеплено других индикаторов и DLL. Но то что я вижу на данный момент, у меня некоторая конфигурация сохраняется посредством функции ChartSaveTemplate(ID,"Name"); Затем Меняются кое-какие параметры и вызывается ChartApplyTemplate(ID,"Name"). Все это подряд одним скриптом без пауз. До обновления все работало прекрасно. Сейчас я вижу, что появилась очень большая пауза после ChartSaveTemplate(ID,"Name"); и ChartApplyTemplate() или не срабатывает вообще, или срабатывает через длительное время. Хотя с первого раза почему-то работает быстро. Притом bool res=ChartSaveTemplate(ID,"Name"); выдает res=0; Что-то стало замедляться в работе этих функций после обновления.
У Вас там в инструкции написано "помещается в очередь" - это что типа SendMessage()? Зачем для записи темплейта использовать задержку? Да и для открытия тоже нужно ли это? Помоему тогда лучше PostMessage() - если я правильно понял. То есть в таком виде как у вас с этими чартовыми функциями использовать автоматизацию крайне затруднительно, так как будет глючить из-за задержек. Фактически можно только примитивно что-то записать или что-то вызвать. Вы попробуйте не одноходовку, а многоходовку с фунциями Chart -  и увидите какие несрабатывания начнуться  с тем же ChartIndicatorDelete(). Но лучше, чтобы мы не мучались с записью шаблона, переписыванием его и опять воспроизведением, добавьте пожалуйта все-таки ChartIndicatorAdd() как в МТ5.
Сейчас чтобы элементарно при помощи скрипта вызвать кастомный индикатор, нужно городить целый паровоз с вагонами с темплейтами из плохо работающих с задержками чартовых функций.

 
Уже 2 месяца проблема следующего характера: при перезапуске терминала, если до этого был загружен профиль с множеством окон на каждом из которых висел советник - после запуска этого же профиля часть советник слетают, как будто бы их и не было. Ранее никогда такой проблемы не было, появилась после предпоследнего обновления.
 
Скрипт PeriodConverter (входит в стандартную поставку мт4) не обновляет данные для нестандартного ТФ. Файл создает и можно смотреть, но котировки в этот файл не закидывает. Проблема появилась после этой обновы
 

обнаружил сегодня проблему

пропали кнопки One Click Trading

 

 

открыл другой терминал  там все ок.


пытался воспроизвести и нашел ошибку.

 

Итак

  • Открываем тестер в режиме визуализации,
  • сохраняем шаблон под именем default.tpl
  • после этого все открытые реальные графики без OneClickTrading

 

 

 
ANG3110:
У Вас там в инструкции написано "помещается в очередь" - это что типа SendMessage()?
Именно так. Основная масса функций для работы с объектами и чартом асинхронные. Если вы хотите быть уверенными что ваша команда выполнилась - контролируйте ее выполнения. Для начала вызовите любую синхронную функцию (хотя бы ChartRedraw()).
 
Petr Chezganov:
Уже 2 месяца проблема следующего характера: при перезапуске терминала, если до этого был загружен профиль с множеством окон на каждом из которых висел советник - после запуска этого же профиля часть советник слетают, как будто бы их и не было. Ранее никогда такой проблемы не было, появилась после предпоследнего обновления.
Спасибо за сообщение. Заявку в сервисдеск получили. Будем разбираться.
 
Vladislav Andruschenko:

обнаружил сегодня проблему

пропали кнопки One Click Trading

Alt+T вам поможет

default.tpl - шаблон, загружаемый по умолчанию для всех новых чартов.
 
Alexey Da:
Alt+T вам поможет

default.tpl - шаблон, загружаемый по умолчанию для всех новых чартов.

 

Спасибо. Помогло.

Но думаю, что это надо предугадать, чтобы таких проблем не было у других. Т.е. Если шаблон не содержит OneClickTrading то на реальном графике чтобы он включался именно из Настроек терминала.

А то можно запутаться.  

 
Alexey Da:
Именно так. Основная масса функций для работы с объектами и чартом асинхронные. Если вы хотите быть уверенными что ваша команда выполнилась - контролируйте ее выполнения. Для начала вызовите любую синхронную функцию (хотя бы ChartRedraw()).
Попробовал. Все равно работает через раз. А в отключенном от сети состоянии - вообще не работает. Вообщем неудачное решение у Вас с этими функциями. Чтобы просто скриптом записать файл - делают функцию с задержкой. Это же додуматься до такого нужно. После обновления эти ваши очереди, делают работу с этими функциями в усложненном виде почти невозможной. Вот теперь опять ломай голову как записать темплейт не вашим трактором, а своими средствами. И это из-за того, что нету функции ChartIndicatorAdd(). Спрашивали Станислава почему нету этой фунции в МТ4, а в МТ5 есть - он отболтался, что дескать у индикаторов нету ID. А по имени, что нельзя? Отговорки это все. Ленивая ваша компания и недобросовесная. Суперпрограммисты не могут сделать элементарные вещи не смешили бы.