Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 553
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Вместо Close[2] поставьте значение индикатора на втором баре (например iRSI(.......,2) ), а вместо Close[1] значение индикатора на первом баре. А uroven это значения уровня.
А остальное вам выше уже сказали.
Условие:
ProfitSellDBL рассчитывается здесь
Profit_Upgr = 0.01
Tral_Start__Upgr приравнивается к внешней переменной типа int и равняется 5.
Tral_Size__Upgr аналогично равняется 4
TV - tick value, =10
SumLotSellDBL = 0.04
Прочла. Посмотрела, как будет работать, если определить Tral_Start__Upgr, Tral_Size__Upgr и их внешние переменные как double. Т.е. когда все будет в одном типе без приведения и потери данных. Результат тот же. Что я поняла не так?
Разговор слепого с глухим. Хотите чтобы кто-то смог проверить - нужен минимально возможный код, который можно откомпилировать на другой машине и проверить. Нет кода - разговор не о чём.
Добавлено: пользуйтесь отладкой (Отладка):
•Предварительная настройка
•Точки останова
•Запуск отладки
•Наблюдаемые выражения
•Просмотр стека вызовов
•Пошаговая отладка
•Приостановка, возобновление и завершение отладки
•Отладка на истории
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Ошибки, баги, вопросы
comp, 2016.04.03 18:21
Ошибка выполнения
В четверке такое прокатывало на ура! В пятерке - облом. Это еще одно архитектурное ограничение, по сравнению с четверкой? Дайте ссылку на обсуждение этого, сам не нашел.
Правильно ли понимаю, что присваивать что-либо индикаторным буферам можно только после первого вызова самим терминалом (не вручную) OnCalculate?
Обращаться к индикаторным буферам можно после вызова OnCalculate(). При этом сам индикаторный буфер должен быть объявлен в области глобальных переменных:
Кажеться нашел что искал но от древности кода выдает ошибку
помогите исправить ......если несложно
а если поможете его развернуть на правую сторону экрана то вообще будет супер
Обращаться к индикаторным буферам можно после вызова OnCalculate().
Как оказалось, вы ошибаетесь. Можно обращаться только тогда, когда САМ терминал вызывет OnCalculate. При этом в MT4 условие более гибкое, т.к. достаточно вызова всего один раз OnCalculate. А в MT5 - надо дожидаться вызова OnCalculate САМИМ терминалом каждый раз, после SetIndexBuffer. Доказательство
В MT4 этот индикатор будет пахать без проблем, в MT5 - вылетит сразу с ошибкой. Как оказалось, в MT4 достаточно дождаться первого вызова OnCalculate САМИМ терминалом, и дальше что угодно делать с буферами, включая их переопределение через SetIndexBuffer. А вот в MT5 после КАЖДОГО SetIndexBuffer необходимо дожидаться снова первого вызова OnCalculate САМИМ терминалом.
Такая особенность в документации нигде не освещена. И, вроде, не подходит под определение "новичка".
Можно ли ожидать, что в MT5 будет поведение такое же, как в MT4? Т.е. чтобы после первого вызова OnCalculate САМИМ терминалом можно было без проблем вызывать SetIndexBuffer?
Как оказалось, вы ошибаетесь. Можно обращаться только тогда, когда САМ терминал вызывет OnCalculate. При этом в MT4 условие более гибкое, т.к. достаточно вызова всего один раз OnCalculate. А в MT5 - надо дожидаться вызова OnCalculate САМИМ терминалом каждый раз, после SetIndexBuffer. Доказательство
В MT4 этот индикатор будет пахать без проблем, в MT5 - вылетит сразу с ошибкой. Как оказалось, в MT4 достаточно дождаться первого вызова OnCalculate САМИМ терминалом, и дальше что угодно делать с буферами, включая их переопределение через SetIndexBuffer. А вот в MT5 после КАЖДОГО SetIndexBuffer необходимо дожидаться снова первого вызова OnCalculate САМИМ терминалом.
Такая особенность в документации нигде не освещена. И, вроде, не подходит под определение "новичка".
Можно ли ожидать, что в MT5 будет поведение такое же, как в MT4? Т.е. чтобы после первого вызова OnCalculate САМИМ терминалом можно было без проблем вызывать SetIndexBuffer?