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

 
Ainda não funciona... Você pode me dar mais alguns detalhes para os burros? Vamos ver... O que devo colocar em frente ao meu código? Que variáveis? Eu não posso chamar a função... Você escreveu várias maneiras de resolver este problema ou é apenas uma maneira? Sou um idiota por isto...
 
r772ra:

Você pode fazer isso.....
Esta variante não funcionará corretamente, porque NewBar só dá verdade no primeiro tique da barra. Para um trabalho correto é necessário colocar linhas FunNewBar(); se(!NewBar) retornar; dentro das condições de abertura comercial, e após a abertura bem sucedida.
 
alsu:
Esta variante não funcionará corretamente, porque NewBar só dá verdade no primeiro tique da barra. Para funcionar corretamente, devemos colocar a FunNewBar(); if(!NewBar) return; linha dentro da condição de abertura comercial, e após a abertura bem sucedida
Embora, não será muito correto desta forma também. Em resumo, a variante do r772ra deve ser corrigida e, melhor, devemos usar uma abordagem fundamentalmente diferente, por exemplo, observar a hora da última ordem aberta na história e compará-la com a hora da barra atual - será muito mais confiável.
 
alsu:
Embora não seja muito correto. Em resumo, a variante do r772ra deve ser corrigida, e melhor usar uma abordagem fundamentalmente diferente, por exemplo, para observar a hora de abertura da última ordem na história e compará-la com a hora da barra atual - será muito mais confiável

É mais ou menos assim.

int BarOfLastOrder(int magic)
{
   int i,ot=OrdersTotal();
   
   for(i=ot-1; i>=0; i--);
   {
      OrderSelect(i,SELECT_BY_POS);
      if(OrderMagicNumber()==magic) return(iBarShift(0,0,OrderOpenTime()));
   }
   
   return(-1);
}

int start()
{

   ........

   int bar_of_last_order = BarOfLastOrder(magic); // указать магик, который использует советник

   switch(bar_of_last_order)
   {
      case 0:
         //последний ордер открыт на текущем баре
         ...
         break;
      case -1:
         //ордеров нет
         // здесь break не ставим, если ситуация "нет ордеров" и "последний ордер открыт не на текущем баре" нужно обрабатывать одинаково
         // в противном случае написать обработку и break;
      default:
         //последний ордер открыт не на текущем баре
         ...
         break;
   }

   .........

}
 
Obrigado! Vou tentar...
 
7sintez:
Obrigado! Vou tentar...
ajustou o código
 
alsu:
ajustou o código
Aha!!! Vou tentar fazer algo a respeito agora...
 

Viva!!! Consegui passar

{
data/hora estática New_Time=0;
New_Bar=false;
if(New_Time!=Time[0])
{
New_Time=Time[0];
New_Bar=true;
}
}

 
7sintez:
Muito obrigado!!!! Funcionará se eu colocar o sinal na primeira barra de menos a partir do aberto?

 
Muito obrigado a todos vocês por toda sua ajuda! Os códigos que ainda não usei - copiei-os para o bloco de notas! Eu os analisarei quando eu tiver tempo! Obrigado mais uma vez e mais uma e mais vezes Amigos!
Razão: