Ошибки, баги, вопросы - страница 1065

 
MetaDriver:

В mql5 нужно явно инициализировать все переменные.

Инициализация по умолчанию нулями отсутствует.  Это нормально, привыкайте.

Да я ж не против, только работало бы это однообразно. А то в отладчике инициализация нулями происходит автоматом.

 

Кстати, а никто не сталкивался с тем, что при оптимизации советника терминал не может приконнектиться к remote-агентам, доступным череp VPN?

Я пытаюсь из дома запользовать агентов на рабочем компе, подключаясь к корпоративной сетке через стандартный VPN Windows. Сами агенты на рабочем компе нормально обрабатывают задания из MQL5 Cloud Network, я из дома могу RDP-терминалом зайти на рабочий комп, терминал на домашнем компе может использовать агентов из MQL5 Cloud.

Единственное, что не получается - это запользовать с домашнего компа агентов на рабочем. Я даже пробовал запускать агента на рабочем компе на порту 443, чтобы обойти (теоретически) возможные фильтры/firewall'ы - не помогло. Терминал пишет в журнале 'connecting to agent...' - и все.

tracert с домашнего на рабочий проходит. 'netstat -na' на домашнем показывает:

TCP    10.6.XXX.XXX:1744       10.6.YYY.YYY:2000       SYN_SENT

т.е. дальше SYN_SENT не двигается

Распределенные вычисления в сети MQL5 Cloud Network
Распределенные вычисления в сети MQL5 Cloud Network
  • cloud.mql5.com
Заработать деньги, продавая мощности своего компьютера для сети распределенных вычислений MQL5 Cloud Network
 
vlad_123:

Единственное, что не получается - это запользовать с домашнего компа агентов на рабочем. Я даже пробовал запускать агента на рабочем компе на порту 443, чтобы обойти (теоретически) возможные фильтры/firewall'ы - не помогло. Терминал пишет в журнале 'connecting to agent...' - и все.

tracert с домашнего на рабочий проходит. 'netstat -na' на домашнем показывает:

смотрите глубже в сторону настроек VPN соединения, виндового Брендмоуэра,
 
vlad_123:

Да я ж не против, только работало бы это однообразно. А то в отладчике инициализация нулями происходит автоматом.

А это да, есть такая буква.  Зачем не знаю, но есть.   Иногда помогает, иногда мешает находить плюшки.
 
micle:
смотрите глубже в сторону настроек VPN соединения, виндового Брендмоуэра,

Шаманство какое-то...

Firewall на домашнем компе отрубил вообще.

С терминала на рабочем компе запользовать агентов на домашнем получается, наоборот - нет.

В VPN-соединении ничего криминального не нашел. 

 
vlad_123:

Шаманство какое-то...

Firewall на домашнем компе отрубил вообще.

С терминала на рабочем компе запользовать агентов на домашнем получается, наоборот - нет.

В VPN-соединении ничего криминального не нашел. 

в случае, если у Вас вин7, добавьте правило для входищих/исходящих соединений. Там мастер, добавления. В случае с вин-ХР тоже есть возможность добавить исключение для программы или порта. Давно уже не пользовал ХР.
 
micle:
в случае, если у Вас вин7, добавьте правило для входищих/исходящих соединений. Там мастер, добавления. В случае с вин-ХР тоже есть возможность добавить исключение для программы или порта. Давно уже не пользовал ХР.

Аллилуйя!

Наконец-то разобрался...

Дело в том, что на рабочем компе (Win7)(там, где агенты, которых собираюсь запользовать) установлено 2 инстанса MetaTrader 5 в разных директориях.

Я уже не помню последовательность установки/удаления агентов, но получилось так, что агенты стартуют из инстанса N1, а Inbound Rule в Windows Firewall для "MetaTrader 5 Strategy Tester Agent" указывало на EXE-шник из инстанса N2. Добавил rule для инстанса N1 - и все заработало.

Было бы полезно при выполнении uninstall/install агентов в Менеджере Агентов апдейтать rule в Windows Firewall.

 

Остался нерешенным вопрос. Речь идет о резолве host_name -> IP_address с использованием функции getaddrinfo() из WinSock. Кто-нибудь может соорудить sample code на MQL5?

А то работать с IP вместо host name - неспортивно ;-) Да и использование host name практически необходимо в моем случае. 

 
vlad_123:
... 

Внимание - вопрос: как в MQL5 получить данные по этому адресу? 

сделать в длл функцию, которая сходит по этому адресу и вернет нужные данные ))
 
kazakov.v:
сделать в длл функцию, которая сходит по этому адресу и вернет нужные данные ))

Неа, не подходит.

Советник разрабатывается для распределенной обработки финансовой информации, и я не хочу заморачиваться по поводу x86/x64 DLL'ек. Т.е. нужно реализовать это средствами MQL5. 

 
vlad_123:

Неа, не подходит.

Советник разрабатывается для распределенной обработки финансовой информации, и я не хочу заморачиваться по поводу x86/x64 DLL'ек. Т.е. нужно реализовать это средствами MQL5. 

https://www.mql5.com/ru/articles/364

почитайте это. Там написано в частности о том, что вам нужно. А именно:

  • Как передать сложный тип данных (например, структуру) в API-функцию;
  • Как работать с указателем, который возвращает API-функция.
Избавляемся от балласта самодельных DLL
Избавляемся от балласта самодельных DLL
  • 2012.01.31
  • o_O
  • www.mql5.com
Если MQL5-программисту недостаточно функционала языка, он вынужден обращаться к дополнительным инструментам. Для этого приходится использовать другой язык программирования и создавать промежуточную DLL. В MQL5 имеется механизм представления разных типов данных с помощью структур и передачи их в API, но к сожалению, MQL5 не отвечает нам на вопрос о том, как вытянуть данные из принятого указателя. В данной статье мы поставим точку в этом вопросе и покажем простые механизмы обмена сложными типами данных и работе с ними.
 
micle, большое спасибо!