Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 487
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Как прочитать 8-мую строку файла?
вопрос касается файловых операций
https://docs.mql4.com/ru/files
Все в mql делается перебором, как мне кто-то когда-то говорил?
Другим способом нельзя?
Все типы данных имеют определённый размер занимаемой памяти в байтах. Соответственно можно при написании кода использовать это и смещать файловый указатель на количество занимаемых байт данными одной строки.
Если в строке 4 значения типа double то получается строка занимает 4*8 = 32 байта. Соответственно для чтения 9-й строки файла надо сместить файловый указатель на 256 байт.
Если-же смещается указатель от конца файла, то значение должно быть отрицательным.
Но, это не всё так гладко. Некоторое время назад, я разбирался с этим вопросом и выяснил, что файлы .txt и .csv некорректно работают с этим, а вот файлы типа .bin ошибок не допускают. Возможно что уже эта проблема исправлена и вам повезёт.
Если в строке 4 значения типа double
а разве в файле csv все значения не строковые(string)?
у меня каждая строка в файле - это слово.
получается у меня строковые значения, размером в 12 байт.
значит мне, чтобы перейти на 8 строку, нужно сместить каретку на 84 байта.
спасибо за инфу.
Как в mql 5 сделать цикл по всем открытым позициям?
это тема по mql4
Нет, эта тема и по mql4, и по mql5
Добрый День!
Вопрос: как ускорить работу тестера в терминале?
У меня он использует только 1 поток процессора из 4-х, и только 150мб оперативки. (т.е. не использует всю мощь ПК)
Какие есть варианты?
Если это уже обсуждалось, то подкиньте ссылки Пожалуйста!
Если МТ4 то тут играет роль только частота процессора. Использует один поток ? Ну в этом есть и доля преимущества, можете одновременно 4 терминала МТ4 запустить с разными задачами тестирования или оптимизации. И будет таже нагрузка на процессор, как и на одном терминале.
Как в mql 5 сделать цикл по всем открытым позициям?
В mql5 различаются позиции и ордера. Позиция - это результат сделки. А сделка - это результат срабатывания ордера.
Сначала отсылается торговый запрос на сервер, и появляется либо отложенный ордер (если запрос был установить его), либо маркет-ордер (если запрос был открыть позицию).
Если маркет-ордер сработал (произошла сделка), то в результате этой сделки появляется (или изменяется уже существующая) позиция.
На хэджевом счёте может быть много раздельных позиций (в том числе и разнонаправленных), на неттинговом счёте позиция может быть только одна.
Так вот, чтобы перебрать в цикле все позиции, нужно организовать цикл по их количеству - соответственно, использовать PositionsTotal() вместо привычного для mql4 OrdersTotal().
Если же нужно в mql5 перебрать все ордера, то тут (в mql5) используется привычная для mql4 OrdersTotal().
а разве в файле csv все значения не строковые(string)?
у меня каждая строка в файле - это слово.
получается у меня строковые значения, размером в 12 байт.
значит мне, чтобы перейти на 8 строку, нужно сместить каретку на 84 байта.
спасибо за инфу.
Текстовый файл приходиться читать только по строкам. По-другому высчитать номер строки не получится. Поэтому - да, только последовательным чтением в цикле при помощи FileReadString.
На графике создаю уровни Фибоначчи с помощью ObjectCreate(name,OBJ_FIBO, ...), потом ObjectSetFiboDescription(name,0,"...") устанавливаю описание уровней, но надо названия отодвинуть от правого края. Дописал пробелы, но они не только отодвигают текст но и прикрывают линии. К тому же если дописать больше пробелов, то текст перестает отодвигаться.
Вопрос: можно ли в текст добавить "невидимый" символ, чтоб не прикрывал под ним лежащую линию?
На графике создаю уровни Фибоначчи с помощью ObjectCreate(name,OBJ_FIBO, ...), потом ObjectSetFiboDescription(name,0,"...") устанавливаю описание уровней, но надо названия отодвинуть от правого края. Дописал пробелы, но они не только отодвигают текст но и прикрывают линии. К тому же если дописать больше пробелов, то текст перестает отодвигаться.
Вопрос: можно ли в текст добавить "невидимый" символ, чтоб не прикрывал под ним лежащую линию?
попробуйте точки и символ с кодом 0