Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 769

 
помогите пожалуйста, нужно в советник добавить время его работы. кто может помочь, пишите в личку. в знак благодарности, поделюсь своей идеей
 
Sergei Boriskov:
помогите пожалуйста, нужно в советник добавить время его работы. кто может помочь, пишите в личку. в знак благодарности, поделюсь своей идеей
Форум для открытого обсуждения.
 
помогите пожалуйста, нужно в советник добавить время его работы.
Файлы:
qwer.mq4  14 kb
 
Sergei Boriskov:
помогите пожалуйста, нужно в советник добавить время его работы.

Пробуйте из этого скрипта выдернуть полезности для своего советника.

//+----------------------------------------------------------------------------+
//|                                                test_isTradeTimeString.mq4  |
//|                                                                            |
//|                                                    Ким Игорь В. aka KimIV  |
//|                                                       http://www.kimiv.ru  |
//|                                                                            |
//|  29.04.2009  Скрипт для тестирования функции isTradeTimeString().          |
//+----------------------------------------------------------------------------+
#property copyright "Ким Игорь В. aka KimIV"
#property link  "http://www.kimiv.ru"


void OnStart() {
//1. Временной отрезок внутри суток.
//Текущее время торгового сервера внутри отрезка и пусть оно равно "07:50".
//  if (isTradeTimeString("06:00", "09:30")) Message("Торгуем...");
//  else Message("Отдыхаем...");

//2. Временной отрезок внутри суток.
//Текущее время торгового сервера вне отрезка и пусть оно равно "07:50".
  if (isTradeTimeString("12:00", "16:30")) Message("Торгуем...");
  else Message("Отдыхаем...");

//3. Временной отрезок включает границу суток.
//Текущее время торгового сервера внутри отрезка и пусть оно равно "07:50".
  //if (isTradeTimeString("20:15", "09:30")) Message("Торгуем...");
  //else Message("Отдыхаем...");

//4. Временной отрезок включает границу суток.
//Текущее время торгового сервера вне отрезка и пусть оно равно "07:50".
//  if (isTradeTimeString("8:00", "18:30")) Message("Торгуем...");
 // else Message("Отдыхаем...");
}

//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 29.04.2009                                                     |
//|  Описание : Возвращает флаг разрешения торговли по времени.                |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    TimeBegin - время начала торговли         (ЧЧ:ММ)                       |
//|    TimeEnd   - время окончания торговли      (ЧЧ:ММ)                       |
//+----------------------------------------------------------------------------+
bool isTradeTimeString(string TimeBegin="00:00", string TimeEnd="00:00") {
  datetime dtBegin, dtEnd;        // Время начала и окончания работы
  int      hc, he;                // Часы текущего времени и окончания работы

  dtBegin=StringToTime( TimeToString(TimeCurrent(), TIME_DATE)+" "+TimeBegin);
  dtEnd  =StringToTime( TimeToString(TimeCurrent(), TIME_DATE)+" "+TimeEnd);
  hc     =TimeHour(TimeCurrent());
  he     =TimeHour(dtEnd);
  if (dtBegin>=dtEnd) {
    if (hc>=he) dtEnd+=24*60*60; else dtBegin-=24*60*60;
  }

  if (TimeCurrent()>=dtBegin && TimeCurrent()<=dtEnd) return(true);
  else return(false);
}

//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 01.09.2005                                                     |
//|  Описание : Вывод сообщения в коммент и в журнал                           |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    m - текст сообщения                                                     |
//+----------------------------------------------------------------------------+
void Message(string m) {
  Alert(m);
  if (StringLen(m)>0) Alert(m);
}
//+----------------------------------------------------------------------------+

 
Sergei Boriskov:
помогите пожалуйста, нужно в советник добавить время его работы.
Вы сами что-либо пытались сделать? Или хотите чтоб за вас всё тут сделали?
Здесь обучающая ветка. Не получается - поможем, научим, но сделать всё за вас...
 
Alekseu Fedotov:

Пробуйте из этого скрипта выдернуть полезности для своего советника.

Спасибо

 
Vitaly Muzichenko:

Ну с каждого кода можно извлечь что-то полезноеи, а иногда даже неординарное.

Кодобаза именно для этих целей и создана, а не для тех, что с ней вытворяют 2 человека.

P.S. Натолкнули на хорошую мысль, нужно будет и мне переписать на массив структур, как-то об этом даже не подумал ранее.

https://www.mql5.com/ru/code/24787

изучайте, или под свои задачи правьте класс в котором находятся данные , у меня это CZigZagPeak , динамические списки это круто!

ArrayZigZag
ArrayZigZag
  • www.mql5.com
При создании объекта в его конструктор необходимо передать в качестве параметров: 3. Использовать экземпляр объекта  ZigZag как обычный массив структур. Доступны для чтения следующие поля: Свойство Тип Описание 4. Публичным доступны два метода:  ZigZag.Update(void) - обновление значений индикатора ZigZag , можно использовать как на каждом...
 
Igor Makanu:

https://www.mql5.com/ru/code/24787

изучайте, или под свои задачи правьте класс в котором находятся данные , у меня это CZigZagPeak , динамические списки это круто!

Спасибо, погляжу вечером!

 

Добрый день.

Помогите с кодом, пожалуйста, т.к. сам ну совсем не программист :(

Нужна часть кода для расчёта расстояния между ордерами.

Суть блока:

Запуск производится раз в неделю в понедельник в начале открытия торговой сессии.

Закачиваются исторические данные за прошедший месяц. (D1) (Как определить последний месяц, или просто посчитать 30 дней)

Записываются все размеры с учётом теней каждой свечи D1 и высчитывается среднее значение размера свечи за месяц.

Так же высчитывается среднее значение размера свечи за последнюю неделю.

Далее рассчитывается среднее значение между месяцем и неделей и делится на N частей. Это и будет расстояние между ордерами.

 
Alexander Layzerevich:

Добрый день.

Помогите с кодом, пожалуйста, т.к. сам ну совсем не программист :(

Нужна часть кода для расчёта расстояния между ордерами.

Суть блока:

Запуск производится раз в неделю в понедельник в начале открытия торговой сессии.

Закачиваются исторические данные за прошедший месяц. (D1)

Записываются все размеры с учётом теней каждой свечи D1 и высчитывается среднее значение размера свечи за месяц.

Так же высчитывается среднее значение размера свечи за последнюю неделю.

Далее рассчитывается среднее значение между месяцем и неделей и делится на N частей. Это и будет расстояние между ордерами.

Используйте индикатор ATR

Причина обращения: