Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 379
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
не вижу нуля, где-то вы намудрили
У Вас оба принта выдают одинаковые значения?
Потому что у меня в коде нет никаких функций Print, а строчки эти идут одна за другой соотвественно никак значения не меняются.
Но Var выдает 0, а Code - нужное значение
Так ведь присваемое значение я и вывожу сразу. То есть по сути код такой:
a=b;
Print (a);
Print (b);
Но a выдает равным нулю, а b выводит правильно
Такое возможно, если int a и double b>0 и b<1 при присваивании целой переменной действительного значения дробная часть отбрасывается
Такое возможно, если int a и double b>0 и b<1 при присваивании целой переменной действительного значения дробная часть отбрасывается
b больше единицы намного
а - массив типа double
Проблему решил.
Массив у меня был создан следующим образом:
double line[];
При таком варианте при присванивании line[0]=x; нулевой элемент как видно все равно оставался пустым.
Когда я написал
double line[20];
Все заработало как надо. Не понимаю почему так, ведь в первом случае я просто создал неограниченный массив, в чем разница?
Проблему решил.
Массив у меня был создан следующим образом:
double line[];
При таком варианте при присванивании line[0]=x; нулевой элемент как видно все равно оставался пустым.
Когда я написал
double line[20];
Все заработало как надо. Не понимаю почему так, ведь в первом случае я просто создал неограниченный массив, в чем разница?
Вы создали динамический массив, а размер-то ему нужно задавать и контролировать самостоятельно.
Вы создали динамический массив, а размер-то ему нужно задавать и контролировать самостоятельно.
Никто таки не отзывается на помощь? Тупиковая для меня проблема изложена здесь: https://www.mql5.com/ru/forum/160683/page378#comment_6053255
Вопрос:
1) как описать код, позволяющий строить график по усредненным данным, которые у меня записываются в буфер?
2) возможно ли данные по этому индикатору (которые получаются в реальном режиме) записывать в некий файл, чтобы потом, сославшись на этот файл, можно было бы построить индикатор на исторических данных, применив к ним уже собранные тиковые объемы? Если можно, то как это описать программно? Или есть иное решение, не требующее записи в файл текущей информацией iVolume?
Код программы описан тут: https://www.mql5.com/ru/forum/160683/page378#comment_6053255
Индикатор по данным из файла - ввел эту строку в поиске и нашел
Чтобы данные из файла получить, нужно сначала туда данные залить.
Ау... люди добрые! Помогите, плиз! Осваиваю программирование. Без Вашей помощи тупик полный.
Данные индикатора пытаюсь записать в файл, чтобы потом пользоваться ими для построения индикатора. Индикатор строится как линия, на основе данных по разнице между объемом положительных тиков и объемом отрицательных тиков для текущего бара.
Воспользовался справочником MQL4 для получения информации, как массив данных выгрузить в файл. В итоге получил код полный ошибок. Не могу понять ни сути ошибок, и вообще правильно воспользовался подсказкой из справочника или нет. Кто-нибудь может помочь?
Если Вы думаете, что кто-то, глядя на Ваш код, может быстро найти ошибка - заблуждаетесь. Ошибки ищет компилятор. Текст программы должен быть отформатирован - для этого в MetaEditor есть стилизатор. Если Вам нравится другой стиль - используйте, например, программу AStyle.exe. После стилизации вы быстро увидите, что в программе 1) лишняя закрывающая скобка. 2) Объявлена переменная: datetime date_Buf_1; // массив дат индикатора - чтоб это был массив, надо [размер] или [] для динамического массива и потом размер задать ArrayResize кажется. И это нужно делать до использования массива - смотрите про это посты выше. 3) FileOpen(InpDirectoryName+"//"+InpFileName - кажется, палки надо наклонить в другую сторону. А лучше обойтись без InpDirectoryName+"//" - в папке Files и так файл найдете.
на строку: int copied=CopyTime(NULL,0,0,0,date_Buf_1); Компилятор злится, начало=конец=0 количество=0