[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 56

 
first_may:


Sim, eu concordo, eu o pronunciei mal. Após ler a ajuda, decidi escrevê-la assim:

// o Conselheiro Especialista pode fazer pedidos todos os dias da sessão
// durante o período de 10-45 a 18-30
se (Hora()>=10 && Minuto()>=45 && Hora()<=18 && Minuto()<=30)
{
...
}

É esta a condição correta para verificar o tempo?


Não. Você não negociará com esta condição, já que Minute()>=45 && Minute()<=30 é, em princípio, impossível.

 
sergeev:

Não. Você não negociará com esta condição porque Minute()>=45 && Minute()<=30 é, em princípio, impossível


Então, você não pode comparar horas e minutos separadamente? Assim, 11-55, por exemplo, corresponde à primeira condição, como 11>==10 & 55>=45, mas não à segunda, como 11<=18 & 55<=30. Embora na vida real, 11-55 está apenas na vinterval de horas de 10-45 a 18-30.
 
first_may:

Acontece que não podemos comparar horas e minutos separadamente? Por exemplo, 11-55 se adapta à primeira condição, como 11>=10 e 55>=45, mas não à segunda, como 11<=18 e 55<=30. Embora na vida real, 11-55 está apenas na vinterval de horas de 10-45 a 18-30.

você deve criar seu tempo inicial e final com, por exemplo, StrToTime
 
sergeev:

você tem que criar seus próprios horários de início e fim, por exemplo, StrToTime


Aqui, usando o último tempo conhecido do servidor, escreveu:
if (TimeCurrent()>=StrToTime("10:45") && TimeCurrent()<=StrToTime("18:30"))
{
...
}

Agora 11-55 cairão no intervalo de 10-45 às 18:30?

 
first_may:

Será que 11-55 cairão agora entre 10-45 e 18-30?

Sim.
 
sergeev:
Sim.


Muito obrigado! :)
 

Pessoas, com todas estas variáveis globais e locais, estou prestes a começar a correr descalço e a soprar pardais. Cara, eu não entendo porque há tanta dor de cabeça no meio do nada!!!!

int Orders=0;                          // Объявление глобальной еременной суммы ордеров
int start()                            // Спец. функция start
  {
     if (MA2_2<MA1_2 && MA2_1>MA1_1)  //Сигнал на пересечении МА
        {
          if (OrdersTotal()>= 1) 
              return(0);               //Если ордеров больше 1, уходим.
   
          SL = 30;                     // Стоп лосс
          TP = 12;                     // Тейк профит
          S_Price = Low[1] - 1* Point; // Уровень установки SELLSTOP
          if (OrderSend (Symbol(), OP_SELLSTOP, Lots, S_Price, 0, SL, TP, "My order", Magic)>0) // Установка
//ордера SELLSTOP. Если OrderSend возвращает больше 0, то выполняем следующее.
            {
               Orders++;               //Увеличить величину Orders на 1. 
               Alert ("Ордер выставлен.Orders = ",Orders ); //Вывод нового значения Orders.
            }
        }    
   return(0);                             // Выход из start()
  }
Tanto quanto sei pelo tutorial da MQL4, agora o novo valor da variável global Ordens devem ser iguais a 1. A próxima iteração deve ser 2, depois 3. Então 4. E assim por diante, até que o Expert Advisor coloque ordens pendentes. Mas eu não entendo porque a EA não faz pedidos pendentes! Depois de colocar outro pedido SELLSTOP pendente, toda vez que vejo apenas uma mensagem: Pedidos = 1! Qual é a razão? Pode ser por causa do MetaEditor?
 
vovan-gogan:

Pessoas, com todas estas variáveis globais e locais, estou prestes a começar a correr descalço e a soprar pardais. Cara, eu não entendo porque há tanta dor de cabeça no meio do nada!

Tanto quanto sei pelo tutorial da MQL4, agora o novo valor da variável global Ordens devem ser iguais a 1. A próxima iteração deve ser 2, depois 3. Então 4. E assim por diante, até que o Expert Advisor coloque ordens pendentes. Mas eu não entendo porque a EA não faz pedidos pendentes! Depois de colocar outro pedido SELLSTOP pendente, toda vez que vejo apenas uma mensagem: Pedidos = 1! Qual é a razão? Pode ser por causa do MetaEditor?

A razão é que você tem mais ordens de mercado abertas nesta conta comercial.
 
Roman.:

A razão é que você tem mais ordens de mercado abertas nesta conta comercial.

O mais triste é que isso acontece no testador. e as ordens pendentes são colocadas pela EA, mas as ordens são sempre iguais a 1
 
vovan-gogan:

O mais triste é que isso acontece no testador. O Expert Advisor coloca ordens pendentes e as ordens são sempre iguais a 1

Acho que você não formulou sua pergunta corretamente.