Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
@deysmacro: Я знаю, где находится строка, которая вызывает деление на ноль. Это происходит потому, что мне нужен среднедневной диапазон за последние пять дней. Позже в индикаторе я делю что-то на этот ATR и пока данные не обновляются ATR равен нулю и в этом проблема. Мне нужно быть уверенным, что доступны ежедневные данные хотя бы за последние 5 дней. Только тогда ATR будет >0 и индикатор будет работать.
Поместите доступные данные в GV и извлекайте их. Таким образом, при поступлении данных или расхождении в данных, просто обновите GV.
Возможно, ATR работает именно так.
Люди всегда говорили: "Сначала сделайте так, чтобы это работало, а потом оптимизируйте код".
Иногда, чтобы заставить его работать, строка кода очень длинная, но когда он работает, вы можете начать сокращать код. :)
Может быть, это звучит глупо, но что такое ГВ?
Конечно... :-)
Что-то еще, что я не могу объяснить: Следующий код является небольшой модификацией моего первого кода, который я разместил. Это также индикатор Moneymanagement, но я убрал ATR. Он печатает только уровни стоп-лосса от 5 до 100 пунктов с шагом в 5 пунктов. Таким образом, ATR-расчет вообще отсутствует. Когда вы перетаскиваете этот индикатор на свой график, он работает отлично. Каждая пара, каждый таймфрейм. Никаких проблем. Но когда вы открываете MetaTrader, он вызывает ошибку деления на ноль, и снова вместо уровней стоп-лосса выводится только "Label".
Ошибка возникает в этой строке:
Я распечатал ВСЕ переменные этой строки и пришел к выводу, что AccountBalance() равен нулю, а MarketInfo(Symbol(), MODE_TICKVALUE) равен нулю. Поэтому очевидно, что когда вы открываете MetaTrader, никаких данных вообще нет. В старом MetaTrader такого не было. Поэтому я понятия не имею, что делать...
Вот код:
Не могли бы вы быть немного более точным? В чем именно проблема с ними (ведь всегда все работало...)?
Я думаю, что проблема в том, что AccountBalance() и другие нужные мне данные из MetaTrader недоступны сразу после запуска платформы.
Другой пример:
Если вы откроете MetaTrader, результат будет нулевым! И он останется нулевым, пока вы не смените таймфрейм или пару. Я думаю, что это именно проблема ошибки деления на ноль. А вы так же считаете?Я распечатал ВСЕ переменные этой строки и пришел к выводу, что AccountBalance() равен нулю, а MarketInfo(Symbol(), MODE_TICKVALUE) равен нулю. Поэтому очевидно, что когда вы открываете MetaTrader, никаких данных вообще нет. В старом MetaTrader такого не было. Поэтому я понятия не имею, что делать...
Вот код:
Если вы уверены, что проблема именно в этом, добавьте это сразу после Start().
Привет, GumRai,
Я протестировал его с индикатором, приведенным выше. AccountBalance остается нулевым, даже если я позволяю MetaTrader работать в течение нескольких минут. Только после того, как я изменил что-то вручную (пару, таймфрейм), отображается правильный AccountBalance. А если я использую ваше решение, то у меня нет проблем с ошибкой деления на ноль, но индикатор никогда не будет работать, потому что AccountBalance остается нулевым.
Мне интересно, только ли у меня такая проблема? Я думаю, что это общая проблема импорта данных в новом MetaTrader...