Discussão do artigo "Biblioteca para criação simples e rápida de programas para MetaTrader (Parte XXVIII): ordens pendentes de negociação - fechamento, exclusão, modificações"
Olá, Artyom, há algum motivo específico para você alocar memória dinâmica em um ponteiro para executar o trabalho abaixo?
int CTrading::GetIndexPendingRequestByOrder(const ulong ticket) { CPendingReq *req=new CPendingReq(); if(req==NULL) return WRONG_VALUE; req.SetOrder(ticket); this.m_list_request.Sort(SORT_BY_PEND_REQ_TICKET); int index=this.m_list_request.Search(req); delete req; return index; }
Na minha humilde opinião, acho que o uso de uma variável local simples tornaria o método mais simples e eliminaria o código supérfluo de manipulação de ponteiro acima.
int CTrading::GetIndexPendingRequestByOrder(const ulong ticket) { CPendingReq req; req.SetOrder(ticket); this.m_list_request.Sort(SORT_BY_PEND_REQ_TICKET); int index=this.m_list_request.Search(req); return index; }
Estou curioso para entender seu raciocínio para escolher a primeira abordagem... talvez eu esteja perdendo alguma prática recomendada?
/dima
Olá, Artyom, há algum motivo específico para você alocar memória dinâmica em um ponteiro para realizar o trabalho abaixo?
Na minha humilde opinião, acho que o uso de uma variável local simples tornaria o método mais simples e eliminaria o código supérfluo de manipulação de ponteiro acima.
Estou curioso para entender seu raciocínio para escolher a primeira abordagem... talvez eu esteja perdendo alguma prática recomendada?
/dima
O método Search() funciona com um ponteiro para um objeto:
int Search( CObject* element // amostra ) const
Ah, certo... mas você não poderia invocar o método e passar o ponteiro da variável local em vez disso?
int index=this.m_list_request.Search(GetPointer(req));
Ah, certo... mas você não poderia invocar o método e, em vez disso, passar o ponteiro da variável local?
Você pode fazer isso de várias maneiras... Eu já fiz isso... :)
Você pode fazer isso de várias maneiras... Eu já fiz isso ... :)
Legal, obrigado - foi apenas para confirmar meu entendimento, pois ainda estou lendo os artigos e estudando o código ;-)
CEventsCollection*GetObject(void) { return &this;
- 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
Novo artigo Biblioteca para criação simples e rápida de programas para MetaTrader (Parte XXVIII): ordens pendentes de negociação - fechamento, exclusão, modificações foi publicado:
Este é o terceiro artigo sobre o conceito de ordens pendentes. Nele, concluiremos o teste de ordens pendentes de negociação, criaremos métodos para fechar posições, excluir ordens pendentes e modificar os parâmetros de posições e de ordens pendentes.
Este é o terceiro artigo por trás do conceito de ordens pendentes. Nele, concluiremos o teste de ordens pendentes de negociação, após criar métodos para fechar posições, excluir ordens pendentes e alterar os stop de posições e os parâmetros modificáveis de ordens pendentes.
Também complementaremos um pouco a classe da ordem abstrata, uma vez que, por algum motivo que desconheço, esqueci-me do retorno de valores das duas propriedades das ordens e posições, nomeadamente esqueci o tipo de preenchimento de ordem e do seu tipo de expiração. Eis que os adicionaremos. Como o código de todos os métodos do objeto básico de negociação multiplataforma foi ligeiramente otimizado, não vamos descrevê-lo em detalhes, em vez disso, tomaremos apenas um exemplo de algum dos métodos alterados.Autor: Artyom Trishkin