Em uma aplicação do OOP - página 5

 
Dmitry Fedoseev:

Faz diferença se você escreve assim todas as vezes:

SymbolInfoDouble(Symbol(),SYMBOL_ASK) 

ou assim:

s.Ask() 

?

Existe uma diferença entre:

a<- b

и

para(i = 1; i < 1000; i++)

{

a[i] = b[i]

}

E há outras mais interessantes, por exemplo:

c <- b*a

onde todos os identificadores são matrizes e esta operação de matriz é realizada utilizando o código mais eficiente para Windows.

??????

Não se trata disso.

Quando a MQL4 era uma linguagem perfeitamente equilibrada entre simplicidade e possibilidades, muitos codificadores começaram a discutir todas as "guloseimas" e eles simplesmente não conseguiam se estabelecer. E foi assim que eles conseguiram o imbecil e a FELICIDADE das perdas.

 
СанСаныч Фоменко:

Existe uma diferença entre:

a<- b

и

para(i = 1; i < 1000; i++)

{

a[i] = b[i]

}

E há outras mais interessantes, por exemplo:

c <- b*a

onde todos os identificadores são matrizes e esta operação de matriz é realizada utilizando o código mais eficiente para Windows.

??????

Não se trata disso.

Quando a MQL4 era uma linguagem perfeitamente equilibrada entre simplicidade e possibilidades, muitos codificadores começaram a discutir todas as "guloseimas" e eles simplesmente não conseguiam se estabelecer. E foi assim que eles conseguiram o imbecil e a FELICIDADE das perdas.

É incorreto comparar idiomas operando com matrizes e números.
 
СанСаныч Фоменко:

Existe uma diferença entre:

a<- b

и

para(i = 1; i < 1000; i++)

{

a[i] = b[i]

}

E há outras mais interessantes, por exemplo:

c <- b*a

onde todos os identificadores são matrizes e esta operação de matriz é realizada utilizando o código mais eficiente para Windows.

??????

Não se trata disso.

Quando a MQL4 era uma linguagem perfeitamente equilibrada entre simplicidade e possibilidades, muitos codificadores começaram a discutir todas as "guloseimas" e eles simplesmente não conseguiam se estabelecer. Por isso, eles têm um idiota e um HEAVY de perdas.

O que era, tudo permanece. Você não quer, não use o OOP. Não se pode tocar a OLP, não pensar nisso, viver como antes.

Após seu "com <- b*a" antes de abrir uma posição, uma série de ações ainda precisam ser realizadas, se você as realizar usando o OOP, a vida se torna mais agradável e divertida.

Por que você não se queixa aos criadores do R ou matlab sobre o fato de que é impossível abrir posições a partir destes programas e, em geral, que eles não estão diretamente ligados à execução de negócios? Você pode chegar a qualquer linguagem de programação da mesma maneira, quase nenhuma linguagem tem ação com matrizes, etc. Você está comparando coisas de diferentes categorias.

 
Dmitry Fedoseev:

O que estava lá, está tudo lá. Você não quer, não use o OOP. Você não precisa tocar no OOP, não precisa pensar sobre isso, você vive como antes.

Após seu "com <- b*a" antes de abrir uma posição ainda há uma série de ações a serem realizadas, se você as realizar usando a vida OOP se torna mais agradável e mais divertida.

Por que você não se queixa aos criadores do R ou matlab sobre o fato de que é impossível abrir posições a partir destes programas e, em geral, que eles não estão diretamente ligados à execução de negócios? Você pode chegar a qualquer linguagem de programação da mesma maneira, quase nenhuma linguagem tem ação com matrizes, etc. Você está comparando coisas de diferentes categorias.

Deixe-me acrescentar, usando OOP, se necessário, você pode criar uma classe CMatrix que implementa operações matriciais e anula + - * / = nela.

E tudo seria tão simples quanto isso. Eu nem preciso criar uma CMatrix, tudo já foi implementado em qualquer uma das bibliotecas.

CMatrix m1, m2;
// заполняем матрицы
CMatrix m3 = m1 + m2;

A propósito, eu vou perturbar San-Sanych )). Caro senhor, você sabe que seu R preferido também tem dois sistemas OOP? )))))))) Apenas não se embriague com o sofrimento ))

R. Esta linguagem para análise de dados estatísticos também possui 2 sistemas de programação orientada a objetos, S3 e S4. Ambos são herdados da linguagem S (o que não é surpreendente, dado que R é uma implementação de código aberto do S comercial). O S4 é, em sua maioria, consistente com as implementações do OOP dos idiomas correntes modernos. S3 é uma variante mais leve, elementar implementada por meio da própria linguagem: uma função geral é criada, que despacha pedidos pelo atributo "classe" do objeto recebido.

 
Alexey Volchanskiy:

Além disso, usando OOP, se necessário, você pode criar uma classe CMatrix que implementa operações matriciais e anula + - * / = nela.

E tudo será igualmente fácil. Eu nem preciso criar CMatrix, tudo já foi implementado em qualquer uma das bibliotecas.

Você pode, mas o SanSan8 responderá que isso não seria feito da melhor maneira, neste R, como o SanSan8 acredita, estas operações de matriz são feitas da melhor maneira, provavelmente codificando em linguagem de montagem pura.

A diferença com R é que em R tudo está pronto, basta pegá-lo e usá-lo, enquanto aqui você tem que fazer tudo sozinho.

 
Dmitry Fedoseev:
Você pode, mas SanSan8 responderá que não seria feito da melhor maneira, é como neste R, como pensa SanSan8, estas operações de matriz são feitas da melhor maneira, provavelmente codificando em assembler puro.

Eu adicionei ao meu posto anterior - afinal o R tem OOP. (Terrível)).

A propósito, eu tentei este R - é um freio raro. Não é de se admirar - é um intérprete. Portanto, sem Asm.

 
Alexey Volchanskiy:

Eu adicionei ao meu posto anterior - afinal o R tem OOP. (Terrível)).

A propósito, eu tentei este R - é um freio raro. Não é de se admirar - é um intérprete. Portanto, sem Asm.

Se você não sabe cozinhar gatos, fique calado...

R. Esta linguagem para análise de dados estatísticos também possui 2 sistemas de programação orientada a objetos

E daí? Há muito mais lá que a MQL não tem. E daí?

Não é essa a questão. A superioridade algorítmica de um idioma sobre outro não importa em nada depois de um certo limite de capacidade em relação à área temática.

Você está mastigando os gostos dos codificadores aqui, e eu pessoalmente estou aqui para o bem do comércio.

PS.

Suas classes de matriz terão que usar a biblioteca da Intel para operações de matriz, então talvez você seja igual a R neste assunto.

 
Vasiliy Sokolov:

Aqui está. Hierarquia das classes comerciais na biblioteca padrão:

Isso implica que o módulo de gerenciamento de dinheiro é um Expert Advisor. O Trailing Stop também é um Expert Advisor. O Expert Advisor inclui outros Expert Advisors. Esta herança inconsistente resulta do fato de que tanto o trailing stop quanto o gerenciamento de dinheiro precisam ter acesso a alguns dados privados e métodos do Expert Advisor de base.

Bem, este é apenas um sistema de classes mal concebido.

Por outro lado, meu modelo de Expert Advisor se baseia inteiramente nas classes da biblioteca padrão, e não vejo nenhum problema em particular. A ideologia da fábrica de peças do Expert Advisor é implementada. Para o usuário de classes, escrever um EA consiste em escrever esta mesma fábrica, que pode criar um gerador de entradas, filtros, definidores de SL-TP, e outros componentes do TS.

 
СанСаныч Фоменко:

Havia MQL4 - uma linguagem perfeitamente equilibrada entre simplicidade e características, mas não, um bando de codificadores começou a falar de "guloseimas" e não consegue se acomodar. E é isso que temos - um idiota e um LOSS de perdas.

Algo que eu não entendo... Bem, não use as inovações da MQL5, só isso.

Eu gosto muito de herança e funções virtuais. Mas quando quero fazer algo simples com pressa - eu não os uso. Ao mesmo tempo, quando o processamento complexo de dados complexos é necessário - com o OOP é feito de forma muito mais conveniente e, o que é importante, a manutenção adicional também é muito fácil.

 
George Merts:

Eu não entendo... Bem, não use inovações da MQL5, isso é tudo.

Eu gosto muito de herança e funções virtuais. Mas quando quero fazer algo simples com pressa - eu não os uso. Ao mesmo tempo, quando o processamento complexo de dados complexos é necessário, é muito mais conveniente usar o OOP e, o que é importante, a manutenção adicional também é muito fácil.

Eu concordaria completamente com você, se não fosse por uma circunstância desagradável: a MQL não possui nenhuma ferramenta para análise estatística de citações. Isto é especialmente perceptível quando se trata de R. Cada bagatela requer programação. E estou até mesmo em silêncio quando falo de modelos.

Mas isso não é tudo.

As bibliotecas externas são proibidas, daí o mercado R. Se não fosse por esta restrição eu simplesmente ficaria rico sem nenhum risco, vendendo indicadores de qualidade muito alta.

Mas isso não é tudo.

O site tem um grupo de codificadores de batalha que argumentam, de forma gavião, que este é um site de programação, portanto, posts relacionados à negociação são inadequados.

Esse é o pano de fundo para o OOP. Caso contrário, é uma questão de gosto.