CustomFunctions.mq4 ???

4 respostas

Mike H.

Assinante, bbp_participante, comunidade, 76 respostas.

Perfil da visita

10 anos atrás #111633

No Assistente EA - Regras comerciais - Diálogo de condições - Funções (17) - Função personalizada - Descrição (abaixo), explica: Chame sua própria função. Você pode especificar qualquer comando MQL aqui, ou chamar uma função MQL personalizada definida no arquivo /code/CustomFunctions.mq4. Você é responsável por comparar a função com os tipos corretos. Eu tenho o que eu acho que é uma função:
lucro duplo() {
   OrderSelect (NULL,0);
   lucro duplo = OrderProfit() + OrderSwap() + OrderCommission()
   retorno (lucro);
}

Sou um novato, e por isso comprei o EA Wizard. Eu sei um pouco sobre escrever código. Sei como escrever indicadores personalizados simples. Eu nem sei se o formato acima é uma função que pode ser usada com o EA Wizard.

Como ligar a função acima em /code/CustomFunctions.mq4?
Eu simplesmente substituo o código em /code/CustomFunctions.mq4 pelo código acima, depois renomeio o arquivo .mq4, mantenho-o na pasta /code, e o EA Wizard o encontrará lá? Acho que na seção Propriedades do Diálogo Adicionar Condição, depois de Função, digito o nome do arquivo de função. Após Função, eu simplesmente nomeio o arquivo e o EA Wizard o encontrará na pasta /code? Eu simplesmente digito OrderProfit()+OrderSwap()? Como usamos a Função Personalizada?

 

0

Marca Fric

Administrador, sq-ultimate, 2 respostas.

Perfil da visita

10 anos atrás #122750

Olá,

 

você pode abrir o arquivo {EA Wizard}/code/CustomFunctions.mq4 e adicionar sua função ao final deste arquivo.

Depois disso, sua função será inserida no código de cada EA gerada pelo programa, para que você possa utilizá-la.

 

 

Mas a função como você descreveu é provavelmente incorreta, não tenho certeza se você pode chamar OrderSelect dessa forma.

E falta um; no final do cálculo do lucro.

 

A função correta seria algo como:

 

lucro duplo() {
  lucro duplo = 0;
 
  para (int cc = OrderTotal() - 1; cc >= 0; cc-) {
    se (!OrderSelect(cc, SELECT_BY_POS) ) continuar;
 
    lucro = OrderProfit() + OrderSwap() + OrderCommission();
    pausa;
  }
 
  retorno(lucro);
}

 

 

 

 

Então você pode usar esta função em chamadas de funções personalizadas. Você apenas chama a função pelo nome, não usa o nome do arquivo.

 

Você pode chamá-lo em condições usando a Função Personalizada, onde a Função seria: lucro()

ou nas ações para armazenar o lucro de alguma variável, como o Comando de Ação Personalizada: ProfitVariable = lucro();

 

Mas o EA Wizard já contém funções que retornam o lucro aberto ou fechado de uma negociação, eles retornam o valor do lucro líquido (sem swaps ou comissões).

Estas funções estão na caixa de listagem de Controle de Estratégia.

 

Marcar

Marcar
EstratégiaQuant arquiteto

0

Mike H.

Assinante, bbp_participante, comunidade, 76 respostas.

Perfil da visita

10 anos atrás #122761

Obrigado Mark,

       Vou usá-lo na próxima semana. Quero ver se meu Indicador Personalizado onde coloco a função funcionará na sexta-feira. Mais tarde...

0

Mike H.

Assinante, bbp_participante, comunidade, 76 respostas.

Perfil da visita

10 anos atrás #122771

Meu Indicador personalizado onde a função OpenProfit foi usada dentro funcionou muito bem. Ele até calculou o Swap também.

0

Marca Fric

Administrador, sq-ultimate, 2 respostas.

Perfil da visita

10 anos atrás #122795

Estou feliz por ter funcionado 🙂

Marcar
EstratégiaQuant arquiteto

0

Visualizando 4 respostas - 1 até 4 (de um total de 4)