Discussão do artigo "Introdução ao MQL5: Como escrever Expert Advisor e Custom Indicator simples" - página 5
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
Essa não é uma maneira fácil de explicar o mql5 para as pessoas. (como se os iniciantes tivessem a chance de entendê-lo!) É como nos livros de programação, 90% das pessoas não têm ideia de como começar. Elas abrem esse livro, por exemplo, sobre programação C e o primeiro "Exemplo fácil" tem uma página inteira escrita em fontes minúsculas. Em toda a minha vida, li apenas um bom livro de programação que poderia ensinar programação a qualquer pessoa. A razão para isso é que eles estão sendo escritos por programadores provavelmente excelentes, mas, infelizmente, por professores muito ruins. A programação pode ser realmente fácil e eu vou provar isso a você fazendo um tutorial simples para a linguagem de programação MQL4 quando tiver um pouco mais de tempo do que agora. Para todos, até mesmo para os totalmente iniciantes. O maior erro é ensinar às pessoas os detalhes da linguagem; a maior parte do trabalho delas deve ser com ctrl+C e ctrl+v e usar o Google para os comandos e, o mais importante, manter tudo MUITO SIMPLES. Conheço mais de 10 linguagens de programação (programo desde os 7 anos) e ainda estou assustado com a maneira como esse "exemplo fácil" de 11kb (!!!) é explicado. Gostaria de saber se existe algum iniciante em programação que aprendeu MQL5 com esse exemplo ;D. Eu duvido e, se houver, você pode contar essas pessoas nos dedos de uma mão.
Ibrahim Melssen:
I have copy paste the Expert Advisor and try to test it with Strategytester. But it doesn't make any trades. I am new to MQL5 and programming so maybe I just made a stupid mistake. It compiled without any errors. I'd really like the strategy! Anyone ideas why it doesn't run on strategytester..?
O mesmo acontece comigo, mas não consigo descobrir o motivo
Sou novo na programação do mql5.
Estava tentando aprender com esse exemplo, mas estou um pouco perdido com o loop no final da construção do indicador. Onde exatamente ele atribuiu um valor à variável day_n?
Porque o loop verificará se day_n<day_t. Como o programa pode saber o valor de day_n?
E como ele é calculado? Vamos supor que rate_total = 10 e ainda não há nenhuma barra calculada. Portanto, prev_calculated = 0
day_t=time[0] (TODAY! já que é contado de trás para frente)/PeriodSeconds... como ele começa a contar a partir de 1970, vamos supor que ele comece a contar a partir de 10 dias atrás.
Portanto, day_t=10. Agora ele verifica se dayt > dayn. Não sei o dayn, mas sei que dayt=10. Vou presumir que dayn é zero, já que não há valor.
Então dayn também se torna 10. Certo.
Segunda rolagem do loop. prev_calculated + 1= 1.
DayT=time[1] (yesterday)/period... lembre-se de que ele começa a contar a partir de 10 dias atrás... mas agora somente até ontem. ele deve dar um valor de 9, certo?
mas agora dayN < dayT é falso. Em seguida, ele começa a executar as expressões else. Certo. Eu entendi.
Em seguida, ele calculará todos os bu[] e bd[]. Certo. O loop terminará quando a taxa anterior < total for falsa.
Mas quando uma nova barra chegar e ela se tornar verdadeira novamente, ele começará do zero outra vez? Ou ele começará a partir de 10 e irá direto para a parte else?
Obrigado!!!!
Você precisa dividir em duas partes:
1 No primeiro indicador de tempo aplicado ao gráfico: prev_calculated =0 , i = 0, i++ até i = rates_total, ele sai do loop (time[0] é do passado, não do presente).
2 Uma nova barra é iniciada: prev_calculated será menor que rates_total, então a condição é verdadeira, o loop será executado somente nessa nova barra
Oi @Guin,
Acho que sua pergunta ainda não foi respondida corretamente. Se você usou o código do exemplo, provavelmente acabou com um indicador invisível que não faz sentido e não pode ser visto no gráfico. Isso ocorre porque o código nunca passa por esse bloco:
if(day_n < day_t){ day_n = day_t; h_day = high[i]; l_day = low[i] }O motivo é que day_n não é definido manualmente com nenhum valor padrão, e a comparação day_n < day_t sempre resultará em falso. De acordo com o depurador, o valor de day_n quando não definido explicitamente é "2076449103".
Basta alterar a definição de day_n para algo como:
Espero que isso ajude.
Sou novo na programação do mql5.
Estava tentando aprender com esse exemplo, mas estou um pouco perdido com o loop no final da construção do indicador. Onde exatamente ele atribuiu um valor à variável day_n?
Porque o loop verificará se day_n<day_t. Como o programa pode saber o valor de day_n?
Ótimo artigo,
Obrigado por compartilhar