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

 
Ilyas:
Не вижу ошибки, между вызовами ChartGetString, комментарий чарта был изменён, поэтому и разница между строками в 16 символов, как раз на размер добавленной к комментарию чарта строки.

Эксперт выгружен (т.е. уже не может влиять на график). Загружаем проверочный скрипт (10 строк). Вопрос: какие из приведенных строк меняют комментарий графика?

Между вызовами ::ChartGetString() нет кода

Файлы:
Test.ex5  6 kb
 

Да что с мобильной версией форума?

Нажимаю "Ответить" - появляется цитата с крокозябами htlm- кода. И курсор из нее не вытащишь.

Аndroid 2.3.4


 
A100:

Эксперт выгружен (т.е. уже не может влиять на график). Загружаем проверочный скрипт (10 строк). Вопрос: какие из приведенных строк меняют комментарий графика?

Между вызовами ::ChartGetString() нет кода

По действиям (для чарта операции синхронные/последовательные, эксперт и скрипт работают в своих потоках):

  1. скрипт вызывает первый ChartGetString
  2. эксперт вызывает ChartSetString
  3. эксперт завершает работу
  4. скрипт вызывает второй ChartGetString
 
Ilyas:
По действиям (для чарта операции синхронные/последовательные, эксперт и скрипт работают в своих потоках):

  1. скрипт вызывает первый ChartGetString
  2. эксперт вызывает ChartSetString
  3. эксперт завершает работу
  4. скрипт вызывает второй ChartGetString

Эксперт Test.ex5 не может ничего вызывать (п.2), поскольку к моменту запуска скрипта он уже заблаговременно выгружен,

т.е. п.3 заведомо до п.1

Ниже результат скрипта Test.ex5

2016.08.08 02:21:25.979 Test (EURUSD,M15) 120-136

...а должен быть "OK"

 
A100:

Эксперт Test.ex5 не может ничего вызывать (п.2), поскольку к моменту запуска скрипта он уже заблаговременно выгружен,

т.е. п.3 заведомо до п.1

Ниже результат скрипта Test.ex5

2016.08.08 02:21:25.979 Test (EURUSD,M15) 120-136

...а должен быть "OK"

ExpertRemove не удаляет эксперта с графика моментально, а только по завершению OnTick. И не является аналогом функции exit()

Цитата из лога иллюстрирует только факт вызова функции ExpertRemove(). Факт выгрузки эксперта будет отражён в журнале клиентского терминала записью "expert removed"

Покажите исходник эксперта

 
Slawa:

Цитата из лога иллюстрирует только факт вызова функции ExpertRemove(). Факт выгрузки эксперта будет отражён в журнале клиентского терминала записью "expert removed"

Детализированная последовательность действий:

  1. Открыть новый график
  2. Запустить на графике эксперта Test.ex5 (через несколько секунд во вкладке Эксперты появится сообщение вида: '2016.08.08 15:40:47.267 Test (EURUSD,M15) ExpertRemove() function called' и эксперт выгрузится с графика
  3. Убедится что во вкладке Журнал появилось сообщение вида: '2016.08.08 15:40:47.286 Experts expert Test (EURUSD,M15) removed'
  4. Запустить на этом же графике скрипт Script1.ex5 (здесь имя скрипта не перекликается с именем эксперта)

В результате во вкладке Эксперты появится сообщение вида: '2016.08.08 15:52:43.173 Scripts1 (EURUSD,M15) 120-136'
А должно быть:                                                                      '2016.08.08 15:52:43.173 Scripts1 (EURUSD,M15) OK'

//Script1.mq5
void OnStart()
{
        string text1 = NULL;
                       ChartGetString( 0, CHART_COMMENT, text1 ); //(*)
        string text2 = ChartGetString( 0, CHART_COMMENT );
        if ( text1 != text2 )
                Print( StringLen( text1 ), "-", StringLen( text2 ));
        else
                Print( "OK" );
}
Файлы:
Test.ex5  13 kb
Script1.ex5  7 kb
 
A100:

А должно быть:                                                                      '2016.08.08 15:52:43.173 Scripts1 (EURUSD,M15) OK'

В чем нетрудно убедится заменив в Script1.mq5 строку (*) на

               text1 = ChartGetString( 0, CHART_COMMENT );
 
A100:

Эксперт Test.ex5 не может ничего вызывать (п.2), поскольку к моменту запуска скрипта он уже заблаговременно выгружен,

т.е. п.3 заведомо до п.1

Ниже результат скрипта Test.ex5

2016.08.08 02:21:25.979 Test (EURUSD,M15) 120-136

...а должен быть "OK"

Спасибо за сообщение. Исправлено.

Эксперт тут совсем не при чём, проблема крылась в разном размере буферов запроса комментария чарта для разных вариантов функции ChartGetString.
 
Здравствуйте! В терминале МТ4 пропала графическая разметка за несколько последних месяцев. В чём может быть причина? Возможно ли как-то восстановить разметку?
 
Denys Sokolov:
Здравствуйте! В терминале МТ4 пропала графическая разметка за несколько последних месяцев. В чём может быть причина? Возможно ли как-то восстановить разметку?
А подробнее? Что за разметка? Вставьте, пожалуйста, в сообщение скриншоты.