Erros, bugs, perguntas - página 2826

 

Olá. Espero ter escolhido o ramo certo.

O testador visual quase nunca cria a janela do indicador utilizado pela EA, não são gerados erros e tudo o resto funciona.

O indicador aparece e é apresentado apenas se eu abrir Sleep(1) no inicializador da EA.

Qual poderá ser o problema?

Não posso usar Sleep() porqueChartWindowFind(0, short_name) do indicador personalizado deixa de funcionar no lado esquerdo do gráfico.

Aqui está um exemplo simples com o qual tenho um problema:

int MACDHandle=INVALID_HANDLE;
double macd_value[];

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   MACDHandle=iMACD(_Symbol,0,12,26,9,PRICE_CLOSE);
//Sleep(1);
   ArraySetAsSeries(macd_value, true);
//--- Нужно проверить, не были ли возвращены значения Invalid Handle
   if(MACDHandle<0)
     {
      Alert("Ошибка при создании индикатора MACD - номер ошибки: ",GetLastError(),"!!");
      return(-1);
     }
   else
     {
      Print("MACD инициализирован, handle: ", MACDHandle);
      return(INIT_SUCCEEDED);
     }
  }

//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//--- Освобождаем хэндлы индикаторов
   IndicatorRelease(MACDHandle);
  }

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnTick()
  {
   CopyBuffer(MACDHandle, 0, 0, 1, macd_value);
   Print("macd_value: ", macd_value[0]);
  }
//+------------------------------------------------------------------+
mt5 construir 2572
 
fxsaber:

É essa a solução que estava a considerar, obrigado. Esta parece ser a única maneira.

Não sei se alguma coisa mudou, mas na altura da redacção deste artigo, este código funciona universalmente:

FileOpen(filename, FILE_READ | FILE_TXT | FILE_ANSI, 0, CP_UTF8);
Синтаксический анализ MQL средствами MQL
Синтаксический анализ MQL средствами MQL
  • www.mql5.com
Суть программирования заключается в формализации и автоматизации неких процессов с помощью языков общего или специального назначения. Торговая платформа MetaTrader позволяет применять программирование для решения самых разных задач трейдера, благодаря встроенному языку MQL. И обычно процесс программирования строится на анализе и обработке...
 
Pode sugerir uma forma de descobrir o número de núcleo no EA que está a ser testado? Não existe tal coisa no MQL API, mas penso que alguém fez uma análise do caminho do agente - não é claro como as pastas unificadas estão lá no Tester.
 
Stanislav Korotky:
Pode sugerir uma forma de descobrir o número de núcleo num EA em teste. Não existe tal coisa no MQL API, mas penso que alguém fez uma análise do caminho do agente - não é claro como as pastas unificadas estão lá no Tester.

https://www.mql5.com/ru/forum/1111/page2660#comment_15183572

 

Obrigado, vou tentar. Contudo, o número do porto também pode ser de cinco dígitos (e tecnicamente menos de 4 dígitos, embora sejam considerados como reservados para serviços padrão), pelo que corrigirei o método de extracção por mim próprio.

 

Bom dia!

Suponha que eu execute uma EA em modo de depuração enquanto a desenvolvo. O valor por defeito de uma das variáveis de entrada acabou de ser alterado no código. O seu valor de tempo de execução, no entanto, é inserido a partir do conjunto de entradas do testador de estratégia anterior.

A questão é "porque raio está isto a acontecer? O inferno sem sincronização, mas porque é que o modo de depuração dá prioridade ao conjunto sobre o código?

Как в MetaTrader 5 быстро разработать и отладить торговую стратегию
Как в MetaTrader 5 быстро разработать и отладить торговую стратегию
  • www.mql5.com
Скальперские автоматические системы по праву считаются вершиной алгоритмического трейдинга, но при этом они же являются и самыми сложными для написания кода. В этой статье мы покажем, как с помощью встроенных средств отладки и визуального тестирования строить стратегии, основанные на анализе поступающих тиков. Для выработки правил входа и...
 
Nikolai Karetnikov:

Bom dia!

Suponha que eu execute uma EA em modo de depuração enquanto a desenvolvo. O valor por defeito de uma das variáveis de entrada acabou de ser alterado no código. O seu valor de tempo de execução, no entanto, é inserido a partir do conjunto de entradas do testador de estratégia anterior.

A questão é "porque raio está isto a acontecer? Para o inferno com a falta de sincronização, mas porque é que o modo de depuração dá prioridade ao conjunto sobre o código?

Em suma, basta considerar esta característica.

 

Partilhar informação, qual é o tamanho dos ficheiros EX5 de EAs de combate ao comércio?

Tenho(uma (não assinada) lógica comercial) sem qualquer recurso explícito ou implícito(arrays estáticos) e sem GUI ~1250Kb (EX4 - 450Kb). Ao mesmo tempo, a versão Tester (sem embalagem do mundo real) é de ~250Kb.

 
fxsaber:

Partilhar informação, qual é o tamanho do ficheiro EX5 dos EAs de combate ao comércio?

150kb sem indicadores