Как сделать закрытие ордеров в определенный день недели,каждый день,или закрытие ордеров отключено

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Monter10000
81
Monter10000  
Всем доброго времени суток! Подскажите,как сделать выбор дня недели (на русском) через  ENUM_DAY_OF_WEEK для закрытия всех ордеров? Точнее мне нужно чтоб в настройках выводились дни недели на русском,и я бы мог выбрать на пример пятница, а не Friday. И чтоб советник закрывал все ордера только в в выбранный мною день. Или если нужно,то чтоб закрывал каждый день в конце дня,или совсем не закрывал,то есть функция закрытия отключена. Сама функция закрытия ордеров уже есть. Совсем недавно начал изучать MQL4 и еще не знаю как реализовать вот такой выбор в советнике.Всем заранее спасибо!


Igor Makanu
9909
Igor Makanu  

вот начеркал... но думаю можно и проще, все сделать, эл-т перечисления это № по порядку, если не указано явное присваивание, для экспериментов вот код скрипта:

#property copyright "IgorM"
#property link      "https://www.mql5.com/ru/users/igorm"
#property version   "1.00"
#property strict
#property show_inputs
enum ENUM_DAY_OF_WEEK_RUS{Воскресение,Понедельник,Вторник,Среда,Четверг,Пятница,Суббота};
input ENUM_DAY_OF_WEEK_RUS dayRus   = Воскресение;
input ENUM_DAY_OF_WEEK     dayEn    = SUNDAY;
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {

  }
//+------------------------------------------------------------------+
ENUM_DAY_OF_WEEK DayOfWeekRusToDayOfWeek(ENUM_DAY_OF_WEEK_RUS element)
  {
   switch(element)
     {
      case Воскресение  : return(SUNDAY);
      case Понедельник  : return(MONDAY);
      case Вторник      : return(TUESDAY);
      case Среда        : return(WEDNESDAY);
      case Четверг      : return(THURSDAY);
      case Пятница      : return(FRIDAY);
      case Суббота      : return(SATURDAY);
     }
   return(0);
  }

но думаю Вы совсем другое ищите, https://www.mql5.com/ru/docs/basis/variables/inputvariables

Существует возможность задать иной способ отображения имен входных параметров на закладке "Inputs". Для этого используется строчный комментарий, который должен располагаться после описания входного параметра в той же строке. Таким образом, входным параметрам можно сопоставить более понятные для пользователя имена.

Документация по MQL5: Основы языка / Переменные / Input переменные
Документация по MQL5: Основы языка / Переменные / Input переменные
  • www.mql5.com
указывается перед типом данных. Изменять значение переменной с модификатором input внутри mql5-программы нельзя, такие переменные доступны только для чтения. Изменять значения input-переменных может только пользователь из окна свойств программы. Внешние переменные всегда переинициализируются непосредственно перед вызовом OnInit().   Существует...
Aleksey Lebedev
7473
Aleksey Lebedev  
Igor Makanu:

вот начеркал... но думаю можно и проще, все сделать, эл-т перечисления это № по порядку, если не указано явное присваивание, для экспериментов вот код скрипта:

но думаю Вы совсем другое ищите, https://www.mql5.com/ru/docs/basis/variables/inputvariables

Можно как-то так:

#property strict
#property script_show_inputs

enum ENUM_DAY_OF_WEEK_RUS
   {
   day0,//Воскресение
   day1,//Понедельник
   day2,//Вторник
   day3,//Среда
   day4,//Четверг
   day5,//Пятница
   day6//Суббота
   };

input ENUM_DAY_OF_WEEK_RUS dayRus   = 0;
input ENUM_DAY_OF_WEEK     dayEn    = 0;
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {

  }
//+------------------------------------------------------------------+
Igor Makanu
9909
Igor Makanu  
Aleksey Lebedev:

Можно как-то так:

это все ясно, я не помню как с enum работать, там можно сделать конвертацию без решения "влоб" как я пример привел ф-ции 

ENUM_DAY_OF_WEEK DayOfWeekRusToDayOfWeek(ENUM_DAY_OF_WEEK_RUS element)

Monter10000
81
Monter10000  
Aleksey Lebedev
Aleksey Lebedev:

Можно как-то так:А вот у Вас там два input используется,для чего два?


Monter10000
81
Monter10000  
Igor Makanu:

это все ясно, я не помню как с enum работать, там можно сделать конвертацию без решения "влоб" как я пример привел ф-ции 

ENUM_DAY_OF_WEEK DayOfWeekRusToDayOfWeek(ENUM_DAY_OF_WEEK_RUS element)

Ну это получается выбор определенного дня недели только,то есть советник будет закрывать все ордера только в определенный день. А мне еще нужно чтоб в этом же списке выдавались еще два дополнительных параметра "каждый день и совсем не закрывать". Как это сделать?

Igor Makanu
9909
Igor Makanu  
Monter10000:

Как это сделать?

для начала научиться читать справку и проверять те коды которые Вам предложили для экспериментов, за 15 минут Вы не смогли бы это успеть сделать

если речь идет "о как сделать" чужими руками, фриланс в помощь, появятся вопросы, показывайте пример, где Вы пытались найти решение, но не код который Вы правите не хотя обучаться

Monter10000
81
Monter10000  
Aleksey Lebedev:

Можно как-то так:

Вставил Ваш код,не работает. Выдает no OnStart function defined in the script 0 0


Monter10000
81
Monter10000  
Igor Makanu:

для начала научиться читать справку и проверять те коды которые Вам предложили для экспериментов, за 15 минут Вы не смогли бы это успеть сделать

если речь идет "о как сделать" чужими руками, фриланс в помощь, появятся вопросы, показывайте пример, где Вы пытались найти решение, но не код который Вы правите не хотя обучаться

Справку я читал до того как задать вопрос на форуме. Если вам больше нечего ответить,то спасибо вам за ответы! Именно в ваших советах больше не нуждаюсь! Удачи!

Aleksey Lebedev
7473
Aleksey Lebedev  

Monter10000:

Можно как-то так:А вот у Вас там два input используется,для чего два?

Во втором стандартный enum, в первом кастомный. Для сравнения, одного будет достаточно.

А мне еще нужно чтоб в этом же списке выдавались еще два дополнительных параметра "каждый день и совсем не закрывать". Как это сделать?

enum ENUM_DAY_OF_WEEK_RUS
   {
   day0,//Воскресение
   day1,//Понедельник
   day2,//Вторник
   day3,//Среда
   day4,//Четверг
   day5,//Пятница
   day6,//Суббота
   mod7,//Каждый день
   mod8//Совсем не закрывать
   };

input ENUM_DAY_OF_WEEK_RUS dayRus   = 0;
Monter10000
81
Monter10000  
Aleksey Lebedev:

Во втором стандартный enum, в первом кастомный. Для сравнения, одного будет достаточно.

Спасибо Вам большое за пояснение! А то я сначала пытался сам разобраться по справке,но пока моих знаний не хватило,пробовал по разному,но только ошибки выдавало. Сейчас попробую как Вы написали. Еще раз спасибо!

12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий