Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 243

 
Jenya77769:

Obrigado, funcionou, só eu normalizei q e w separadamente!

Você precisa normalizar a diferença de dois números. E compará-lo a zero.
 
Artyom Trishkin:
Se é a décima barra, como sei a diferença entre a décima e a barra zero? 10-0=10
E por que eu preciso subtraí-lo?


Podemos ver no papel que 10 - 0 = 10. Mas como escrevemos esta condição no programa. Ainda não encontrei uma função que devolvesse o número do bar. Ou eu estava procurando demais?

 
Youri Lazurenko:

Podemos ver no papel que 10 - 0 = 10. Mas como escrevemos esta condição no programa. Ainda não encontrei uma função que devolvesse o número do bar. Ou eu estava procurando demais?

Bem, você já encontrou esta barra. Na função que procura a interseção.
 
Artyom Trishkin:
Bem, você PRONTO a encontrar essa barra. Na função que procura a interseção.
Sim, eu o encontrei. Acho que enquanto escrevia sua resposta eu entendia seu ponto de vista - IntersecçãoXX() função apenas me dá este número, que seja 10. Eu acertei?
 
double SPREAD=MarketInfo(Symb,MODE_SPREAD);// Спред
 double q=High[0]-3.0*Point-High[1];
double w=-SPREAD*Point;

if(NormalizeDouble(q,4)> NormalizeDouble(q,4))
Artyom Trishkin
:

Normalizar a diferença entre os dois números. E compará-lo a zero.

E da maneira como o fiz, poderia haver erros?

 
Youri Lazurenko:
Sim, eu o encontrei. Acho que entendi seu ponto enquanto escrevia a resposta - IntersectionXX() é exatamente o que me dá este número, que seja 10. Eu acertei?
Sim
 
Artyom Trishkin:
Sim

Muito obrigado. Sim, minha lógica, imaginação e julgamento são um pouco insuficientes. Mais uma vez, obrigado, e tudo de bom.

 

Olá! eu queria obter o horário de abertura do bar do mês corrente, mas recebi um erro 4074 (ERR_NO_MEMORY_FOR_HISTORY). Também é interessante que se eu começar a testar a partir de 1 de junho, é correto, mas a partir de 2 de junho começa a dar o erro. Como resolver o problema deste mês?

   datetime iTimeMN=iTime(NULL,PERIOD_MN1,0);
   Print("iTimeMN= ",iTimeMN);
   if(iTimeMN==0)
     {
      Print(" Error= ",GetLastError());
      Sleep(1000);
     }
 

Olá a todos, por favor, ajudem a mudar os valores das variáveis. Há duas variáveis com um valor inicial de zero. Por exemplo, sempre tenho dois níveis na tabela. Como fazer para que quando um nível é alcançado a primeira variável mude o valor para "1" e somente quando o outro nível for alcançado, mude o valor de volta para "0", enquanto a segunda variável age de forma oposta.

 
AlGuru:

Olá a todos, por favor, ajudem a mudar os valores das variáveis. Há duas variáveis com um valor inicial de zero. Por exemplo, sempre tenho dois níveis na tabela. Como fazer, que ao atingir um nível a primeira variável tenha mudado de valor para "1" e somente ao atingir outro nível tenha mudado de valor de volta para "0", enquanto que a segunda variável agiu de forma oposta.


Tudo parece funcionar. No entanto, não funcionou no início. Estranho.

Razão: