Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 6. - página 917

 

Olá a todos.

Para testar a estratégia no H1, eu preciso chegar ao fim do dia anterior.

No indicador escrevo o seguinte (depois de declarar "CloseLine" no OnInit()) :


int OnCalculate(const int rates_total, const int prev_calculated,

const datetime &time[], const double &open[],

const double &high[], const double &low[],

const double &close[], const long &tick_volume[],

const long &volume[], const int &spread[])

{

Close_Day=iClose("EURUSD",PERÍODO_D1,1);

ObjectSet("CloseLine",OBJPROP_PRICE1,Close_Day);

retorno(taxas_total);

}

Como resultado, o preço da Day TF não é alterado e a linha não é reordenada.

Por favor, ajude.

Obrigado

 

Olá, há uma pergunta sobre um quarteto escrita em um quinquagésimo. Quem sabe como me dizer...

Escrever e ler carrapatos por um indicador.

https://www.mql5.com/ru/forum/6343/page400#comment_1768141

Começou na página anterior - não pode vencer o iMAOnArray.

 
Pokrov:
Olá a todos, é melhor usar um ciclo para todos os fins ou vários ciclos em blocos? É uma questão de desempenho da EA ou não há diferença?

O ciclo é o mais rápido. E dentro do ciclo você pode fazer blocos, por exemplo, análise de blocos de ordens pendentes, análise de blocos de ordens de mercado, movimento de blocos de b/o.

for(int i=OrdersTotal()-1; i>=0; i--)
   {
      if(!OrderSelect(i,SELECT_BY_POS)) 
      {
         Print("OrderSelect( ",i," ) - Error #",GetLastError());
         continue;
      }
      if(OrderSymbol() != SymbolsArray[symNo])          continue;
      if(OrderMagicNumber() != Expert_ID) continue;
      if(OrderType()>3){  } //StopOrder
      if(OrderType()<2){  } //MarketOrder
   }
 
Rattnik:

Olá a todos.

Para testar a estratégia no H1, eu preciso chegar ao fim do dia anterior.

No indicador escrevo o seguinte (depois de declarar "CloseLine" no OnInit()) :


int OnCalculate(const int rates_total, const int prev_calculated,

const datetime &time[], const double &open[],

const double &high[], const double &low[],

const double &close[], const long &tick_volume[],

const long &volume[], const int &spread[])

{

Close_Day=iClose("EURUSD",PERÍODO_D1,1);

ObjectSet("CloseLine",OBJPROP_PRICE1,Close_Day);

retorno(taxas_total);

}

Como resultado, o preço da Day TF não é alterado e a linha não é reordenada.

Por favor, ajude.

Obrigado

Você tem certeza de que faz sentido descobrir a cláusula de ontem em cada tick? Talvez seja melhor descobrir se o valor mudou, e somente se mudou, então ligue para ObjectSet e trate se falhou?
 
Boa noite se alguém tem um indicador que calcula o número de carrapatos em uma vela é que nos números acima ou abaixo das velas. não pode encontrar tal indicador em nenhum lugar
 
roma1984:
Boa noite, você tem um indicador que calcula o número de carrapatos em um candelabro, especialmente em números acima ou abaixo do candelabro?
O indicador não mostra o número de carrapatos em uma vela. Ele só não tem dígitos, você pode visualizá-lo pressionando ctrl+D e pairando sobre o castiçal.
 
danik:
No MT4 há volumes. eles não são da troca, são volumes de carrapatos, ou seja, mostram o número de carrapatos em uma vela. no entanto, não há números, você pode ver os números pressionando ctrl+D e pairando sobre a vela.
Obrigado pela dica, mas é um pouco inconveniente
 
tatianati:

Olá, ajude por favor.

Em busca de igualdade, baixa da primeira barra com um preço máximo de 20 barras a partir da 5ª barra.

Eu coloquei a seta na primeira barra.

Tentando desta forma:

Não corrige a situação.

Que tal isso?

if(MathAbs(iHigh(NULL,0,iHighest(NULL,0,MODE_HIGH,K_Bars,i+5))-lowr) < n*Point) //примерно равно)))

As variáveis também devem ser inicializadas.

 
tatianati:

você precisa exatamente de E, é uma gama - aproximadamente

Estou me perguntando se para o indicador que estou procurando da 5ª barra até a 20

A pesquisa é correta, mas a faixa não é. É melhor comparar o módulo da diferença com um determinado número definido.

É mais ou menos isso mesmo:

if(MathAbs(iHigh(NULL,0,iHighest(NULL,0,MODE_HIGH,K_Bars,i+5))-lowr) < n*Point) // разница меньше п пунктов
 
E se a barra zero não estiver em nenhum lugar envolvido, faz sentido iniciar o loop em 1, então não haverá necessidade de escrever [i+1].