Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 673
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
После последних ответов картина стала проясняться и самое очевидное это то что стать программистом мне не судьба :-)
Пока что начал с самого простого листинга и вот что оказалось:
2018.10.20 08:42:43.343 _t1 CADJPY,Daily: tmp1[4] = 86.09999999999999 2018.10.15 00:00:00
2018.10.20 08:42:43.343 _t1 CADJPY,Daily: tmp1[3] = 85.98999999999999 2018.10.16 00:00:00
2018.10.20 08:42:43.343 _t1 CADJPY,Daily: tmp1[2] = 86.76000000000001 2018.10.17 00:00:00
2018.10.20 08:42:43.343 _t1 CADJPY,Daily: tmp1[1] = 86.5 2018.10.18 00:00:00
2018.10.20 08:42:43.343 _t1 CADJPY,Daily: tmp1[0] = 85.72 2018.10.19 00:00:00
В некоторых случаях почему-то цена превышает размерность двух значащих цифр после точки в любую сторону.
И это происходит безо всяких погрешностей в вычислениях, это просто вывод значения цены из базы графика tmp1[i]=close[i];
Это можно как-то победить или просто не обращать внимание?
Из него можно выкинуть всё относящееся к пятёрке, и получите шаблон для четвёрки.
Такое можно писать тем кто знает чем пятерка отличается от четверки и это точно не я :-)
Откуда цифра 4 взялась, какой у неё сакральный смысл?
Такое можно писать тем кто знает чем пятерка отличается от четверки и это точно не я :-)
Откуда цифра 4 взялась, какой у неё сакральный смысл?
Вы точно и не слушаете, и не читаете... Было же ж:
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Любые вопросы новичков по MQL4, помощь и обсуждение по алгоритмам и кодам
Artyom Trishkin, 2018.10.18 09:26
После последних ответов картина стала проясняться и самое очевидное это то что стать программистом мне не судьба :-)
Пока что начал с самого простого листинга и вот что оказалось:
2018.10.20 08:42:43.343 _t1 CADJPY,Daily: tmp1[4] = 86.09999999999999 2018.10.15 00:00:00
2018.10.20 08:42:43.343 _t1 CADJPY,Daily: tmp1[3] = 85.98999999999999 2018.10.16 00:00:00
2018.10.20 08:42:43.343 _t1 CADJPY,Daily: tmp1[2] = 86.76000000000001 2018.10.17 00:00:00
2018.10.20 08:42:43.343 _t1 CADJPY,Daily: tmp1[1] = 86.5 2018.10.18 00:00:00
2018.10.20 08:42:43.343 _t1 CADJPY,Daily: tmp1[0] = 85.72 2018.10.19 00:00:00
В некоторых случаях почему-то цена превышает размерность двух значащих цифр после точки в любую сторону.
И это происходит безо всяких погрешностей в вычислениях, это просто вывод значения цены из базы графика tmp1[i]=close[i];
Это можно как-то победить или просто не обращать внимание?
Всё нормально. Для вывода дробных чисел на печать просто используйте DoubleToString() с нужной точностью. В данном случае необходимой точностью должно выступать Digits()
После последних ответов картина стала проясняться и самое очевидное это то что стать программистом мне не судьба :-)
Пока что начал с самого простого листинга и вот что оказалось:
2018.10.20 08:42:43.343 _t1 CADJPY,Daily: tmp1[4] = 86.09999999999999 2018.10.15 00:00:00
2018.10.20 08:42:43.343 _t1 CADJPY,Daily: tmp1[3] = 85.98999999999999 2018.10.16 00:00:00
2018.10.20 08:42:43.343 _t1 CADJPY,Daily: tmp1[2] = 86.76000000000001 2018.10.17 00:00:00
2018.10.20 08:42:43.343 _t1 CADJPY,Daily: tmp1[1] = 86.5 2018.10.18 00:00:00
2018.10.20 08:42:43.343 _t1 CADJPY,Daily: tmp1[0] = 85.72 2018.10.19 00:00:00
В некоторых случаях почему-то цена превышает размерность двух значащих цифр после точки в любую сторону.
И это происходит безо всяких погрешностей в вычислениях, это просто вывод значения цены из базы графика tmp1[i]=close[i];
Это можно как-то победить или просто не обращать внимание?
это обычные значения для вещественного числа, Вы может научиться писать программы, все с этого начинают- просто читать много нужно и пытаться писать и писать свои коды
про точность вещественного числа, мантису и как оно все хранится в памяти, Вы можете нагуглить в интернете, принципы хранения и везде одни и те же
если хотите красивый вывод используйте DoubleToStr()
это обычные значения для вещественного числа, Вы может научиться писать программы, все с этого начинают- просто читать много нужно и пытаться писать и писать свои коды
про точность вещественного числа, мантису и как оно все хранится в памяти, Вы можете нагуглить в интернете, принципы хранения и везде одни и те же
если хотите красивый вывод используйте DoubleToStr()
Где есть возможность использования совместимых функций, лучше предлагать их к использованию. А то потом сия эпопея заново начнётся. В данном случае: DoubleToString()
Как можно было запретить запуск советника на одинаковых инструментах?
Например, советник работает в окне eur/usd, а при запуске в других окнах по eur/usd выводится некоторое alert сообщение. Буду благодарен за помощь.
Как можно было запретить запуск советника на одинаковых инструментах?
Например, советник работает в окне eur/usd, а при запуске в других окнах по eur/usd выводится некоторое alert сообщение. Буду благодарен за помощь.
нужно передать данные из одного советника в другой, поиском по форуму
или используйте глобальные переменные терминала (это наиболее простой способ) - туда можно записать значение первым советником, а последующие копии советников будут считывать это значение и не будут запускаться https://www.mql5.com/ru/docs/globals
нужно передать данные из одного советника в другой, поиском по форуму
или используйте глобальные переменные терминала (это наиболее простой способ) - туда можно записать значение первым советником, а последующие копии советников будут считывать это значение и не будут запускаться https://www.mql5.com/ru/docs/globals
советник один и тот же, нужно запретить ему запускаться на одинаковых инструментах
и? за 2 минуты Вы не смогли бы изучить справку
если конкретно речь как передать в глобальную переменную строку, то единственный способ это создать имя глоб.переменной, т.е. в Вашем случае запустили советник на EURUSD, сделайте проверку:
if(GlobalVariableCheck(_Symbol)) .....
если нет такой переменной, то создаете такую перемеренную, примерно так:
if(GlobalVariableSet(_Symbol,Magic)==0) Print("Ошибка записи в глоб.переменную № ",GetLastError());
потом нужно при завершении работы советника удалить глоб.переменную
кактотак, терминала нет под рукой, да и вроде направление поисков я указал