Discussão do artigo "Crie o seu próprio robô de negociação em 6 passos!" - página 4

 

Artigo muito bom. Obrigado pela ajuda.

 

Devo ter pesquisado mal, por favor, me indique a descrição do CCustom

Não consigo entender por que, depois de criar um indicador personalizado, é necessário chamar a verificação (ou é uma personalização do indicador?):

//| Definir o número de buffers do indicador. |

//--- número de buffers
   if(!m_slow_ma.NumBuffers(1)) return(false);
//--- chegamos a esse ponto, o que significa que a função foi executada com êxito - return true
   
 
bivmail:

Devo ter pesquisado mal. Por favor, indique-me a direção da descrição do CCustom.

Você tem um erro de ortografia. E logo no artigo há uma referência a CiCustom:

É claro que você pode criar sua própria classe de indicador, que será um descendente de CIndicator e implementará todos os métodos necessários para uso com o Assistente MQL5. Mas, neste caso, queremos mostrar a você como usar qualquer indicador personalizado no módulo de sinais de negociação usando CiCustom.

 

bom artigo

 

Não consigo ganhar... Ajuda

Eu crio um sinalizador a partir do exemplo no mesmo catálogo, gero um Expert Advisor e tudo funciona.

Gero um Expert Advisor com base no meu sinalizador, ele mostra uma janela com descrição e parâmetros de entrada, clico em OK e ele falha:

2012.03.26 20:45:16 art367exp.ex5 Invalid EX5 file

Já dei nomes diferentes, criei um novo arquivo de sinal, copiei o texto para lá, ambos os arquivos compilam normalmente, mas o gráfico mostra Invalid EX5 file.

Comparo visualmente e tudo parece estar no lugar. Onde está o erro? Compilação 572


	          
Arquivos anexados:
 
bivmail:

Não consigo ganhar... Ajuda

Eu crio um sinalizador a partir do exemplo no mesmo catálogo, gero um Expert Advisor e tudo funciona.

Gero um Expert Advisor com base no meu sinalizador, ele mostra uma janela com descrição e parâmetros de entrada, clico em OK e ele falha:

2012.03.26 20:45:16 art367exp.ex5 Invalid EX5 file

Já dei nomes diferentes, criei um novo arquivo de sinal, copiei o texto para lá, ambos os arquivos compilam normalmente, mas o gráfico mostra Invalid EX5 file.

Comparo visualmente e tudo parece estar no lugar. Onde está o erro? Build 572

Vamos dar uma olhada nisso (nem mesmo OnInit() aparece).
 
uncleVic:
Vamos dar uma olhada nisso (nem mesmo OnInit() aparece).
Tente atualizar o terminal (a compilação atual foi feita há mais de 600 anos)
 
uncleVic:
Tente atualizar o terminal (a compilação atual é de mais de 600 anos atrás)

Atualizei para 619 a partir de 23 de março, a alfaforex não oferece nenhuma outra.

O resultado é o mesmo. Tentei colocar o texto do sinalizador diretamente no Expert Advisor (em vez da linha include), ele compila normalmente, mas não funciona com o mesmo erro....

Como posso descobrir o nome do arquivo no qual ele tropeça?

Tentei colocar a primeira linha printf(__FUNCTION__+": initializing expert") em onInit; não há resultado, o que, de fato, confirma o que foi dito acima....

ele escreve no registro:

2012.03.27 14:59:39 Experts expert art367biv (EURUSD,H1) loaded successfully

2012.03.27 14:59:41 Experts initializing of art367biv (EURUSD,H1) failed

2012.03.27 14:59:41 Experts experts art367biv (EURUSD,H1) removed

Aparentemente, teremos que fazer linha por linha em uma ordem semelhante à do exemplo.

Документация по MQL5: Стандартные константы, перечисления и структуры / Именованные константы / Предопределенные макроподстановки
Документация по MQL5: Стандартные константы, перечисления и структуры / Именованные константы / Предопределенные макроподстановки
  • www.mql5.com
Стандартные константы, перечисления и структуры / Именованные константы / Предопределенные макроподстановки - Документация по MQL5
 
bivmail:

Atualizei para 619 a partir de 23 de março, a alfaforex não oferece nenhuma outra opção.

O resultado é o mesmo. Tentei colocar o texto do sinalizador diretamente no Expert Advisor (em vez da linha include), ele compila bem, mas não funciona com o mesmo erro.

Como posso descobrir o nome do arquivo no qual ele tropeça?

Tentei colocar a primeira linha printf(__FUNCTION__+": initializing expert") em onInit; não há resultado, o que, de fato, confirma o que foi dito acima....

ele escreve no registro:

2012.03.27 14:59:39 Experts expert art367biv (EURUSD,H1) loaded successfully

2012.03.27 14:59:41 Experts initializing of art367biv (EURUSD,H1) failed

2012.03.27 14:59:41 Experts experts art367biv (EURUSD,H1) removed

Aparentemente, teremos que fazer linha por linha em uma ordem semelhante à do exemplo.


Obrigado. Graças à sua programação, encontramos um erro no compilador.

Você tem:

   bool GetFastMA(const int index) const{ return(m_fast_ma.GetData(0,index));}
   bool GetSlowMA(const int index) const{ return(m_slow_ma.GetData(0,index));}

Você precisa:

   double GetFastMA(const int index) const{ return(m_fast_ma.GetData(0,index));}
   double GetSlowMA(const int index) const{ return(m_slow_ma.GetData(0,index));}
 

Outro erro (seu):

//--- inicialização do objeto 
   if(!m_fast_ma m_slow_ma.Create(m_symbol.Name(),m_period,IND_CUSTOM,4,parameters))
     {
      printf(__FUNCTION__+": erro de inicialização de objeto MA lento");
      return(false);
     }
//--- número de buffers
   if(!m_slow_ma.NumBuffers(1)) return(false);

Verei como me proteger contra isso na Biblioteca.