Friday 16 November 2018

Excluir ordem pendente mt4 forex


Leia mais: Modifique e exclua ordens pendentes Você don8217t deve negociar com o preço de mercado atual. Em vez disso, você pode colocar uma ordem pendente, que será ativada uma vez que o preço atinja o nível que você especificou. A ordem será executada mesmo se você não tiver logado no terminal MetaTrader 4. Colocando uma ordem pendente Para colocar uma ordem pendente, você deve primeiro abrir uma nova ordem. Você pode fazer isso usando qualquer um dos seguintes métodos: Selecione 8216Novo Order8217 no menu 8216Tools8217 Pressione F9 Clique duas vezes no símbolo que deseja na janela 8216Market Watch8217 Selecione 8216Novo Pedido8217 no menu de contexto 8216Market Watch8217 window8217s Selecione 8216Novo Pedido8217 do 8216Trade8217 tab8217s Menu de contexto na janela 8216Terminal8217 Pressione o botão na barra de ferramentas 8216Standard8217 Uma vez que o 8216Order8217 está aberto, você deve preencher os parâmetros da ordem, conforme mostrado na tabela a seguir. O instrumento de mercado que deseja negociar. O valor que deseja negociar em lotes. O preço a ser fechado se você estiver fazendo uma perda. Observe que este é o preço da oferta para posições longas e o preço de venda para posições curtas. Um valor de 821608217 indica que não há perda de parada. O preço a ser fechado se você estiver obtendo lucro. Observe que este é o preço da oferta para posições longas e o preço de venda para posições curtas. Um valor de 821608217 indica que não tem lucro. Texto até 25 caracteres. Você pode alterar isso uma vez que seu pedido é colocado, e podemos modificá-lo ou substituí-lo. Eu desisto, não sei o que mais posso fazer. Eu tenho tantas maneiras de fazer isso, e eu não posso. assim. Espero que vocês possam me ajudar nessa ... O problema é que eu tenho e EA que abre 2 pedidos pendentes (OPBUYSTOP e OPSELLSTOP) e tudo o que quero é excluir 1 da ordem pendente uma vez que o outro esteja preenchido. Assim. Se o EA comprar o BUYSTOP, exclua o SELLSTOP, se comprar o SELLSTOP, exclua o BUYSTOP. O que há de errado com meu código string comentario, por int i para (i0ilt OrdersTotal () i) if (OrderSelect (i, SELECTBYPOS) true) OPBUY 0 Posição de compra. OPSELL 1 Posição de venda. OPBUYLIMIT 2 Compre o limite de posição pendente. OPSELLLIMIT 3 Vende o limite de posição pendente. OPBUYSTOP 4 Compre uma posição pendente pendente. OPSELLSTOP 5 Sell stop posição pendente. Para (i0ilt OrdersTotal () i) se (OrderSelect (i, SELECTBYPOS) true) comentarioOrderComment () parStringSubstr (comentario, 0,6) Imprimir (quotComent1: quot, comentario, quot Par: quot, par, quot Ordertype: quot, OrderType () (Seqüência de ordem) gt3 ampamp parSymbol ()) se (OrderType () OPBUYSTOP) ampamp parSymbol ()) OrderDelete (OrderTicket ()) Imprimir (quotDeleting BUYSTOPquot, quot Ordertype: quot, OrderType ()) return (1) Se (OrderType () OPSELLSTOP) ampamp parSymbol ()) OrderDelete (OrderTicket ()) Print (quotDeleting SELLSTOPquot, quot Ordertype: quot, OrderType ()) return (1) Para começar (e Deus só sabe quantas vezes isso teve Para ser repetido neste fórum) mude seu loop de um loop incremental para um ciclo de redução. Em outras palavras, faça com que comece no quottotal número de ordens menos onequot e pare em quotzeroquot. A razão é que toda vez que você exclui um pedido, o pool é re-indexado, então você perderá alguns pedidos no seu loop. Ok, obrigado pela ajuda, fiz o que você me disse para fazer e o problema não foi resolvido. ESTÁ BEM. Uma pergunta (o que determinará o quão simples podemos fazer isso): você só vai ter 1 do buy-over e do sellstop por cada símbolo do link - ou seja. Máximo de 2 ordens dos quais nenhum dos dois poderia ser preenchido em qualquer momento. Uma maneira realmente simples de fazê-lo seria a seguinte: - Um loop que apenas conta o número de ordens de cada tipo no pool de pedidos. - Então um bloco de comutação que decide sobre qual tipo de ordem fechar (se houver). - Finalmente um loop que fecha a ordem que corresponde ao tipo que você decidiu fechar. ESTÁ BEM. Uma pergunta (o que determinará o quão simples podemos fazer isso): você só vai ter 1 do buy-over e do sellstop por cada símbolo do link - ou seja. Máximo de 2 ordens dos quais nenhum dos dois poderia ser preenchido em qualquer momento. Uma maneira realmente simples de fazê-lo seria a seguinte: - Um loop que apenas conta o número de ordens de cada tipo no pool de pedidos. - Então um bloco de comutação que decide sobre qual tipo de ordem fechar (se houver). - Finalmente um loop que fecha a ordem que corresponde ao tipo que você decidiu fechar. A resposta para a sua pergunta é SIM, a EA abre 2 pendentes às 00:00, se uma delas for preenchida, então, imediatamente o pedido pendente oposto é excluído. Olhe para o meu código ... 1) Eu busco todas as ordens, se 1 Deles é OPBUY ou OPSELL, então significa que encontrou uma ordem preenchida, então, o próximo quotforquot é encontrar a ordem pendente e excluir o pedido. Deve ser simples, mas não sei o que está acontecendo, eu tenho algumas saídas do quotordertype () quot e não faz sentido. Eu me pergunto o que estou fazendo de errado.

No comments:

Post a Comment