Errori, bug, domande - pagina 1065

 
vlad_123:

Un'altra cosa - ho trovato un trucco 'utile'...

Dichiarare un array, per esempio, 'int arrTemp[5];'.

Sotto il debugger tutti i suoi elementi sono uguali a 0, mentre durante il test non lo sono.

Ho passato mezza giornata a cercare di capire perché la funzione connect() della libreria WinSock portata da MQL4 non funziona.

In mql5 tutte le variabili devono essere inizializzate esplicitamente, per esempio:

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

Non c'è un'inizializzazione predefinita con degli zeri. È normale, abituatevi.

 
Mi è capitato di scoprire che sia in MT4 che in MT5 sui grafici settimanali le barre sono datate a partire da una domenica. È lo stile filo-occidentale? Se è così, che senso ha se le sessioni settimanali in tutto il mondo aprono comunque il lunedì?
 
MetaDriver:

In mql5 tutte le variabili devono essere inizializzate esplicitamente.

Non c'è un'inizializzazione predefinita con degli zeri. È normale, abituatevi.

Non mi dispiace, ma funzionerebbe allo stesso modo. Nel debugger l'inizializzazione con degli zeri è automatica.

A proposito, e nessuno ha affrontato il fatto che durante l'ottimizzazione di EA, il terminale non può connettersi agli agenti remoti accessibili tramite VPN?

Sto cercando di usare gli agenti remoti sul mio computer di lavoro da casa collegato alla rete aziendale tramite una VPN standard di Windows. Gli agenti stessi sul mio computer di lavoro stanno gestendo i compiti da MQL5 Cloud Network abbastanza bene, posso connettermi al mio computer di lavoro tramite terminale RDP da casa e il terminale sul mio computer di casa può utilizzare gli agenti da MQL5 Cloud.

L'unica cosa che non posso usare è usare gli agenti sul mio PC di lavoro dal mio PC di casa. Ho anche provato a eseguire agenti sulla porta 443 sul PC dell'ufficio per bypassare (in teoria) possibili filtri/firewall, ma non ha funzionato. Il terminale registra 'connessione all'agente...'. - e questo è tutto.

Tracert da casa al lavoro passa. 'netstat -na' sul computer di casa mostra:

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

cioè SYN_SENT non va oltre.

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

L'unica cosa che non funzionerà è ottenere agenti sul computer di lavoro dal computer di casa. Ho anche provato ad eseguire l'agente sulla porta 443 sul computer di lavoro per bypassare (teoricamente) possibili filtri/firewall, ma non ha funzionato. Il terminale registra 'connessione all'agente...'. - e questo è tutto.

Tracert da casa al lavoro passa. 'netstat -na' su casa mostra:

guardare più a fondo nelle impostazioni di connessione VPN, il brandmauer del vento,
 
vlad_123:

Non mi dispiace, ma vorrei che funzionasse in modo uniforme. Altrimenti il debugger si inizializza automaticamente con degli zeri.

Non so perché, ma c'è. A volte aiuta, a volte mi impedisce di trovare le chicche.
 
micle:
Guarda più a fondo nelle impostazioni di connessione VPN, il Windows Brandmauer,

È una questione di sciamanesimo...

Il firewall sul computer di casa è disattivato del tutto.

Il terminale sul computer di lavoro può utilizzare gli agenti sul computer di casa, ma non il contrario.

Non ho trovato nulla di sbagliato nella connessione VPN.

 
vlad_123:

È una questione di sciamanesimo...

Il firewall sul computer di casa è disattivato del tutto.

Il terminale sul computer di lavoro può utilizzare gli agenti sul computer di casa, ma non il contrario.

Non ho trovato nulla di sbagliato nella connessione VPN.

Se avete win7, aggiungete una regola per le connessioni in entrata e in uscita. C'è un mago lì, add ons. Nel caso di win XP, c'è anche un'opzione per aggiungere un'eccezione per un programma o una porta. Non uso XP da molto tempo.
 
micle:
Se avete win7, aggiungete una regola per le connessioni in entrata e in uscita. Lì c'è una procedura guidata, gli add-on. Nel caso di win XP c'è anche un'opzione per aggiungere un'eccezione per un programma o una porta. Non uso XP da molto tempo.

Alleluia!

Finalmente l'ho capito...

Il fatto è che ci sono 2 istanze di MetaTrader 5 installate in diverse directory sul mio computer di lavoro (Win7) (dove gli agenti che voglio usare).

Non ricordo l'ordine di installazione/rimozione degli agenti, ma è risultato che gli agenti sono avviati dall'istanza N1, e la regola in entrata in Windows Firewall per "MetaTrader 5 Strategy Tester Agent" puntava al pezzo EXE dell'istanza N2. Ho aggiunto una regola per l'istanza N1 - tutto funziona.

Sarebbe utile quando si fa la disinstallazione/installazione di agenti in Agent Manager per aggiornare la regola in Windows Firewall.

C'è ancora una questione irrisolta. Si tratta della risoluzione host_name -> IP_address usando la funzione getaddrinfo() di WinSock. Qualcuno può costruire un codice di esempio in MQL5?

Non è davvero discutibile usare IP invece di hostname ;-). E usare il nome dell'host è un must nel mio caso.

 
vlad_123:
...

Attenzione - domanda: come in MQL5 ottenere dati a questo indirizzo?

fare una funzione in dll che vada a questo indirizzo e restituisca i dati richiesti ))
 
kazakov.v:
Voglio fare una funzione in dll che vada a questo indirizzo e restituisca i dati richiesti ))

No, non si adatta.

L'Expert Advisor è sviluppato per l'elaborazione distribuita di informazioni finanziarie e non voglio preoccuparmi delle DLL x86/x64. Cioè ho bisogno di implementarlo usando gli strumenti MQL5.

Motivazione: