Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 378
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Кто-нибудь из добрых людей подскажите как написать следующую штуку.
Сделал учебный индикатор, который считает iVolume для каждого тика: для тех что дернулись вверх iVolume положительная, а для тех что вниз - отрицательная iVolume. Чтобы получилась кривая, все iVolume (положительный и отрицательные) складываю нарастающим итогом от бара к бару. Получается кривая. Однако, я столкнулся с 2-мя проблемами:
1) линия получается сильно ломаная;
2) невозможно протестировать советник, поскольку , полученный график iVolume живет только жизнью реальной.
Вопрос:
1) как описать код, позволяющий строить график по усредненным данным, которые у меня записываются в буфер?
2) возможно ли данные по этому индикатору (которые получаются в реальном режиме) записывать в некий файл, чтобы потом, сославшись на этот файл, можно было бы построить индикатор на исторических данных, применив к ним уже собранные тиковые объемы? Если можно, то как это описать программно? Или есть иное решение, не требующее записи в файл текущей информацией iVolume?
Может в конце кода добавить:
double macurrent=iMAOnArray(Buf_1[0],0,5,0,MODE_LWMA,0);
Эх нет! Компилятор пишет ошибку, что мол, нет массива.
Кто-нибудь....., может помочь? Моя тупиковая для меня задача изложена здесь: https://www.mql5.com/ru/forum/160683/page378#comment_6053255
Индикатор по данным из файла - ввел эту строку в поиске и нашел
Какой-то кошмар, не понимаю почему так выдает:
Участок кода :
line[0]=MathFloor(Low[1]*MathPow(10,D-1));
Print("Var ",DoubleToStr(line[0],D));
Print("Code ",DoubleToStr(MathFloor(Low[1]*MathPow(10,D-1)),D));
Выводит :
EURUSD,M15: Var 0.00000
EURUSD,M15: Code 11754.00000
Что происходит со значением после присваивания?
line[0]=MathFloor(Low[1]*MathPow(10,D-1));
Print("Var ",DoubleToStr(line[0],D));
Print("Code ",DoubleToStr(MathFloor(Low[1]*MathPow(10,D-1)),D));
Выводит :
EURUSD,M15: Var 0.00000
EURUSD,M15: Code 11754.00000
Что происходит со значением после присваивания?
Распечатайте значения переменных после присваивания и значение переменной D. Посчитаем на калькуляторе...
Всем привет. Народ, окажите пожалуйста небольшую помощь. Не мог бы кто нибудь установить в индикатор строку где можно указать наименование звукового файла, чтобы строка отображалась в настройках индикатора.
Распечатайте значения переменных после присваивания и значение переменной D. Посчитаем на калькуляторе...
Так ведь присваемое значение я и вывожу сразу. То есть по сути код такой:
a=b;
Print (a);
Print (b);
Но a выдает равным нулю, а b выводит правильно
Так ведь присваемое значение я и вывожу сразу. То есть по сути код такой:
a=b;
Print (a);
Print (b);
Но a выдает равным нулю, а b выводит правильно
не вижу нуля, где-то вы намудрили