Обсуждение статьи "Соединение MetaTrader 5 и Python: получение и отправка данных" - страница 3

 
MrBrooklin:

Здравствуйте, Максим!

В другой ветке Вы мне помогли с доработкой кода, за что ещё раз хочу Вас поблагодарить. Прошелся поиском по сайту MQL5 и вот нашёл Вашу статью про получение и отправке данных с применением языка программирования Python. Меня как раз интересует эта тема.  Однако возник дилетантский, возможно даже, детский вопрос: сетевой сокет - это какое-то физическое устройство или все-таки программный продукт в виде совокупности нескольких файлов или в виде одиночного файла, например, того же csv?

С уважением, Владимир.

Это программный интерфейс, через который программы (процессы) могут обмениваться данными. Например, когда вы заходите на какой-то сайт, то обращаетесь к открытому сокету сервера сайта. То же самое можно делать внутри одного PC. Грубо говоря, сокет это встроенная возможность операционной системы.

 
Maxim Dmitrievsky:

Это программный интерфейс, через который программы (процессы) могут обмениваться данными. Например, когда вы заходите на какой-то сайт, то обращаетесь к открытому сокету сервера сайта. То же самое можно делать внутри одного PC. Грубо говоря, сокет это встроенная возможность операционной системы.

Спасибо, Максим!

Правильно ли понял суть Вашей статьи? Изложу своими словами, а Вы поправьте меня, если, что-то не так понял.

  1. Предположим, что на моем компьютере есть какие-то сторонние программы, которые созданы на языке программирования в корне отличающемся от языка программирования MQL, однако эти программы мне очень нужны для работы.
  2. Программный код, написанный на языке программирования Python, позволяет связать между собой взаимодействие этих сторонних программ, допустим, с тем же терминалом МТ5.
  3. Сторонние программы c другого компьютера могут дистанционно управлять работой всё того же терминала МТ5 на моем компьютере.

Всё правильно? Позже объясню, почему задаю такие вопросы.

С уважением, Владимир.

 
MrBrooklin:

Спасибо, Максим!

Правильно ли понял суть Вашей статьи? Изложу своими словами, а Вы поправьте меня, если, что-то не так понял.

  1. Предположим, что на моем компьютере есть какие-то сторонние программы, которые созданы на языке программирования в корне отличающемся от языка программирования MQL, однако эти программы мне очень нужны для работы.
  2. Программный код, написанный на языке программирования Python, позволяет связать между собой взаимодействие этих сторонних программ, допустим, с тем же терминалом МТ5.
  3. Сторонние программы могут дистанционно управлять работой всё того же терминала МТ5.

Всё правильно? Позже объясню, почему задаю такие вопросы.

С уважением, Владимир.

Все зависит от задачи, так сложно сказать. Скорее, лучше «связывать» их напрямую, если есть доступ к исходному коду. Иначе, если есть программа но нет исходного кода и сильно надо, то через питоновские скрипты можно что-то сделать, да, где это возможно.
 
Maxim Dmitrievsky:
Все зависит от задачи, так сложно сказать. Скорее, лучше «связывать» их напрямую, если есть доступ к исходному коду. Иначе, если есть программа но нет исходного кода и сильно надо, то через питоновские скрипты можно что-то сделать, да, где это возможно.

Вот теперь переходим к самой задаче. Это не техзадание, а очень сжатое изложение её сути.

Нужно периодически (например, один раз в час, один раз день, один раз в неделю) брать различные данные с нескольких (не более 10) сайтов и производить сложные промежуточные вычисления в сторонней программе (не MQL). Результатом этих вычислений будут три сигнала для управления терминалом МТ5: сигнал на открытие ордера buy, сигнал на открытие ордера sell либо сигнал на закрытие ордера.

Такое возможно осуществить? Мне нужно это знать для того, чтобы смог грамотно составить техническое задание для фриланса.

С уважением, Владимир.

Документация по MQL5: Константы, перечисления и структуры / Константы индикаторов / Свойства пользовательских индикаторов
Документация по MQL5: Константы, перечисления и структуры / Константы индикаторов / Свойства пользовательских индикаторов
  • www.mql5.com
Количество индикаторных буферов, которые можно использовать в пользовательском индикаторе, не ограничено. Но каждому массиву, который назначается в качестве индикаторного буфера с помощью функции SetIndexBuffer(), должен быть указан тип данных, которые он будет хранить. Это может быть одно из значений перечисления ENUM_INDEXBUFFER_TYPE...
 
MrBrooklin:

Вот теперь переходим к самой задаче. Это не техзадание, а очень сжатое изложение её сути.

Нужно периодически (например, один раз в час, один раз день, один раз в неделю) брать различные данные с нескольких (не более 10) сайтов и производить сложные промежуточные вычисления. Результатом этих вычислений будут три сигнала управления терминалом МТ5: сигнал на открытие ордера buy, сигнал на открытие ордера sell либо сигнал на закрытие ордера.

Такое возможно осуществить? Мне нужно это знать для того, чтобы смог грамотно составить техническое задание для фриланса.

С уважением, Владимир.

Это все можно сделать через питон программу и оттуда же управлять торговлей в мт5, да. По сути, парсить сайты можно и из mql5 советника  и торговать сразу, без питона. Но на питоне парсить проще, т.к это высокоуровневый язык.
 
Maxim Dmitrievsky:
Это все можно сделать через питон программу и оттуда же управлять торговлей в мт5, да. 

Отлично!!! Это то, что мне нужно.

Ещё раз Вам огромное спасибо!

С уважением, Владимир.

 
MrBrooklin:

Отлично!!! Это то, что мне нужно.

Ещё раз Вам огромное спасибо!

С уважением, Владимир.

Пожалуйста :)
 
Maxim Dmitrievsky:
Это все можно сделать через питон программу и оттуда же управлять торговлей в мт5, да. По сути, парсить сайты можно и из mql5 советника  и торговать сразу, без питона. Но на питоне парсить проще, т.к это высокоуровневый язык.

Одно уточнение: программный код на языке Python сначала будет парсить сайты, далее эти данные будут передаваться уже готовой, имеющейся у меня в наличии, программе, производящей сложные промежуточные вычисления с выдачей 3-х типов сигналов, и только потом эти сигналы должны попасть в терминал МТ5 для совершения сделок.

С уважением, Владимир.

 
MrBrooklin:

Одно уточнение: программный код на языке Python сначала будет парсить сайты, далее эти данные будут передаваться уже готовой, имеющейся у меня в наличии, программе, производящей сложные промежуточные вычисления с выдачей 3-х типов сигналов, и только потом эти сигналы должны попасть в терминал МТ5 для совершения сделок.

С уважением, Владимир.

ну тогда надо еще наладить взаимодействие с 3-й программой через файлы или те же сокеты, смотря какой функционал у нее есть. Или перенести все расчеты в питон.

можно прямо из mql5 советника обращаться к этой программе. Нужно просто знать как с ней можно обменяться данными.

 
Maxim Dmitrievsky:

ну тогда надо еще наладить взаимодействие с 3-й программой через файлы или те же сокеты, смотря какой функционал у нее есть. Или перенести все расчеты в питон.

можно прямо из mql5 советника обращаться к этой программе. Нужно просто знать как с ней можно обменяться данными.

Не совсем понял про перенос расчетов... Иными словами - создать аналог алгоритма вычисления уже имеющейся программы только теперь на языке программирования Python?

С уважением, Владимир.