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

 
vlad_123:

И еще - нашел 'полезную' фишку...

Объявляем массив, например 'int arrTemp[5];'.

Под отладчиком - все его элементы равны 0, при тестировании - нет.

Полдня не мог разобраться, почему функция connect() из WinSock-библиотеки, портированной из MQL4, не работает.

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

int arrTemp[5] = {0};  // допускается такая сокращённая форма, вместо {0,0,0,0,0}

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

 
 Случайно обнаружил, что и в MT4, и в MT5 на недельных графиках бары датируются, начиная с воскресенья. Это, что ли, на прозападный манер? Если даже так, то какой в этом смысл, если недельные сессии по всему миру открываются по-любому в понедельник?
 
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. 

Причина обращения: