Discussão do artigo "Biblioteca para criação simples e rápida de programas para MetaTrader (Parte XXIV): classe básica de negociação, correção automática de parâmetros errados"
Você pode me dizer como obter informações sobre uma ordem perdida? Por exemplo, o valor da perda, o número da ordem, a quantidade da ordem, o horário de abertura, etc. Obrigado!
Aqui você pode fazer suas perguntas.
Minha pergunta é: ao projetar um programa de negociação automatizado usando seu programa, preciso fechar uma ordem perdida, como obtenho o número da ordem perdida?
No consultor.
//--- Obter uma lista de todas as posições em aberto CArrayObj* list=engine.GetListMarketPosition(); //--- Classifique a lista por lucro, levando em conta a comissão e o swap list.Sort(SORT_BY_ORDER_PROFIT_FULL); //--- Obter o índice da posição com o menor lucro (maior perda) int index=CSelect::FindOrderMin(list,ORDER_PROP_PROFIT_FULL); if(index>WRONG_VALUE) { //--- Obtenha o objeto de posição com a maior perda e feche a posição por ticket COrder* position=list.At(index); if(position!=NULL) engine.ClosePosition(position.Ticket()); }
A biblioteca deve ser conectada de acordo com o exemplo de especialista anexado a este artigo.
No consultor.
A biblioteca deve ser conectada de acordo com o exemplo de especialista anexado a este artigo.
Olá, quando eu estava projetando a negociação automática, descobri que quando OP_BUYSTOP e OP_SELLSTOP são colocados ao mesmo tempo, apenas OP_SELLSTOP é colocado, mas não OP_BUYSTOP. A instrução atende totalmente às condições para ordens pendentes, mas as ordens não podem estar pendentes.
Forneça um exemplo para reproduzir esse erro.
}}
Este é o código-fonte de minha compra e venda pendentes. Logicamente, deveria haver duas ordens pendentes ao mesmo tempo, mas, na realidade, há apenas a ordem de venda pendente.
Desculpe, problema resolvido, erro meu!!!!
Novo artigo Biblioteca para criação simples e rápida de programas para MetaTrader (Parte XXIV): classe básica de negociação, correção automática de parâmetros errados foi publicado:
No artigo, analisaremos um manipulador de parâmetros errôneos de uma ordem de negociação, finalizaremos a classe básica de negociação e também corrigiremos o funcionamento da classe de eventos de negociação - agora todos os eventos de negociação serão detectados corretamente nos programas.
Em geral, o EA deve ser capaz de agir de acordo com as circunstâncias e com a lógica predefinida pelo usuário para o tratamento de erros nas ordens de negociação. Assim, nas configurações é possível fornecer ao EA uma indicação de como agir quando encontrados erros nas ordens de negociação:
Ao processar um erro nos parâmetros de uma ordem de negociação, são prováveis vários resultados:
Hoje, nas ordens de negociação criaremos um manipulador de erros que corresponderá à funcionalidade listada, ou seja, o erro e sua causa serão verificados e será retornado o método de tratamento do erro:
Autor: Artyom Trishkin