Обсуждение статьи "Использование WinInet.dll для обмена данными между терминалами через Интернет"

 

Опубликована статья Использование WinInet.dll для обмена данными между терминалами через Интернет:

В статье рассматриваются принципы работы с Интернет посредством HTTP запросов и обмен данными между терминалами с использованием промежуточного сервера. Представлен библиотечный класс MqlNet для работы с ресурсами Интернет в среде MQL5. Мониторинг цен от разных брокеров, обмен сообщениями с другими трейдерами не выходя из терминала, поиск информации в Интернете - вот только некоторые примеры, рассматриваемые в этой статье.

Автор: Алексей Сергеев

 

Мощно! Очень полезная статья. Сложно начинающим искать по инету всю подобную информацию. А здесь всё собрано в одной статье.

Вообще, работа с инетом одна из самых интересных тем. Создание полностью автоматического сайта (но лучше нескольких сайтов или рубрик на нескольких сайтах) для данного терминала. Показ на сайте текущей рыночной ситуации. Вывод на сайт анализа рынков и вывод торговых сигналов. "Перехват" торговых сигналов другими терминалами. Рассылка сигналов и сообщений заинтересованным пользователям. Дабавление/удаление "заинтересованных" пользователей в список (базу данных) для последующего их обслуживания сервисом терминала. Сбор и анализ информации с других сайтов, создание и публикация отчётов...

Для начинающих так же важно иметь достаточно много разнообразных простых примеров с использованием данной технологии. 

 
Rinng писал(а)  :

 

"Перехват" торговых сигналов другими терминалами. 

а что подразумевается под перехватом? имеется ввиду с сайта брать сигнал и исполнять в терминале?

Рассылка сигналов и сообщений заинтересованным пользователям. Дабавление/удаление "заинтересованных" пользователей в список (базу данных) для последующего их обслуживания сервисом терминала.

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


 
sergeev:

а что подразумевается под перехватом? имеется ввиду с сайта брать сигнал и исполнять в терминале?

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

1)"Перехват" - именно получение сигналов с данного промежуточного сервера (сайта) и исполнять в терминале пользователя.

2) Доступ к  серверной информации (рыночные сигналы, личные сообщения, анализ рынка) по персональному доступу, согласно базы данных  пользователей. Управление базой данных пользователей через ведущий терминал, и/или через серверный скрипт (например - скрипт оплаты доступа к инфе через Вебмани).

 

Rinng:

2) Доступ к  серверной информации (рыночные сигналы, личные сообщения, анализ рынка) по персональному доступу, согласно базы данных  пользователей. Управление базой данных пользователей через ведущий терминал, и/или через серверный скрипт (например - скрипт оплаты доступа к инфе через Вебмани).

Если делать получение инфы про состояние "чего-то" в терминал, то это думаю интересный момент.

Как вы и пишете - сообщения от сервиса, к которому подключен пользователь... но для этого и эксперт должен быть такой, чтоб это мог прочитать и выдать. следовательно это некая индивидуальная разработка для какого то сервиса.

Если у вас есть вариант или идеи обобщенного протокола, который можно будет ставить на Любой сервер-источник и который будет Легко подключатся в терминале, то можно обсудить. тема глобализации связей в терминалах лично меня  интересует.

 

Меня интересует публикация инфы от советника на нескольких сайтах и доступ к опубликованной инфе приватно, по паролю с других терминалов. А также управление базой данных пользователей из советника.

Что касается глобализации связей между терминалами, то думаю, что без "выносного" сервера не обойтись. В общем виде это должно выглядеть так:

В задачи ведущего терминала входит подготовка всей необходимой информации и администрирование выносного сервера.

В задачи выносного сервера входит идентификация ведомых терминалов, управление базой данных пользователей (ведомых терминалов) , получение и отправка нужной информации на терминалы, оформление и публикация сайта(сайтов).

Задача ведомого терминала - получение и обработка предназначенной для него информации и посылка отклика на сервер.

В простом виде сервер может быть оформлен на PHP 5.0.

Обмен данными может происходить по протоколу FTP, путем обмена файлами. 

В общем должно быть три программы: сервер, терминал-админ-сервер, терминал-клиент. 

 

 

 

Для этой схемы я реализовал два подхода.

1. Ведущий терминал инициатор.
В этом случае он сам выкладывает требуемую информацию на сервер, а ведомые просто забирают её от туда и обрабатывают по алгоритму.  Это ничем не отличается от обычной обработки инфы за исключением - что источником её является подконтрольный нам ведущий терминал

Применение: копировщики сделок, и системы, не требующие реагирования ведущего на состояния ведомого.

2. Ведомый терминал инициатор.
В этом случае ведущий выступает только в роли удаленной машины, которая знает больше чем ведущий. То есть например содержит условия входа по сигналам в рынок или же скрытые формулы расчета, за которыми обращается ведомый.
Применение: расчет индикаторов. Получение торговых сигналов.

Функции сервера в этом случае действительно только в разграничении прав доступа. то есть проверка имеет ли право ведомый брать или оставлять запрос (кстати аналогично и для ведущего). База терминалов может вестись как в MySQL так и в обычном csv файле.

Реализовано все через запросы (POST / GET) так как FTP в данном случае накладывает сложности на серверную часть.

Документация по MQL5: Основы языка / Функции / Функции обработки событий
Документация по MQL5: Основы языка / Функции / Функции обработки событий
  • www.mql5.com
Основы языка / Функции / Функции обработки событий - Документация по MQL5
 

Не работает metaarbitrage.mq5. В логах пишет:

Как исправить? 

sergeev:

Реализовано все через запросы (POST / GET) так как FTP в данном случае накладывает сложности на серверную часть.

Согласен. Предлагаю связку php и MySql. C помощью MySql можно будет легко организовать систему рейтингов, хранить данные, делать выборки.

 
Graff:

Не работает metaarbitrage.mq5. В логах пишет:

Как исправить?

хм. только что проверил - на моём тесте ошибка вылетает на  функции HttpOpenRequestW. со строкой  Access violation read to 0x003F0070 in 'kernel32.dll'

мне так кажется, что что то поменялось в вызовах  DLL после публикации статьи

Согласен. Предлагаю связку php и MySql. C помощью MySql можно будет легко организовать систему рейтингов, хранить данные, делать выборки.

конечно. MySql всегда лучше, чем простое ведение файлов.
 
sergeev:

хм. только что проверил - на моём тесте ошибка вылетает на  функции HttpOpenRequestW. со строкой  Access violation read to 0x003F0070 in 'kernel32.dll'

мне так кажется, что что то поменялось в вызовах  DLL после публикации статьи

конечно. MySql всегда лучше, чем простое ведение файлов.

Номера ошибок разные.

Готов помочь в разработке серверной части и пхп скриптов в свободное время.

 
Graff:

Номера ошибок разные.

я отправил в сервисдеск. пусть проверят тоже, думаю что ошибка глубже, или действительно что то поменялось.

Готов помочь в разработке серверной части и пхп скриптов в свободное время.

а в чем идея , точнее, что на выходе должно быть?
Общайтесь с разработчиками через Сервисдеск!
Общайтесь с разработчиками через Сервисдеск!
  • www.mql5.com
Ваше сообщение сразу станет доступно нашим отделам тестирования, технической поддержки и разработчикам торговой платформы.