Manual completo para iniciantes em MQL - página 3

 
8284 wrote >>

Oh CB, Oh CB !

Você é um durão. Você realmente não quer segurar minha mão através disto. Este é o mesmo livro escrito em grego, latim e mars de que eu fugi. É verdade que não há como alguém se tornar proficiente em uma profissão sem aprender a terminologia, mas.....

Você me lembra meu professor de lógica Dr. Otakpor (por lógica quero dizer sob filosofia). É melhor que você nunca lhe faça uma pergunta se você não tem idéia do que estava perguntando. CB, o livro sobre arrays é bastante técnico para mim (foi o meu primeiro esforço de codificação). Eu tenho uma vaga idéia do que se trata, mas não tenho uma compreensão total. No entanto, tomo isto como um desafio!

Vou procurar aquele pequeno "...a" que vai transformar meu "ah..." em "aha".

Vou ler, escrever e depois lhe dar o que sei sobre as matrizes (na verdade, suas aplicações eu mais preciso saber).

A única coisa é que isto resultaria em um post muito longo. Há partes de código que eu vejo em arrays sendo usadas [] mas não entendo bem a lógica. Eu esperava que, se isso me fosse explicado, eu não teria tantas perguntas (como um pedaço perdido do quebra-cabeça).

Você me desafiou e eu acho que é bom para o meu desenvolvimento, mas eu lhe imploro que seja um pouco mais brando comigo porque sou cientificamente deficiente. Minha formação é na área das artes. Quando falo com as senhoras, elas me dizem que falo como um poeta. Eu só espero não codificar como um!!!

A sério, não durmo hoje, dentro de 24 horas, estarei de volta com meu entendimento de arrays. Espero que você me corrija onde errei e me ajude a entender a aplicação de arrays na programação.

Oh CB, Oh CB !

A propósito, meus três melhores palestrantes foram o Dr. Otakpor, Barr Richard Idubor, e Barr Bob Osamor!!

O Dr. Otakpor (professor de Lógica e Filosofia) trouxe à tona o melhor de seus alunos, contrapondo suas perguntas com suas próprias perguntas destinadas a fazê-los responder suas próprias perguntas.

Isto fez com que tudo fosse interativo. Se você estivesse preso, ele o prodigalizaria suavemente, insinuaria, insinuaria até que você tivesse a resposta!

Se você não tivesse idéia, hmm... jogo de bola diferente!

 

Sua pergunta é mais sobre POR QUE você usaria uma matriz em vez de COMO?

Se sim, então, da minha perspectiva uma matriz é uma forma mais limpa de armazenar um conjunto de instâncias da mesma variável, sendo que cada instância pode ser encontrada descrevendo sua localização.

Como exemplo, se você escreveu uma aplicação que implementou uma cifra muito simples onde A=1, B=2, C=3 etc., você poderia armazenar as letras do alfabeto em uma matriz de caracteres unidimensional (1x26) e localizar cada letra substituindo no número. Se (como exemplo de saída) você escreveu um EA que armazenou os preços Ask e Bid a partir do primeiro tick posterior a 3 minutos após cada nova hora e armazenou estes valores em uma base rolante durante as últimas 5 horas, então você poderia usar um array duplo bidimensional (2x5) para realizar.


CB

 
cloudbreaker wrote >>

Sua pergunta é mais sobre POR QUE você usaria uma matriz em vez de COMO?

Se sim, então, da minha perspectiva uma matriz é uma forma mais limpa de armazenar um conjunto de instâncias da mesma variável, sendo que cada instância pode ser encontrada descrevendo sua localização.

Como exemplo, se você escreveu uma aplicação que implementou uma cifra muito simples onde A=1, B=2, C=3 etc., você poderia armazenar as letras do alfabeto em uma matriz de caracteres unidimensional (1x26) e localizar cada letra substituindo no número. Se (como exemplo de saída) você escreveu um EA que armazenou os preços Ask e Bid a partir do primeiro tick posterior a 3 minutos após cada nova hora e armazenou estes valores em uma base rolante durante as últimas 5 horas, então você poderia usar um array duplo bidimensional (2x5) para realizar.

CB

Ok CB, minha pergunta está mais focada no COMO do que no PORQUÊ. Eu sei por quê; por conveniência. Eu entendo a maioria do que você escreveu acima, mas não tudo!

Você foi techno em mim novamente, veja, para nos levar consigo você precisa de conversa de bebê e paciência. Definitivamente, vamos deixá-lo orgulhoso, mas isso levará algum tempo. Tendo em mente que apenas cerca de 3 dias atrás seu posto acima não teria feito sentido para mim, eu pergunto respeitosamente, o que você quer dizer com "base rolante"!

Tenho certeza de que quando você explicar, terei vontade de me bater, mas agora estou confuso!

De qualquer forma, eu entendo o porquê, mas não o como.

Estou trabalhando em um ensaio sobre arrays que apresentarei aqui nas próximas 24 horas, e se eu perder alguma coisa, espero uma correção. Se não, eu estarei perguntando como e quando de arrays!

Muito obrigado,

Agradeço sua ajuda!

 

Ok CB, estou pronto com minha redação. Estou certo de ter cometido um ou dois erros e ficarei feliz em ter isto apontado para mim. Pelo que vale, acho que de alguma forma, soei um pouco técnico (falando sobre inicializar e declarar e outras coisas). Escrever isto me fez ver as coisas um pouco diferente, mas depois também aprendi escrevendo de qualquer maneira.

Vou ler em arrays multidimensionais.

Eu gostaria de suas críticas honestas (e de todos) a respeito disso.

Se há algum novato que se beneficiou com isto, eu também gostaria de ouvir de você.

Talvez eu também faça um ensaio sobre funções, porque escrever sobre estas coisas me enraíza ainda mais!

 

O que é uma matriz?

Para definir uma matriz pode derrotar a causa do novato, então seria melhor descrevê-la. Depois, qualquer pessoa pode procurar sua definição técnica!

Uma matriz pode ser pensada como um grupo de dados semelhantes.
Um exemplo.
A população muda a cada ano .

População de 2004 = 4
2005 população = 5
2006 população = 6
2007 população = 7
2008 população = 8
2009 população = 9 e assim por diante.

Se estivéssemos programando em mql4, para usar esses dados, poderíamos declará-los como variáveis, por exemplo
int 2004pop = 4;
int 2005pop = 5;
int 2006pop = 6;
int 2007pop = 7; e assim por diante até chegarmos a 2009 ou ao infinito

Isso pode funcionar, mas é bastante incômodo. É aqui que entram as matrizes.
Os dados de toda a população são uma matriz.
Para usar arrays, é preciso primeiro declará-los.
Eles são declarados usando estes "[ ]".
A primeira coisa que você tem que fazer é dizer ao programa o tipo de matriz, se é um inteiro, um duplo, etc. Em nosso exemplo, é um inteiro.
então você dá ao array um nome descritivo, nós o chamaremos de yearpop (abreviação para população anual)
Após o nome descritivo vêm os parênteses [ ], e dentro dos parênteses revelamos com o que estamos trabalhando. Em nosso caso temos 6 dados, então dentro do colchete colocamos 6. Assim [6]
Até agora, nossa declaração de matriz é parecida com esta
int yearpop [6];
podemos ir mais longe para inicializar a matriz mostrando os valores dos anos individuais como este

int yearpop [6] = {4,5,6,7,8,9};

Agora o mql4 começa sua contagem a partir de 0 em vez de 1. Aqui temos seis valores, portanto, em vez de numerar de 1 a 6, números mql4 de 0 a 5. Para obter o valor para o primeiro ano, você tem que usar 0. Para o segundo ano, você tem que usar 1 e assim por diante.

Olhe para isto novamente
int yearpop [6] = {4,5,6,7,8,9} ;
Os números 4,5,6,7,8,9 são chamados de elementos
A maneira como você obtém o valor de seus elementos é através de seus índices (espero não misturar as coisas aqui em cima).
Os índices começam de 0 a qualquer coisa (no nosso caso 5)

Portanto, se você quiser obter o valor para o primeiro ano, você usa seu índice que é 0 desta forma

anopop [0] // isto lhe daria os primeiros anos de população
anopop [1]// População do 2º ano.
Desta forma, você poderia fazer muitos cálculos convenientemente (acho que)
por exemplo
sobrepopulação ;
superpopulação = yearpop[0] + yearpop [3] / yearpop [2];

Como isto se aplica ao mql4?
Tudo o que sei até agora é que em mql4, a barra ou o cronograma atual ou o símbolo ou gráfico é sempre 0 ou NULL.
O segundo mql4 conta de trás para frente como este
543210 (da direita para a esquerda).
Como exemplo, em qualquer gráfico (desculpe-me, não posso fazer gráficos)
a barra atual, ainda a ser formada, tem o valor 0.
A barra imediatamente à esquerda dela tem o valor de um, e a próxima à esquerda dele tem o valor de 2, e assim por diante.
Imediatamente a barra que tem o valor 0 está completa, ela então assume o valor 1, enquanto a nova barra formadora assume o valor 0 e todas as outras mudam de acordo.
Agora suponha que tivéssemos um conjunto de níveis de preços mais altos para as barras (o que realmente fazemos), poderíamos fazer algo como isto
200 níveis altos duplos [200];// o que significa que temos 200 barras //valores de dados em nossa matriz
Existe na verdade uma função em mql4 que pode nos dizer os altos e baixos de todas as barras.
Suponha que você quisesse saber a diferença entre a 150ª barra e a primeira barra.
Se não houvesse matrizes disponíveis, você teria que declarar, e possivelmente inicializar pelo menos 150 barras, o que seria muito demorado (CB, este é o porquê das matrizes).
Mas como temos arrays, tudo o que precisamos fazer é nos referir a eles por seus números de índice e fazer o cálculo, assim
dupla diferença;

diferença = altos níveis [0] - altos níveis[149] // lembre-se que estamos //contando a partir de 0
o 0 é a barra atualmente em formação. Se quisermos usar uma barra completa para o cálculo, usamos um alto nível [1] em seu lugar.

Até agora, falei apenas de arrays unidimensionais. É como uma mesa com apenas uma fileira.

O Mql4 permite até 4 matrizes dimensionais, algo que ainda não envolvi a cabeça.

 
Alguém já viu isso?
 

Ei, pessoal!

É lindo ver que houve postes neste tópico depois que eu desapareci. Fui para o fundo trabalhando em uma estratégia com o coaching de alguém bastante excepcional deste fórum. Assim, realisticamente falando, receio não contribuir muito para este tópico em um futuro próximo, pelo menos não tão "em profundidade" como eu fazia antes :)

Enquanto isso, para todos os novatos por aí: mantenha a paixão pela negociação e lembre-se que se você ajudar alguém, a ajuda irá encontrá-lo quando você precisar :)

 
oi,

sendo um novato eu gostaria de perguntar se a função metastock embutida : ref() e stochmomentum() são implementadas por algumas funções no metatrader

thnx
 
Huckleberry:

Olá Niko,

Estamos em 4 de julho. Você voltou da Turquia?

Cumprimentos

Huckleberry


Para aqueles que precisam procurar em um documento para encontrar algo nele, aqui está uma versão em PDF de toda a Documentação...

Foi convertido para PDF a partir de um arquivo Compilado de Ajuda HTML.

 
cloudbreaker:

8284 - Bons programadores lutam pela modularidade - ou seja, a criação de blocos de construção reutilizáveis que podem ser repetidamente encanados juntos, deixando o mínimo de novo código a ser escrito com cada novo programa. Você deve compreender que esta abordagem é adequada também para materiais de treinamento. Há muitos recursos disponíveis para pegar os fundamentos da programação que você menciona, pois eles são comuns em todas as tecnologias. Não é eficiente duplicar estes materiais de aprendizagem em todas as linguagens de programação.


CB

Olá CB,

muita coisa aconteceu desde o que foi dito acima. Eu me tornei muito mais proficiente do que jamais pensei que poderia ser na escrita de códigos (embora ainda haja muito polimento a ser feito). Acho sua citação acima tão perspicaz (algo que eu não apreciava na época) .

Quero agradecer-lhe por sua ajuda (também aprendi com sua ajuda aos outros) e parabéns por sua nomeação como moderador (muito bem merecida, penso eu) !

Parabéns a Gordon e BB também !