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

 
Vitaly Muzichenko:

Funciona de forma brilhante!

De duas posições escolheu a última, ou seja, na 11ª barra, que você pode ver na imagem da tela:


Código de validação

Decidi mudar a condição para entrar na posição, apenas fixei Limite para Baixo[2] funcionou, mas quando a condição como na minha primeira chamada hoje, não funciona, então ela está na própria condição antes que a função seja chamada

 
Вадим Мотеюнас:

Decidi mudar a condição para entrar em uma posição, basta estabelecer o limite para Low[2] que funcionou, mas quando a condição, como na minha primeira chamada hoje, não funciona, então o problema está na própria condição antes que a função seja chamada

É você quem define um pedido e não uma entrada de posição (Comprar, Vender).

Ok, então é uma coisa boa.

 
Vitaly Muzichenko:

Foi você quem estabeleceu o pedido, não a entrada na posição (Comprar, Vender).

Ok, já descobrimos - então é bom.

eu quis dizer que primeiro havia uma condição para entrarse(Abrir[2]>Fechado[2] && Abrir[1]>Fechado[1] && Fechado[1]<Baixo[2]

então chamei esta função para devolver o índice de barras, mas agora acabei de removê-lo e coloquei Low[2] no OrderSend e ele funciona

Afinal, eu não perdi um dia com isso, é um pouco de mudança do ponto morto

 
Já superei o problema, obrigado a todos por seu feedback.
 
if(takelimit=OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
      Print(takelimit,GetLastError());//здесь возвращает число 11, получается ошибка код 11, но не нашел расшифровку нигде?
      {if(iBarShift(Symbol(),0,OrderOpenTime())==1)
        
      deletelimit=OrderDelete(ticket);
      if(!deletelimit)
         Comment(GetLastError());
         }
 
Вадим Мотеюнас:

talvez 1 e 1 ?/i.e. verdadeiro e código de erro 1

ERR_NO_RESULT1Nenhum erro, mas o resultado é desconhecido
bool takelimit;

if(takelimit=OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
      Print(string(takelimit)+"   :",GetLastError());//здесь возвращает число 11, получается ошибка код 11, но не нашел расшифровку нигде?
      {if(iBarShift(Symbol(),0,OrderOpenTime())==1)
        
      deletelimit=OrderDelete(ticket);
      if(!deletelimit)
         Comment(GetLastError());
         }
 
Вадим Мотеюнас:

Todo o seu código está errado.

bool takelimit;

if(takelimit?=OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
      Print(string(takelimit)+"   :",GetLastError());//здесь возвращает число 11, получается ошибка код 11, но не нашел расшифровку нигде?
      {if(iBarShift(Symbol(),0,OrderOpenTime())==1) // <<< что это, почему сравнивать с единицей? OrderOpenTime() может вернуть "1"???
        
      deletelimit=OrderDelete(ticket);
      if(!deletelimit)
         Com
 
Vitaly Muzichenko:

Todo o seu código está errado.

ele verifica o número da barra em relação ao tempo lá.

int ticket;

void Fn()
  {
   ResetLastError();
   if(!OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)){Print(GetLastError());}
   else
     {
      if(iBarShift(Symbol(),0,OrderOpenTime())==1 && !OrderDelete(ticket)){Comment(GetLastError());}
     }
  }
 
Nikolay Gaylis:

ele verifica o número da barra em relação ao tempo lá.

Sim, não percebi o suporte.

 
Nikolay Gaylis:

ele verifica o número da barra por tempo lá.

Nikolay Gaylis:

talvez 1 e 1 ?/i.e. verdadeiro e código de erro 1

ERR_NO_RESULT1Não há erro, mas o resultado é desconhecido

Print(takelimit,GetLastError()) retorna dois valores porque a 1ª variável é do tipo bool e não precisa de GetLastError, e porque tem uma vírgula, GetLastError retorna o último erro no código no momento de chamar GetLastError?