Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 6. - pagina 530

 
Integer:

Crea un oggetto grafico sul grafico. Se c'è un oggetto con un certo nome, allora esce all'inizio di OnStart(). Per sbloccarlo, cancella l'oggetto manualmente.

Grazie!

E come si esce? return(0); mi mostra un errore.

 
abeiks:

Grazie!

Come si esce? return(0); mi dà un errore.

A seconda del tipo di funzione. Non è start() ma OnTick(), è nullo, quindi basta restituire;

return;
 
r772ra:
Per i commenti su Print. se non è necessario quando si lavora.

Grazie! Puoi dirmi come puoi mettere un limite di tempo al lavoro dell'EA nelle impostazioni esterne.

Ho aggiunto questo


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:

A seconda del tipo di funzione. Ora non è start() ma OnTick(), è nullo, quindi basta restituire;


Grazie!
 
tatianati:

Grazie! Puoi dirmi come puoi mettere un limite di tempo alle impostazioni esterne dell'EA?

Aggiunto questo

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);
}
 

Un EA può visualizzare un indicatore? Alternativa a ChartIndicatorAdd in MQL5.


E dove posso trovare un esempio di un EA che esegue calcoli basati su un indicatore personalizzato?

 
Potete dirmi se è possibile prescrivere l'angolo di pendenza della media mobile o l'intersezione del prezzo con la media mobile ad un certo angolo?
 
Profitov:
Potete dirmi se è possibile prescrivere l'angolo di pendenza della media mobile o l'intersezione del prezzo con la media mobile ad un certo angolo?
Ora cominceranno a spiegarti che l'angolo dipende dalla scala del grafico ed è impossibile farlo...
Ma se si prende non l'angolo, ma solo la tangente di quell'angolo, si può fare quello che si vuole.
 
Si prega di avvisare se qualcuno lo sa.

Il mio Expert Advisor, in int init(), testa prima una cronologia di 1000 barre, poi start(). Nel tester questo processo dura 3-4 secondi, ma nella vita reale ci vogliono circa 8 minuti.
A cosa può essere collegato? Come posso fare in modo che il test richieda tanto tempo quanto nel tester?
 
agvozdezkiy:

Un EA può visualizzare un indicatore? Alternativa a ChartIndicatorAdd in MQL5.


E dove posso trovare un esempio di un EA che esegue calcoli basati su un indicatore personalizzato?

https://book.mql4.com/ru/samples/icustom