Особенности языка mql5, тонкости и приёмы работы - страница 34

 
Alexey Kozitsyn:
А как иначе получить данные с нужного символа/ТФ? CopyBuffer работает только с хэндлами.

Вот так это происходит в МТ4:

//+------------------------------------------------------------------+
double GetDataAO(string symbol_name, int timeframe, int shift) {
   return(iAO(symbol_name,timeframe,shift));
}
//+------------------------------------------------------------------+

Какой тф передал в функцию, такие данные и получил. Сразу, без создания заранее 21 хэндла одного и того же индикатора.


 
Artyom Trishkin:

Вот так это происходит в МТ4:

Какой тф передал в функцию, такие данные и получил. Сразу, без создания заранее 21 хэндла одного и того же индикатора.

Я знаю как получать данные из МТ4. Вы можете противиться тому, как это делается в МТ5, но это не изменится.
 
Alexey Kozitsyn:
Я знаю как получать данные из МТ4. Вы можете противиться тому, как это делается в МТ5, но это не изменится.

Я не противлюсь, и не пытаюсь изменить. Я хочу добиться такого же результата на МТ5 как на видео, где показано получение данных с любых тф на МТ4 без видимых задержек.

Как?

При запуске индикатора собрать все данные по всем тф в массивы, и потом из них читать по индексу? Но память не резиновая.

Запрашивать в один момент времени данные по одному бару нужного тф - но он говорит, что нет данных, а для их наличия что сделать?

Понимаете? Я не хаю МТ5 - я разобраться хочу, понять и получить результат в итоге не хуже чем на МТ4.

 
Artyom Trishkin:

Я не противлюсь, и не пытаюсь изменить. Я хочу добиться такого же результата на МТ5 как на видео, где показано получение данных с любых тф на МТ4 без видимых задержек.

Как?

При запуске индикатора собрать все данные по всем тф в массивы, и потом из них читать по индексу? Но память не резиновая.

Запрашивать в один момент времени данные по одному бару нужного тф - но он говорит, что нет данных, а для их наличия что сделать?

Понимаете? Я не хаю МТ5 - я разобраться хочу, понять и получить результат в итоге не хуже чем на МТ4.

Хотите без задержек - таймер на запуск раз в 60-90 с для нужного символа/ТФ для поддержания актуальности данных. Хотя... не уверен, подойдет ли этот метод для индикаторных данных с чужого символа/ТФ. Надо пробовать.
 

28 символов на 6 ТФ = 168 хэндлов (MA). Запускается секунд 8, обновляется раз в 4 сек вообще без проблем

Но в тестере, увы, труба

 
Alexey Kozitsyn:
Хотите без задержек - таймер на запуск раз в 60-90 с для нужного символа/ТФ для поддержания актуальности данных.
А что делать при первом запуске? На видео нет задержек при запуске индикатора. На МТ5 всё висит без признаков жизни при запуске индикатора. Если пользователь всё же дождался, то увидит отрисовку данных. Но может решить, чт просто индикатор не работает. Выводить сообщения на график крупным шрифотом - мол, ждите, загружаю данные по 21-му таймфрейму? Костыль.
 
Alexander Puzanov:

28 символов на 6 ТФ = 168 хэндлов (MA). Запускается секунд 8, обновляется раз в 4 сек вообще без проблем

Но в тестере, увы, труба

Запустите на символе, который ни разу не использовали, и по которому просто нет данных вообще у вас.

И, да, хорошо, что добились результата - вот и я хочу добиться. Собираю мнения как лучше сделать.

 
Artyom Trishkin:
А что делать при первом запуске? На видео нет задержек при запуске индикатора. На МТ5 всё висит без признаков жизни при запуске индикатора. Если пользователь всё же дождался, то увидит отрисовку данных. Но может решить, чт просто индикатор не работает. Выводить сообщения на график крупным шрифотом - мол, ждите, загружаю данные по 21-му таймфрейму? Костыль.

Если пользователь такой нетерпеливый - пусть покупает железо побыстрее, а для остальных нормальное и обоснованное поведение это:

1. Выставить адекватное количество баров в окне и в истории;

2. При серьезных расчетах уведомить пользователя, что все нормально, просто нужно подождать. Для красоты можете сделать индикатор подргузки истории.

 
Alexey Kozitsyn:

Если пользователь такой нетерпеливый - пусть покупает железо побыстрее, а для остальных нормальное и обоснованное поведение это:

1. Выставить адекватное количество баров в окне и в истории;

2. При серьезных расчетах уведомить пользователя, что все нормально, просто нужно подождать. Для красоты можете сделать индикатор подргузки истории.

Везде и в МТ4, и в МТ5 выставил 5000 баров истории. В МТ4 визуально мгновенный старт, в МТ5 - ожидание от 20 до 30 секунд. И это при условии, что неоднократно символ EURUSD используется для тестов - история есть в обоих терминалах.

Ведь не нужно всячески сообщать "нетерпеливому" пользователю чтобы он подождал. Нужно, чтобы не было неоправданных задержек при запуске и переключении тф.

Потому и интересуюсь возможными методами решения озвученной проблемы. Пока. Потом буду экспериментировать с ними - что выйдет на самом деле.

 
Artyom Trishkin:

Везде и в МТ4, и в МТ5 выставил 5000 баров истории. В МТ4 визуально мгновенный старт, в МТ5 - ожидание от 20 до 30 секунд. И это при условии, что неоднократно символ EURUSD используется для тестов - история есть в обоих терминалах.

Ведь не нужно всячески сообщать "нетерпеливому" пользователю чтобы он подождал. Нужно, чтобы не было неоправданных задержек при запуске и переключении тф.

Потому и интересуюсь возможными методами решения озвученной проблемы. Пока. Потом буду экспериментировать с ними - что выйдет на самом деле.

20-30 секунд!?.... Омг... кажется, Вы что-то сделали не так... У меня тиковые индикаторы в разы быстрее считаются. По несколько штук на чарте.