Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 1236
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Приветствую. Подскажите, пожалста.
Возможно ли получить не значение а само имя какой-либо переменной? К примеру, вывести в печать имя переменной.
#define PRINTVAR(x) Print(" " ##x); Print(x)
void OnStart()
{
long anyvar=(long)TimeLocal();
PRINTVAR(anyvar);
}
результат:
2020.08.24 14:46:05.394 test (USDCHF,H1) anyvar
2020.08.24 14:46:05.394 test (USDCHF,H1) 1598280365
возможно фича из неопубликованного :-) по аналогии с "С", но ещё недоведённое по юзабельности
Нужно получить само название переменной.
Не зная названия, и не имея никаких отличительных признаков этого сделать нельзя. Можно например получить названия всех переменных равных 5 и вывести их названия, нашли, вывели. Или названия всех строковых переменных. Но в любом случае это перебор переменных.
Maxim Kuznetsov спасиб
Да, вопрос так-же в том чтоб выбрать переменную по имени.
К примеру есть переменные a1, a2, a3, a4, a5 и тд. Нужно перебрать и эти переменные, выбрать у которой есть "a" и 5, и ее использовать.
тогда почти никак. Имена переменных доступны только из препроцессора (#макросов).
надо менять внутреннюю логику, например вместо переменных использовать хеш-массив объектов от имён. Тогда сразу доступны и ключ и значение. Или заюзать SQLite если долговременное хранение. Или совместить :-)
Но это так, без знания алгоритма совет впустую.
Да, вопрос так-же в том чтоб выбрать переменную по имени.
К примеру есть переменные a1, a2, a3, a4, a5 и тд. Нужно перебрать и эти переменные, выбрать у которой есть "a" и 5, и ее использовать.
Писать имена в массив и перебирать массив.
Всем доброго времени суток! Мой вопрос по тестеру MT4, язык mql4
Подскажите пожалуйста в чем моя ошибка при инициализации массива. Я создал одномерный массив из 750 элементов. И все 750 элементов инициализировал значением 50.0.
То есть , на первом и последующих тиках первый элемент массива с индексом 0 должен иметь значение 50.0 и последний элемент массива под индексом 749 должен иметь значение 50.0
Фактически же получается, что последний элемент массива имеет значение 0. А первый , как и положено - 50.0
Вопрос. Как сделать так, что бы все значения моего массива (в том числе и последнее) после инициализации имели значение 50.0
Вот мой код
Print("=========================749======= ",S_L[749]," = 0= ",S_L[0]);
}
Внизу значение Print() из журнала
2020.08.24 17:43:55.427 GBPUSD,M1: 52255 tick events (1440 bars, 53256 bar states) processed in 0:00:00.047 (total time 0:00:02.422)
2020.08.24 17:43:55.407 2010.01.04 00:00:53 ТЕСТЕР(Б.ОРД.) GBPUSD,M1: =========================749======= 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:00:52 ТЕСТЕР(Б.ОРД.) GBPUSD,M1: =========================749======= 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:00:50 ТЕСТЕР(Б.ОРД.) GBPUSD,M1: =========================749======= 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:00:47 ТЕСТЕР(Б.ОРД.) GBPUSD,M1: =========================749======= 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:00:45 ТЕСТЕР(Б.ОРД.) GBPUSD,M1: =========================749======= 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:00:43 ТЕСТЕР(Б.ОРД.) GBPUSD,M1: =========================749======= 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:00:41 ТЕСТЕР(Б.ОРД.) GBPUSD,M1: =========================749======= 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:00:40 ТЕСТЕР(Б.ОРД.) GBPUSD,M1: =========================749======= 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:00:37 ТЕСТЕР(Б.ОРД.) GBPUSD,M1: =========================749======= 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:00:35 ТЕСТЕР(Б.ОРД.) GBPUSD,M1: =========================749======= 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:00:32 ТЕСТЕР(Б.ОРД.) GBPUSD,M1: =========================749======= 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:00:30 ТЕСТЕР(Б.ОРД.) GBPUSD,M1: =========================749======= 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:00:28 ТЕСТЕР(Б.ОРД.) GBPUSD,M1: =========================749======= 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:00:26 ТЕСТЕР(Б.ОРД.) GBPUSD,M1: =========================749======= 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:00:25 ТЕСТЕР(Б.ОРД.) GBPUSD,M1: =========================749======= 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:00:22 ТЕСТЕР(Б.ОРД.) GBPUSD,M1: =========================749======= 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:00:20 ТЕСТЕР(Б.ОРД.) GBPUSD,M1: =========================749======= 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:00:17 ТЕСТЕР(Б.ОРД.) GBPUSD,M1: =========================749======= 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:00:15 ТЕСТЕР(Б.ОРД.) GBPUSD,M1: =========================749======= 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:00:13 ТЕСТЕР(Б.ОРД.) GBPUSD,M1: =========================749======= 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:00:11 ТЕСТЕР(Б.ОРД.) GBPUSD,M1: =========================749======= 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:00:10 ТЕСТЕР(Б.ОРД.) GBPUSD,M1: =========================749======= 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:00:07 ТЕСТЕР(Б.ОРД.) GBPUSD,M1: =========================749======= 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:00:05 ТЕСТЕР(Б.ОРД.) GBPUSD,M1: =========================749======= 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:00:02 ТЕСТЕР(Б.ОРД.) GBPUSD,M1: =========================749======= 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:00:00 ТЕСТЕР(Б.ОРД.) GBPUSD,M1: =========================749======= 0 = 0= 50
2020.08.24 17:43:55.385 2010.01.01 00:00:00 ТЕСТЕР(Б.ОРД.) test started
Спасибо за помощь
Вот мой
Где?)))
Где?)))
Вверху в моем отредактированном посте. Спасибо за отклик.
ANDREY:
Вопрос. Как сделать так, что бы все значения моего массива (в том числе и последнее) после инициализации имели значение 50.0
Спасибо за подсказку. Попутно хотел уточнить..... В учебнике Ковалева написано что инициализировать массив можно одновременно с его объявлением( как я и сделал), без специальной функции. Я знаю что учебник Ковалева в чем то устарел. ВОПРОС. Правильно я понимаю, что сейчас в mql4 инициализировать массивы нужно исключительно при помощи функции
Спасибо.