Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 1382

 
aleksan2021 #:

я не собираюсь работать с этим брокером, мне его история нужна

что за брокер-то если не секрет? и что за эксклюзивная история там?

 
Здравствуйте. При попытке тестирования в визуальном режиме, тест вылетает с ошибкой: "tester stopped because OnInit returns non-zero code 1". Подскажите, из-за чего возникает и как исправить
 
Juliya #:
Здравствуйте. При попытке тестирования в визуальном режиме, тест вылетает с ошибкой: "tester stopped because OnInit returns non-zero code 1". Подскажите, из-за чего возникает и как исправить

OnInit() возвращает не ноль

 
Здравствуйте. А как программно узнать символ и таймфрейм активного чарта в клиентском терминале? Т.е. чарта выбранного в настоящее время во вкладке. Есть какая-то функция из MQL5 для этого?
 

leonerd #:
Здравствуйте. А как программно узнать символ и таймфрейм активного чарта в клиентском терминале? Т.е. чарта выбранного в настоящее время во вкладке. Есть какая-то функция из MQL5 для этого?

long  ChartGetInteger(
   long  chart_id,          // идентификатор графика
   int   prop_id,           // идентификатор свойства
   int   sub_window=0       // номер подокна, если требуется
   );

CHART_BRING_TO_TOP

Показ графика поверх всех других

bool  


string  ChartSymbol(
   long  chart_id=0      // идентификатор графика
   );
ENUM_TIMEFRAMES  ChartPeriod(
   long  chart_id=0      // идентификатор графика
   );

Как определить идентификатор графика тоже показать?

Документация по MQL5: Операции с графиками
Документация по MQL5: Операции с графиками
  • www.mql5.com
Операции с графиками - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Alexey Viktorov #:

CHART_BRING_TO_TOP

Показ графика поверх всех других

bool  


Как определить идентификатор графика тоже показать?

https://www.mql5.com/ru/docs/constants/chartconstants/charts_samples#chart_foreground

Спасибо. CHART_FOREGROUND наверное больше всего подходит. Мне же не надо принудительно устанавливать активный график, а лишь определить тот, который активен. Правильно ли я понимаю, что придется пройтись по всем открытым графикам с проверкой  CHART_FOREGROUND ?

Документация по MQL5: Константы, перечисления и структуры / Константы графиков / Примеры работы с графиком
Документация по MQL5: Константы, перечисления и структуры / Константы графиков / Примеры работы с графиком
  • www.mql5.com
Примеры работы с графиком - Константы графиков - Константы, перечисления и структуры - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
leonerd #:

https://www.mql5.com/ru/docs/constants/chartconstants/charts_samples#chart_foreground

Спасибо. CHART_FOREGROUND наверное больше всего подходит. Мне же не надо принудительно устанавливать активный график, а лишь определить тот, который активен. Правильно ли я понимаю, что придется пройтись по всем открытым графикам с проверкой  CHART_FOREGROUND ?

CHART_FOREGROUND это график сверху

А чтобы не ставить принудительно, надо ChartSetInteger заменить на ChartGetInteger

 

Добрый день. 
Могли бы вы подсказать - есть мысли о роботе и там четыре разных условия - какие из них убирать я пока не знаю: хочу это выяснить потом при оптимизации на разных временных периодах. 

То есть: четыре условия (f1,f2,f3,f4). Комбинаций может быть много (0,0,1,1) или (1,0,1,0) и так далее - всего 16 комбинаций. Точнее 15 - вариант (0, 0, 0, 0) не рассматриваем.

Вопрос: как составить логику программы чтобы не описывать в коде все 15 комбинаций. Есть функция проверки каждого из этих условий, а то в каких комбинациях эти условия применяются - проверять как то иначе.

Буду рад если покажете какого нибудь советника, который при лаконичном коде допускает введение множества условий.

 
qadexys #:

Добрый день. 
Могли бы вы подсказать - есть мысли о роботе и там четыре разных условия - какие из них убирать я пока не знаю: хочу это выяснить потом при оптимизации на разных временных периодах. 

То есть: четыре условия (f1,f2,f3,f4). Комбинаций может быть много (0,0,1,1) или (1,0,1,0) и так далее - всего 16 комбинаций. Точнее 15 - вариант (0, 0, 0, 0) не рассматриваем.

Вопрос: как составить логику программы чтобы не описывать в коде все 15 комбинаций. Есть функция проверки каждого из этих условий, а то в каких комбинациях эти условия применяются - проверять как то иначе.

Буду рад если покажете какого нибудь советника, который при лаконичном коде допускает введение множества условий.

Можно так:

input bool F1;
input bool F2;
input bool F3;
input bool F4;

   ...
   if(  ( !F1 || f1)
      &&( !F2 || f2)
      &&( !F3 || f3)
      &&( !F4 || f4)
     )
     {
      open_pos();
     }
   ...

Или как-то так:

#define MODE_f1    0x1
#define MODE_f2    0x2
#define MODE_f3    0x4
#define MODE_f4    0x8

bool expert::create_strategy(ulong m, int om, int cm)
  {
   magic=m;
   open_mode=om;
   close_mode=cm;
   ...
  }

int OnInit()
  {
   ...
   my_strat[i].create_strategy(MAGIC, MODE_f1|MODE_f2|MODE_f4,MODE_c2|MODE_c3);
   ...
  }

expert::check_open()
  {
   ...
   if(  ((open_mode & MODE_f1)==0 || f1)
      &&((open_mode & MODE_f2)==0 || f2)
      &&((open_mode & MODE_f3)==0 || f3)
      &&((open_mode & MODE_f4)==0 || f4)
     )
     {
      open_pos();
     }
   ...
  }
 
Alexey Viktorov #:

CHART_FOREGROUND это график сверху

А чтобы не ставить принудительно, надо ChartSetInteger заменить на ChartGetInteger

спасибо