Ошибки, баги, вопросы - страница 2490
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Вы внимательно прочитали мою цитату постом ниже?
Такое поведение было всегда с момента введения настройки «максимальное количество баров на графике», то есть с начала MT4. И мы многократно объясняли за эти 15 лет, почему мы не урезаем каждый раз количество баров в соответствии с этой настройкой. И теперь не каждый раз урезаем.
Никто не читает документацию. Но ведь парадокс. Все равно просят, чтобы мы написали что-то ещё в документацию, которую они не читают
Slava, я без претензий. Прочёл внимательно и не только Вашу цитату и эту
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Ошибки, баги, вопросы
Slava, 2019.06.29 18:25
rates_total всегда показывает количество баров, доступных на текущем графике.
я не понял смысла вашего высказывания
и эту
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Ошибки, баги, вопросы
Slava, 2019.06.29 18:42
У меня сейчас нет под рукой клиентского терминала, чтобы процитировать справку. С мобильного устройства в два клика https://www.metatrader5.com/ru/terminal/help/startworking/settings#max_bars
Специально выделенный абзац
Для более экономичного расчета индикаторам может быть доступно больше баров, чем указано в параметре "Макс. баров в окне". С поступлением новых баров более старые бары не сразу удаляются из кэша данных. Это позволяет не пересчитывать индикатор полностью на каждом новом баре, а лишь досчитывать его значения для новых баров.
Я конечно что-то недопонимаю, потому и переспрашиваю, чтобы попытаться понять. И догадываюсь что изменений не будет. Пожалуйста не воспринимайте мои высказывания как претензии.
спрака не корректная, в заблуждение вводит, вот писал https://www.mql5.com/ru/forum/304239/page57#comment_11519307
а буффера в MQL5 вообще работают как обычные массивы, в МТ4 буферами еще как то занимался терминал - то в EMPTY_VALUE их сбрасывал, то ... не помню где то писал отличие работы индикаторов МТ5 и МТ4
а в МТ5 все делаете сами - нужно очистить буфера - очистили как обычный массив, терминал только размер массива-буфера сам устанавливает
Игорь, можете простым русским языком объяснить: если каждая дырочка индикаторного буфера будет заполняться какими-то значениями, которые заменят содержащийся там мусор, с какой целью эти дырочки принудительно очищать перед заполнением нужными значениями? Для потери скорости выполнения?
Игорь, можете простым русским языком объяснить: если каждая дырочка индикаторного буфера будет заполняться какими-то значениями, которые заменят содержащийся там мусор, с какой целью эти дырочки принудительно очищать перед заполнением нужными значениями? Для потери скорости выполнения?
заполнение "дырочек" критично только в индикатора со "стрелками", в МТ4 при инициализации индикатора эти "дырочки" будут заполнены значением EMPTY_VALUE автоматически
в МТ5 это должен сделать программист
или в МТ5 программист должен заполнять индикаторные буфера через конструкцию if() else
т.е. в МТ4 так будет работать:
if(...) Buf[i] = high[i];
в МТ5 нужно обязательно писать:
или в МТ5 нужно очистить индикаторные буфера иначе индикатор будет при переключении ТФ рисовать "мусор" из массива который привязан индикаторным буфером .... в общем дело вкуса как писать и что учитывать
ЗЫ: скорость? ну замерьте скорость, в 99% случаях встроенные функции выполняются быстрее, но тут вообще не тот вариант чтобы найти расхождение в производительности, что заполнять каждый бар в цикле EMPTY_VALUE, что один раз проинициализировать через ArrayInitialize(Buf,EMPTY_VALUE)
заполнение "дырочек" критично только в индикатора со "стрелками", в МТ4 при инициализации индикатора эти "дырочки" будут заполнены значением EMPTY_VALUE автоматически
в МТ5 это должен сделать программист
или в МТ5 программист должен заполнять индикаторные буфера через конструкцию if() else
т.е. в МТ4 так будет работать:
в МТ5 нужно обязательно писать:
или в МТ5 нужно очистить индикаторные буфера иначе индикатор будет при переключении ТФ рисовать "мусор" из массива который привязан индикаторным буфером .... в общем дело вкуса как писать и что учитывать
ЗЫ: скорость? ну замерьте скорость, в 99% случаях встроенные функции выполняются быстрее, но тут вообще не тот вариант чтобы найти расхождение в производительности, что заполнять каждый бар в цикле EMPTY_VALUE, что один раз проинициализировать через ArrayInitialize(Buf,EMPTY_VALUE)
Всё это просто придирки. Вот так было, я так хочу, менять свои привычки сложно и прочие причины.
Конструкцию if else легко заменить на
Buf[i] = условие ? high[i] : EMPTY_VALUE;
Всё это просто придирки. Вот так было, я так хочу, менять свои привычки сложно и прочие причины.
Конструкцию if else легко заменить на
ну если быть придирчивым, то в советах по увеличению быстродействия на С++ или C# как раз и рекомендуют не использовать "условный оператор ? : " , кажется на Хабре статью когда то читал (не тестировал, сам пишу как удобнее )
;)
ну если быть придирчивым, то в советах по увеличению быстродействия на С++ или C# как раз и рекомендуют не использовать "условный оператор ? : " , кажется на Хабре статью когда то читал (не тестировал, сам пишу как удобнее )
;)
Ну тут компилятор не идиот же, и оптимизирует получше, чем "гуру" на хабре
в таких случаях я всегда повторяю: "утром солнце всходит, а вечером заходит..." - Вы видите тут логику? - да это логично, а информация есть в моей фразе? - ее нет
я не буду тестировать ? : , компилятор машина.... Хабр, хороший...
я не буду тестировать ? :
протестировал МТ5:
2019.06.30 13:37:04.230 tst (EURUSD,H1) Testing if() циклов=9999999999 время=10859 мс
2019.06.30 13:37:15.116 tst (EURUSD,H1) Testing ? : циклов=9999999999 время=10891 мс
2019.06.30 13:38:05.348 tst (EURUSD,H1) Testing if() циклов=9999999999 время=10843 мс
2019.06.30 13:38:16.190 tst (EURUSD,H1) Testing ? : циклов=9999999999 время=10844 мс
2019.06.30 13:38:32.111 tst (EURUSD,H1) Testing if() циклов=9999999999 время=10860 мс
2019.06.30 13:38:42.955 tst (EURUSD,H1) Testing ? : циклов=9999999999 время=10843 мс
2019.06.30 13:46:09.087 tst EURUSD,H1: Testing ? : циклов=9999999999 время=33234 мс
2019.06.30 13:45:35.854 tst EURUSD,H1: Testing if() циклов=9999999999 время=32953 мс
2019.06.30 13:44:43.421 tst EURUSD,H1: Testing ? : циклов=9999999999 время=33328 мс
2019.06.30 13:44:10.094 tst EURUSD,H1: Testing if() циклов=9999999999 время=33016 мс
2019.06.30 13:42:56.925 tst EURUSD,H1: Testing ? : циклов=9999999999 время=33344 мс
2019.06.30 13:42:23.584 tst EURUSD,H1: Testing if() циклов=9999999999 время=32953 мс
Давно замечаю, что подсветка имён пользовательских макросов в большом проекте работает далеко не всегда. Многие макросы, определённые в других файлах, почему-то не подсвечиваются. Пока не могу выяснить закономерности. Вижу лишь, что все макросы, определённые в некотором файле после некоторой строчки перестают подсвечиваться в других файлах. Кто-нибудь ещё наблюдает у себя подобное?
Я замечал что если писать в качестве параметра какой-либо функции, то не подсвечивает. Думаю что это от не полного соответствия типа. Или как это назвать точней не знаю.