Ajuda para o meu primeiro EA
Results 1 to 8 of 8

Thread: Ajuda para o meu primeiro EA

  1. #1
    Oi,
    Sou muito novo em codificação mql e peço sua ajuda com alguns conceitos básicos.
    Estou partindo de uma tentativa bem simples: verifico se não há ordens abertas ou pendentes, e abro algumas ordens, mercado e paro.
    Quando todas as ordens forem acionadas e fechadas, no prejuízo ou no lucro, e não houver nenhuma ordem pendente ou aberta novamente, ele colocará as mesmas ordens:
    O problema é que não consigo colocá-lo em um ciclo; no egy tester ele coloca os 10 primeiros pedidos corretamente, e quando eles são fechados, claro, nada acontece.
    Eu tentei com for or while, mas estou muito confuso com eles:


    int iniciar()
    {
    if (Total de Pedidos()==0)
    {


    OrderSend(Symbol(), OP_BUY, 0.01, NormalizeDouble(Pedir,Dígitos), 0, NormalizeDouble(Pedir-sl,Dígitos),NormalizeDouble(Pedir tp,Dígitos), 10-20-correto, 0, 0, Verde);
    OrderSend(Symbol(), OP_SELL, 0.01, NormalizeDouble(Bid,Digits), 0, NormalizeDouble(Bid sl,Digits),NormalizeDouble(Bid-tp,Digits), 10-20-corretto, 0, 0, Green);

    OrderSend(Symbol(), OP_BUYSTOP, 0.01, NormalizeDouble(Ask d,Digits), 0, NormalizeDouble(Ask d-sl,Digits),NormalizeDouble(Ask d tp,Digits), 10-20-corretto, 0 , 0, Verde);
    OrderSend(Symbol(), OP_BUYSTOP, 0.01, NormalizeDouble(Pergunte devidoD,Dígitos), 0, NormalizeDouble(Pergunte devidoD-sl,Dígitos),NormalizeDouble(Pergunte devidoD tp,Dígitos), 10-20-correto, 0 , 0, Verde);
    OrderSend(Symbol(), OP_BUYSTOP, 0.01, NormalizeDouble(Ask treD,Digits), 0, NormalizeDouble(Ask treD-sl,Digits),NormalizeDouble(Ask treD tp,Digits), 10-20-corretto, 0 , 0, Verde);
    OrderSend(Symbol(), OP_BUYSTOP, 0.01, NormalizeDouble(Ask quattroD,Digits), 0, NormalizeDouble(Ask quattroD-sl,Digits),NormalizeDouble(Ask quattroD tp,Digits), 10-20-corretto, 0 , 0, Verde);
    OrderSend(Symbol(), OP_SELLSTOP, 0.01, NormalizeDouble(Bid-d,Digits), 0, NormalizeDouble(Bid-d sl,Digits),NormalizeDouble(Bid-d-tp,Digits), 10-20-corretto, 0 , 0, Verde);
    OrderSend(Symbol(), OP_SELLSTOP, 0.01, NormalizeDouble(Bid-dueD, Dígitos), 0, NormalizeDouble(Bid-dueD sl, Dígitos), NormalizeDouble(Bid-dueD-tp, Dígitos), 10-20-corretto, 0 , 0, Verde);
    OrderSend(Symbol(), OP_SELLSTOP, 0.01, NormalizeDouble(Bid-treD,Digits), 0, NormalizeDouble(Bid-treD sl,Digits),NormalizeDouble(Bid-treD-tp,Digits), 10-20-corretto, 0 , 0, Verde);
    OrderSend(Symbol(), OP_SELLSTOP, 0.01, NormalizeDouble(Bid-quattroD,Digits), 0, NormalizeDouble(Bid-quattroD sl,Digits),NormalizeDouble(Bid-quattroD-tp,Digits), 10-20-corretto, 0 , 0, Verde);


    }
    }

  2. #2

    {quote} Não sabia que existia um construtor online, vou verificar imediatamente. Você poderia sugerir alguém?
    Confira este tópico
    https://www.tradingintuitivo.com/cry...rsi-alert.htmlEu pessoalmente usei fxdreema, é muito bom e com preços razoáveis.

  3. #3
    Claro, você colocou seu código dentro desta função. mas com seu código atual, você iniciará pedidos a cada tick. Então você colocou condições adicionais para concretizar quando quiser abrir pedidos. A melhor maneira é obter qualquer EA customizado simples (de amostras MT4, por exemplo) e analisá-lo para entender como ele funciona.

  4. #4

    seu EA abre 10 pedidos imediatamente após o carregamento. leia sobre a função start(). você deve usar o manipulador OnCLick() ou timer para executar ordens continuamente
    Olá, a documentação do onTick diz:
    OnTick The
    https://www.mql5.com/en/docs/runtime/event_fire#newtickO evento é gerado para Expert Advisors somente quando um novo tick para um símbolo é recebido, ao gráfico ao qual o Expert Advisor está anexado. É inútil definir a função OnTick() em um indior ou script customizado, pois o evento NewTick não é gerado para eles. O evento Tick é gerado apenas para Expert Advisors, mas isso não significa que os Expert Advisors exigiam a função OnTick(), pois não apenas os eventos NewTick são gerados para Expert...
    Mas não explica como usar; você acha que eu tenho que colocar minhas ordens de envio nesta função e as próprias funções repetem todo o corpo a cada tick?

  5. #5

    Por que você não usa nenhum construtor EA online?
    Não sabia que existia um construtor online, vou verificar imediatamente. Você poderia sugerir alguém?

  6. #6
    seu EA abre 10 pedidos imediatamente após o carregamento. leia sobre a função start(). você deve usar o manipulador OnCLick() ou timer para executar ordens continuamente

  7. #7
    Por que você não usa nenhum construtor EA online?

  8. #8
    As habilidades do programador MQL ainda são necessárias, o construtor online não produz o código perfeito para você. Você ainda precisa entender, alterar e modificar o código.

Permissões de Publicação

  • Não pode publicar novos tópicos
  • Não pode publicar respostas
  • Não pode publicar anexos
  • Não pode editar as suas publicações
  •  
  • Código BB está Ativo
  • Smilies estão Ativos
  • Código [IMG] está Ativo
  • Código [VIDEO] está Ativo
  • Código HTML está Desligado
O site da tradingintuitivo utiliza cookies
O site da tradingintuitivo utiliza cookies, alguns já foram definidos. Pode ler sobre a nossa utilização de cookies aqui. Por favor, clique no botão à direita para aceitar os nossos cookies. Se continuar a usar o site da tradingintuitivo, vamos supor que aceita os nossos cookies.