
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
Novo artigo Desenvolvendo um sistema de Replay (Parte 32): Sistema de Ordens (I) foi publicado:
De todas as coisas desenvolvidas até aqui. Esta com toda a certeza, vocês também irão notar, e com o tempo irão concordar, que é a mais desafiadora de todas. O que temos de fazer é algo simples. Fazer com que o nosso sistema, simule o que um servidor de negociação efetua na prática. Isto de ter que implementar uma forma de simular, exatamente o que seria feito, pelo servidor de negociação, parece simples. Pelo menos nas palavras. Mas precisamos fazer isto de uma maneira, que para o usuário do sistema de replay / simulação, tudo venha a acontecer, de forma o mais invisível, ou transparente, possível.
Dizer que o Expert Advisor deve ser o mesmo, implica não se fazer uma compilação, a fim de usa-lo no simulador, e depois compilar ele novamente, para usar no mercado real. Fazer isto, seria muito mais fácil e simples, em termos de programação. Mas iria gerar problemas, nas questões envolvendo o fato de que o usuário, precisaria ficar recompilando o Expert Advisor a todo o momento. Não queremos de modo algum, que isto aconteça, ou que venha a ser necessário. O que desejamos e iremos fazer, é de fato criar um Expert Advisor, e compilar ele apenas e somente uma vez. Feito isto poderemos usa-lo tanto no mercado real, quanto no simulador já construído.
A parte responsável por usar o Expert Advisor no mercado real, mesmo em uma conta demo, é a parte mais fácil de implementar. Então iremos começar por ela. Um detalhe, iremos começar com o modelo mais básico. Aos pouco iremos tornando o Expert Advisor, cada vez mais e mais complexo, a ponto de que ele consiga exercer, o que de fato queremos fazer, que será usar ele no junto com o replay / simulador, e em uma conta demo ou conta real. A primeira coisa que iremos fazer, é pegar emprestado grande parte do código que já expliquei em outros artigos que foram postados aqui na comunidade. Tais artigos são de minha autoria, então não vejo problemas em usar tais informações. Mas iremos fazer algumas mudanças, a fim de tornar o sistema o mais flexível, modular, robusto e estável quanto for possível de ser feito. Caso contrário poderemos entra em um labirinto, e acabar em algum momento em um beco sem saída. Impossibilitando de todas a formas, que o sistema possa avançar em seu desenvolvimento.
Para iniciar, e isto será apenas o começo, do começo, já que a tarefa é muito complicada. Será preciso primeiramente, você saber como o sistema de herança das classes, está atualmente sendo feito no Expert Advisor, que estamos montando já a alguns artigos, nesta mesma sequência. Este esquema pode ser visto na figura 01:
Figura 01 : Esquema atual de herança das classes do EA
Mas apesar deste esquema funcionar muito bem, para o que foi feito até o momento. Ele esta longe de ser adequado ao que realmente precisamos. Não pelo fato de que é complicado, de adicionar a classe C_Orders, neste esquema de herança. Isto de fato poderia ser feito, fazendo com que a classe C_Orders, herda-se a classe C_Study. Mas não quero que isto aconteça, e o motivo, se deve a uma questão muito prática, e as vezes bastante ignorada, por grande parte dos programadores, que trabalham com OOP ( programação orientada a objetos ). Tal questão é conhecida como: Encapsulamento. Ou seja, saiba apenas o que você precisa para executar o seu trabalho. Quando vamos criando uma hierarquia de classes, não devemos, e este é o termo, permitir que algumas classes, saibam mais do que elas realmente precisam saber. Devemos sempre dar preferencia, em programar a coisa toda, de maneira que cada uma das classes, saiba apenas, e somente, o que ela de fato precisa saber, para poder executar a sua tarefa. Assim manter o encapsulamento e ao mesmo tempo adicionar a classe C_Orders neste esquema mostrado na figura 01, é algo praticamente insustentável. Desta forma, a melhor alternativa para solucionar este problema, é remover a classe C_Terminal, do bloco de herança, visto na figura 01. E a enviar para este mesmo bloco, como sendo um argumento, ou parâmetro, que pode ser usado de uma maneira bem mais adequada. Assim quem irá passar a ter o controle, de quem irá receber, esta ou aquela informação, será o código do Expert Advisor, e isto será importante depois, já que assim iremos conseguir manter o encapsulamento da informações.
Autor: Daniel Jose