Perguntas de Iniciantes MQL5 MT5 MetaTrader 5 - página 575
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
Aqui está a minha variante de resolver o problema da pesquisa de repetição:
Para que o guião funcione, o ficheiro do Dicionário deve ser copiado para MQL5\Incluir
A pesquisa é realizada na passagem única para laço destacado em amarelo. A lista resultante não contém repetições (se A repete B e B repete A, um conjunto {A, B} será produzido em vez de dois {A, B} e {B, A}). ).
A produção deste guião mostrou o seguinte:
A partir da referência:
Aqui está a minha versão da solução para o problema da procura repetida:
Por favor, ajude-me a encontrar uma função para calcular o LER padrão, os requisitos são simples:
1. Devolver valor RSI a uma determinada barra
2. Calcular o índice apenas para as barras (se necessário), que são solicitadas (desejável)
3. Ser capaz de calcular na TF especificada
4. Trabalha à custa do ponto 2 mais rápido do que o indicador
Quero integrar a função no Expert Advisor, se alguém tiver um pronto, por favor partilhe-o comigo.
Pergunto porque o indicador é muito comum e não é um mistério.
Por favor, ajude-me a encontrar uma função para calcular o LER padrão, os requisitos são simples:
1. Devolver valor RSI a uma determinada barra
2. Calcular o índice apenas para as barras (se necessário), que são solicitadas (desejável)
3. Ser capaz de calcular na TF especificada
4. Trabalha à custa do ponto 2 mais rápido do que o indicador
Quero integrar a função no Expert Advisor, se alguém tiver um pronto, por favor partilhe-o comigo.
Pergunto porque o indicador é muito comum e não é um mistério.
O que há de errado com o iRSI padrão? Não é suficientemente secreto?
Há as minhas alterações que terei de fazer à função...
Tome então uma já pronta e modifique-a de acordo com as suas exigências:
Tome então uma já pronta e modifique-a de acordo com as suas exigências:
Aqui está a minha variante de resolver o problema da procura de repetições:
Vasily, quando eu abro#include <Dictionary.mqh>, abre o mesmo que no corpo da EA. Deveria ser assim, ou deveria haver algum outro código dentro?
Porque no código, que eu vejo, não está claro como procura repetições ((
Estou correcto ao assumir que isto é uma gralha? Deveria ser 0 em vez de 1.
assim:int searchPeriod=(Search_Period<1)?0:Search_Period;
e ainda no guião executável:
int copy_bars=(int)fmin(Search_Period,Bars(Symbol(),Period())); // o número de velas a copiar
Neste caso, provavelmente já deveríamos usar uma variável: searchPeriod. certo?
------
Outra questão, o que faz esta linha? Descobri que cada elemento da estrutura é reposto a zero. E não compreendo o que estamos aqui a zerar se parecemos ter acabado de escrever estes dados e devemos utilizá-los mais.
ZeroMemory(dataCandle); // Zeragem de dados na estrutura
Estou correcto ao assumir que isto é uma gralha? Deveria ser 0 em vez de 1.
assim:int searchPeriod=(Search_Period<1)?0:Search_Period;
e ainda no guião executável:
int copy_bars=(int)fmin(Search_Period,Bars(Symbol(),Period())); // o número de velas a copiar
Neste caso, provavelmente já deveríamos usar uma variável: searchPeriod. certo?
------
Outra questão, o que faz esta linha? Descobri que cada elemento da estrutura é reposto a zero. E não compreendo o que estamos aqui a zerar se parecemos ter acabado de escrever estes dados e devemos utilizá-los mais.
ZeroMemory(dataCandle); // limpar os dados na estrutura
"assim":int searchPeriod=(Search_Period<1)?0:Search_Period;"
Não, não é. É assim que o tem (literalmente): se o Search_Period definido pelo utilizador nas definições for inferior a um, então o SearchPeriod será igual a zero; caso contrário, o SearchPeriod será igual ao valor do Search_Period definido pelo utilizador nas definições. Isto não é correcto. Não precisamos de um intervalo de pesquisa que seja igual a zero. Assim, se este intervalo for definido pelo utilizador para 0 ou menos de zero (menos de um), então definiremos este intervalo igual ao mínimo - um.
"int copy_bars=(int)fmin(Search_Period,Bars(Symbol(),Period())); // número de candelabros a copiar
aqui, em teoria, já deveríamos usar a variável: searchPeriod. certo? "
Sim, é verdade, é uma gralha.
"Outra questão, o que faz esta linha? Para que serve? Descobri que repõe cada elemento da estrutura a zero. E aqui não consigo compreender porquê e o que estamos a zerar se acabámos de escrever estes dados e devemos utilizá-los mais. ZeroMemory(dataCandle); // Zerando os dados na estrutura".
Fazemo-lo antes de preencher a estrutura com dados. Primeiro zeramo-lo, e depois enchemo-lo. Veja - zeramos antes do laço. E depois, no laço, preenchemos a estrutura com dados.