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 530

 
Integer:

Criar um objeto gráfico no gráfico. Se houver um objeto com um determinado nome, então saia no início de OnStart(). Para desbloqueá-lo, exclua o objeto manualmente.

Obrigado!

E, como saímos? return(0); me mostra um erro.

 
abeiks:

Obrigado!

Como saímos? return(0); me dá um erro.

Dependendo do tipo de função. Não é start() mas OnTick(), é nulo, então é só retornar;

return;
 
r772ra:
Para comentários sobre Imprimir. se não for necessário quando estiver trabalhando.

Obrigado! Você pode me dizer como você pode colocar um limite de tempo no trabalho da EA em ambientes externos.

Eu acrescentei isto


int start()
{
  if(!isTradeTimeInt(21, 30, 01, 00)) return;
а в конце кода вот это
//+------------------------------------------------------------------+
//|  Описание : Возвращает флаг разрешения торговли по времени.                |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    hb - часы времени начала торговли                                       |
//|    mb - минуты времени начала торговли                                     |
//|    he - часы времени окончания торговли                                    |
//|    me - минуты времени окончания торговли                                  |
//+----------------------------------------------------------------------------+
bool isTradeTimeInt(int hb=0, int mb=0, int he=0, int me=0) {
  datetime db, de;           // Время начала и окончания работы
  int      hc;               // Часы текущего времени торгового сервера

  db=StrToTime(TimeToStr(TimeCurrent(), TIME_DATE)+" "+hb+":"+mb);
  de=StrToTime(TimeToStr(TimeCurrent(), TIME_DATE)+" "+he+":"+me);
  hc=TimeHour(TimeCurrent());
  if (db>=de) {
    if (hc>=he) de+=24*60*60; else db-=24*60*60;
  }

  if (TimeCurrent()>=db && TimeCurrent()<=de) return(True);
  else return(False);
}
 
Integer:

Dependendo do tipo de função. Agora, não é o início() mas o OnTick(), é nulo, então é só retornar;


Obrigado!
 
tatianati:

Obrigado! Você pode me dizer como você pode colocar um limite de tempo nas configurações externas da EA?

Acrescentei isto

extern int   StartHour     = 21;      // Время закрытия, часы
extern int   StartMinute   = 30;      // Время закрытия, минуты
extern int   CloseHour     = 01;      // Время закрытия, часы
extern int   CloseMinute   = 0;      // Время закрытия, минуты
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   if(isTradeTimeInt(StartHour,StartMinute,CloseHour,CloseMinute))
     {
     //Здесь то,,,,
     //что работает, в этом диапозоне времени
     }
  }
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//|  Описание : Возвращает флаг разрешения торговли по времени.                |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    hb - часы времени начала торговли                                       |
//|    mb - минуты времени начала торговли                                     |
//|    he - часы времени окончания торговли                                    |
//|    me - минуты времени окончания торговли                                  |
//+----------------------------------------------------------------------------+
bool isTradeTimeInt(int hb=0, int mb=0, int he=0, int me=0) {
  datetime db, de;           // Время начала и окончания работы
  int      hc;               // Часы текущего времени торгового сервера

  db=StrToTime(TimeToStr(TimeCurrent(), TIME_DATE)+" "+(string)hb+":"+(string)mb);
  de=StrToTime(TimeToStr(TimeCurrent(), TIME_DATE)+" "+(string)he+":"+(string)me);
  hc=TimeHour(TimeCurrent());
  if (db>=de) {
    if (hc>=he) de+=24*60*60; else db-=24*60*60;
  }

  if (TimeCurrent()>=db && TimeCurrent()<=de) return(True);
  else return(False);
}
 

Um EA pode exibir um indicador? Uma alternativa ao ChartIndicatorAdd em MQL5.


E onde posso encontrar um exemplo de uma EA que realiza cálculos baseados em um indicador personalizado?

 
Você pode me dizer se é possível prescrever o ângulo de inclinação da média móvel ou a intersecção do preço com a média móvel em um determinado ângulo?
 
Profitov:
Você pode me dizer se é possível prescrever o ângulo de inclinação da média móvel ou a intersecção de preços com a média móvel em um determinado ângulo?
Agora eles vão começar a explicar-lhe que o ângulo depende da escala do gráfico e é impossível fazer isso...
Mas se você não tomar o ângulo, mas apenas a tangente desse ângulo, você pode fazer o que quiser.
 
Favor informar se alguém souber.

Meu consultor especializado, em init(), primeiro testa um histórico de 1000 bar, depois inicia(). No testador, este processo leva de 3 a 4 segundos, mas na vida real leva cerca de 8 minutos.
A que pode estar relacionado? Como posso fazer com que os testes demorem tanto tempo quanto no testador?
 
agvozdezkiy:

Um EA pode exibir um indicador? Alternativa ao ChartIndicatorAdd em MQL5.


E onde posso encontrar um exemplo de uma EA que realiza cálculos baseados em um indicador personalizado?

https://book.mql4.com/ru/samples/icustom
Razão: