Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
В таком случае однозначно CopyRates с первого бара 10 штук. И вызывать не каждый тик, а достаточно при появлении нового бара.
А как понять, что новый бар появился без CopyRates? В смысле, нужно сначала поймать событие нового бара. Без CopyRates возможно? Я немного запутался.)
Вот что значит, не занимался этой темой на МТ5 никогда. Прошу понять.))
Ой, Владимир. Хоть я и ляпнул такое, но к сожалению не сделал оговорку. Если нужна исключительно цена, к примеру открытия, или время, то нет особой необходимости пользоваться CopyRates() в этом случае вполне достаточно или CopyOpen, или iOpen... соответственно CopyTime или iTime. Выбирается по религиозным пристрастиям.
И дополню свою оговорку: По затратам производительности, ощутимой разницы нет. Соответственно остаются исключительно религиозные пристрастия.fxsaber делал проверку стоимости CopyRates() - она дороже, чем получение отдельно нужного свойства. Это не относится к ситуации, когда нужно получить все цены разом.
А как понять, что новый бар появился без CopyRates? В смысле, нужно сначала поймать событие нового бара. Без CopyRates возможно? Я немного запутался.)
Ни на что не обращая внимание, отслеживаем появление нового бара и вызываем CopyRates
Разновидностей функций и способов определения нового бара на сайте вагон и маленька тележка.
А как понять, что новый бар появился без CopyRates? В смысле, нужно сначала поймать событие нового бара. Без CopyRates возможно? Я немного запутался.)
Вот что значит, не занимался этой темой на МТ5 никогда. Прошу понять.))
Самый простой способ - сравнение времени открытия текущего бара. Если оно не равно ранее запомненному - имеем новый бар - делаем то, что нужно сделать на новом баре и запоминаем это время для следующей проверки.
Ни на что не обращая внимание, отслеживаем появление нового бара и вызываем CopyRates
Разновидностей функций и способов определения нового бара на сайте вагон и маленька тележка.
fxsaber делал проверку стоимости CopyRates() - она дороже, чем получение отдельно нужного свойства. Это не относится к ситуации, когда нужно получить все цены разом.
Самый простой способ - сравнение времени открытия текущего бара. Если оно не равно ранее запомненному - имеем новый бар - делаем то, что нужно сделать на новом баре и запоминаем это время для следующей проверки.
Так значит, на каждом тике вызывать CopyRates? Иначе как узнать, что изменилось время открытия текущего бара?
можно так class CNewbar , или поиском по форуму NewBar
ЗЫ: целая статья! https://www.mql5.com/ru/articles/159
Игорь, вам надо в первый класс. Там учат буквы и после изучения вы поймёте разницу CopyRates и CopyBuffer.
Вот лучше предложите решение этой задачи БЕЗ CopyRates
понятно, все как обычно..уфф,ай,ой.. и ни строчки кода )))
я привел свой пример, чтобы показать, что не всегда удобно (а зачастую и редко нужно) получать массив последовательных OHLC, в практических задачах чаще требуется получить выборочно значения OHLC с разных баров (индикаторы не в счет)
ладно, не хворай!
Так значит, на каждом тике вызывать CopyRates? Иначе как узнать, что изменилось время открытия текущего бара?
Да, на каждом тике проверяем время:
И вкратце как-то так:
просто на коленке писал - показать идею, а не точность написания
Так значит, на каждом тике вызывать CopyRates? Иначе как узнать, что изменилось время открытия текущего бара?
if(prevTime!=iTime(...))
{
// изменилось время открытия текущего бара
}
prevTime=iTime(...);