[АРХИВ]Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 5. - страница 212
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Доброго всем дня.Две МА пересекаются много раз на графике.Можно ли подсчитать количество баров после КАЖДОГО пересечения МА.После последнего-получается,а вот после КАЖДОГО-нет!Может кто-нибудь знает,как это сделать?
Смотря для чего нужно. Для советника - один алгоритм, для индикатора - другой.
Вообще, примерно так: Создайм переменную, в которой будем хранить количество пересечений. Можно две - для вверх и для вниз, например Intersection_UP и Intersection_DN.
Перед циклом инициализируем их нулями.
Делаем цикл от первого бара до Bars : for (int i=1; i<Bars; i++) { // тело цикла, где считаем пересечения ... }.
При каждом пересечении на баре i ма1 снизу вверх ма2 увеличиваем Intersection_UP, при каждом пересечении на баре i ма1 сверху вниз ма2 увеличиваем Intersection_DN.
По окончании цикла имеем в двух переменных количество пересечений вверх и вниз. Сложив их, получим общее количество пересечений
Доброго всем дня.Две МА пересекаются много раз на графике.Можно ли подсчитать количество баров после КАЖДОГО пересечения МА.После последнего-получается,а вот после КАЖДОГО-нет!Может кто-нибудь знает,как это сделать?
Оно ж просто. Фиксируешь пересечение, и создаёшь счётчик. Когда пересечение есть, счётчик каждый бар прибавляет по 1. Когда обратное пересечение, отсчёт другого счётчика пошёл.
Не поняли друг друга, видимо
В общем, место локализации проблемы определилось - переменная static.
Но вот почему функция с такой переменной, скомпилированная в одном файле с индикатором работает без проблем (переинициализация проходит успешно и все работает штатно), а при обращении к этой же функции, помещенной в библиотеку, возникают проблемы?
Может быть, есть какие-то ограничения по использованию определенных типов в библиотечных функциях?
В общем, место локализации проблемы определилось - переменная static.
Но вот почему функция с такой переменной, скомпилированная в одном файле с индикатором работает без проблем (переинициализация проходит успешно и все работает штатно), а при обращении к этой же функции, помещенной в библиотеку, возникают проблемы?
Может быть, есть какие-то ограничения по использованию определенных типов в библиотечных функциях?
Я не разработчик, и могу только предполагать. Так вот, предполагаю, что при переинициализации после изменения параметров ex4 не выгружается из памяти, из-за чего при новом запуске мы попадаем в ту же самую копию библы, что и раньше, со всеми статиками и их старыми значениями.
По идее все статики программы должны инициализироваться перед вызовом init(). Но библиотека ex4 подгружается только непосредственно в момент первого вызова библиотечной функции, поэтому в общую кучу библиотечные статики не попадают.
Если так посмотреть на все это дело, то получается объяснение вполне логичное.
Вот имеется функция StringGetChar https://docs.mql4.com/ru/objects/ObjectFind
Зачем она нужна вообще?
Согласно учебника возвращает значение символа в виде цифры. Там символу "с" соответствует значение 99. Как это понять? Какое применение вообще у данной функции?
Ну возвратила она цифру... и что это даёт?
Хочу научиться работать со строками, вот попалась функция. Потому и спрашиваю.
Я не разработчик, и могу только предполагать. Так вот, предполагаю, что при переинициализации после изменения параметров ex4 не выгружается из памяти, из-за чего при новом запуске мы попадаем в ту же самую копию библы, что и раньше, со всеми статиками и их старыми значениями.
По идее все статики программы должны инициализироваться перед вызовом init(). Но библиотека ex4 подгружается только непосредственно в момент первого вызова библиотечной функции, поэтому в общую кучу библиотечные статики не попадают.
Если так посмотреть на все это дело, то получается объяснение вполне логичное.
Имею в своей голове массив из 3000 однотипных значений .
Но не совсем понимаю как инициализировать этими значениями одномерный массив.
Не понимаю - неужели все 3000 значений я должен указать через запятую в операторе присваивания при инициализации массива
int Mas_i[3000]= { (Bid>1.2153)&&(Bid<1.2160) , (Bid>1.2156)&&(Bid<1.2163) ...неужели нужно перечислять все 3000 выражений };
Подскажите пожалуйста,или скажите где почитать.В учебнике С.Ковалева , как мне кажется,я не нашел ответа на этот вопрос.....или не понял.
Спасибо.
Вот имеется функция StringGetChar https://docs.mql4.com/ru/objects/ObjectFind
Зачем она нужна вообще?
Согласно учебника возвращает значение символа в виде цифры. Там символу "с" соответствует значение 99. Как это понять? Какое применение вообще у данной функции?
Ну возвратила она цифру... и что это даёт?
Хочу научиться работать со строками, вот попалась функция. Потому и спрашиваю.
Чтобы писать в чарте (не путать с комментом) должен кодировать цифровым кодом. Пропишешь 99, на чарте появится буква "с". Я ещё этим не занимался, но в Доке можно найти, как всё делать и с каким шрифтом, размером, с ориентировкой по осям X и Y в пикселях и т.д. Если тебе уже только этого не хватает, вперёд, но времени займёт немало! Успехов!