Discussão do artigo "Biblioteca para desenvolvimento fácil e rápido de programas para a MetaTrader (parte VIII): Eventos de modificação de ordens e posições" - página 2
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
Artem, mais uma vez obrigado!
O método"void CEventsCollection::CreateNewEvent(COrderControl* order)" é usado para criar um evento de negociação dependendo do tipo de alteração da ordem, ou seja, ele cria um evento associado a qualquer alteração de ordem.....
E o motivo da alteração da ordem enviado para o evento criado é o mesmo: EVENT_REASON_STOPLIMIT_TRIGGERED.
Se eu estiver certo, por favor, corrija-o. Caso contrário, explique o que eu não vi.
Muito obrigado pela biblioteca, que simplificou meu trabalho em várias ocasiões,
especialmente quando o trabalho principal não está relacionado à programação.
Artem, mais uma vez obrigado!
O método"void CEventsCollection::CreateNewEvent(COrderControl* order)" é usado para criar um evento de negociação dependendo do tipo de alteração de ordem, ou seja, ele cria um evento associado a qualquer alteração de ordem.....
E o motivo da alteração de ordem enviado para o evento criado é o mesmo: EVENT_REASON_STOPLIMIT_TRIGGERED.
Se eu estiver certo, corrija-o. Se não estiver, explique o que eu não vi.
Muito obrigado pela biblioteca, que simplificou meu trabalho várias vezes,
especialmente quando o trabalho principal não está relacionado à programação.
Sem o link para o local exato das linhas citadas, não consigo entender do que exatamente você está falando - apenas pesquisando (Shift+Ctrl+F), não consegui encontrar esse código em todos os arquivos da biblioteca...
event.SetProperty(EVENT_PROP_REASON_EVENT,EVENT_REASON_STOPLIMIT_TRIGGERED);Onde ele está localizado?
Sem fazer um link para o local exato das linhas citadas, não consigo entender do que exatamente você está falando - apenas pesquisando (Shift+Ctrl+F), não consegui encontrar esse código em todos os arquivos da biblioteca...
Onde ele está localizado?
Aqui estão as linhas da descrição na parte inicial deste artigo e o código no final do artigo: sublinhe esta linha!
No momento, na versão atual da biblioteca, o método é parecido com este:
Portanto, ou era um bug e foi corrigido há muito tempo, ou não é crítico na versão discutida da biblioteca. Não me lembro exatamente como era....
No momento, na versão atual da biblioteca, o método tem a seguinte aparência:
Portanto, ou era um bug e foi corrigido há muito tempo, ou não é crítico na versão discutida da biblioteca. Não me lembro exatamente como era...
Isso é muito importante, e para o autor é ainda mais importante. Se você não abandonou sua ideia original. Para ajudar programadores iniciantes como eu em meu trabalho. Quando você é um iniciante (um estudante) e está aprendendo uma linguagem de programação, ou programação em geral, há muitas dúvidas e perguntas ao estudar seu trabalho (biblioteca). Nesse caso, eu não tinha certeza até o último momento se era um erro ou sua intenção. Analisei seu código mais de uma vez. E, para mim, isso é muito importante: "ou eu não entendi o significado do autor, ou é apenas um erro de digitação do autor em seu grande projeto".
E como você diz que isso não é crítico? Isso é errado de sua parte, portanto, você e eu estamos apenas confundindo os leitores. Que estudam ou aprendem como eu, em sua biblioteca.
Isso é muito importante e, para o autor, é ainda mais importante. Se você ainda não desistiu de sua ideia original. Para ajudar programadores iniciantes como eu em meu trabalho. Quando você é um iniciante (um estudante) e está aprendendo uma linguagem de programação, ou programação em geral, há muitas dúvidas e perguntas ao estudar seu trabalho (biblioteca). Nesse caso, eu não tinha certeza até o último momento se era um erro ou sua intenção. Analisei seu código mais de uma vez. E, para mim, isso é muito importante: "ou eu não entendi o significado do autor, ou é apenas um erro de digitação do autor em seu grande projeto".
E como você diz que isso não é crítico? Isso é errado de sua parte, portanto, você e eu estamos apenas confundindo os leitores. Que estudam ou aprendem como eu, em sua biblioteca.
:)
Eu lhe mostrei o código com as correções destacadas em cores. Coloque-as na versão da biblioteca anexada a este artigo.
É claro que não me lembro se o erro foi meu ou se não é crítico nessa versão e, portanto, passou despercebido durante a depuração. Afinal de contas, já são quarenta e tantos artigos, e esse foi há muito tempo. O mais provável é que tenha sido um bug, que foi corrigido em artigos posteriores - muitas coisas na biblioteca já são criadas em tempo real. É claro que havia, e mais de uma, versões de teste da biblioteca. Mas, desde o início da descrição de sua criação, muita coisa foi revisada e adicionada. É por isso que esta série de artigos está posicionada como uma descrição da criação da biblioteca. Dessa forma, tento envolver o leitor no processo de sua criação. Com tentativas e erros, e com instruções sobre como corrigi-los, para tornar todo o processo visível, para revelar, por assim dizer, "todas as dores da criação" :) :)
Portanto, peço desculpas por qualquer confusão no seu entendimento do que está acontecendo.....
Basta fazer as alterações sugeridas acima. Ou deixe-as para o artigo em que elas serão corrigidas.
Quero obter o símbolo do último evento, o tíquete e o tipo (aberto, fechado, modificação). Como fazer isso corretamente?
Vejo que Artyom está tão ocupado que nem aparece no fórum. )))))))) Talvez eu possa lhe dar uma dica, pois fiz experiências com a biblioteca dele. Hoje, analisei esses experimentos e encontrei essa função. O comentário diz que a função obtém uma lista de todas as posições em aberto.
Infelizmente, não posso explicar para que ela serve, pois esqueci tudo, mas talvez você consiga descobrir....
Bem... se você não conseguir, aguarde. Artem encontrará tempo e responderá.
Quando um tique é recebido, no qual uma ordem pendente é definida e simultaneamente ativada (acionada) (testei com Buy Stop), seu mecanismo não registra todos os eventos...
O evento TRADE_EVENT_PENDING_ORDER_PLASED é recebido, mas não o TRADE_EVENT_PENDING_ORDER_ACTIVATED.
Meu código é mais ou menos assim:
Primeiro localizo o índice do evento antigo (processado) no loop e, a partir dele, percorro todos os novos até o final. Assim, em uma situação em que em um tick uma ordem de limite é definida e o striggeren recebe um evento sobre a definição... Por favor, comente.
Eu chamo ProcessTradeEvents() em OnTick() seguindo engine.OnTick(rates_data).