- [ARQUIVO] Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 3.
- Quanto é necessário....
- Programação OOP vs procedimento
Olá.
Quanto é demais? É assim tanto que não pode ser decomposto em arquivos?
- 2016.03.20
- www.mql5.com
Olá.
Dois princípios básicos:
1. Dividir o código em funções. Uma função deve ser mais ou menos logicamente completa e não deve ser mais de uma tela a ser coberta em um único relance.
2. Reduzir o número de variáveis globais. A partir de variáveis globais, é desejável utilizar apenas parâmetros que não mudem enquanto o programa estiver em execução.
...e muito mais:
3. Programação orientada a objetos.
4. Colocar o código em vários arquivos (isto complica a depuração, mas há um sentido nele).
É muito simples: precisamos documentar com precisão as funções individuais e alocá-las em um arquivo separado. O arquivo principal se tornará imediatamente menor e mais legível
Sempre tenho um arquivo mq4/mq5 e um monte de arquivos mqh com classes, para cada classe um arquivo separado. Em geral, é assim que eles fazem no desenvolvimento industrial. Sem arquivos com quilômetro de comprimento onde tudo está misturado.
Às vezes você pode ver uma obra-prima onde toda a EA é embalada no OnTick com os mesmos pedaços de código para abrir pedidos 20 vezes cada um nesta folha feia. Eu quero tirar o saco de vômito imediatamente ))
Olá.
Não escreva funções que são sempre constantes e nunca mudam neste estilo
void CloseOrders(int cmd) { for(int i=OrdersTotal()-1;i>=0;i--) { if(OrderSelect(i,SELECT_BY_POS)) { if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic) { if(OrderType()==OP_BUY && cmd==OP_BUY) { if(!OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,Blue)) { Print("Order BUY not close! Error = ",GetLastError()); } } if(OrderType()==OP_SELL && cmd==OP_SELL) { if(!OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,Red)) { Print("Order SELL not close! Error = ",GetLastError()); } } } } } }
Escreva-os concisamente, ninguém nunca olha para eles de qualquer maneira, e ocupam a metade do espaço.
void CloseOrders(int cmd) { for(int i=OrdersTotal()-1;i>=0;i--) { if(OrderSelect(i,SELECT_BY_POS)) { if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic) { if(OrderType()==OP_BUY && cmd==OP_BUY) { if(!OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,Blue)) Print("Order BUY not close! Error = ",GetLastError()); } if(OrderType()==OP_SELL && cmd==OP_SELL) { if(!OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,Red)) Print("Order SELL not close! Error = ",GetLastError()); } }}}}
Comente o código o tempo todo, o que este pedaço de código é responsável, não é difícil, e agora você sempre saberá o que é o código, e reduzirá o tempo para estudá-lo
Não escreva funções que são sempre constantes e nunca mudam neste estilo
Escreva-os concisamente, ninguém nunca olha para eles de qualquer maneira, e ocupam a metade do espaço.
Comente o código o tempo todo, o que este pedaço de código é responsável, não é difícil, e agora você sempre saberá o que é o código, e reduzirá o tempo para estudá-lo
O comentário deve ocupar a metade do texto do programa
Não escreva funções que são sempre constantes e nunca mudam neste estilo
Escreva-os concisamente, ninguém nunca olha para eles de qualquer maneira, e ocupam a metade do espaço.
Comente o código o tempo todo, o que este código é responsável por ele, não é difícil, e aqui na revisão sempre saberá o que o código, e reduzirá o tempo para estudá-lo
A rearranjo dos parênteses não faz com que o atraso seja menor. Antes de dar conselhos, pelo menos aumente seu nível para um nível médio.
O comentário deve ocupar metade do texto do programa
Não, bem, então 90% do código são comentários. E você precisa do máximo código inútil e mal legível possível, para que você possa fazer mais comentários!
Suas idéias também são dignas de nota. Você deveria discuti-los com mais freqüência
Há muito tempo que eu venho pedindo. Se no mcl5 você obtiver dados indicadores de arquivos, classes, a otimização será mais rápida?
Ou seja, nenhum cabo indicador é chamado no código do próprio Expert Advisor.
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso