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

 

DayOfWeek

Возвращает порядковый номер дня недели последнего известного времени сервера. 

Спасибо, стало понятнее.

Не могу сообразить как теперь реализовать возможность выбора торговых дней во внешние параметры. Если подробнее то я хочу, чтобы один и тот же советник на одной торговой паре в понедельник торговал, а на другой не торговал.

Как прописать это в "extern", а затем реализовать в условии (if...else)?

 
RichLux:

DayOfWeek

Возвращает порядковый номер дня недели последнего известного времени сервера. 

Спасибо, стало понятнее.

Не могу сообразить как теперь реализовать возможность выбора торговых дней во внешние параметры. Если подробнее то я хочу, чтобы один и тот же советник на одной торговой паре в понедельник торговал, а на другой не торговал.

Как прописать это в "extern", а затем реализовать в условии (if...else)?

вот простой пример разрешает торговлю только в понедельник. Данный код работает в МТ4 и МТ5

//+------------------------------------------------------------------+
//|                                                       test08.mq4 |
//|                                                   Sergey Gritsay |
//|                         https://www.mql5.com/ru/users/sergey1294 |
//+------------------------------------------------------------------+
#property copyright "Sergey Gritsay"
#property link      "https://www.mql5.com/ru/users/sergey1294"
#property version   "1.00"
#property strict

input ENUM_DAY_OF_WEEK dayofweek=MONDAY;

MqlDateTime time;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---

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

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   TimeToStruct(TimeCurrent(),time);
   if(time.day_of_week!=dayofweek)return; // выйдем из OnTick() если текущий день не равен установленному дню
  
   // тут остальной код советника.
  }
//+------------------------------------------------------------------+


 ...

 
RichLux:

DayOfWeek

Возвращает порядковый номер дня недели последнего известного времени сервера. 

Спасибо, стало понятнее.

Не могу сообразить как теперь реализовать возможность выбора торговых дней во внешние параметры. Если подробнее то я хочу, чтобы один и тот же советник на одной торговой паре в понедельник торговал, а на другой не торговал.

Как прописать это в "extern", а затем реализовать в условии (if...else)?

Используй перечисление ENUM_DAY_OF_WEEK

В самом конце страницы.

Информация об инструменте - Состояние окружения - Стандартные константы, перечисления и структуры - Справочник MQL4
Информация об инструменте - Состояние окружения - Стандартные константы, перечисления и структуры - Справочник MQL4
  • docs.mql4.com
Информация об инструменте - Состояние окружения - Стандартные константы, перечисления и структуры - Справочник MQL4
 

void OnTick()
  {
//---
   TimeToStruct(TimeCurrent(),time);
   if(time.day_of_week!=dayofweek)return; // выйдем из OnTick() если текущий день не равен установленному дню
  
   // тут остальной код советника.
  }
//+------------------------------------------------------------------+


 ...

Спасибо! 

Правда, теперь нужно еще позаниматься с таким моментом, что на каждой паре разное кол-во "рабочих" дней.

Наверное, нужно ввести 5 переменных:  dayofweek1, dayofweek2,...?

Но опят таки, а что указывать, в оставшихся 2х переменных, если торговых дней 3!? 

 
Добрый день! Подскажите решение вопроса. Есть код с входом по М15, но учитывается сигнал с Н1. Пока висит сигнал на Н1, на М15  индикатор даёт несколько сигналов. Вопрос в ограничении до одного (то есть первого сигнала).
Файлы:
nsm.txt  1 kb
 
RichLux:


 ...

Спасибо! 

Правда, теперь нужно еще позаниматься с таким моментом, что на каждой паре разное кол-во "рабочих" дней.

Наверное, нужно ввести 5 переменных:  dayofweek1, dayofweek2,...?

Но опят таки, а что указывать, в оставшихся 2х переменных, если торговых дней 3!? 

Можно так попробовать:

#property strict

//-
enum YesNo {
_no       = 0, // NoTrade
_yes      = 1  // Trade
};
//-
sinput YesNo day1 = _yes; // Пн
sinput YesNo day2 = _yes; // Вт
sinput YesNo day3 = _yes; // Ср
sinput YesNo day4 = _no;  // Чт
sinput YesNo day5 = _yes; // Пт


MqlDateTime time;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---

   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
{
//--

 // здесь какой-то код, например закрытие

  ... 

 // проверка запрета на торговлю
  if(TradeAllow()) return;
   // далее код
  
}

//+------------------------------------------------------------------+
//| Разрешение на торговлю по дням                                   |
//+------------------------------------------------------------------+
bool TradeAllow() {
TimeToStruct(TimeCurrent(),time);
  switch(time.day_of_week) {
   case 1 : return(!day1);
   case 2 : return(!day2);
   case 3 : return(!day3);
   case 4 : return(!day4);
   case 5 : return(!day5);
   default: return( true);
  }
}

Стоит запрет на торговлю по четвергам

Можно сделать немного красивее, всё зависит от задачи:

#property version   "1.00"
#property strict

//-
enum YesNo {
_no       = 0, // No trade
_yes      = 1  // Trade
};
//-
sinput YesNo day1 = _yes; // Пн
sinput YesNo day2 = _yes; // Вт
sinput YesNo day3 = _yes; // Ср
sinput YesNo day4 = _no;  // Чт
sinput YesNo day5 = _yes; // Пт


MqlDateTime time;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
{
//--
  if(TradeAllow()) {
    ClosePos(); // Только закрытие
  } else {
    ClosePos(); // Закрытие
    OpenPos();  // Открытие
    Function()  // Ещё что-то
  }
  
//-
}
//+------------------------------------------------------------------+
//| Функция закрытия                                                 |
//+------------------------------------------------------------------+
void ClosePos()
{
  // код
}

//+------------------------------------------------------------------+
//| Функция открытия                                                 |
//+------------------------------------------------------------------+
void OpenPos()
{
  // код
}

//+------------------------------------------------------------------+
//| Разрешение на торговлю по дням                                   |
//+------------------------------------------------------------------+
bool TradeAllow() {
TimeToStruct(TimeCurrent(),time);
  switch(time.day_of_week) {
   case 1 : return(!day1);
   case 2 : return(!day2);
   case 3 : return(!day3);
   case 4 : return(!day4);
   case 5 : return(!day5);
   default: return( true);
  }
}
//+------------------------------------------------------------------+
 
Привет всем! Я использую в торговле на МТ4 индикатор дельты от clusterdelta.com. Нужен фрилансер, который мог бы сделать так, чтобы при достижении определённого порога в значениях индикатора, срабатывал  алерт или каким-то иным образом издавался звуковой сигнал. Подскажите, к кому с этим вопросом обратиться?
 
Lexx1:
Привет всем! Я использую в торговле на МТ4 индикатор дельты от clusterdelta.com. Нужен фрилансер, который мог бы сделать так, чтобы при достижении определённого порога в значениях индикатора, срабатывал  алерт или каким-то иным образом издавался звуковой сигнал. Подскажите, к кому с этим вопросом обратиться?
Сверху есть синяя полоска, на ней много букв ещё разных. Ищете там слово "Фриланс" и жмёте на него. Дальше, думаю, понятно что делать.
 

Парни!

При попытке запустить эксперта работающего по таймеру вылезает ошибка Cannot set timer (1).

С чем это может быть связано? Заранее спасибо. 

 
Vladimir Tkach:

Парни!

При попытке запустить эксперта работающего по таймеру вылезает ошибка Cannot set timer (1).

С чем это может быть связано? Заранее спасибо. 

https://www.mql5.com/ru/forum/167394

На соседней ветке обсуждалось... 

Ошибка "cannot set millisecond timer(100)"
Ошибка "cannot set millisecond timer(100)"
  • www.mql5.com
Здравствуйте! У клиента при работе с моим советником возникла ошибка "cannot set millisecond timer(100...