Discussão do artigo "Biblioteca para criação simples e rápida de programas para MetaTrader (Parte XVII): interatividade de objetos de biblioteca" - página 3

 
Artyom Trishkin:

As propriedades de ordem podem ser obtidas. As propriedades da posição também podem ser obtidas. A partir das propriedades das posições, você pode obter todo o seu histórico - desde a ordem de negociação até o fechamento. Cada negociação de uma posição permite que você saiba a ordem que foi usada para obter a negociação. Em geral, o histórico completo de qualquer posição pode ser facilmente obtido, e todas as ordens e negociações podem ser encontradas nele.

Excelente!

Esse é um material necessário para eu estudar. Sei que você sabe como o sistema de ordens do MT5 é organizado (infelizmente, praticamente não há pessoas com essas informações neste fórum).

Por favor, diga-me o número do artigo onde posso encontrar esse material.

 
Igor Makanu:

Excelente!

esse é um material necessário para eu estudar, sei que você tem conhecimento de como funciona o sistema de ordens do MT5 (infelizmente, quase não há pessoas com essas informações neste fórum)

Por favor, diga-me onde posso encontrar esse material.

A primeira parte fala sobre a estrutura geral da biblioteca (ela permanece quase a mesma descrita, mas passa por refinamentos no processo de narração).

A segunda parte começa a criar uma coleção de ordens e posições. Na quarta parte, os eventos de negociação começam a ser discutidos.... E tudo isso se estende até o nono artigo, onde começa a finalização da compatibilidade com a MQL4.

 
Artyom Trishkin:

O surrealismo, Peter, está apenas em sua cabeça - aqui tudo é estruturado e facilmente acessível....

Você se aprofundou demais na filosofia em sua elaboração, esquecendo-se da praticidade de construir um "esquema ideal" como esse:

"Hoje iremos um pouco mais longe e dotaremos esse objeto, e assim - e quaisquer outros objetos da biblioteca, da capacidade de definir quais propriedades serão controladas externamente para suas alterações, o tamanho da alteração controlada e o tamanho do nível controlado do valor da propriedade do objeto. "

Considere o seguinte: "...otamanho da alteração controlada e o tamanho do nível controlado do valor da propriedade do objeto." O que é "a magnitude do nível controlado do valor da propriedade do objeto"? Ou seja, 1. Há uma propriedade do objeto. 2. A propriedade tem um nível controlado de valor. 3. O nível controlado tem um número n de valores e .... 4. Há também o tamanho da alteração controlada, que pode variar. Isso não parece um exagero no número de entidades? Isso é apenas uma gota no mar de filosofia em seu artigo.

Além disso:

"Portanto, aqui é adequado controlar a alteração dos estados das propriedades do objeto: inteiro e real - sua lista para cada classe herdeira é exclusiva e representará o identificador do evento. Também precisaremos levar em conta a direção da alteração das propriedades - um aumento ou uma diminuição no valor da propriedade - vamos chamá-la de causa do evento e o valor pelo qual a propriedade do objeto foi alterada. O identificador do evento, sua causa e o valor da alteração serão registrados em uma classe simples do evento base do objeto e armazenados na lista de eventos ocorridos simultaneamente. "

Vamos listar as entidades encontradas:

1."Mudança de estados das propriedades do objeto". Ou seja, existem propriedades e existem estados de propriedades do objeto. Ostensivamente, o estado de uma propriedade significa seu valor. Mas o valor pode ser representado como um objeto cuja propriedade será seu tipo. O que você fez ao dividir os estados de propriedade (valor) em inteiro e real. Em seguida, havia uma referência a alguma lista exclusiva (não sei exatamente quando ela apareceu) de estados de propriedade inteiros e reais dos objetos dos sucessores da classe.

2."Direction of change of properties" (Direção da mudança de propriedades) Bem, isso está claro - o aumento/diminuição do valor é a direção da mudança. MAS POR QUE A DIREÇÃO DA MUDANÇA É A CAUSA DO EVENTO? Em princípio, a mudança de direção é a causa do evento, não a direção em si.

3. " Escreveremos o identificador do evento, sua causa e o valor da alteração em uma classe simples do evento base do objeto e o salvaremos na lista de eventos ocorridos simultaneamente."

Bem, isso é incrível. Há um identificador de evento. Isso é bom. Há a causa do evento e a quantidade de mudança em algo (apenas a quantidade de mudança, abstratamente), bom. MAS HÁ UMA CLASSE DE EVENTO BÁSICA SIMPLES! Repito: uma classe de evento básica simples! Abstração da abstração. O evento, como uma coisa em si, encontrou sua classe! Mas ele é apenas um evento de objeto. Portanto, pode haver eventos de propriedade, eventos de nível de valor (estados de propriedade).

E a cereja do bolo:

4."e armazenar na lista de eventos ocorridos simultaneamente". Ou seja, há também uma lista de eventos ocorridos simultaneamente. E por que não... Mas, então, deve haver uma lista de eventos com níveis de diferença de tempo controlada em relação a outros eventos. Podemos acrescentar isso, não podemos?)

Este é apenas um pequeno fragmento de um artigo maior da série. Você acha que é muito simples? )) Estudarei seus artigos como um interessante programa de experimentos de uma pessoa que deveria se tornar filósofo por vocação)).

 
Реter Konow:

Você se aprofundou demais na filosofia em sua elaboração, esquecendo-se da praticidade de construir esse "esquema ideal":

"Hoje iremos um pouco mais longe e dotaremos esse objeto, e assim - e quaisquer outros objetos da biblioteca, da capacidade de definir quais propriedades serão controladas externamente por suas alterações, o tamanho da alteração controlada e o tamanho do nível controlado do valor da propriedade do objeto. "

Considere o seguinte: "...otamanho da alteração controlada e o tamanho do nível controlado do valor da propriedade do objeto." O que é "a magnitude do nível controlado do valor da propriedade do objeto"? Quero dizer, 1. Há uma propriedade do objeto. 2. A propriedade tem um nível de valor controlado. 3. O nível controlado tem um número n de valores e .... 4. Há também o tamanho da alteração controlada, que pode variar. Isso não parece um exagero no número de entidades? Isso é apenas uma gota no mar de filosofia em seu artigo.

Além disso:

"É por isso que é adequado controlar a alteração dos estados das propriedades do objeto: inteiro e real - sua lista para cada classe herdeira é exclusiva e representará o identificador do evento. Também precisaremos levar em conta a direção da alteração das propriedades - um aumento ou uma diminuição no valor da propriedade - vamos chamá-la de causa do evento e o valor pelo qual a propriedade do objeto foi alterada. O identificador do evento, sua causa e o valor da alteração serão registrados em uma classe simples do evento base do objeto e armazenados na lista de eventos ocorridos simultaneamente. "

Vamos listar as entidades encontradas:

1."Mudança de estados de propriedades de umobjeto". Ou seja, existem propriedades e existem estados de propriedades do objeto. Aparentemente, o estado de uma propriedade significa seu valor. Mas o valor pode ser representado como um objeto cuja propriedade será seu tipo. O que você fez ao dividir os estados da propriedade (valor) em inteiro e real. Em seguida, havia uma referência a alguma lista exclusiva (não sei exatamente quando ela apareceu) de estados inteiros e reais de propriedades de objetos de sucessores de classe.

2."Direction of change of properties" (Direção da mudança de propriedades) Bem, isso está claro - o aumento/diminuição do valor é a direção da mudança. MAS POR QUE A DIREÇÃO DA MUDANÇA É A CAUSA DO EVENTO? Em princípio, a mudança de direção é a causa do evento, não a direção em si.

3. "O identificador do evento, sua causa e o valor da alteração serão registrados em uma classe simples do evento base do objeto e armazenados na lista de eventos ocorridos simultaneamente."

Bem, isso é incrível. Há um identificador de evento. Ótimo. Há a causa do evento e a quantidade de alteração em algo (apenas a quantidade de alteração, abstratamente), bom. MAS HÁ UMA CLASSE DE EVENTO BÁSICA SIMPLES! Repito: uma classe de evento básica simples! Abstração da abstração. O evento, como uma coisa em si, encontrou sua classe! Mas ele é apenas um evento de objeto. Portanto, pode haver eventos de propriedades, níveis de valor (estados de propriedade).

E a cereja do bolo:

4."e armazenar na lista de eventos ocorridos simultaneamente". Portanto, há também uma lista de eventos ocorridos simultaneamente. E por que não... Mas, então, deve haver uma lista de eventos com níveis de diferença de tempo controlada em relação a outros eventos. Você pode adicioná-la, certo?)

Este é apenas um pequeno fragmento de um artigo maior da série. Você acha que é muito simples? )) Estudarei seus artigos como um interessante programa experimental de uma pessoa que deveria ter se tornado filósofo por vocação)).

Como tudo é complicado em sua cabeça :D

Você inventou a complexidade para si mesmo.

Talvez eu seja muito ruim em explicar as coisas, mas....

Nós temos um preço. O preço é uma propriedade de um símbolo. O preço tem a capacidade de mudar. Tanto na direção de seu aumento quanto na direção de sua diminuição. O tamanho (o valor pelo qual o preço aumentou ou diminuiu, temos o direito de controlar e definir - esse é "o tamanho da alteração controlada"). E também o preço pode ultrapassar o valor definido (controlado por nós no programa), que também podemos definir - esse é "o tamanho do nível controlado do valor da propriedade do objeto".

Está claro?

Temos um spread. O spread é uma propriedade de um símbolo. O spread tem a possibilidade de mudar. Seja para aumentar ou para diminuir. Tamanho (o valor pelo qual o spread aumentou ou diminuiu nós temos o direito de controlar e definir - esse é "o tamanho da alteração controlada"). E também o spread pode ultrapassar o valor definido (controlado por nós no programa), que também podemos definir - esse é "o tamanho do nível controlado do valor da propriedade do objeto".

Está claro?

Essas são apenas duas propriedades diferentes de um mesmo objeto - um símbolo. Que seja o atual. Embora possam ser propriedades de símbolos diferentes, os objetos são diferentes, mas as propriedades do mesmo tipo de objetos são as mesmas. E o controle sobre as mesmas propriedades do mesmo tipo de objetos é o mesmo. Com certeza. Porque ele é executado em um objeto básico, do qual todos os objetos herdam - é a base deles. E é o mesmo para todos os objetos - não o mesmo para todos, mas o mesmo.

Portanto, as diferentes propriedades de um mesmo objeto podem ser controladas de diferentes maneiras: você pode criar métodos de controle para cada uma das propriedades, escrever um controle para cada propriedade e se apoiar nele. Ou você pode escrever um método para controlar absolutamente todas as propriedades de qualquer objeto e não escrever toneladas de código para cada propriedade, mas escrever apenas um método para todas elas de uma só vez.
E depois que o objeto tiver registrado seus eventos na lista de seus próprios eventos (esses eventos são chamados de eventos básicos - absolutamente todos os objetos os têm), o programa envia eventos - eventos completos, que o usuário já pode processar e tomar uma decisão, então, para saber no programa de qual objeto o evento veio e que tipo de evento é, precisamos descrevê-lo. E descrevê-lo sem ambiguidade. E descrevê-lo sem ambiguidade. Há três parâmetros para essa finalidade:

  1. tipo de objeto - esse é o identificador da coleção na qual verificamos o estado de alguma propriedade. Digamos que seja uma coleção de símbolos - portanto, o primeiro número é o identificador da coleção de símbolos e nos indica que estamos verificando o objeto símbolo quanto a alterações em algumas de suas propriedades.
  2. A causa do evento é o que fez com que o objeto registrasse seu evento - um aumento ou uma diminuição no valor da propriedade pelo valor que controlamos (por exemplo, um aumento no spread em mais de 2 pontos) ou o preço cruzando o nível que controlamos - o preço ficou mais baixo do que o nível que controlamos e podemos enviar um evento ao usuário que podemos comprar....
  3. propriedade em que o evento ocorreu - há muitas propriedades e, para saber qual propriedade gerou o evento, precisamos obter seu número na lista de propriedades do objeto.

Resumindo: sabemos com certeza que (1) foi o símbolo que nos enviou o evento, (2) - a propriedade tornou-se menor que o nível controlado e (3) - essa propriedade é o preço do lance.

Complicado? Não invente - é simples.

E então, bam:

Temos uma permissão de negociação. A permissão de negociação é uma propriedade de uma conta. A permissão de negociação pode ser alterada. E por vários valores. Tamanho (o valor para o qual a permissão de negociação foi alterada, temos o direito de controlar e definir - esse é "o tamanho da alteração controlada"). E também a permissão de negociação pode ultrapassar o valor definido (controlado por nós no programa), que também podemos definir - esse é "o tamanho do nível controlado do valor da propriedade do objeto", por exemplo - há uma proibição de abrir posições de compra.

E, afinal, esse objeto, completamente diferente, enviará ao programa os mesmos códigos que foram enviados pelo símbolo a partir do qual o evento foi criado. E tudo isso será feito pelo mesmo método de um objeto-fundação de todos os objetos.

Está claro?

E, em geral, tudo está descrito nos artigos. Mas parece que você está apenas trollando? :) Para fazer essas perguntas, você deve ler o artigo com a atitude "como tudo está funcionando aqui", e não se aprofundar na simples organização dos dados.

 
Artyom Trishkin:
...Complicado? Não invente - é simples....

Um erro clássico dos autores de artigos é pensar que, se o material é claro para eles, é claro para todos.) Mas não é assim.

Sua explicação agora coloca muitas coisas no lugar, e se você a tivesse colocado no artigo (digamos, no início), ficaria mais claro. E não estou brincando com você. Apenas quando o fluxo de abstração (embora justificado e necessário) não é misturado com especificidades e quando elas não se referem e não se explicam mutuamente (a abstração começa a prevalecer), surgem opiniões como as que expressei acima.

S.F. Em geral, pelo que entendi, você está tentando generalizar e reunir nessa biblioteca tudo o que existe em algo-trading.

 
Реter Konow:

Um erro clássico dos autores de artigos é achar que se o material está claro para eles, está claro para todos.) Mas esse não é o caso.

Sua explicação agora coloca muitas coisas no lugar, e se você a tivesse colocado no artigo (digamos, no início), teria ficado mais claro. E não estou brincando com você. É que quando o fluxo de abstração (embora justificado e necessário) não é misturado com especificidades, e quando eles não se referem e não se explicam mutuamente (a abstração começa a dominar), surgem opiniões como as que expressei acima.

S.F. Em geral, pelo que entendi, nessa biblioteca você está tentando generalizar e reunir tudo o que existe no algo-trading.

Tudo o que quero fazer é oferecer às pessoas uma ferramenta para facilitar a criação de programas de qualquer complexidade de algoritmo.

A biblioteca simplesmente cuida de toda a rotina que o usuário sempre tem de escrever sozinho.

O usuário terá apenas que "fazer uma pergunta - obter uma resposta - processá-la"

E a própria biblioteca lembrará os eventos. Ou seja, em princípio, será suficiente apenas ver que tipo de evento e de que objeto veio e, em seguida, de acordo com a lógica concebida, processá-lo.

O usuário pode perguntar como a última posição foi fechada - ele obterá uma resposta - e então, de acordo com sua lógica....

Ou ele pode solicitar a última posição fechada e, em seguida, analisá-la por seus componentes - a biblioteca permite obter todos os dados sobre qualquer posição que o usuário tenha obtido dos dados da biblioteca.

Ou você pode fazer isso da seguinte maneira: o programa recebe um evento informando que tal posição foi aberta/fechada em tal símbolo, ou que tal ordem foi definida/excluída. Se o programa tiver que rastrear a interferência de outra pessoa na negociação, essa mensagem informará sobre isso - o programa não enviou nenhuma solicitação, mas o ambiente mudou - e ela deve ser processada.

Em princípio, você pode pensar e implementar muitas coisas - tento fornecer todas as ferramentas possíveis para isso. As automáticas - tudo já está lá, e você não precisa inventá-las - basta prepará-las e fornecê-las com cuidado ;).

 
Реter Konow:

Um erro clássico dos autores de artigos é pensar que, se o material está claro para eles, está claro para todos.) Mas não é.

...

E o erro clássico de alguns leitores é que eles não lêem, mas fazem perguntas imediatamente :)

Se você começar a ler desde o primeiro artigo, não haverá perguntas, porque toda a "filosofia" está lá e está explicada.

 

Artem, obrigado!

Não pare, não pare, continue escrevendo - o resultado é ótimo.

Li com interesse sua discussão com Peter. Muito correto e direto ao ponto.

Escrevi uma carta para a AMD, - não estou envolvido no projeto e na fabricação de processadores, mas, pessoal, vocês fizeram um absurdo com o processo de 8 nm....

Estou aguardando uma resposta

 
Реter Konow:

Você se aprofundou demais na filosofia em sua elaboração, esquecendo-se da praticidade de construir esse "esquema ideal".

A filosofia aqui é a seguinte: indução (do particular para o geral) ou dedução (do geral para o particular).

Artyom usa o método indutivo de apresentação.

Chefe: Bem, Gleb Georgievich, há uma bala. Seu julgamento...

Zheglov: Bem, o que você diz, "inteligência"?

Sharapov: Bem, a bala é igual a uma bala de pistola comum....

Zheglov: Sim, seria bom encontrar um invólucro.

Chefe: É melhor dar uma olhada na própria arma.

Zheglov: Isso. Bem, isso significa o seguinte: uma bala disparada de uma arma importada de calibre 6,35 do sistema Bayard ou, digamos, Omega.

Chefe: O que isso significa?

Zheglov: A bala, Sergei Ipatich, a bala. Seis cortes verticais à esquerda, é isso - a caligrafia é bastante "independente".

Chefe: O que você acha disso? A julgar pelas marcas, a caixa do cartucho é nossa, doméstica.

Zheglov: Sim. Onde foi encontrado?

Chefe: Onde deveria estar. À esquerda do corpo. O refletor funcionou corretamente.

Zheglov: Sim, o cartucho é nosso. Hmm. Bem, vamos colocar isso no enigma. Ainda temos que procurar a arma. Nadezhda, você sabe se havia alguma arma na casa?

Nadezhda: Não sei.

[Weiners. The Age of Mercy]

 
Aleksei Mikhanoshin:

Artem, obrigado!

Não pare, não pare, continue escrevendo - você está indo muito bem.

Li com interesse sua discussão com Peter. Muito correto e direto ao ponto.

Escrevi uma carta para a AMD, - não estou envolvido no projeto e na fabricação de processadores, mas, pessoal, vocês falaram bobagem sobre o processo de 8 nm....

Estou aguardando uma resposta

Olá, Alexei.

Por que parar no início da jornada? Todas as paradas para pensar já foram feitas - agora é só seguir em frente com os solavancos ;)

Bem, como a AMD respondeu a você?