Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 530

 
Integer:

Графический объект на графике создать. Если есть объект с определенным именем, значит в начале функции OnStart() выходим. Для разблокировки - удалить объект вручную.

Спасибо!

А, как выходим? return(0); мне ошибку показывает.

 
abeiks:

Спасибо!

А, как выходим? return(0); мне ошибку показывает.

В звависимости от типа функции. Сейчас же не start(), а OnTick(), она void, значит посто return;

return;
 
r772ra:
За комментируйте Print. если не нужен при работе. Как-то так.

Спасибо! Подскажите как можно вынести во внешние настройки ограничение работы советника по времени.

Добавила вот это


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:

В звависимости от типа функции. Сейчас же не start(), а OnTick(), она void, значит посто return;


Спасибо!
 
tatianati:

Спасибо! Подскажите как можно вынести во внешние настройки ограничение работы советника по времени.

Добавила вот это

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

Может ли советник отобразить индикатор? Альтернатива ф-ции ChartIndicatorAdd в MQL5.


И где бы найти пример советника выполняющего расчеты на основе пользовательского индикатора?

 
Скажите пожалуйста можно ли в советник прописать угол наклона скользящей средней или пресечение цены со скользящей средней под определенным углом?
 
Profitov:
Скажите пожалуйста можно ли в советник прописать угол наклона скользящей средней или пресечение цены со скользящей средней под определенным углом?
Сейчас тебе начнут объяснять, что угол зависит от масштабирования графика и это сделать невозможно...
Но если возьмёшь не угол, а только тангенс этого угла, то вполне можешь выполнить задуманное.
 
Подскажите пожалуйста, если кто знает.

Мой советник, в int init(), проводит сначала тестирование подгружаемой истории в 1000 баров, после чего start(). В тестере этот процесс занимает 3-4 секунды, а в реале около 8 минут.
С чем это может быть связано? Как сделать так, чтобы в реале тестирование занимало времени столько-же, как и в тестере?
 
agvozdezkiy:

Может ли советник отобразить индикатор? Альтернатива ф-ции ChartIndicatorAdd в MQL5.


И где бы найти пример советника выполняющего расчеты на основе пользовательского индикатора?

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