Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 1172

 
Evgeny Dyuka:

Il forum è enorme e non c'è nessun argomento sull'uso delle reti neurali nel trading. Questo è strano. O c'è da qualche parte?

O semplicemente non c'è nessuno che se ne occupa?

https://www.mql5.com/ru/search#!keyword=%D0%BD%D0%B5%D0%B9%D1%80%D0%BE%D1%81%D0%B5%D1%82%D0%B8&module=mql5_module_articles

Поиск - MQL5.community
Поиск - MQL5.community
  • www.mql5.com
Поиск выполняется с учетом морфологии и без учета регистра. Все буквы, независимо от того, как они введены, будут рассматриваться как строчные. По умолчанию наш поиск показывает страницы...
 

Alexei, per favore aggiungi come amico, ho bisogno di contattarti in PM

 
Salve cari esperti. Funzioni come SymbolInfoDouble(symb,SYMBOL_BID) o PositionsTotal() hanno qualche effetto sul ritardo (ping al server), o questi dati sono presi dal terminale? E cosa è megliousare PositionGetDouble(POSITION_PRICE_OPEN) o i dati della struttura MqlTradeResult?
 
Come passare parametri dalla funzione OnCalculate(const datetime &time[]) a un'altra funzione per riferimento, scrivono che una variabile costante non può essere passata come riferimento?
 

Qual è il problema con l'array bidimensionale?

Il codice più semplice nello script di test:

double ARtst[5][6];
double sss=0.0;

void OnStart()
{
   for(int nn=0; nn<5; nn++) {
      for(int mm=0; mm<6; mm++) {
         ARtst[nn][mm] = 1.0 + 1.0*nn*mm;
      }
   }

   for(int nn=0; nn<5; nn++) {
      testproc(nn,sss,ARtst);
   }
}

void testproc(int ii, double& sum, double& ARR[][])
{  int kk;

   kk = ArrayRange(ARR,1);
   sum = 0.0;
   for(int nn=0; nn<kk; nn++) sum = sum + ARR[ii][nn];

   return;
}

Dà due errori contemporaneamente:

1. "[" - valore di indice non valido, che punta all'array bidimensionale ARR nella definizione della procedura testproc.

2. "ARtst" - conversione di parametro non consentita, che punta all'array ARtst nella definizione della procedura testproc.

Nessun problema con un array unidimensionale.

 
VANDER:
Come passare parametri da OnCalculate(const datetime &time[]) a un'altra funzione per riferimento, dicono che una variabile costante non può essere passata come riferimento
void другая_функция(const datetime &time[], const int rates_total) 
{
 Print(time[rates_total-1]);
}
// Вызов функции из OnCalculate

другая_функция(time, rates_total);
 
Yurixx:

Qual è il problema con l'array bidimensionale?

Semplice codice di script di test:

Dà due errori contemporaneamente:

1. "[" - valore di indice non valido, che punta all'array bidimensionale ARR nella definizione della procedura testproc.

2. "ARtst" - conversione di parametro non consentita, che punta all'array ARtst nella definizione della procedura testproc.

Non ci sono problemi con gli array monodimensionali.

Non ho capito completamente il codice, ma dovrebbe essere così:

void testproc(int ii, double& sum, double& ARR[][6])
 
Alexey Viktorov:

Non ho capito bene il codice, ma dovrebbe essere così:

Esattamente! Grazie mille.

Sto ancora prendendo confidenza con le differenze tra MT5 e MT4 prima della fine. )))

 
Yurixx:

Esattamente! Grazie mille.

Sto ancora prendendo confidenza con le differenze tra MT5 e MT4 prima della fine. )))

In mql5, lavorare con gli array non è affatto diverso da mql4.

 
Alexey Viktorov:

In mql5 lavorare con gli array non è affatto diverso da mql4.

Il mio modo di vedere è diverso.

In MT4 la dichiarazione di array multidimensionali nelle procedure non richiedeva di specificare esplicitamente la dimensionalità in nessuna delle dimensioni.