При нанесении текста на график фиксируются две кнопки ''A''(текст) и ''T''(текстовая метка) - выводится текст . При нанесении лейбла кнопка ''T'' не фиксируется , но лейбл выводится . Билд 171
При нанесении текста на график фиксируются две кнопки ''A''(текст) и ''T''(текстовая метка) - выводится текст . При нанесении лейбла кнопка ''T'' не фиксируется , но лейбл выводится . Билд 171
это не утечка, а неэкономное использование памяти. будем разбираться. спасибо.
ОК.
Пусть это теперь так называется :)
Есть небольшая проблема.
Если меняем таймфрейм, то эксперты (и наверное индикатоы) выполняют повторную инициализацию, и это (ИМХО) правильно.
Но если на ходу менять аккаунт (логин на другой счет),
то инициализация не делается, и похоже нет никаких средств отловить в скрипте такую смену.
В результате возникают ошибки в работе экспертов.
Типа таких:
2005.06.01 12:52:48 ASCTrend Exp #MSFT,Daily: unknown ticket 275704 for OrderModify function
2005.06.01 12:52:42 ASCTrend Exp #INTC,Daily: unknown ticket 275702 for OrderModify function
2005.06.01 12:52:31 ASCTrend Exp #IBM,Daily: unknown ticket 275652 for OrderModify function
2005.06.01 12:52:21 ASCTrend Exp #XOM,Daily: unknown ticket 275667 for OrderModify function
2005.06.01 12:52:10 ASCTrend Exp #QQQ,Daily: unknown ticket 275705 for OrderModify function
Причина ошибки понятна.
Эксперт в момент переключения на предыдущем аккаунте просматривал список ордеров.
После переключения на другой аккаунт он продолжал работать считая что аккаунт не сменился.
Эта ошибка вылезла из-за того, что в начале обработки я запоминаю тикет и дальше выборка идет по нему. Если выбирать ордера по позиции, то будут другие ошибки или просто некорректные действия эксперта.
это не утечка, а неэкономное использование памяти. будем разбираться. спасибо.
ОК.
Пусть это теперь так называется :)
утечкой памяти (memory leak) называется "убитая" ссылка на область памяти. так как ссылка убита, то нет никакой возможности освободить память. например:
Эксперт в момент переключения на предыдущем аккаунте просматривал список ордеров.
После переключения на другой аккаунт он продолжал работать считая что аккаунт не сменился.
Эта ошибка вылезла из-за того, что в начале обработки я запоминаю тикет и дальше выборка идет по нему. Если выбирать ордера по позиции, то будут другие ошибки или просто некорректные действия эксперта.
Как правильно разрулить эту ситуацию?
в ближайших билдах мы сделаем переинициализацию эксперта при переключении аккаунтов
спасибо. исправили
Обнаружил глюк.
Вот такой фрагмент кода:
int newBar() { Log(1,"NewBar "+SID); Log(1,"End NewBar "+SID); }newBar вызывается из другой функции находящейся в библиотеке, которая подключается инклюдом
Все работает (ВМ утекает).
Если закоментировать содержимое функции:
int newBar() { // Log(1,"NewBar "+SID); // Log(1,"End NewBar "+SID); }то в логе вылазит ошибка типа
(ВМ не смотрел, наверное так же утекает)
Обнаружил глюк.
Вот такой фрагмент кода:
int newBar() { Log(1,"NewBar "+SID); Log(1,"End NewBar "+SID); }newBar вызывается из другой функции находящейся в библиотеке, которая подключается инклюдом
Все работает (ВМ утекает).
Если закоментировать содержимое функции:
int newBar() { // Log(1,"NewBar "+SID); // Log(1,"End NewBar "+SID); }то в логе вылазит ошибка типа
(ВМ не смотрел, наверное так же утекает)
Совсем забыл сказать, чтобы Вы свой код перекомпилировали вручную, так как мы не стали менять версию компилятора.
Так я же несколько раз менял текст эксперта,
и соответственно компилировал его в редакторе.
Или имеется в виду чтото другое?
ВМ кстати уже 161М (3 часа работы)
Утечка начинается при использовании в эксперте хотя бы одной функции
Причем скорость утечки независит от числа вызовов этой функции (у меня 4).
Если эти функции закоментировать,
утечка прекращается.
Утечка начинается при использовании в эксперте хотя бы одной функции
Причем скорость утечки независит от числа вызовов этой функции (у меня 4).
Если эти функции закоментировать,
утечка прекращается.
это не утечка, а неэкономное использование памяти. будем разбираться. спасибо.
ОК.
Пусть это теперь так называется :)
Есть небольшая проблема.
Если меняем таймфрейм, то эксперты (и наверное индикатоы) выполняют повторную инициализацию, и это (ИМХО) правильно.
Но если на ходу менять аккаунт (логин на другой счет),
то инициализация не делается, и похоже нет никаких средств отловить в скрипте такую смену.
В результате возникают ошибки в работе экспертов.
Типа таких:
Причина ошибки понятна.
Эксперт в момент переключения на предыдущем аккаунте просматривал список ордеров.
После переключения на другой аккаунт он продолжал работать считая что аккаунт не сменился.
Эта ошибка вылезла из-за того, что в начале обработки я запоминаю тикет и дальше выборка идет по нему. Если выбирать ордера по позиции, то будут другие ошибки или просто некорректные действия эксперта.
Как правильно разрулить эту ситуацию?
ОК.
Пусть это теперь так называется :)
утечкой памяти (memory leak) называется "убитая" ссылка на область памяти. так как ссылка убита, то нет никакой возможности освободить память. например:
ссылка на 128-байтовый участок памяти потеряна и эта память не может быть освобождена.
После переключения на другой аккаунт он продолжал работать считая что аккаунт не сменился.
Эта ошибка вылезла из-за того, что в начале обработки я запоминаю тикет и дальше выборка идет по нему. Если выбирать ордера по позиции, то будут другие ошибки или просто некорректные действия эксперта.
Как правильно разрулить эту ситуацию?
в ближайших билдах мы сделаем переинициализацию эксперта при переключении аккаунтов