Обсуждение статьи "Работа с сокетами в MQL, или Как стать провайдером сигналов" - страница 7
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Здравствуйте, Этот код работает на MQL4?
Я пытаюсь перенести его на mql4, и когда функция DLL bind() вызывается в функции MQL StartServer, она выдает мне следующее сообщение:
Еще одна суперполезная статья!
Этот вариант гораздо удобнее файлов и БД.
Спасибо камрад ;)
Привет, отлично работает на MT4.
Спасибо, друг. Невероятный код!
Здравствуйте, пытаюсь перевести это на MQL4, но столкнулся с проблемами из-за требования Trade.mqh на signalclient. Как вы справились с этой задачей?
Если можно, поделитесь, пожалуйста, версией MT4, это поможет новичкам вроде меня.
С уважением,
Запустил у себя копирование сделок, повесил по советнику (сервер/клиент) на графики каждого торгуемого символа для работы мультивалютного советника, советник нагенерил много сделок за вечер-ночь-утро, но по скопированным объемам смотрю таки какая-то сделка потерялась..
Т.е. как минимум надо добавить периодическую проверку на необходимость проведения промежуточной синхронизации объемов позиций сервера и клиентов, по аналогии с тем, как работает это в сервисе Сигналов.
Ну и после аварийной перезагрузки терминалов сервер рассылает зачем-то мессаги клиентам, что у него ноль позиций (хотя это не так), и клиенты послушно закрывают позиции у себя. Такие вот наблюдения.
А за статью, с примерами, спасибо, буду себе делать сервис сигналов на их базе.
З.Ы.:
Очевидно, что данные примеры сервера, рассылающие любому клиенту информацию, не являются оптимальными. К примеру, вы наверняка захотите ограничить доступ к своей информации. Значит, как минимум, к обязательным требованиям необходимо отнести:
как сие можно реализовать? нулевые познания пока в этом (даже запустив на локальной машине сервер/клиент, к серверу подключился какой-то левый клиент)
как сие можно реализовать? нулевые познания пока в этом (даже запустив на локальной машине сервер/клиент, к серверу подключился какой-то левый клиент)
https://www.mql5.com/en/code/15534
Спасибо, пошел разбираться.
Ну и после аварийной перезагрузки терминалов сервер рассылает зачем-то мессаги клиентам, что у него ноль позиций (хотя это не так), и клиенты послушно закрывают позиции у себя. Такие вот наблюдения.
Я так понял, что всякие недоразумения с позициями происходят из-за моментов, когда терминал запустился, но ещё не законнектился к торговому серверу, а сокеты поднимаются сразу и либо сервер отправляет информацию об отсутствие позиций клиентам и те кроют имеющиеся у себя, либо клиент получает информация от сервера о позициях и пока не видит своих - спешит их открыть, задваивая имеющиеся объемы. Я так понимаю предварительная проверка на наличие связи терминала с торговым сервером решит эти недоразумения.
В остальном стабильность работы сокетов радует.
Добавлено:
Один черт таки проскакивают от сервера сообщения с нулевыми объемами позиций, что не есть правда, не пойму как такое происходит и где эти нули берутся..
Если бы не закрытый рынок позиции схлопнулись бы, зачем-то..
З.Ы.: и такое через раз, раз перегрузишь терминалы - нормально всё, как и должно, а другой - позакрывает всё в ноль..
Алексей ( @o_o ) подскажи, если знаешь, куда копать, плиз.
Последующая перезагрузка терминалов, и никаких проблем, всё отработало как и должно..
копать в сервере. там где он определяет сколько у него открыто лотов по символу
Добавить проверки на ошибки MQL функций запроса позиций и т.д.
Там же повставлять распринтовку, чтоб видеть что именно MQL вернул нули, а не сокет тупанул
Убрал, для начала, из OnInit()-а OnTrade(), возможно на этом чехарда и закончится.
З.Ы.: Не закончилась. Но пара проверок на наличие связи терминала с торговым сервером вроде решили проблему.
Привет всем,
Я компилирую на MQL5 и постоянно получаю ошибку:
в строке:
EDIT:
Для тех, кому интересно, я решил проблему, вручную скопировав поля из одной структуры в другую.
Вот код:
Добавлю, что у меня было много ошибок компиляции на некоторых кодах ошибок WSA, которые мне пришлось импортировать вручную из winsock.h, и на функции: