Bug de redimensionamento de matriz em beta build 530 - página 5

 
angevoyageur:

Se você quiser testar e evitar a atualização de outro terminal, você tem que remover a seguinte pasta :

  • Windows 7 : C: \ ProgramData MetaQuotes WebInstalar após uma atualização bem sucedida, o terminal de teste para os outros terminais não é atualizado.
  • Windows XP : C: Documentos e configurações Todos os usuários Metaquotes de dados da aplicação WebInstalar na Web

Estas informações (provavelmente extraídas do fórum russo) não estão mais atualizadas. A partir da v534, a atualização do Win7+ é colocada em %appdata%\metaquotes%\metaquotes%\metaquotes%programdata%\metaquotes%webinstall.

Pode mudar novamente nas versões subseqüentes.

 
cyclops993:

Estas informações (provavelmente extraídas do fórum russo) não estão mais atualizadas. A partir da v534, a atualização do Win7+ é colocada em %appdata%\metaquotes%\metaquotes%\metaquotes%programdata%\metaquotes%webinstall.

Pode mudar novamente nas versões subseqüentes.

Obrigado.
 
angevoyageur:

Provavelmente eu não sou um bom exemplo, pois sou um programador profissional. Portanto, não é um grande esforço para mim, e eu gosto de aprender uma nova linguagem de programação. Eu também tenho alguma experiência com oop.

. . . . .

Na maior parte do tempo concordo com o que você escreveu, não sou um engenheiro de software, mas tenho me dedicado um pouco ao mql5 e não precisei usar nenhum OOP no código que escrevi ... mas, aprendo muito lendo e entendendo o código de outras pessoas, sem entender o princípio por trás do OOP pode ser difícil seguir algum código mql5.
 
RaptorUK: Na maioria das vezes concordo com o que você escreveu, não sou um engenheiro de software, mas tenho me esforçado um pouco com mql5 e não precisei usar nenhum OOP no código que escrevi ... mas, aprendo muito lendo e entendendo o código de outras pessoas, sem entender o princípio por trás do OOP pode ser difícil seguir algum código mql5.

Imo, OOP envolve acreditar no Encapsulamento, Abstração, Herança, e Polimorfismo. Eu não acho que você seja capaz de "seguir" os códigos de outra pessoa por causa da Abstração. Tudo o que você precisa saber é o que ele faz . Em uma nota mais séria, acredito que o OOP fornece um nível de organização/catalogação que é reforçado && apoiado pela linguagem && IDE. Um programador não pode ter muita organização, isto provavelmente acaba economizando tempo em projetos futuros para a maioria dos programadores.

 

Obrigado por sua resposta angelvoyager que foi uma boa percepção de alguém que está familiarizado com ambos os lados da moeda, estou no mesmo barco que Raptor, os conceitos de oop começaram a me interessar e quero aprender mais sobre isso, é bom saber que não é totalmente necessário para continuar a usar o mql4 mesmo com as características do mql5, mas ainda assim, gostaria de entender quais são as vantagens de codificar de acordo com os conceitos e princípios de oop e como eles se aplicam bem à codificação de um pequeno projeto como um EA.

 

Quando eu codifico uma EA, ela geralmente acaba sendo semelhante à do livro, uma função central de hub que acumula o status atual das coisas, e armazena essa informação em arrays globais cercados por funções periféricas que usam a informação nesses mesmos arrays para decidir o que fazer, cada uma delas chama outras funções de helper para calcular coisas como tamanhos de lote, etc. A função start() apenas chama a função central de hub primeiro seguida das funções periféricas em ordem de prioridade. Essa estrutura básica funciona muito bem, embora eu nunca tenha gostado muito do fato de tudo estar centrado no acesso global a essas arrays, mas não gostei o suficiente para procurar uma maneira diferente de fazer isso. Em outras palavras, ela funciona bem o suficiente para que eu não tentasse consertá-la rs.

Eu gostaria de saber como uma abordagem oop seria diferente disso e quais seriam as vantagens disso.

 
SDC: Quando eu codifico uma EA, ela geralmente acaba sendo semelhante à do livro, uma função central de hub que acumula o status atual das coisas, e armazena essa informação em arrays globais cercados por funções periféricas que usam a informação nesses mesmos arrays para decidir o que fazer, cada uma delas chama outras funções de helper para calcular coisas como tamanhos de lote, etc. A função start() apenas chama a função central de hub primeiro seguida das funções periféricas em ordem de prioridade. Essa estrutura básica funciona muito bem, embora eu nunca tenha gostado muito do fato de tudo estar centrado no acesso global a essas arrays, mas não gostei o suficiente para procurar uma maneira diferente de fazer isso. Em outras palavras, ela funciona bem o suficiente para que eu não tentasse consertá-la rs.

Eu gostaria de saber como uma abordagem oop seria diferente disso e quais seriam as vantagens disso.

Acredito que você está descrevendo um fluxo de programas. Eu não acho que isso seja a grande_idea por trás do OOP. (imo) A OOP tenta resolver os seguintes problemas. Eu sou um noob da OOP, mas estou formando minha visão de mundo sobre isso.

1) Suas funções são independentes das_variáveis_globais? Em outras_palavras, suas funções são objetos_individuais? Encapsulamento

2) Sua função esconde os detalhes como nomes_variáveis_locais? Simplifica o volume de códigos na tela? Abstração

3) Tem a capacidade de criar cópias duplicadas de si mesmo para modificações? Como a capacidade de criar seus próprios tipos de dados? Herança.

4) Ele tem a capacidade de mudar na hora? Exemplo: a função pode manipular tanto o integer_array como o double_arrays? Polimorfismo.

A forma como um OOP pode ajudar na construção é similar à forma como um não_programador ajuda um não_programador a construir um_consultor_perito. Basta pegar seu Order_Accounting_Function favorito -> Data_Function -> Event Tracking Function -> Volume Defining Function -> Trading Criteria Defining Function -> Trade Functions -> Error Processing Function. E boom, você tem um Expert_Advisor. Todos os critérios de negociação que você desenvolveu ao longo dos anos podem ser facilmente trocados de entrada ou saída.

Eu como exemplo, se você quiser modificar meu consultor especializado, você precisará estudar onde minhas variáveis globais estão sendo aplicadas e que outra função depende delas (como em seu estado ou conjuntos de status). O OOP o faz como_simples_como Contabilidade(Opção_3); Display(Opção_1); Caption(Opção_5); TradingSys(Opção_7); VolumeSize(Opção2); OrderType(Opção_2) e isso é o especialista inteiro.

Isto torna mais fácil para alguém usar seu conjunto de bibliotecas, e normalmente o que funciona para outra pessoa funciona para você - bem no futuro. Se nada mais, basta pensar em objetos isolados em uma linha de montagem :)

 
***Ps: (Eu não quero esquecer isto). Certamente a maioria de nós não gosta de não_conhecer o que está nos códigos que estamos usando. Ou nos consumimos em tentar entender os códigos de outra pessoa, caso contrário, provavelmente não o usaríamos. Entretanto, a maioria das funções nativas ( exemplo OrderSend() ) em mql4 são Objetos do nosso ponto de vista. Nós não vemos seus códigos, no entanto, aceitamos. Acredito que esta aceitação de outras_bibliotecas de Pepinos é algo que um programador_programador_profissional que trabalha em grandes projetos tem que aceitar e construir em cima. Caso contrário, você estará preso recriando a roda.
 

A última versão do meu EA está chegando perto disso, agora tudo inclui arquivos, mas eles não são robustos o suficiente para serem usados fora da caixa sem pelo menos algumas modificações. O erro que cometo freqüentemente é que não me pego escrevendo critérios específicos de código em funções que deveriam ser ambíguas até depois do fato e elas dependem muito de matrizes glabal, quando tenho tempo vou usar mais matrizes locais e mais passagem de parâmetros para compensar o menor acesso global.

 
ubzen:
***Ps: (Eu não quero esquecer isto). Certamente a maioria de nós não gosta de não_conhecer o que está nos códigos que estamos usando. Ou nos consumimos em tentar entender os códigos de outra pessoa, caso contrário, provavelmente não o usaríamos. Entretanto, a maioria das funções nativas ( exemplo OrderSend() ) em mql4 são Objetos do nosso ponto de vista. Nós não vemos seus códigos, no entanto, aceitamos. Acredito que esta aceitação de outras_bibliotecas de Pepinos é algo que um programador_programador_profissional que trabalha em grandes projetos tem que aceitar e construir em cima. Caso contrário, você estará preso recriando a roda.
Há uma diferença . . . Eu não tenho outra opção a não ser usar OrderSend() se eu quiser fazer um pedido . . . Eu tenho a opção de usar ou não a biblioteca de alguém elses . . . mesmo quando a fonte é respeitada eu ainda tento entendê-la antes de tentar usá-la, é assim que alguns erros são encontrados e corrigidos: https://www.mql5.com/en/forum/133792/page3 "E minha correção para o comentáriodo RaptorUK :"