Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 1119
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
Porque os prazos mínimos abaixo de H1 retornam os valores corretos.
Como descrito na ajuda, eles retornam o valor do tempo, não uma constante fora da caixa.
Que bobagem?
Limpe seus olhos, mostrei-lhe a representação interna de ENUM_TIMEFRAMES
bit 16 que é definido determina o cronograma semanal e mensal
bit 15 set define o tempo horário TF, onde TF D1 = 1000000011000 --> 11000 --> 24, ou seja, os desenvolvedores compararam D1 a 24 horas e o tempo horário restante TFs correspondem à conversão decimal
os prazos mínimos são os mesmos que os horários, mas os bits altos são reiniciados
outra questão é que você pensou que as funções que retornam ENUM_TIMEFRAMES retornam o tempo da TF em minutos - isso não é verdade, essas funções retornam a enumeração de ENUM_TIMEFRAMES - nem mais nem menos, apenas ENUM_TIMEFRAMES
veja o exemplo da ajudaem https://www.mql5.com/ru/docs/basis/types/integer/enumeration.
enumeração também pode ser com atribuição de qualquer valor constante a um membro da enumeração
Você pode criar sua própria enumeração para atender às suas necessidades
https://www.mql5.com/ru/articles/18
https://www.mql5.com/ru/articles/5798
Muito obrigado! Foi owchar_t que ajudou! Eu li sobre isso, ele armazena 2 bytes por personagem, ao contrário do char.
Mas o parâmetro da função "str" ainda não retorna o valor atribuído a ele. Eu me pergunto por que...
Olá, você poderia me dizer como resolver um problema? Quero escrever um EA baseado em um indicador (amarrado ao ferro) que constrói muitos níveis (linhas) no gráfico, o número de linhas pode chegar a 500.
Tudo que eu quero implementar é abrir um pedido ou qualquer outro evento (como alerta ou mensagem) quando o preço cruzar linhas no gráfico. Mas o problema é que o indicador não retorna nenhum valor e apenas desenha linhas horizontais (objetos com nomes) - não há mais nada no gráfico.
Tentei encontrar uma solução através da função iCustom que recupera os níveis de preços através da variável "_preço", mas a EA não abre negócios quando as linhas são tocadas. Eu não sei o que fiz de errado.
OPÇÃO 2: Uma ordem é aberta na linha que especifiquei nas configurações, funciona e abre negócios no nível que especifiquei nos parâmetros EA.
Olá, você poderia me dizer como resolver um problema? Quero escrever um EA baseado em um indicador (amarrado ao ferro) que constrói muitos níveis (linhas) no gráfico, o número de linhas pode chegar a 500.
Tudo que eu quero implementar é abrir um pedido ou qualquer outro evento (como alerta ou mensagem) quando o preço cruzar linhas no gráfico. Mas o problema é que o indicador não retorna nenhum valor e apenas desenha linhas horizontais (objetos com nomes) - não há mais nada no gráfico.
Tentei encontrar uma solução através da função iCustom que recupera os níveis de preços através da variável "_preço", mas a EA não abre negócios quando as linhas são tocadas. Eu não sei o que fiz de errado.
OPÇÃO 2, uma ordem é aberta na linha que especifiquei nas configurações; ela funciona e abre negócios nesse nível, que especifiquei nos parâmetros EA
MAS, e se a Licitação, por alguma razão, pulou a linha e não foi igual ao preço da linha, então o quê? Fornecer então pelo menos uma variável que armazene o tick anterior, e se era um tick novo cruzou sua linha - então faça alguma ação ... Mas, neste caso, não se esqueça de providenciar uma travessia "permissível", pois se o mercado abrir com uma grande brecha, ou se houver um grande salto no preço, você abrirá em muitas linhas de uma só vez e provavelmente não no lugar que você deseja. Se a travessia for maior do que o permitido - apenas uma mensagem será transmitida...
MAS, e se a Proposta, por alguma razão, cruzasse a linha, e não fosse igual ao preço da linha, então o que...? Forneça então pelo menos uma variável, na qual o tick anterior esteja armazenado, e se houvesse um novo tick cruzando sua linha - então faça alguma ação... Mas, neste caso, não se esqueça de providenciar uma travessia "permissível", pois se o mercado se abrir com um Gap grande, ou apenas um grande salto no preço, você abrirá em muitas linhas de uma só vez e provavelmente não estará lá onde você quer. Se a travessia for maior do que o permitido - apenas uma mensagem será transmitida...
Código do problema.
Que bobagem?
Limpe seus olhos, mostrei-lhe a representação interna de ENUM_TIMEFRAMES
bit 16 que é definido determina o cronograma semanal e mensal
bit 15 é ajustado para determinar o tempo horário TF e TF D1 = 1000000011000 --> 11000 --> 24, ou seja, os desenvolvedores compararam D1 a 24 horas e o tempo horário restante TFs correspondem à conversão decimal
os prazos mínimos são os mesmos que os horários, mas os bits altos são reiniciados
outra questão é que você pensou que as funções que retornam ENUM_TIMEFRAMES retornam o tempo da TF em minutos - isso não é verdade, essas funções retornam a enumeração de ENUM_TIMEFRAMES - nem mais nem menos, apenas ENUM_TIMEFRAMES
veja o exemplo da ajudaem https://www.mql5.com/ru/docs/basis/types/integer/enumeration.
enumeração também pode ser com atribuição de qualquer valor constante a um membro da enumeração
Você pode criar sua própria enumeração para atender às suas necessidades
Igor, há muito tempo está claro sobre valores constantes.
É disso que estou falando, qual é o significado de 15 e 16 bits como um valor de retorno. Isto é apenas um disparate.
Por alguma razão antes das constantes M30 ENUM correspondiam aos valoresTIMFRAME !!!!.
E além disso, já corresponde a valores de alguns bits. Onde diabos está a lógica nos caras.
Isto é um erro grosseiro. Se foi feito intencionalmente, é um desvio).
Variável _Período já contém todos estes valores de tempo da enumeração ENUM, eles não precisam de conversão adicional.
Portanto, estes valores constantes, devem corresponder aos valores de tempo, como indicado na ajuda. Não BITS!
É definitivamente a hora da quarentena. Procure tudo o que foi dito sobre o assunto e leia-o a seu bel-prazer. Por que você acha que as pessoas ao seu redor têm que repetir tudo o que você escreveu?
É definitivamente a hora de colocá-lo em quarentena. Pesquise tudo o que foi dito sobre o assunto e leia-o à sua vontade. Por que você acha que as pessoas ao seu redor deveriam repetir tudo o que você escreveu?
E por que você tolera as soluções erradas? Entreguei uma explicação lógica dos valores das constantes, não do que o desenvolvedor inventou.
E por que você tolera as soluções erradas? Entreguei uma explicação lógica dos valores das constantes, não do que o desenvolvedor inventou.
Aparentemente, para você há apenas duas opiniões: a sua e a errada. Talvez você consiga encontrar uma explicação que lhe convém.
Tente usar o valor retornado pela variável _Periodo para períodos superiores a H1 em seus cálculos matemáticos.
E você entenderá imediatamente quem está errado.