Em uma aplicação do OOP

 

Estou escrevendo um assessor para um cliente e a situação é a seguinte. Não há um TOR claro para todos os itens, mas há idéias que ele quer testar. Ou seja, o trabalho está mais próximo da pesquisa.

Ele diz, eu nem sei o que fazer, existem variantes de insumos, eu quero experimentá-los, posso fazer isso? Terei que escrever várias variantes do Expert Advisor? E as entradas por volume obviamente não podem se encaixar em uma função e devem nascer de forma dinâmica pelo mercado. Em outras palavras, pode haver 1... N. Estou fazendo uma descrição simplificada da situação.

Vamos criar uma classe base onde tudo permaneça inalterado e a partir desta classe teremos descendentes com comportamento alterado.

- E o que é uma classe?

O cliente entende um pouco de MQL, mas não é um programador. Eu comecei a explicar, mas ele não entendeu.

Encontrei na Internet uma foto da classificação das espécies animais. Eu disse: Vamos simplificar e assumir que todos eles evoluíram uns dos outros.

Eu digo - nossa classe base seria a dos Antigos flagelados. Tem a funcionalidade básica, apenas o essencial. E dele, teremos Protozoa, Multicelular, etc. E cada descendente conterá todas as funcionalidades de seus pais.

- Oh, estou vendo! E mesmo os Mamíferos terão a funcionalidade dos antigos flagelados, estou certo?

- Sim, é isso mesmo.

Agora estou pensando como este caso seria utilizado de forma ideal em um testador, a estratégia não é escalper ou ticking, pois um testador é adequado. Também nos enigmas assustadores de quem são os Suckers ))

aulas

**

 
Alexey Volchanskiy:

...

Eu digo - nossa classe base seria a dos Antigos flagelados. Ele tem funcionalidade básica, apenas o essencial. E a partir dele daremos à luz Protozoa, Multicelular, etc. Cada descendente conterá todas as funcionalidades de seus pais.

...

Infelizmente, a idéia de herança acabou se tornando um pau com duas pontas. Você pode se machucar involuntariamente. É por isso que é melhor usar a herança de forma muito limitada.
 
Vasiliy Sokolov:
Infelizmente, a idéia de herança acabou se revelando uma espada de dois gumes. Você pode acidentalmente se nocautear. É por isso que é melhor usar a herança de uma forma muito limitada.

Esta EA provavelmente não terá mais do que dois vínculos de herança. O quadro é apenas para demonstrar a herança. Eu mesmo não sou um seguidor de complicações ) Mas o Senhor Deus... que gosta de se divertir)))).

Com relação ao olhar "nódulo" na biblioteca padrão, ela é bastante profunda lá, especialmente em Controles.

 
Alexey Volchanskiy:

Esta EA provavelmente não terá mais do que dois vínculos de herança. O quadro é apenas para demonstrar a herança. Eu mesmo não sou um seguidor de complicações ) Mas o Senhor Deus... que gosta de se divertir)))).

Quanto a "lamber", veja a biblioteca padrão, é um nível bastante profundo lá, especialmente em Controles.

Infelizmente, a biblioteca padrão não é uma referência. Algumas aulas são apenas obras-primas, outras são escritas sem nenhuma compreensão do assunto (provavelmente escritas por pessoas diferentes).
 
Vasiliy Sokolov:
Infelizmente, a idéia de herança se tornou uma espada de dois gumes. Você pode se machucar involuntariamente. É por isso que é melhor usar a herança de uma forma muito limitada.

Posso lhe dar um exemplo de "zashib"?

Eu, pelo contrário, sempre procuro usar a herança e o polimorfismo o máximo possível. É muito conveniente ter funções virtuais que são chamadas conforme necessário nos objetos que você cria...

Há casos em que todos os descendentes carregam a funcionalidade da classe ancestral que os descendentes não precisam mais - mas eu não vejo nenhum problema especial aqui. Não o use, só isso. Não estou nem falando em herança protegida, quando os usuários da classe - não podem mais se referir às funções dos ancestrais, e, aqui, é muito fácil "remover funcionalidades desnecessárias".

 
George Merts:

Posso lhe dar um exemplo de "zashib"?

Eu, pelo contrário, sempre procuro usar a herança e o polimorfismo tanto quanto possível. É muito conveniente ter funções virtuais que são chamadas conforme necessário em objetos que são criados...

Há casos em que todos os descendentes têm a funcionalidade da classe ancestral, da qual os descendentes não precisam mais, mas não vejo aqui nenhum problema em particular. Não o use, só isso. Não estou falando nem mesmo de herança protegida, quando os usuários da classe - não podem mais se referir às funções dos ancestrais, e, aqui, é muito fácil "remover funcionalidades desnecessárias".

Bem escrito. Utilizo funções virtuais de forma extensiva neste projeto, muito útil. As classes descendentes têm "comportamentos" diferentes, mas a mesma interface. Na MQL não existe a noção de uma interface, mas não é difícil imitá-la.

Já pensei em colocar instâncias de todos os descendentes em uma matriz e executá-las em um loop com chamadas de funções virtuais. E para selecionar os sinais de maior sucesso de alguma forma, o que ainda não pensei. Até agora, não está claro como determinar se os sinais são "sortudos" ou não. Portanto, há uma oportunidade de otimizar na hora de se ajustar ao mercado em mudança.

Acho melhor fazer isso não na EA de trabalho, mas em sua pequena modificação que funciona em paralelo com a escrita de informações pelo menos em um arquivo, a velocidade de troca não é importante aqui.

E quanto à"funcionalidade de classe ancestral, que os descendentes não precisam mais" - não importa, as funções existem na memória como uma única cópia de qualquer forma. É claro que a memória de dados será alocada para cada instância, mas hoje em dia com gigabytes de RAM isso não é muito importante.

 
É melhor descrever o ToR, porque não está claro o que você quer dizer e o que as classes têm a ver com ele.
 
Alexey Volchanskiy:

Estou escrevendo um EA para um cliente e a situação é a seguinte. Não há um TOR claro para todos os itens, mas há idéias que ele quer testar. Ou seja, o trabalho está mais próximo da pesquisa.

Ele diz, eu nem sei o que fazer, existem variantes de insumos, eu quero experimentá-los, posso fazer isso? Terei que escrever várias variantes do Expert Advisor? E os insumos por volume obviamente não podem ser contidos em uma função e devem nascer de forma dinâmica pelo mercado. Em outras palavras, pode haver 1... N. Estou fazendo uma descrição simplificada da situação.

Vamos criar uma classe base onde tudo permaneça inalterado e a partir desta classe teremos descendentes com comportamento alterado.

- E o que é uma classe?

O cliente entende um pouco de MQL, mas não é um programador. Eu comecei a explicar, mas ele não entendeu.

Encontrei na Internet uma foto da classificação das espécies animais. Eu disse: Vamos simplificar e assumir que todos eles evoluíram uns dos outros.

Eu digo - nossa classe base seria a dos Antigos flagelados. Tem a funcionalidade básica, apenas o essencial. E dele, teremos Protozoa, Multicelular, etc. E cada descendente conterá todas as funcionalidades de seus pais.

- Oh, estou vendo! E mesmo os Mamíferos terão a funcionalidade dos antigos flagelados, estou certo?

- Sim, é isso mesmo.

Agora estou pensando como este caso seria utilizado de forma ideal em um testador, a estratégia não é escalper ou ticking, pois um testador é adequado. Também nos enigmas assustadores de quem são os Suckers ))

**

Se você não sabe o que eles querem, então você pode pedir a eles que o façam manualmente. Ou deixá-los testar à mão o que eles não sabem.
 
Alexey Volchanskiy:

Estou escrevendo um EA para um cliente e a situação é a seguinte. Não há um TOR claro para todos os itens, mas há idéias que ele quer testar. Ou seja, o trabalho está mais próximo da pesquisa.

Ele diz, eu nem sei o que fazer, existem variantes de insumos, eu quero experimentá-los, posso fazer isso? Terei que escrever várias variantes do Expert Advisor? E os insumos por volume obviamente não podem ser contidos em uma função e devem nascer de forma dinâmica pelo mercado. Em outras palavras, pode haver 1... N. Estou fazendo uma descrição simplificada da situação.

Vamos criar uma classe base onde tudo permaneça inalterado e a partir desta classe teremos descendentes com comportamento alterado.

- E o que é uma classe?

O cliente entende um pouco de MQL, mas não é um programador. Eu comecei a explicar, mas ele não entendeu.

Encontrei na Internet uma foto da classificação das espécies animais. Eu disse: Vamos simplificar e assumir que todos eles evoluíram uns dos outros.

Eu digo - nossa classe base seria a dos Antigos flagelados. Tem a funcionalidade básica, apenas o essencial. E dele, teremos Protozoa, Multicelular, etc. E cada descendente conterá todas as funcionalidades de seus pais.

- Oh, estou vendo! E mesmo os Mamíferos terão a funcionalidade dos antigos flagelados, estou certo?

- Sim, é isso mesmo.

Agora estou pensando como este caso seria utilizado de forma ideal em um testador, a estratégia não é escalper ou ticking, pois um testador é adequado. Também nos enigmas assustadores de quem são os Suckers ))

**

O principal é como é conveniente utilizá-lo. Para tentar diferentes entradas, você pode fazer isso em massa por número de conjunto de entradas. Ou seja, há uma coleção de conjuntos de entradas. Se for conveniente, como um conjunto de funções. As mais simples - compra ou venda incondicional por mercado. Ou condicional))). E então, nós executamos o otimizador e olhamos através dos diferentes conjuntos de entradas.
 
Alexey Busygin:
É melhor você descrever seus ToR, porque não está claro o que você quer dizer e o que as classes têm a ver com isso.

Quais são os termos de referência - aquele que me foi dado pelo cliente? )) Você acha que isso é politicamente correto?

Ou é algo exótico para você? Ou é algum tipo de exotismo para você? Para mim, é uma ferramenta de trabalho comum.

 
Vladimir Pastushak:
Eles devem ser enviados para decidir o que querem primeiro e depois pedir... Ou deixá-los testar à mão o que eles não sabem.
Por que não? Eu amo a pesquisa, especialmente se for paga)
Razão: