Resposta

CustomFunction para fechar ordens com o lucro atual

3 respostas

Mike H.

Assinante, bbp_participante, comunidade, 76 respostas.

Perfil da visita

10 anos atrás #111629

Acabei colocando esse código em um indicador personalizado simples usando buffers a serem reconhecidos pelo Assistente de EA. Verei na segunda-feira se o EA que está sendo criado fechará as ordens conforme necessário, utilizando o buffer do indicador personalizado. Na verdade, o principal problema que tenho é conseguir entender onde colocar e como utilizar uma FUNÇÃO no Assistente de EA. Você pode me dizer para colocar a FUNÇÃO no arquivo customfunction.mq4 ??? Não sou um especialista em escrever códigos, e foi por isso que comprei o EA Wizard. Alguém poderia me explicar onde e como conecto uma FUNÇÃO no software EA Wizard para que o EA Wizard possa utilizá-la?

 

Acho que descobri o problema. Veja o arquivo em anexo...

double profit()

{

   OrderSelect(NULL,0);

   double profit = OrderProfit() + OrderSwap();

   retorno (lucro);

}

 

Revisão feita desde a primeira postagem. (resta apenas um erro)

Preciso de uma condição de função personalizada que simplesmente obtenha o lucro atual de uma ordem aberta. Portanto, se o valor da função for maior que zero, o EA fechará as ordens abertas às sextas-feiras. Estou tentando descobrir como adicionar a seguinte função em C:\SQ_EAWizard\code\CustomFunctions.mq4. Acho que a função a seguir funcionará?
double profit();

 

REVISÃO:

double profit();
{
   OrderSelect();
   double profit = OrderProfit(NULL) + OrderSwap(NULL);
   retorno (lucro);
}

 

1 erro:

1:8;'profit' - nenhum dll definido para a função importada

 

VELHO:

{
   OrderSelect();
   lucro = OrderProfit() + OrderSwap();
   retorno (lucro);
}
Estou tentando adicionar essa função ao CustomFunctions.mq4:
double exampleFunction(double value) {
   return(2 * value);
}
Como faço para que a variável de lucro não seja global?
Quando compilo, por que recebo um erro sobre a impossibilidade de importar um arquivo .dll?

0

Marca Fric

Administrador, sq-ultimate, 2 respostas.

Perfil da visita

10 anos atrás #122753

Respondi a você em outro tópico e também publiquei um exemplo de função de lucro.

 

Esta é a função padrão usada pelo Assistente do EA para determinar o lucro aberto (sem swaps e comissões); você pode copiá-la usando um nome diferente

e alterá-lo para que inclua também swaps e comissões.

 

double sqGetOpenPLInMoney(int orderMagicNumber) {
   double pl = 0;
 
   para (int cc = OrderTotal() - 1; cc >= 0; cc-) {
      se (!OrderSelect(cc, SELECT_BY_POS) ) continuar;
      if(OrderType() != OP_BUY && OrderType() != OP_SELL) continue;
      if(OrderSymbol() != Symbol()) continue;
      if(orderMagicNumber != 0 && OrderMagicNumber() != orderMagicNumber) continue;
 
      pl += OrderProfit();
   }
 
   return(pl);
}

 

Não sei ao certo por que há uma chamada de erro de dll, parece que o MT4 não consegue encontrar a função. Você pode verificar se a função está presente em seu EA?

 

Marcar

Marcar
EstratégiaQuant arquiteto

0

Mike H.

Assinante, bbp_participante, comunidade, 76 respostas.

Perfil da visita

10 anos atrás #122762

Sim, Mark,

       Eu me lembro de ter visto essa condição. Deixei de usá-la porque não incluía a troca. Não estou preocupado com a comissão porque pago por spread...

Talvez eu possa modificar o código antes de compilar... Na verdade, estou modificando o código para Order Opened This Minute & Order Closed This Minute para 1320 segundos em vez de 60 segundos. 60 segundos não é tempo suficiente para ver se a direção do par de moedas pode mudar...

0

Mike H.

Assinante, bbp_participante, comunidade, 76 respostas.

Perfil da visita

10 anos atrás #122770

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

0

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