Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 666

 

Buon pomeriggio.

Potete per favore dirmi come modificare questa funzione per sbarazzarmi dell'errore (la dimensione delle variabili locali è troppo grande (più di 512kb)):

double DTWDistance(double &s[], double &t[])
{
   int slenght = ArraySize(s);
   int tlenght = ArraySize(t);
   double dtw[1000][1000];
   int i, j;

   dtw[0, 0] = 0.0;
   for (j = 1; j <= tlenght; j++)
   {
      dtw[0, j] = 1000000.0;
   }
  
   for (i = 1; i <= slenght; i++)
   {
      dtw[i, 0] = 1000000.0;
   }

   for (i = 1; i <= slenght; i++)
   {
      for (j = 1; j <= tlenght; j++)
      {
         dtw[i, j] = Distance(s[i], t[j]) + MathMin(dtw[i - 1, j], MathMin(dtw[i, j - 1], dtw[i - 1, j - 1]));
      }
   }

   return (dtw[slenght, tlenght]);
}
 
Craft:

Buon pomeriggio.

Potete per favore dirmi come modificare questa funzione per sbarazzarmi dell'errore (la dimensione delle variabili locali è troppo grande (più di 512kb)):

double DTWDistance(double &s[], double &t[])
{
....
   return (dtw[slenght, tlenght]);
}
Per poterlo rifare, dovete sapere cosa risolve la vostra funzione e per quali compiti viene utilizzata
 
Vitaly Muzichenko:
Per poterlo rifare, dovete sapere cosa risolve la vostra funzione e per quali compiti viene utilizzata.
Buona giornata, Vitaliy.

Ho iniziato ad ottenere il messaggio di errore di compilazione (la dimensione delle variabili locali è troppo grande (più di 512kb) di codice diverso da alcune build di MT4. Ho cercato di trovare il messaggio di errore e allegato semplice frammento di codice da WmiFor30 indicatore per esempio. Puoi usare questo esempio per mostrarmi come risolvere questo errore?

File:
WmiFor30.mq4  25 kb
 
Craft:
Buona giornata, Vitaly.

Da una certa build di MT4 ho iniziato a ricevere un errore durante la compilazione (la dimensione delle variabili locali è troppo grande (più di 512kb)) di diverso codice, ho cercato di capire come affrontarlo e per esempio ho incollato quello che pensavo fosse un semplice frammento di codice dell'indicatore WmiFor30. Puoi usare questo esempio per mostrarmi come risolvere questo errore?

Non so quale sia il principio, provatelo, vedrete la soluzione
File:
WmiFor30.mq4  25 kb
 
Vitaly Muzichenko:
Non so cosa c'è dentro, provate e vedrete.
Grazie, è interessante.
 

Domanda grafica:

C'è un disegno come questo

for(long currChart = ChartFirst();currChart != -1; currChart=ChartNext(currChart)) {
 if(currChart == график тестера) continue; // Что сюда написать?
  ObjectSetInteger(currChart,"Sync",OBJPROP_BGCOLOR,clrGreen);
}

Come faccio a scoprire che il grafico non è il grafico principale ma aperto in modalità tester e saltarlo?

 
Ciao!
Oggi è domenica:
TimeCurrent()=1478300399, che corrisponde al 2016.11.04 22:59 - venerdì
DayOfWeek()=5, che è abbastanza naturale ))

Domanda: per favore, ditemi come determinare programmaticamente in init(); che ora, quando un EA è collegato a un grafico, il giorno di riposo è domenica?
Senza riferimento a TimeLocal():
 
Leo59:
Ciao!
Oggi è domenica:
TimeCurrent()=1478300399, che corrisponde a 2016.11.04 22:59 - Venerdì
DayOfWeek()=5, che è abbastanza naturale ))

Domanda: Potresti dirmi come determinare programmaticamente in init(); che ora, al momento di attaccare l'EA al grafico, il giorno di riposo è domenica?
Senza riferimento a TimeLocal():
Aiuterà?
 
Vitaly Muzichenko:
sarà utile?
Grazie per il suggerimento. Ma, :

AccountInfoInteger(ACCOUNT_TRADE_ALLOWED) può restituire false nei seguenti casi:

  • nessuna connessione al server commerciale. Può essere controllato con TerminalInfoInteger(TERMINAL_CONNECTED));
  • il conto di trading è stato commutato in modalità di sola lettura (inviato all'archivio);
  • il trading sul conto è stato vietato sul lato del server commerciale;
  • la connessione al conto di trading è stata fatta in modalità investitore.

Qui se solo: il commercio è proibito sul lato del server commerciale;

Non è del tutto corretto ))


Anche se, in linea di principio, boolIsTradeAllowed(); può essere provato.

Molte grazie Vitaly!!!!

 
Purtroppo non funziona.

init();
if(IsTradeAllowed()) Print("Trade Allowed");
if(!IsTradeAllowed()) Print("Il commercio non è permesso");


Dice: "Trading autorizzato"

Ci deve essere un altro modo. Come si fa?