Perguntas de Iniciantes MQL5 MT5 MetaTrader 5 - página 666

 

Boa tarde.

Pode dizer-me como modificar esta função para se livrar do erro (o tamanho das variáveis locais é demasiado grande (mais de 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:

Boa tarde.

Pode dizer-me como modificar esta função para se livrar do erro (o tamanho das variáveis locais é demasiado grande (mais de 512kb)):

double DTWDistance(double &s[], double &t[])
{
....
   return (dtw[slenght, tlenght]);
}
Para o refazer, precisa de saber qual a sua função resolve, e para que tarefas é utilizado
 
Vitaly Muzichenko:
Para o refazer, é necessário saber qual a sua função resolve e para que tarefas é utilizada.
Bom dia, Vitaliy.

Tentei descobrir como repará-lo, por isso anexei um simples trecho de código do indicador WmiFor30, por exemplo. Pode usar este exemplo para me mostrar como corrigir este erro?

Arquivos anexados:
WmiFor30.mq4  25 kb
 
Craft:
Bom dia, Vitaly.

Desde que uma certa construção de MT4 comecei a receber um erro durante a compilação (o tamanho das variáveis locais é demasiado grande (mais de 512kb)) de código diferente, tentei compreender como lidar com ele e, por exemplo, colei o que pensava ser um simples fragmento de código do indicador WmiFor30. Pode usar este exemplo para me mostrar como corrigir este erro?

Não sei qual é o princípio, experimente-o, verá a solução
Arquivos anexados:
WmiFor30.mq4  25 kb
 
Vitaly Muzichenko:
Não sei o que tem dentro, experimente-o, verá como funciona.
Obrigado, é interessante.
 

Pergunta gráfica:

Existe um desenho como este

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

Como descubro que o gráfico não é o gráfico principal, mas sim aberto em modo de teste e ignorá-lo?

 
Olá!
Hoje é Domingo:
TimeCurrent()=1478300399, que corresponde a 2016.11.04 22:59 - Sexta-feira
DayOfWeek()=5, que é bastante natural ))

Pergunta: Por favor, diga-me como determinar programmaticamente no init(); que agora, quando uma EA é anexada a um gráfico, o dia de folga é Domingo ?
Sem referência ao TimeLocal():
 
Leo59:
Olá!
Hoje é domingo:
TimeCurrent()=1478300399, que corresponde a 2016.11.04 22:59 - Sexta-feira
DayOfWeek()=5, o que é bastante natural ))

Pergunta: Poderia dizer-me como determinar programmaticamente no init(); que agora, no momento de anexar a EA ao gráfico, o dia de folga é domingo?
Sem referência a TimeLocal():
Vai ajudar?
 
Vitaly Muzichenko:
ajudará?
Obrigado pela dica. Mas, :

AccountInfoInteger(ACCOUNT_TRADE_ALLOWED) pode retornar falso nos seguintes casos:

  • sem ligação ao servidor comercial. Pode ser verificado com TerminalInfoInteger(TERMINAL_CONNECTED));
  • a conta de negociação foi mudada para o modo só de leitura (enviada para arquivo);
  • A negociação na conta foi banida do lado do servidor de negociação;
  • A ligação à conta de negociação foi feita em modo investidor.

Aqui se apenas : a negociação é proibida no lado do servidor de negociação;

não é bem assim ))


Embora, em princípio, o boolIsTradeAllowed(); pode ser experimentado.

Muito obrigado Vitaly!!!!

 
Infelizmente, não funciona.

init();
if(IsTradeAllowed()) Imprimir("Comércio Permitido");
if(!IsTradeAllowed()) Imprimir("O comércio NÃO é permitido");


Diz: "Comércio autorizado"

Tem de haver outra forma. Como é que o faço ?