Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Если минут 10-15 в дебагере "долбить" синхронизацию и наличие первых дат,
то начинает возвращать правильно.
Но, при правильной работе, Bars(_Symbol,_Period) должна возвращать
или ВСЕ бары или "0", если данных нет или они не синхронизированы.
Я согласен.
Но скорее всего исправлять этого не будут, просто подправят документацию.
Типа "возвращается имеющееся кол-во баров, для получения подробной информации проверьте GetLastError".
Михаил:
...Или не умею читать, или Вы не ХОТИТЕ это делать!
Функция вернула бы "0", если бы данные не были синхронизированы!
Слушай.... Хорошая манера общения, ну да ладно...
Я напомню ТЕБЕ, с чего всё началось. ТЫ ПЕРВЫЙ написал:
"Михаил, ну вот зачем вы продолжаете пропагандировать свой позорный принцип в программировании экспертов?"
Даже если меня ЗАБАНЯТ, то я ВСЕГДА буду "воевать" с хамами!
А на войне все средства хороши. НО, если ТЕБЕ будет "приятно" и ты успокоишься, то я признаю себя ДУРАКОМ,
не умеющим программировать и ничего не знающим.
ТВОЁ ЭГО довольно?
Почему это объективная и реальная оценка стала называться хамством?
Первый раз я написал не здесь, а давно давно где-то там и по существу, просто поучаствовал в теме, но почему ты ты начал сразу изворачиваться.
Война? А какая война? Придумал себе войну и воюешь? В такой войне, чтобы победить остается только себя замочить.
Было бы твое эго довольно.
...
Если бы функция вернула "0", то тогда, возможно, имело бы смысл вызывать GetLastError().
...
Кагбэ правила хорошего тона подразумевают синхронизацию данных...
Функция Bars сама по себе активизирует подкачку и синхронизацию. И ведь Михаил разумные человек, если он говорит, что ест ошибка, значит она есть.
Проблема, как понял, не в том, что на разных графиках по разному, а в том, что фактически на графике одно количество, а функция возвращает другое (у Михаила на ФОРТС).
Еще конечно проблема в том, что Михаилу уточняющие вопросы нельзя задавать, сразу начнет разрисовывать тебя дураком.
Но все же очень интересно, количество видимых глазами баров на графике не соответствует значению функции Bars()? Или же соответствует, но не соответствует действительности? Но этого мы никогда не узнаем...
Может быть так, что бары не все, но сервер не выдает их и тогда Bars покажет что данные синхронизированы, хотя они не все. Это действительно проблема брокера.
Антон!
Если бы функция вернула "0", то тогда, возможно, имело бы смысл вызывать GetLastError().
Если "по каждому чиху" вызывать эту функцию, то получится следующее:
Это я знаю, что их (баров) должно быть больше, а мог и не знать....
Даже если эта функция и вернула "0", то это не значит, что это ошибка (в справке всё написано.)
Михаил, Вы не правильно поняли мой призыв в данном конкретном случае.
Попробуйте для теста вызвать:
Затем посмотрите журнал терминала. У меня график серебра закрыт. Запускаю и вот результат:
"Эксперт"
"Журнал"
Допускаю, что ошибка у Вас больше не воспроизводится (например, данные баров обновились с сервера). Тогда хотя бы посмотрите файл "Журнала" терминала за тот день на момент проявления ошибки. Возможно, там есть какая-то отметина о плохих барах в истории или что-то подобное, как я уже писал, такие сообщения могут быть спровоцированы Bars().
Михаил, Вы не правильно поняли мой призыв в данном конкретном случае.
Попробуйте для теста вызвать:
Затем посмотрите журнал терминала. У меня график серебра закрыт. Запускаю и вот результат:
"Эксперт"
"Журнал"
Допускаю, что ошибка у Вас больше не воспроизводится (например, данные баров обновились с сервера). Тогда хотя бы посмотрите файл "Журнала" терминала за тот день на момент проявления ошибки. Возможно, там есть какая-то отметина о плохих барах в истории или что-то подобное, как я уже писал, такие сообщения могут быть спровоцированы Bars().
Антон!
Если Вам так интересно про GetLastError(), то извольте:
Убедились :)
Заработала с 3 раза, а бывает, что с 12 раза :(
А бывает и так:
P/S LastError всегда будет = "0", если она ( Bars() ) вернула не нулевое значение.
Ошибка 4401 (ERR_HISTORY_NOT_FOUND) - это и есть нулевое возвращаемое значение
функции Bars(), так что НЕТ смысла вызывать GetLastError() для функции Bars()
это очевидно из примечания к функции Bars()
Для меня совершенно очевидно, что это ошибка MQ, я думаю, что когда функция вызывается в
первый раз, то в памяти что-то "болтается", поэтому и возвращаются какие-то бары (7).
Почему это объективная и реальная оценка стала называться хамством?
Первый раз я написал не здесь, а давно давно где-то там и по существу, просто поучаствовал в теме, но почему ты ты начал сразу изворачиваться.
Война? А какая война? Придумал себе войну и воюешь? В такой войне, чтобы победить остается только себя замочить.
Было бы твое эго довольно.
Дмитрий Федосеев, Вы неоднократно ставите себя выше других.
Вы считаете, что Ваша оценка объективна - отлично!
А я считаю, что Вы полный "0" в вопросах о рынке ФОРТС.
"Бегая" за мной по моим топикам, и вставляя глупые комментарии, Вы в конечном счёте сведёте цифры под Вашим аватаром в НОЛЬ.
Вы абсолютно НИЧЕГО не докажите МНЕ, а другие уже сделали выводы (или сделают)...
P/S Вот и по поводу LastError для функции Bars() Вы получили "щелчок по носу"....:)
Что касается моих "позорных методов программирования" советников для ФОРТС:
Здесь
https://www.mql5.com/ru/forum/58012/page2#comment_1625166
я привёл пример ОСТАНОВКИ работы советника по коду возврата.
Брокер ошибся. Если бы я не остановил работу, то за этот день я получил бы штраф в 30 000 руб.
(это максимум, что может снять с меня биржа за полную торговую сессию, а так бы настучало гораздо больше)!
То же самое я советовал Антону с кодом ошибки 10013, я лично ВООБЩЕ НИ ПОЛКОПЕЙКИ не хочу платить бирже.
Я выразил ему своё мнение.
Как отвели Вы (даже не спросив почему я так советую ) - уже все знают.
И не Антону, а мне!