Обсуждение статьи "Соединение MetaTrader 5 и Python: получение и отправка данных" - страница 4
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Не совсем понял про перенос расчетов... Иными словами - создать аналог алгоритма вычисления уже имеющейся программы только теперь на языке программирования Python?
С уважением, Владимир.
Ну да, если алгоритм известен
Ну точно, ломлюсь в уже давно открытую дверь! Сказывается возраст. :)
Спасибо и дай Вам бог здоровья! Вы случайно не из мск? А то бы баночкой мёда бы угостил!
С уважением, Владимир.
Ну точно, ломлюсь в уже давно открытую дверь! Сказывается возраст. :)
Спасибо и дай Вам бог здоровья! Вы случайно не из мск? А то бы баночкой мёда бы угостил!
С уважением, Владимир.
^)) из других широт
Здравствуйте, Максим!
Немного продвинулся в своих познаниях языка Python, однако не могу найти подробную информацию о совместном доступе к файлу csv со стороны Python и сторонней программы, например, того же советника написанного на MQL5. Проше говоря, программный код на языке Python периодически записывает информацию в файл csv, а советник на языке MQL5 считывает с него информацию и выполняет нужные мне команды. Такой совместный доступ с двух сторон вообще возможен?
С уважением, Владимир.
Здравствуйте, Максим!
Немного продвинулся в своих познаниях языка Python, однако не могу найти подробную информацию о совместном доступе к файлу csv со стороны Python и сторонней программы, например, того же советника написанного на MQL5. Проше говоря, программный код на языке Python периодически записывает информацию в файл csv, а советник на языке MQL5 считывает с него информацию и выполняет нужные мне команды. Такой совместный доступ с двух сторон вообще возможен?
С уважением, Владимир.
совместный нет, но обе программы могут пытаться открыть файл, если он не занят другой программой. И должны закрывать его после чтения\записи.
совместный нет, но обе программы могут пытаться открыть файл, если он не занят другой программой. И должны закрывать его после чтения\записи.
Спасибо, Максим, за пояснение, особенно про закрытие файла после чтения\записи. Вот этот момент как раз мне и нужен был для понимания.
С уважением, Владимир.
совместный нет, но обе программы могут пытаться открыть файл, если он не занят другой программой. И должны закрывать его после чтения\записи.
Здравствуйте, Максим! Этот момент учёл. Помогите разобраться с ещё одним моментом, а именно, с кодировкой текста в csv файле, созданного при помощи языка Python и последующим чтением этого текста советником, созданным на языке MQL5. Пересмотрел много информации на сайте MQL5 и других интернет-ресурсах, но толкового объяснения не нашел. В общем, программный код, созданный при помощи языка Python, открывает новый файл csv и записывает в него нужную мне информацию. Для простоты наладки записывается пока одно слово на русском языке, которое было реально спарсено с сайта. Слово в открытом файле csv читаю без проблем, однако советник не понимает кодировки этого слова. Это точно, т.к. при написании советника (кстати, у меня получилось написать первый самостоятельный код!) использовал файл csv с таким же названием и в ячеку А1 писал это же слово, но только уже с клавиатуры. Что только не пробовал менять в обоих кодах (в смысле на Python и MQL5), но пока ничего не получается.
Можете подсказать какую кодировку (encoding=?) прописать у кода Python:
и какую прописать у кода MQL5:
чтобы они "подружились"? Который день меняю эти кодировки, уже голова не соображает, что дальше делать. А остался всего лишь один единственный момент, который мешает нормальной работе.
Возможно, что ещё не все кодировки для Python нашел, но самое интересное, что когда у кода MQL5 стоит кодировка FILE_ANSI, которая приведена в строке выше и когда на клавиатуре в csv файл пишу слово, например, "покупать", то после сохранения этого файла советник всё отлично читает и чётко работает.
Иногда подумываю: а может быть тут дело, вообще, не в кодировках?! А в чём тогда?
Помогите, пожалуйста, разобраться и понять - в чем причина!
С уважением, Владимир.
P.S. Нашел наконец-то хоть одно вразумительное объяснение: "В Python 3 кодировка по умолчанию — UTF-8".
Добрый, чтобы не было проблем лучше писать в бинарный файл, а на выходе преобразвывать обратно в символы. В этой статье, по моему, так и сделано в примере с сокетами. То есть флаг FILE_BIN
Добрый, чтобы не было проблем лучше писать в бинарный файл, а на выходе преобразвывать обратно в символы. В этой статье, по моему, так и сделано в примере с сокетами. То есть флаг FILE_BIN
Здравствуйте, Максим! Благодаря Вашей подсказки нашел в интернете вот такую информацию: "Бинарные файлы в отличие от текстовых хранят информацию в виде набора байт. Для работы с ними в Python необходим встроенный модуль pickle".
Иными словами, если в программном коде Pyhon при помощи установленного модуля pickle записываем любое слово в виде набора байт, изменив 'w' на 'wb'
а затем в советнике, написанном на языке MQL5, устанавливаем вместо флага FILE_ANSI устанавливаем флаг FILE_BIN, то должно всё заработать? Наверное запись нужно делать уже не в csv файл, а в файл dat.
Спасибо Вам огромное, Максим, за подсказку, сегодня вечером обязательно попробую!
С уважением, Владимир.Здравствуйте, Максим! Благодаря Вашей подсказки нашел в интернете вот такую информацию: "Бинарные файлы в отличие от текстовых хранят информацию в виде набора байт. Для работы с ними в Python необходим встроенный модуль pickle".
Иными словами, если в программном коде Pyhon при помощи установленного модуля pickle записываем любое слово в виде набора байт, изменив 'w' на 'wb'
а затем в советнике, написанном на языке MQL5, устанавливаем вместо флага FILE_ANSI устанавливаем флаг FILE_BIN, то должно всё заработать? Наверное запись нужно делать уже не в csv файл, а в файл dat.
Спасибо Вам огромное, Максим, за подсказку, сегодня вечером обязательно попробую!
С уважением, Владимир.не обязательно, можно просто выбрать кодировку
st = b'hello world'
или
'hello world '.encode('ascii')
и записать в файл. Потом попробуйте прочитать в мт5