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 992

 
001:

O código tornará a EA 'silenciosa' em certos momentos.

cole este código em sua EA:

Hora de início=0; // A hora do início da sessão a ser pulada

///

Hora externaEnd=0; // Fim da sessão que deve ser pulada
//+------------------------------------------------------------------+
int start()
{
if(Hour()>=HourStart)
{
{ if(Hour()<=HourEnd)
{
retorno(0);

}

//Paste este código (acima) em frente ao seu EA.

}
// seu corpo EA
}
//+------------------------------------------------------------------+

Muito obrigado!

Também fecharia encomendas...

 
Vinin:
O que você queria obter?
Geralmente, o resultado é um indicador que mostra, cumulativamente, o número de lanços e mínimos por tempo. isto é, por exemplo, para o ano 20 lanços às 03:00, 30 mínimos às 05:00 Algo como um perfil de mercado, mas com picos por tempo. O indicador está em uma janela separada.
 
SAnd7:

Muito obrigado!

Gostaria que os mandados também fechassem...

Se, com o tempo, encontrarmos uma função

OrderClose()

e colocá-lo na frente dele.

if(Hour()>=HourClose)

Resumindo:

extern int    HourClose=0;          // Вставить там где вставили extern int    HourStart=0;  Это час закрытия

//+------------------------------------------------------------------+



//+------------------------------------------------------------------+
if(Hour()>=HourClose) OrderClose(...............);// Найти функцию OrderClose и поставить передней if(Hour()>=HourClose)


 

Obrigado!!!

Acho que consegui.

 
SAnd7:

Obrigado!!!

Acho que entendi.

Ainda podemos brincar com as atas.

  Minute()
 
SAnd7:

Olá!

Eu encontrei uma boa EA (do testador) e a executei na demonstração e ela está perdendo dinheiro na sessão japonesa.

Se você conhece o código, como fazê-lo funcionar em um determinado momento e em um determinado momento para fechar todas as minhas ordens e depois sair.

Também um lugar onde inserir este código.

Agradecemos antecipadamente!

Fazer 2 variáveis no início:

extern int    Start    = 2,
              End      = 8;
//-----------------------------------
  int hour = TimeHour(TimeCurrent()); // в начале основной части советника

E então nas condições de abertura e fechamento, no caso de restar uma posição!

     if(hour >= Start && hour < End) // можно открывать
//-----------------------------------------------------
     if(hour < Start || hour >= End) // закрыть, если есть
 

Olá!

Atualmente a função está ligada ao gráfico atual (duplo alto[]). Como posso modificar a função para que eu possa obter preços de diferentes prazos High_Lim(PERÍODO_H4,10,1) High_Lim(PERÍODO_M15,10,1)?

double High_Lim(ENUM_TIMEFRAMES GrafPeriod, int Bari_atp, int Bari_shift)
{
double HighLim=0; 
       HighLim = (High[iHighest(NULL,GrafPeriod,MODE_HIGH,Bari_atp,Bari_shift)]);
          
return(HighLim);
}

void OnTick()
  {
//---
Print("::::::::::::::::::::::::: High_Lim(PERIOD_M15,10,1) = ", High_Lim(PERIOD_M15,10,1));  
Print("::::::::::::::::::::::::: High_Lim(PERIOD_H4,10,1) = ", High_Lim(PERIOD_H4,10,1));     
  }
 
abeiks:

Olá!

Atualmente a função está ligada ao gráfico atual (duplo alto[]). Como posso modificar a função para que eu possa obter preços de diferentes prazos High_Lim(PERÍODO_H4,10,1) High_Lim(PERÍODO_M15,10,1)?

Para encontrar o valor de preço mais alto de outro símbolo, use iHighest. No lugar de 1 argumento escreva o nome do símbolo, por exemplo "EURUSD". Em sua função você escreveu NULL, ou seja, busca o gráfico atual.
 
paladin80:
Para encontrar o valor de preço mais alto de outro símbolo, use iHighest. No lugar de 1 argumento, escrever o nome do símbolo, por exemplo "EURUSD". Em sua função você escreveu NULL, ou seja, busca o gráfico atual.
"...obter preços de diferentes prazos..."
 
abeiks:
"...obter preços de diferentes prazos..."

No iHighest, o 2º parâmetro é o prazo.

   double val;
//--- расчет максимального значения цены на 20 последовательных барах
//--- с индекса 4 по индекс 23 включительно на графике  EURUSD на М30 
   int val_index=iHighest("EURUSD",PERIOD_M30,MODE_HIGH,20,4);
   if(val_index!=-1) val=High[val_index];
   else PrintFormat("Ошибка вызова iHighest. Код ошибки=%d",GetLastError());