![MQL5 - Linguagem para estratégias de negociação inseridas no terminal do cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
E como você vai fazer para que o trilho se adapte aos diferentes parâmetros?
De preferência, levar a uma tarefa específica. Tal descrição não é muito clara. Em minha prática, o algoritmo não muda em relação à mudança de parâmetros externos. É tornado universal com antecedência para quaisquer valores destes parâmetros. Portanto, não está muito claro o que você quer dizer. Descreva-o em um exemplo concreto.
Graças ao OOP, o programa principal é muito breve e claro. Este é apenas o primeiro exemplo que me vem à mente. Se você precisar calcular o número de pedidos com freqüência, as vantagens são óbvias. É difícil entender isso na primeira vez. Mas as funções, mesmo com parâmetros, também já foram uma dificuldade
Vamos tentar alguma tarefa em particular. Se você tiver, por favor, forneça.
Tarefa específica. O cliente encomendou um Expert Advisor para dois MAs, que incluiria todas as variantes de rastreamento disponíveis na base de código, mas não abrandaria no testador.
A EA também deve ter a perspectiva de ser atualizada com novas variantes de rastreamento no futuro (a baixo custo).
Graças ao OOP, o programa principal é muito curto e claro. Este é apenas o primeiro exemplo que me vem à mente. Se precisarmos calcular o número de pedidos com freqüência, as vantagens são óbvias. É difícil entender isso na primeira vez. Mas as funções, mesmo com parâmetros, também já foram uma dificuldade
Não entendo, por que não fazer uma função "int Number_orders()" que sempre fará o laço acima e retornará o valor do contador "SELL"?
Por exemplo:
Por que precisamos de uma aula aqui?
Por exemplo, 100 variantes de trailing stop precisam ser agrupadas em um único Expert Advisor. Ao programar proceduralmente, você recebe uma bagunça como esta:
100 fragmentos de código idênticos. Quando o programa estiver em execução, ele normalmente incluirá apenas uma parada de trilha. Os 99 ifs restantes apenas consumirão recursos.
Agora para a variante OOP. Durante a inicialização do Expert Advisor, escalamos a matriz com apontadores de acordo com o número de trilhas, criamos objetos apenas para as trilhas incluídas. Como resultado, o seguinte código funcionará o tempo todo:
Se uma barra móvel estiver habilitada, então cnt=1, ou seja, não há nada desnecessário.
Faça um conjunto de nomes de funções, escolha o nome do índice e o acesso.
O OOP não tem nada a ver com isso. Esta é uma limitação de linguagem que eles estão tentando resolver com o OOP
Eu não tentei, mas por exemplo, você não pode fazer uma linguagem atípica sem um OOP.
Não entendo por que não fazer uma função "int Number_orders()" que sempre fará o laço acima e retornará o valor do contador "SELL"?
Tarefa específica. O cliente encomendou um Expert Advisor para dois MAs, que incluiria todas as variantes de rastreamento disponíveis na base de código, mas não abrandaria no testador.
E com a perspectiva de acrescentar novas variantes de trilhas no futuro (não caras).
Ao refinar a classe, eu obterei x.SELL x.BUY x.ALL e tudo mais que for necessário. E será muito fácil abordá-los. Classes OOP - por simplicidade
Faça um conjunto de nomes de funções, escolha um nome do índice e chame-o.
Não tem nada a ver com o OOP. Esta é uma limitação lingüística que eles estão tentando resolver com a ajuda do OOP.
Não há nenhuma chamada de função pelo nome definido como uma string. E naqueles idiomas onde ela existe, é feita através de um hash de uma mesa, ou seja, é uma terrível desvantagem.
Uma maneira normal de resolver este problema seria usar apontadores para as funções (sobre isto escrevi aqui). Mas por que usar somente os indicadores, há uma maneira mais conveniente - OOP, que permite não somente tirar proveito dos indicadores de função, mas também estruturar convenientemente dados e códigos.