[Arquivo!] Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por ela. Não poderia ir a lugar algum sem você - 2. - página 123

 
KabrGvin:

Por favor, me diga como evitar a influência dos fins de semana quando não há bares. Suponha que os números de barras sejam calculados utilizando as fórmulas:

nt i1=(Tempo[0]-t1)/60/Período();

int i2=(Time[0]-t2)/60/Período();

E o número de barras entre i1 e i2 é igual à diferença entre elas. Ou seja: Número de barras = i1-i2. Mas se i1 e i2 caírem entre os fins de semana, o número de barras será calculado levando em conta as barras que não existem no sábado e no domingo. Como posso sair desta situação?

Cumprimentos, Dimitri.


Obrigado a todos vocês. Eu mesmo já resolvi isso.



 

Gente! Como arredondar 2,643789 para um número inteiro?

Não consigo encontrá-lo no livro didático ou na documentação, não consigo encontrar nada na busca ou estou procurando no lugar errado.

 
eddy:

alsu, preencha o todo como?:)

e por que imprimir i?) i é igual a Bars-counted+2. como pode ser negativo?

              for(i=Bars; i>=0; i--) Rel[i]=pr(Close[i])-pr(Close[i+1]);
     if(teni) for(i=Bars; i>=0; i--) {Rhi[i]=pr(High[i])-pr(Close[i+1]);
                                      Rlo[i]=pr(Low[i])-pr(Close[i+1]);
                                                Rlo[i]=MathMin(Rlo[i],0);
                                                Rhi[i]=MathMax(Rhi[i],0);}

Este código é executado em cada tick, ou seja, na chegada de cada tick Todos os elementos dos arrays Rel,. de barras a zero é atribuído algum valor. (A propósito, não há nenhum elemento com o número Bars, o último índice na matriz é Bars-1 - isso deve ser lembrado)

Agora para os não-desenhadores.

Precisamos descobrir onde está o erro. Primeiro, sugiro que analisemos quais valores o índice i toma e quais são os resultados da função rsi(). Como não há depurador em ME, temos que usar eco, ou seja, Print().

 
gheka:

Gente! Como arredondar 2,643789 para um número inteiro?

Não consigo encontrá-lo no livro didático ou na documentação, não consigo encontrar nada na busca ou estou procurando no lugar errado.

https://docs.mql4.com/ru/math/MathRound

duplo MathRound( valor duplo)

A função retorna o valor arredondado para o número inteiro mais próximo do valor numérico especificado.

Exemplo:
duplo y=Round Matemático(2,8);
Impressão("Arredondamento 2,8 a ",y);
y=MathRound(2.4);
Impressão ("Arredondamento -2,4 a ",y);
//Output: Arredondamento 2,8 a 3
// redondo -2,4 a -2

 
alsu:

...em cada tick Todos os elementos do Rel,... de barras a zero é atribuído algum valor.

Agora sobre o não-desenhar.

Precisamos descobrir onde está o erro. Primeiro, sugiro que analisemos quais valores o índice i leva e qual é a função rsi() que produz. Como não há depurador em ME, podemos usar eco, ou seja, Print().

"Barras a zero" que já consertei) Estou sempre lendo e consertando as coisas.

agora sobre o não-desenho)

As barras contadas+2 podem ser negativas?

 

Como posso modificar todas as ordens abertas?

Eu só modifico um pedido por alguma razão

Aqui está meu código

 tot=OrdersTotal();
if(tot>0)
{ if(OO_11(0)==false) <---- ОО_11() он проверяет есть ли стоп
{ int k=OrdersTotal();
for(int a=0;a<=k;a++)
{ if(OrderSelect(a,SELECT_BY_POS,MODE_TRADES))
{ if(OrderType()==OP_SELL)
{ if(OrderMagicNumber()==0)
{
int tik=OrderTicket();
OrderModify(tik,Ask,Ask+0.01000,0,0,0);
}
}
}
}
}
}
Eu tenho 10-50 pedidos abertos sem um mágico, mas isso só estabelece uma parada de perda em um pedido, me diga o que está errado?
 
eddy:

"Barras a zero" que já corrigi) Estou sempre lendo e corrigindo as coisas.

agora sobre o não-desenho)

as barras contadas+2 podem ser negativas?

Na mosca, não, não pode. Mas ainda é mais rápido verificar do que pensar. Idealmente, você deveria colocar impressões em todos os lugares e ver como o software funciona.
 
gheka:

Como posso modificar todas as ordens abertas?

Eu só modifico um pedido por alguma razão

aqui está meu código

eu tenho 10-50 pedidos abertos sem magia aberta, mas só tenho prejuízo de parada em um pedido, o que está errado?

1) variável k repete variável tot

2) a<=k está errado, corrigir a<k

3) O que há no registro sobre a modificação de pedidos?

 
alsu:

1) a variável k repete a variável tot

2) a<=k está incorreto, corrigir a<k

3) O que há no registro a respeito da modificação de pedidos?

Não há informações no diário de bordo, apenas a abertura dos pedidos e nada mais, ainda não funciona
 
alsu:

1) a variável k repete a variável tot

2) a<=k está incorreto, corrigir a<k

3) O que há no registro a respeito da modificação de pedidos?

Está funcionando agora) obrigado.