Perguntas sobre MQL5 Wizard e biblioteca padrão de classes comerciais - página 7

 

Sim, então os conselheiros recentemente criados pelo mestre não funcionam de todo!?

2011.08.08 19:08:30 Ligação Core 1 fechada
2011.08.08 19:08:30 Ficheiro de registo Core 1 "D:\ProgrammetaTrader 5\Tester\Agent-127.0.0.1-3000\logs\20110808.log" escrito
2011.08.08 19:08:30 O testador do Core 1 parou porque o erro crítico OnInit
2011.08.08 19:08:30 Core 1 2011.0101 00:00:00 OnInit: indicadores de inicialização de erro
2011.08.08 19:08:30 Core 1 2011.01 00:00:00 CExpert::InitIndicators: error initializing indicators of money object
2011.08.08 08 08 19:08:30 Core 1 2011.01.01 00:00:00 CExpertBase::InitIndicators: os parâmetros de definição não são verificados
20112011.08.08 19:08:30 Core 1 2011.01.01 00:00:00 CExpertBase::SetOtherSeries: mudança de séries de tempos é proibida
2011.08.08 19:08:30 Core 1 2011.01.01 00:00:00 CExpertBase::SetPriceSeries: mudança de séries de tempos é proibida
2011.08.08 19:08:302011.08.08 19:08:30 Core 1 EURUSD,H4: a história começa a partir de 2010.01.04 00:00
2011.08.08 19:08:30 Core 1 EURUSD,H4: cache de história reservada para cerca de 2472 barras
2011.08.08 19:08:30 Core 1 EURUSD: contém 367194 M1 registos de dados iniciais de 2010.01.04 00:00 a 2010.12.31 22:59
2011.08.08 19:08:30 Core 1 EURUSD: contém 367194 M1 registos de dados iniciais de 2010.01.04 00:00:0019:08:30 Core 1 EURUSD,Daily: a história começa a partir de 2010.01.04 00:00
2011.08.08 19:08:30 Core 1 EURUSD,Daily: cache de história reservada para cerca de 412 barras
2011.08.08 19:08:30 Core 1 EURUSD: contém 367194 M1 registos de dados iniciais de 2010.01.04 00:00 a 2010.12.31 22:59
2011.08.08 19:08:30 Core 1 Trailing_FixedPips_ProfitLevel=400
2011.08.08 19:08:30 Core 1 Trailing_FixedPips_StopLevel=200
2011.2011.08.08 19:08:30 Core 1 Sinal_2_AC_Peso=0.30
2011.08.08 19:08:30 Core 1 Sinal_1_AC_Peso=0.30
2011.08.082011.08.08 19:08:30 Core 1 Signal_0_AC_Weight=0.30
2011.08.08 19:08:30 Core 1 Signal_TakeLevel=400
2011.08.08 19:08:30 Core 1 Signal_StopLevel=200
2011.2011.08.08 19:08:30 Core 1 Signal_ThresholdClose=80
2011.08.08 19:08:29 Core 1 Signal_ThresholdOpen=20
2011.2011.08.08 19:08:29 Core 1 Expert_Title=Master03
2011.08.08 19:08:29 Core 1 EURUSD,H1: Teste de Peritos\Master03.ex5 de 2011.01.01.01 00:00 a 2011.08.01 00:00 com entradas:
2011.08.08 19:08:29 Core 1 EURUSD,H1 (MetaQuotes-Demo): 1 min OHLC ticks gerando. OnTick executado no bar só começa
2011.08.08 19:08:29 Core 1 EURUSD,H1: a história começa em 2010.01.04 00:00
2011.08.08 19:08:29 Core 1 EURUSD,H1: cache de história reservada para estimados 9891 bares
2011.08.19:08:29 19:08:29 Core 1 EURUSD: contém 367194 M1 registos de dados iniciais de 2010.01.04 00:00 a 2010.12.31 22:59
2011.08.08 19:08:29 Core 1 EURUSD: histórico sincronizado de 1993.05.13 a 2011.08.05
2011.08.08 19:08:29 Core 1 EURUSD: carregar 27 bytes de dados históricos para sincronizar
2011.2011.08.08 19:08:29 Core 1 EURUSD: símbolo sincronizado, 3304 bytes de informação de símbolo recebidos
2011.08.08 19:08:29 Core 1 Intel Core i5 M 430 @ 2.27GHz, 2996 MB
2011.08.08 19:08:29 Core 1 158 Kb de dados totais de inicialização recebidos
2011.08.08 19:08:29 Core 1 158 Kb de dados totais de inicialização recebidos2011.08.08 19:08:29 Core 1 inicializado com sucesso
2011.08.08 19:08:29 Core 1 depósito inicial 10000.00 USD, alavancagem 1:500
2011.08.08 19:08:29 Core 1 ficheiro de peritos adicionado: Experts\Master03.ex5. 156794 bytes carregados
2011.08.08 19:08:29 Core 1 5304 bytes de parâmetros de entrada carregados
2011.08.08 19:08:29 A qualidade do histórico analisado é 100%
2011.08.08 19:08:28 Sincronização comum do Core 1 concluída
2011.08.08.19:08:28 19:08:28 Testador EURUSD,H1 (MetaQuotes-Demo): testes de peritos\Master03.ex5 de 2011.01.01 00:00 a 2011.08.01 00:00 a ser iniciado
2011.08.2011.08.08 19:08:28 Core 1 autorizado (agente build 485)
2011.08.08 19:08:28 Core 1 ligado
2011.08.08 19:08:28 Core 1 ligado a 127.0.0.1:3000

Arquivos anexados:
Master03.mq5  8 kb
71pon5.PNG  22 kb
 
Erm955:

Aí é que está, recompilei-o!

A culpa é minha.
Arquivos anexados:
MoneyNone.mqh  4 kb
 
uncleVic:
Erro meu.

Óptimo!

 

Ao tio Vic.

Gostaria de revisitar a possibilidade de permitir a geração automática de múltiplas moedas no Wizard. A principal razão para não o fazer foi a complicação do menu do Wizard. Mas a complicação consiste em acrescentar apenas um menu - a lista de pares de moedas para operação concorrente, se concordarmos, claro, que todos os dados de entrada para estes pares serão comuns. Isto é bastante aceitável de acordo com a minha experiência com ferramentas multi-moeda. O mecanismo de implementação também não será difícil para si. No fundo, resume-se à reprodução mecânica de um trecho de código com pequenas inclusões para cada símbolo.

Ou seja, o menu e a implementação do assistente não são muito mais complicados, mas obtemos um assistente mais versátil que lhe permite implementar múltiplas estratégias quase imediatamente e em modo de múltiplas moedas.

Estou a anexar a minha variante da solução. Pode ser útil.

Arquivos anexados:
 
Erm955:

Ao tio Vic.

Gostaria de revisitar a possibilidade de permitir a geração automática de múltiplas moedas no Wizard. A principal razão para não o fazer foi a complicação do menu do Wizard. Mas a complicação consiste em acrescentar apenas um menu - a lista de pares de moedas para operação concorrente, se concordarmos, claro, que todos os dados de entrada para estes pares serão comuns. Isto é bastante aceitável de acordo com a minha experiência com ferramentas multi-moeda. O mecanismo de implementação também não será difícil para si. No fundo, resume-se à reprodução mecânica de um trecho de código com pequenas inclusões para cada símbolo.

Ou seja, o menu e a implementação do assistente não são muito mais complicados, mas obtemos um assistente mais versátil que lhe permite implementar múltiplas estratégias quase imediatamente e em modo de múltiplas moedas.

Estou a anexar a minha variante da solução. Pode ser útil.

A direcção disse que não.
 
uncleVic:
Consulte o fórum inglês aqui.

Olá moderador!

Obrigado pela dica. A tentar descobrir. Há aqui uma pergunta sobre o código do programa:

Tal como o entendo, as definições (ou seja, parâmetros de entrada) do indicador SAR personalizado são descritas aqui. Os três primeiros (de 0 a 2) são claros. De onde vem o quarto (preço aplicado)? Não está presente no próprio indicador SAR personalizado. Por favor, explique este bloco em detalhes! Talvez esta seja a parte mais difícil de todo este redesenho (personalização) do indicador personalizado. Obrigado de antemão!

//--- prepare indicator parameters
   MqlParam CustomSAR_prop[];
   ArrayResize(CustomSAR_prop,4);
//--- indicator file
   CustomSAR_prop[0].type=TYPE_STRING;
   CustomSAR_prop[0].string_value="Examples\\ParabolicSAR";
//--- SAR step
   CustomSAR_prop[1].type=TYPE_DOUBLE;
   CustomSAR_prop[1].double_value=m_step;
//--- SAR maximum
   CustomSAR_prop[2].type=TYPE_DOUBLE;
   CustomSAR_prop[2].double_value=m_maximum;
//--- applied price
   CustomSAR_prop[3].type=TYPE_INT;
   CustomSAR_prop[3].integer_value=PRICE_CLOSE;
//--- initialize object
   if(!m_sar.Create(m_symbol.Name(),m_period,IND_CUSTOM,4,CustomSAR_prop))
     {
      printf(__FUNCTION__+": error initializing object");
      return(false);
     }
   m_sar.NumBuffers(1);
//--- ok
   return(true);
  }
 
ForexMoneyMaker:

Olá moderador!

Obrigado pela dica. A tentar descobrir. Há aqui uma questão sobre o código do programa:

Tal como o entendo, as definições (ou seja, parâmetros de entrada) do indicador SAR personalizado são descritas aqui. Os três primeiros (de 0 a 2) são claros. De onde vem o quarto (preço aplicado)? Não está presente no próprio indicador SAR personalizado. Por favor, explique este bloco em detalhes! Talvez esta seja a parte mais difícil de todo este redesenho (personalização) do indicador personalizado. Obrigado de antemão!

Sim, provavelmente não precisa dele. Não fui eu que o escrevi.
 

Depois, se me é permitido fazer mais uma pergunta sobre este fragmento de código:

m_sar.NumBuffers(1); - para que serve este operador (para onde vai) e porque é que existe um 1 entre parênteses?

 
ForexMoneyMaker:

Depois, se me é permitido fazer mais uma pergunta sobre este fragmento de código:

m_sar.NumBuffers(1); - para que serve este operador (para onde vai) e porque é que existe um 1 entre parênteses?

Define o número de buffers do indicador do utilizador (porque o seu número não é conhecido de antemão).
Переход на новые рельсы: пользовательские индикаторы в MQL5
Переход на новые рельсы: пользовательские индикаторы в MQL5
  • 2009.11.23
  • Андрей
  • www.mql5.com
Я не буду перечислять все новые возможности и особенности нового терминала и языка. Их действительно много, и некоторые новинки вполне достойны освещения в отдельной статье. Вы не увидите здесь кода, написанного по принципам объектно-ориентированного программирования — это слишком серьезная тема для того, чтобы просто быть упомянутой в контексте как дополнительная вкусность для кодописателей. В этой статье остановимся подробней на индикаторах, их строении, отображении, видах, а также особенностях их написания по сравнению с MQL4.
 
uncleVic:
Define o número de amortecedores do indicador personalizado (porque o número de amortecedores não é conhecido de antemão).

Obrigado!

Consegui implementar completamente esta ideia! E com base num indicador personalizado de complexidade suficiente. Vou pensar que talvez devesse tentar escrever um artigo correspondente sobre este assunto. Não há nada de realmente complicado nisso. :)

Razão: