![MQL5 - Linguagem para estratégias de negociação inseridas no terminal do cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Se você executar esta EA em uma conta sem posições ou ordens atuais.
e depois fechar manualmente a posição aberta pela EA, então haverá três posições abertas na sebe (na posição de rede de triplo volume).
É este o comportamento correto? Provavelmente não entendo bem o Terminal. Em seguida, por favor, esclareça.
Antes de mais nada, você deve ler a ajuda.
https://www.mql5.com/ru/docs/event_handlers/ontrade
Por favor, observe:
Simplificando, o manipulador OnTrade() pode ser chamado para cada comércio individual. A conseqüência do fechamento de uma posição pode ser a chegada de várias transações separadas.
Isto é facilmente verificado - basta adicionar Print() à OnTrade() de seu exemplo.
Além disso, quero chamar sua atenção para seu teste anterior que você em vão espera conhecer o ticket de pedido através da OrderSendAsync().
Além disso, eu quero chamar sua atenção, de acordo com seu teste anterior, que você espera em vão descobrir o bilhete de pedido através de OrderSendAsync().
Parece que não está lá em nenhum lugar. Somente a HistóriaSelecciona os atrasos no OnTrade.
Não parece estar lá em nenhum lugar. Somente os históricosSelect lags em OnTrade são mostrados.
A primeira coisa a fazer é ler a ficha informativa.
https://www.mql5.com/ru/docs/event_handlers/ontrade
Favor observar:
Simplificando, o manipulador OnTrade() pode ser chamado para cada transação comercial individual. A conseqüência do fechamento de uma posição pode ser a chegada de várias transações separadas.
É facilmente verificado - basta adicionar Print() à OnTrade() de seu exemplo.
É claro, eu fiz a impressão. A pergunta não era sobre o número de chamadas OnTrade, mas sobre o número de posições em aberto.
Após a primeira OnTrade, uma ordem de mercado é colocada. No próximo OnTrade, esta ordem de mercado não deve permitir a abertura de mais ordens pela condição. Mas no próximo OnTrade, a soma de OrdensTotal() + PosiçõesTotal() também é zero. É correto?
Obrigado, eu não vi a peça de copiar-colar.
Não parece estar lá em nenhum lugar. Somente a HistóriaExibe-se o atraso da seleção na OnTrade.
O cache das seleções de pedidos ainda hoje melhorado, será beta dentro de algumas horas.
O cache das seleções de pedidos ainda hoje melhorado, será beta dentro de algumas horas.
Você quer dizer HistorySelect? Apenas a ligação automática não leva à OrderSelect.
Alguma idéia por que o mt5 não possui o separador "Comissões"? Eles só aparecem após o fechamento de um comércio.
Alguma idéia por que o mt5 não possui o separador "Comissões"? Eles só aparecem após o fechamento de um comércio.
Fez a impressão, é claro. A questão não era o número de chamadas OnTrade, mas o número de posições em aberto.
Após a primeira OnTrade, uma ordem de mercado é colocada. No próximo OnTrade, esta ordem de mercado não deve permitir a abertura de mais ordens pela condição. Mas no próximo OnTrade, a soma de OrdensTotal() + PosiçõesTotal() também é zero. É correto?
Está tudo na ajuda: https://www.mql5.com/ru/docs/trading/ordersendasync
Tudo está na ajuda: https://www.mql5.com/ru/docs/trading/ordersendasync
https://www.mql5.com/ru/docs/constants/tradingconstants/orderproperties#enum_order_state
Cada pedido tem um status que descreve seu status. Para obter informações, use a funçãoOrderGetInteger() ouHistoryOrderGetInteger() com modificador ORDER_STATE. Os valores válidos são armazenados na enumeração do ENUM_ORDER_STATE.
ENUM_ORDER_STATE
Identificador
Descrição
ORDEM_ESTADUAL_INICIADA
Ordem verificada quanto à exatidão, mas ainda não aceita pelo corretor
O estado inicial não ocorre após um OrderSendAsync bem sucedido?