Erros, bugs, perguntas - página 2908

 

Se houver um fio mais apropriado para as perguntas da base de código, mover a pergunta para lá. Estes "insectos" são demasiado longos e provavelmente não lidos com muito cuidado pela MQ.

Um tal problema. Quero publicar um módulo para MQL Wizard para gerar sinais universais, ou seja, personalizáveis pelo utilizador e utilizando indicadores arbitrários, em vez do conjunto limitado que vem com a biblioteca padrão. Anexei o Expert Advisor gerado utilizando o novo módulo como código mq5. Mas, claro, não há sinais codificados no módulo, porque o objectivo do módulo é a sua personalização. Como resultado, o Expert Advisor não negoceia nem é automaticamente verificado.

Quais são as opções para resolver o problema?

 
Stanislav Korotky:

Se houver um fio mais apropriado para as perguntas da base de código, mover a pergunta para lá. Estes "insectos" são demasiado longos e provavelmente não lidos com muito cuidado pela MQ.

Um tal problema. Quero publicar um módulo para MQL Wizard para gerar sinais universais, ou seja, personalizáveis pelo utilizador e utilizando indicadores arbitrários, em vez do conjunto limitado que vem com a biblioteca padrão. Anexei o Expert Advisor gerado utilizando o novo módulo como código mq5. Mas, claro, não há sinais codificados no módulo, porque o objectivo do módulo é a sua personalização. Como resultado, o Expert Advisor não negoceia nem é automaticamente verificado.

Quais são as opções para resolver o problema?

Ignorei as ordens de abertura da EA pelo tempo, abrindo uma ordem com SL e TP no OnInit. em mt4. Passei a validação há meio ano atrás.

Também defini a condição: se estiver no testador, abrimos uma ordem, se não, falhamos. A validação é efectuada no testador.

 
Stanislav Korotky:

Se houver um fio mais apropriado para as perguntas da base de código, mover a pergunta para lá. Estes "insectos" são demasiado longos e provavelmente não lidos com muito cuidado pela MQ.

Um tal problema. Quero publicar um módulo para MQL Wizard para gerar sinais universais, ou seja, personalizáveis pelo utilizador e utilizando indicadores arbitrários, em vez do conjunto limitado que vem com a biblioteca padrão. Anexei o Expert Advisor gerado utilizando o novo módulo como código mq5. Mas, claro, não há sinais codificados no módulo, porque o objectivo do módulo é a sua personalização. Como resultado, o Expert Advisor não negoceia nem é automaticamente verificado.

Quais são as opções para resolver o problema?

Pensei que seria possível fazer um invólucro de gatilho usando a directiva #property tester_set, mas afinal não define automaticamente estes parâmetros por defeito, mas apenas adiciona um item de menu ao testador para selecção manual.

 
Stanislav Korotky:

Pensei que seria possível fazer um invólucro de lançador usando a directiva #property tester_set, mas afinal não define automaticamente estes parâmetros por defeito, mas apenas adiciona um item de menu ao testador para selecção manual.

Também experimentei a directiva #property tester_file directive "DefaultSettings.tpl". O ficheiro especificado é copiado para o agente na pasta raiz, mas não é aplicado automaticamente (pelo menos em termos de definições do Expert Advisor).

 
Aleksei Ostroborodov:
A classificação do produto, número de votos e opiniões não são exibidos no mercado, embora estejam presentes dentro da descrição https://www.mql5.com/en/market/
Obrigado pela solução para o caso específico.
Mas e quanto aos outros produtos? Tenho a mesma situação com outros quatro EAs. Devo colocar sempre um link?
 

O testador muda para o separador "definições" durante a optimização da EA com cada nova execução, sem forma de controlar o estado dos agentes, apenas foge para outro separador. Reparei nisso hoje, actualmente construído em 2697.

Distribui um número desigual de tarefas aos agentes locais e nenhuma delas é executada



Alguma ideia?

Как в MetaTrader 5 быстро разработать и отладить торговую стратегию
Как в MetaTrader 5 быстро разработать и отладить торговую стратегию
  • www.mql5.com
Скальперские автоматические системы по праву считаются вершиной алгоритмического трейдинга, но при этом они же являются и самыми сложными для написания кода. В этой статье мы покажем, как с помощью встроенных средств отладки и визуального тестирования строить стратегии, основанные на анализе поступающих тиков. Для выработки правил входа и...
 
Como é que obtenho o tick que era antes de um determinado tempo através do CopyTicks?
 
fxsaber:
Como obter o carrapato que era antes de um determinado tempo através de CopyTicks?

Bem, se as barras máximas na janela forem ilimitadas,

é provavelmente algo do género:

MqlTick Prev_Tick(ulong t) {  // t - время в миллисекундах
   MqlTick ticks[];
   int bar =iBarShift(_Symbol,PERIOD_M1,t/1000); 
   if (bar>=0 && CopyTicksRange(_Symbol,ticks,COPY_TICKS_ALL,iTime(_Symbol,PERIOD_M1,bar)*1000,t)>0) 
      return ticks[ArraySize(ticks)-1];
   else {
      MqlTick tick;  // если до заданного времени нет тиков возвращаем пустой тик.
      return tick;
   }
}

verificado, mas não com parcialidade.

Se as barras de desvio(iBarShift), então se o tempo cai num fim-de-semana, encontrar o tique mais próximo pode ser bastante dispendioso.


 
Nikolai Semko:

Se se contentar sem barras (iBarShift), pode ser bastante dispendioso encontrar o tique mais próximo se o tempo cair num fim-de-semana.

Sim, o tique à direita é elementar, o tique à esquerda é horrível.

 
fxsaber:

Sim, o tique da direita é elementar, o tique da esquerda é horrível.

Sim.
O que falta é que na função

int  CopyTicks( 
   string           symbol_name,           // имя символа 
   MqlTick&         ticks_array[],         // массив для приёма тиков 
   uint             flags=COPY_TICKS_ALL,  // флаг, определяющий тип получаемых тиков 
   ulong            from=0,                // дата, начиная с которой запрашиваются тики 
   uint             count=0                // количество тиков, которые необходимо получить 
   );

O parâmetro de contagem é int e essa função suportaria valores de contagem negativos, ou seja, ao contrário.