Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 885
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Да о том-же. Ладно проскочили. Главное чтоб он понял что к чему...
Он - это кто? Я именно с этого и начал.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам
Alexey Viktorov, 2019.06.11 09:06
Для получения Point() SymbolInfoInteger никак не подойдёт.)))
А вообще, это необходимо для того, чтобы не забывать, что Point() или _Point только для текущего символа. Для символов отличных от того на котором работает советник нужно использовать именно эту функцию.
Функция SymbolInfoInteger возвращмет не только int значения, но и long, и bool, и перечисления.
Может вам очень не повезло, но я не люблю колупаться в чужом коде. Тем более править его...
Alexey Viktorov:
Следующий вопрос: Как вы думаете как часто значение индикатора будет равно ровно 50?
Как я понял задачу, то должно быть одного цвета >50 и другого цвета <50 а вот ==50 нигде не видел. Конечно чтобы исключить потерю в случае если == 50, надо к одному из сравнений добавить >=50 или другому <=50 Это уже как религия позволяет. Как будет красивей выглядеть.
И второй вопрос: на сколько была необходимость менять всю индексацию буферов? После переиндексации вы точно всё в коде исправили? Может проще было-бы буфер цвета назначить индексом 4, а вспомогательные буферы 5 и 6 соответственно. Меньше пришлось-бы править и меньше вероятность допустить ещё несколько ошибок.
Наверное плохо мозг напрягали когда меняли индексацию буферов.
Вернитесь взад, возьмите старый код из сообщения 8806 и поменяйте там только последовательность буферов.
Потом проследите условия когда в буфер цвета надо ставить 0 и когда 1Наверное плохо мозг напрягали когда меняли индексацию буферов.
Вернитесь взад, возьмите старый код из сообщения 8806 и поменяйте там только последовательность буферов.
Потом проследите условия когда в буфер цвета надо ставить 0 и когда 1Я так делал, не помогало, допустил что делал с ошибками, после Вашего поста сделал снова. Вот места кода, которые изменил. Старое закоментировано.
Вот так было до внесения изменений. Гистограмма есть, цвета нужного нету.
Вот так стало. Гистограмма исчезла, не отображается.
Видимо опять слабо голову ломаю.
Я так делал, не помогало, допустил что делал с ошибками, после Вашего поста сделал снова. Вот места кода, которые изменил. Старое закоментировано.
Вот так было до внесения изменений. Гистограмма есть, цвета нужного нету.
Вот так стало. Гистограмма исчезла, не отображается.
Видимо опять слабо голову ломаю.
Здесь нарушена логика вообще. Последовательность должна быть такая: Определили значение гистограммы, заполнили i-тый индекс индикаторного буфера. Затем отдельная проверка, если это значение >=50 буфер цвета заполнить 0, иначе 1. Это определяется последовательностью цветов в директиве
Если 0, то берётся цвет clrGreen и если 1 то clrRed
А эта строка абсолютно лишняя, да и последовательность противоположна первой.
И это
int cl;
с какой целью добавлено? Проще напрямую заполнить
Для заполнения буфера цвета я-бы использовал такую конструкцию
Оператор ?: равнозначен if else но применяется прощеЗдесь нарушена логика вообще. Последовательность должна быть такая: Определили значение гистограммы, заполнили i-тый индекс индикаторного буфера. Затем отдельная проверка, если это значение >=50 буфер цвета заполнить 0, иначе 1. Это определяется последовательностью цветов в директиве
Если 0, то берётся цвет clrGreen и если 1 то clrRed
А эта строка абсолютно лишняя, да и последовательность противоположна первой.
И это
с какой целью добавлено? Проще напрямую заполнить
Для заполнения буфера цвета я-бы использовал такую конструкцию
Оператор ?: равнозначен if else но применяется прощеУУРРАА, и душа запела. Алексей, огромное спасибо !!!!!
Все заработало, не совсем понял, как получается обойтись без массива
ведь его описание удалено. Значит здесь вообще можно обойтись без лишнего массива?
Сергей огромная благодарность за кнопку on_off для моего советника.Работа длилась один год,и вот он готов,вы первый кто увидит результаты тестов,взял на вскидку,тестировал на разных валютах,с разным спредом,и вообщем результат везде одинаков.Даже извините стишок придумал...Мой Пискун он просто чудо,всё берёт везде и всюду.
p.s Я так и не научился правильно прикреплять изображение,прошу извинить,выложу скины с экрана.
Для заполнения буфера цвета я-бы использовал такую конструкцию
Оператор ?: равнозначен if else но применяется прощеОтличный совет и прекрасная наука на будующее!!! Пошел даже немного дальше. Ниже результат.
Так было:
Так стало, эффективность подхода очевидна!!! Спасибо.
Отличный совет и прекрасная наука на будующее!!! Пошел даже немного дальше. Ниже результат.
Так было:
Так стало, эффективность подхода очевидна!!! Спасибо.
Здесь нет эффективности - три раза условие if-else вместо одного. Здесь - хуже как раз...
Здесь нет эффективности - три раза условие if-else вместо одного. Здесь - хуже как раз...
Да, действительно. не обратил на это внимание. А смотрится лучше, буковок опять же меньше.
А засунуть под одного оператора ?: сразу три исполнения (не знаю как правильно сказать) никак нельзя?