Fechamendo de ordem pendente assim que o Take profit da ordem principal é atingido.
boa noite pessoal, preciso da linha do código e também saber onde colocar; ou de alguém com o conhecimento no assunto pra me ajudar;
tenho um EA que abre a cada hora 9 ordens em pares de moedas diferentes, junto a ordens pendentes dos respectivos pares que abrem exatamente no mesmo stoploss desses pares.
só que quando esse par fecha positivo essa ordem pendente respectiva não fecha, e tenho que fechar manual, fica meio inviável eu ficar acordado 24 horas por dia fechando as ordens pendentes, alguém pode me ajudar?
Olá Paulo Ricardo Gois Ubillus,
Você precisa modificar o seu robô para, identificado fechamento da posição, enviar uma solicitação de cancelamento de todas as ordens pendentes naquele ativo.
Abraços,
Malacarne
Olá Paulo Ricardo Gois Ubillus,
Você precisa modificar o seu robô para, identificado fechamento da posição, enviar uma solicitação de cancelamento de todas as ordens pendentes naquele ativo.
Abraços,
Malacarne
não tenho a menor ideia de como fazer isso... e também as vezes ele não abre a ordem principal e abre a pendente correspondente normalmente, creio que deve ser alguma variação da cotação.
Olá Paulo Ricardo Gois Ubillus,
Nesse caso, você precisa pedir para o desenvolvedor de seu Expert Advisor implementar essa solução.
Abraços,
Malacarne
segue parte do código, se alguém puder ajudar detectar como fechar a ordem pendente que corresponde a original somente quando é atingido o TP da original, ajuda muito
int start() { //---- int cnt, total, ticket; if(Bars<100) { Print("bars less than 100"); return(0); } total = OrdersTotal(); if(NewBar()) { if( Close[1]<Open[1]) { double SL = Open[0] + sl*Point, TP = Open[0] - tp*Point; double Entry1 = Open[0]+97*Point; double SLB1 = Open[0] - StopLoss2*Point, TPB1 = Open[0] + TakeProfit2*Point; RefreshRates(); ticket=OrderSend(Symbol(),OP_SELL,lotsize,Bid,10, SL, TP,"Venda",MagicNumber,0,Yellow); ticket=OrderSend(Symbol(),OP_BUYSTOP,lotsize*10, Entry1, 10,SLB1 , TPB1, "Pendente de Venda", 0, NULL, LimeGreen); } if( Close[1]==Open[1] && Close[2]<Open[2]) { double SL3 = Open[0] + sl*Point, TP3 = Open[0] - tp*Point; double Entry22 = Open[0]+97*Point; double SLB11 = Open[0] - StopLoss2*Point, TPB11 = Open[0] + TakeProfit2*Point; RefreshRates(); ticket=OrderSend(Symbol(),OP_SELL,lotsize,Bid,10, SL3, TP3,"Venda",MagicNumber,0,Yellow); ticket=OrderSend(Symbol(),OP_BUYSTOP,lotsize*10, Entry22, 10,SLB11 , TPB11, "Pendente de Venda", 0, NULL, LimeGreen); } if( Close[1]>Open[1]) { double SL2 = Open[0] - sl*Point, TP2 = Open[0] + tp*Point; double Entry2 = Open[0]-97*Point; double SLB2 = Open[0] + StopLoss2*Point, TPB2 = Open[0] - TakeProfit2*Point; RefreshRates(); ticket=OrderSend(Symbol(),OP_BUY,lotsize,Ask,10, SL2, TP2, "Compra",MagicNumber,0,Red); ticket=OrderSend(Symbol(),OP_SELLSTOP,lotsize*10, Entry2, 10,SLB2 , TPB2, "Pendente de Compra", 0, NULL, LimeGreen); } if( Close[1]==Open[1] && Close[2]>Open[2]) { double SL4 = Open[0] - sl*Point, TP4 = Open[0] + tp*Point; double Entry11 = Open[0]-97*Point; double SLB22 = Open[0] + StopLoss2*Point, TPB22 = Open[0] - TakeProfit2*Point; RefreshRates(); ticket=OrderSend(Symbol(),OP_BUY,lotsize,Ask,10, SL4, TP4,"Compra",MagicNumber,0,Yellow); ticket=OrderSend(Symbol(),OP_SELLSTOP,lotsize*10, Entry11, 10,SLB22 , TPB22, "Pendente de Compra", 0, NULL, LimeGreen); } }
Boa noite!
3 perguntas
Qual é a linguagem semelhante a linguagem dos EAs forex que se deve estudar para ser mais rapido o aprendizado?
Alguém aqui dá aulas para quem tem interesse em aprender?
Tenho um EA e gostaria de implementar algumas novas rotinas, alguém faz esse tipo de trabalho ou conhece quem faça?
Grato
Boa noite!
3 perguntas
Qual é a linguagem semelhante a linguagem dos EAs forex que se deve estudar para ser mais rapido o aprendizado?
Alguém aqui dá aulas para quem tem interesse em aprender?
Tenho um EA e gostaria de implementar algumas novas rotinas, alguém faz esse tipo de trabalho ou conhece quem faça?
Grato
Olá, Tchouber.
- C++, mas dizem não ser o melhor caminho para aprender MQL, e.g. https://www.mql5.com/en/forum/528;
- É possível começar o aprendizado com as seções de Documentos e de Artigos. Para quem nunca programou antes talvez seja bom começar lendo um livro sobre lógica de programação;
- Um programador autônomo pode ser contratado na seção Freelance.
segue parte do código, se alguém puder ajudar detectar como fechar a ordem pendente que corresponde a original somente quando é atingido o TP da original, ajuda muito
Caro Paulo,
usa a biblioteca CPositionInfo. Acredito que se você usar a função Position.Profit()=valor_do_seu_TP resolve seu problema. Dá uma olhada nas referências de código no site MQL5. Leia este artigo https://www.mql5.com/pt/articles/481, vai clarear um pouco mais para você.

- 2014.01.13
- MetaQuotes Software Corp.
- www.mql5.com

- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
boa noite pessoal, preciso da linha do código e também saber onde colocar; ou de alguém com o conhecimento no assunto pra me ajudar;
tenho um EA que abre a cada hora 9 ordens em pares de moedas diferentes, junto a ordens pendentes dos respectivos pares que abrem exatamente no mesmo stoploss desses pares.
só que quando esse par fecha positivo essa ordem pendente respectiva não fecha, e tenho que fechar manual, fica meio inviável eu ficar acordado 24 horas por dia fechando as ordens pendentes, alguém pode me ajudar?