Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 953
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Вы просто не понимаете, что такое двойной слэш - это один символ, который в синтаксисе обозначается двумя: первый слэш-команда, второй - какая.
\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 переменные, выделенные в коде примера. Найди отличия и пойми, что двойной слеш пишется только в коде программы, но при компиляции остаётся только один и один используется в пути к файлу.
Ошибки не будет. Вы так и не осознали, что такое двойной слэш.
Спасибо за терпение!
Действительно, сразу до меня не дошло и не сложилась вся картина, что только для компилятора нужен двойной слэш для написания этого символа в строку.
Alexey Viktorov, спасибо за акцентуацию работы компилятора.
Итак пример, который работает только в момент рождения нового бара.
В данном примере используются статические переменные PrevBars, prev_ask и prev_bid. Суть статических переменных -
Таким образом наши три статических переменных (PrevBars, prev_ask и prev_bid) - это локальные переменные объявленные внутри функции OnTick и они сохраняют свои значения, которые имели при предыдущем входе в функцию OnTick.
PrevBars хранит время предыдущего бара. Это время сравнивается с time_0 - временем текущего бара. Пока PrevBars равно time_0 - мы находимся на текущем баре и выходим из функции OnTick. Аналогично с переменными, которые хранят цены предыдущего бара: сначала отображаем предыдущие и текущие цены, затем записываем текущие цены в переменные prev_ask и prev_bid .