Erros, bugs, perguntas - página 2174

 

A moeda de lucro (SYMBOL_CURRENCY_PROFIT) do símbolo personalizado é reiniciada após o reinício do Terminal. Devido a isto, o TickValue é frequentemente zero, o que gera negócios com lucro zero no Testador de Estratégia. De cada vez, temos de devolver o valor da moeda de lucro a uma moeda normal.


Reprodução

void OnStart()
{
  const string Name = "EXAMPL";
  
  if (CustomSymbolCreate(Name))
    CustomSymbolSetString(Name, SYMBOL_CURRENCY_PROFIT, "JPY");

  Print(SymbolInfoString(Name, SYMBOL_CURRENCY_PROFIT)); // "JPY" - до перезагрузки Терминала, "MPL" - после.
}
 
Nos símbolos personalizados do Testador obtém-se graal devido ao deslizamento positivo das ordens de limite. Por favor, desactivar o deslizamento de ordem limite para símbolos personalizados, ou ajustar o deslizamento (e a comissão).
 

Não há opção para desactivar o Agente Core1.

Não há forma de fazer uma única corrida

2018.03.27 09:18:19.647 Core 1  agent process started
2018.03.27 09:18:28.380 Core 1  connecting to 127.0.0.1:3000
2018.03.27 09:18:45.562 Core 1  tester agent authorization error
2018.03.27 09:18:45.564 Core 1  connection closed

Reiniciar o Terminal não ajuda.


HH É assim que a Optimização acontece a partir de apenas duas passagens(animação)

Existem erros contínuos de autorização nos Agentes até que ocorram ligações normais. E isso é apenas em dois passes!

 

Há uma grave falta de uma lista de símbolos disponíveis para escolher.

 
fxsaber:

Não há opção para desactivar o Agente Core1.


Gostaria também de desactivar o primeiro núcleo.
 

Para além disto

Fórum sobre comércio, sistemas automatizados de comércio e teste de estratégias comerciais

Insectos, insectos, perguntas

Kirill Belousov, 2018.03.26 12:30

Os nomes são diferentes e a eliminação é feita com isso em mente.


SALVE QUE:

_______________________________________

Ao apagar o primeiro indicador na lista de subjanelas, a subjanela é completamente limpa de objectos (mesmo linhas desenhadas manualmente, setas, etiquetas de texto são apagadas)

Reproduzido:

1. criar no construtor um indicador vazio para uma janela separada (ou tomar qualquer indicador existente, por exemplo MACD, etc. do conjunto de entrega padrão)

2. adicionar 5 indicadores/copiadoras a uma subjanela

3. Desenhar manualmente uma linha vertical numa subjanela (ou em qualquer objecto).

Se remover qualquer indicador não o primeiro da lista de indicadores, a linha permanecerá, mas se o primeiro estiver na lista, todos os objectos da sub-janela serão eliminados (linha vertical desenhada).

Se traçar novamente uma linha depois de apagar a primeira, esta será apagada novamente quando a primeira das restantes for apagada. Quando não é apagado o primeiro, os objectos na sub-janela não são apagados.


Onde está escrito na documentação? O que o torna tão especial - o primeiro indicador na lista de sub-janelas?

Parece que há uma reinicialização completa da subjanela.


Reproduzido por MT4/MT5.

A diferença é que em MT5 os nomes dos ficheiros indicadores devem ser diferentes. No MT4, pode colocar o mesmo ficheiro indicador numa sub-janela sem alterar o nome do ficheiro.


Problema com o primeiro indicador de subjanela

Todos os objectos são eliminados numa subjanela, se o indicador era o primeiro da lista de indicadores de uma subjanela no momento da sua eliminação

Ao apagar o primeiro indicador da lista de indicadores numa subjanela, todos os objectos da subjanela são removidos ANTES de Deinit()

void OnDeinit(const int reason)
  {
  int window=ChartWindowFind();
  if(window==2)
  {
  int count=0;
  for(int i=ObjectsTotal()-1;i>=0;i--)
    {
     if(ObjectFind(ObjectName(i))==window) count++;
    }
  Alert("Осталось объектов в подокне #2 - ",count," _StopFlag=",_StopFlag," REASON=",reason);
  }
//....
}

Vamos eliminar não o primeiro, mas o primeiro da lista

Todos os objectos são apagados

Todos os objectos são eliminados, independentemente de serem indicadores ou objectos criados manualmente numa subjanela.
 

Executar o conselheiro no modo "Todos os tiquetaques" no MQ-Demo

void OnTick()
{
  static int i = 0;
  
  if (i < 2)
  {
    MqlTick Tick;
    
    if (SymbolInfoTick(_Symbol, Tick))
      Print(Tick.time_msc);
      
    i++;
  }
  else
    ExpertRemove();
}


Resultado

Si-6.18,M1 (MetaQuotes-Demo): every tick generating
Si-6.18,M1: testing of Experts\fxsaber\LimitsSlippage.ex5 from 2018.03.25 00:00 to 2018.03.27 00:00 started
2018.03.26 10:00:00   1522058400378
2018.03.26 10:00:00   1522058400013
2018.03.26 10:00:00   ExpertRemove() function called

O tempo do primeiro tick gerado é maior do que o segundo - bug.

 
O optimizador entra em loop infinito com as seguintes (as três passagens já foram iniciadas) mensagens repetidas
2018.03.27 23:13:54.520 Core 2  TESTER_EURUSD: history for 2017 year synchronized
2018.03.27 23:13:54.578 Core 1  pass 0 tested with error "history processing error (314 TESTER_EURUSD)" in 0:00:00.125
2018.03.27 23:13:54.580 Core 2  pass 1 tested with error "history processing error (314 TESTER_EURUSD)" in 0:00:00.124
2018.03.27 23:13:54.580 Core 3  pass 2 tested with error "history processing error (314 TESTER_EURUSD)" in 0:00:00.124
2018.03.27 23:13:54.600 Core 5  common synchronization completed


Reprodução ZS


Copiar o conteúdo do arquivo anexo para a caixa de areia.

Executar guião no MQ-Demo

#include <fxsaber\ThirdPartyTicks\ThirdPartyTicks.mqh> // https://www.mql5.com/ru/code/20225

void OnStart()
{
  THIRDPARTYTICKS ThirdPartyTicks; // Подключились к локальному архиву котировок

  const string Name = ThirdPartyTicks["EURGBP"].ToCustomSymbol(true); // Создали кастомный символ на основе локального архива  
  
  if (Name != NULL)
  {
    const SYMBOL Symb("TESTER"); // Создали символ
  
    if (Symb.IsExist()) // Если символ создан
    {
      Symb.CloneProperties("Si-6.18");      
      Symb.SetProperty(SYMBOL_DIGITS, 5);
      
      Symb.CloneHistory(Name);
  
      if (Symb.On()) // Включили в Обзор рынка
        ChartOpen(Symb.Name, PERIOD_CURRENT); // Открыли график нового символа
    }   
  }
}


Será criado um símbolo TESTER personalizado. Seleccioná-lo no Testador. Definição: Optimização lenta, Todas as carraças.

Adicionar este EA

input int Range = 0;

void OnTick() {}


Separador Opções


Iniciar Optimização e ver loop infinito


Arquivos anexados:
Archive.zip  1729 kb
 

No Testador, as ordens remotas sobre "sem dinheiro" são atribuídas a tempo zero de fecho

Isto é um insecto, é claro.

 

Serei eu o único com uma imagem deste post que não abre num novo popup? Mozilla FireFox 59.0.2 (64bit)

Ou seja, a imagem que está na citação não se abre.