Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 953
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
И как бы куда это использовать?
Вся эта затея в том, что допустим по адресу "..\MQL5\Files\00\dir_01" у меня лежат директории, в которых есть файлы для обработки, с помощью Вашего замечательного кода я получаю в массив путь к этим папкам и хочу дальше уже, зная четко какие файлы мне надо обработать, обратиться к этим файлам, а для этого нужно написать до них путь к примеру так "MQL5\\Files\\00\\dir_01\\A\\test.csv", а код возвращает такой путь "MQL5\Files\00\dir_01\A\", вот я и спрашиваю, можно ли его модифицировать для оптимального возврата пути, пригодного для применения в дальнейшем коде.
И как бы куда это использовать?
Вся эта затея в том, что допустим по адресу "..\MQL5\Files\00\dir_01" у меня лежат директории, в которых есть файлы для обработки, с помощью Вашего замечательного кода я получаю в массив путь к этим папкам и хочу дальше уже, зная четко какие файлы мне надо обработать, обратиться к этим файлам, а для этого нужно написать до них путь к примеру так "MQL5\\Files\\00\\dir_01\\A\\test.csv", а код возвращает такой путь "MQL5\Files\00\dir_01\A\", вот я и спрашиваю, можно ли его модифицировать для оптимального возврата пути, пригодного для применения в дальнейшем коде.
Вы просто не понимаете, что такое двойной слэш - это один символ, который в синтаксисе обозначается двумя: первый слэш-команда, второй - какая.
\n, \r, \t, \" и \\ - это символы, задающиеся по таком правилу. Т.е. в пути всегда один слэш.
Вы просто не понимаете, что такое двойной слэш - это один символ, который в синтаксисе обозначается двумя: первый слэш-команда, второй - какая.
\n, \r, \t, \" и \\ - это символы, задающиеся по таком правилу. Т.е. в пути всегда один слэш.
Не исключаю, что я что-то не понимаю, но мне то нужна два слеша для генерации пути к файлу, а не один.
Не исключаю, что я что-то не понимаю, но мне то нужна два слеша для генерации пути к файлу, а не один.
Вам не нужно два слэша.
Попробуйте вывести в лог один, два, три слэша через Print. Возможно, тогда поймете.Вам не нужно два слэша.
Попробуйте вывести в лог один, два, три слэша через Print. Возможно, тогда поймете.Да я понимаю, что слэш это команда, но мне же нужно прописать путь, а для этого и использую двойной слэш.
Вот путь допустим
я получил в массив Folders[0] строку:
00\dir_01\A\
хочу получить меняя индекс массива доступ к файлу с одним и тем же названием, но лежащим в разных директориях, я полагаю, что надо делать так
но по такой команде будет получена ошибка, разве нет?
Эт зря.
Добрый день!
Пытаюсь перейти с MQL4 на MQL5 и не могу найти последнию закрытую позицию.
В MQL5, когда мы посылаем ордер - это ордер, когда он открылся - он стал позицией и, по логике, после того как он закрылся, он должен попасть в историю позиций, а удаленные отложенные ордера должны быть в истории ордеров, но вижу только историю ордероа с сделок - поэтому непонятно где искать закрытую позицию.
Пробовал вот так:
Но выводит номера и открытых и закрытых позиций. ORDER_TYPE всегда выводит 4, что тоже непонятно.
Пробовал менять ORDER на DEAL, но тоже не работает.
Подскажите, пожалуйста, что не так?
Vladimir, спасибо. С функцией обновления котировок RefreshRates из класса CSymbolInfo я уже немного познакомился. Видел её в Ваших работах, ну и в букваре почитал.
Вызов этой функции в OnTick и вывод значений цен в Comment мне тоже понятны из примера. Процедура в OnInit по проверке текущего символа мне тоже понятна.
Пока буду ждать примера с новым баром, поупражняюсь с Вашим примером, не применял его ещё на практике. Попробую.
Итак пример, который работает только в момент рождения нового бара.
В данном примере используются статические переменные PrevBars, prev_ask и prev_bid. Суть статических переменных -
Локальные переменные, объявленные с ключевым словом static сохраняют свои значения в течение всего времени существования функции. При каждом следующем вызове функции такие локальные переменные содержат те значения, которые они имели при предыдущем вызове.
Таким образом наши три статических переменных (PrevBars, prev_ask и prev_bid) - это локальные переменные объявленные внутри функции OnTick и они сохраняют свои значения, которые имели при предыдущем входе в функцию OnTick.
PrevBars хранит время предыдущего бара. Это время сравнивается с time_0 - временем текущего бара. Пока PrevBars равно time_0 - мы находимся на текущем баре и выходим из функции OnTick. Аналогично с переменными, которые хранят цены предыдущего бара: сначала отображаем предыдущие и текущие цены, затем записываем текущие цены в переменные prev_ask и prev_bid .
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Вопросы от начинающих MQL5 MT5 MetaTrader 5
Aleksey Vyazmikin, 2018.12.05 00:39
Да я понимаю, что слэш это команда, но мне же нужно прописать путь, а для этого и использую двойной слэш.
Вот путь допустим
я получил в массив Folders[0] строку:
00\dir_01\A\
хочу получить меняя индекс массива доступ к файлу с одним и тем же названием, но лежащим в разных директориях, я полагаю, что надо делать так
но по такой команде будет получена ошибка, разве нет?
Ошибки не будет. Вы так и не осознали, что такое двойной слэш.
Да я понимаю, что слэш это команда, но мне же нужно прописать путь, а для этого и использую двойной слэш.
Вот путь допустим
я получил в массив Folders[0] строку:
хочу получить меняя индекс массива доступ к файлу с одним и тем же названием, но лежащим в разных директориях, я полагаю, что надо делать так
но по такой команде будет получена ошибка, разве нет?
Алексей, возьми из документации пример
и распечатай две string переменные, выделенные в коде примера. Найди отличия и пойми, что двойной слеш пишется только в коде программы, но при компиляции остаётся только один и один используется в пути к файлу.