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

 
odyn:

Привет знатокам!

Есть вот такой код :

struct STRUCT_POSITION { \...\}

STRUCT_POSITION SPosition[];

Вопрос: 

Что такое STRUCT_POSITION SPosition[];  ?? Если это создание экземпляра структуры, то почему динамический массив? Разве так можно? Зачем?


Буду очень благодарен за ответ.

Объявление структуры struct STRUCT_POSITION { \...\}, это создание пользовательского типа данных. А STRUCT_POSITION SPosition[]; объявление переменной пользовательского типа. На то, что переменная является массивом указывают квадратные скобки [] Можно объявить несколько переменных пользовательского типа как и любого другого типа.

double a, b[];

STRUCT_POSITION Pos, SPosition[];// при условии, что структура уже создана.
В этой записи тип, переменная, массив
 
Доброго всем, времени суток.
У меня, на одном из устройств на андроиде, перестал работать МТ5
Просто так перестал. Ничего не менял, не настраивал.
Выглядит, как на скрине.
Инет есть, все остальное работает.
Там только демо счет 
Сорри, если не туда
Файлы:
 

Существует ли какая-то утилита (вроде WatchDog) для перезапуска МТ5.


Допустим МТ5 из за какой-то ошибки закрылся.  Как можно удаленно это сразу отследить и запустить  МТ5. 

Для МТ4 я использую MT4bar. Нужно что-то похожее под МТ5. 

 

Добрый день.

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

А делаю я два решения для тестирования новостей. Есть базовый класс CNewsFilter и два наследуемых CNewsFilterLive и CNewsFilterTester. Я хочу определять в своем коде CNewsFilter объект. А он уже автоматически выбирает класс в зависимости от того, какой режим запущен. Но что-то не получается. Вот базовый класс, я оставил лишь метод Init() для примера.

//+------------------------------------------------------------------+
//| News Filter Class                                                |
//+------------------------------------------------------------------+
class CNewsFilter
  {
protected:
   //---
public:
                     CNewsFilter(void);
                    ~CNewsFilter(void);
   virtual bool      Init(string,int);
   virtual void      Deinit(void);                    
   virtual bool      CheckNews(ENUM_NEWS_TYPE &type);
  };
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
bool CNewsFilter::Init(string symbol_name,int magic_number)
  {
   return true;
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
#ifdef __MQL5__//MQL_TESTER || MQL_VISUAL_MODE
#include <NewsFilterTester.mqh>
#else
#include <NewsFilterLive.mqh>
#endif

Наследуемый класс:

//+------------------------------------------------------------------+
//| News Filter Class                                                |
//+------------------------------------------------------------------+
class CNewsFilterTester : public CNewsFilter
  {
protected:
public:
                     CNewsFilterTester(void);
                    ~CNewsFilterTester(void);
   virtual bool      Init(string,int);
   virtual void      Deinit(void);                    
   virtual bool      CheckNews(ENUM_NEWS_TYPE &type);
  };
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
CNewsFilterTester::CNewsFilterTester() :  m_delimiter('\t')
  {
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
CNewsFilterTester::~CNewsFilterTester(void)
  {
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
bool CNewsFilterTester::Init(string symbol_name,int magic_number)
  {
   // some code
   return true;
  }

А потом вызываю в коде своего советника:

#include <NewsFilter.mqh>
....
CNewsFilter    news_filter;

news_filter.Init(Symbol(),MagicNumber);

При отладке никогда не попадают в наследуемый класс СNewsFilterTester, в который должен попадать согласно директиве базового класса, которую я добавил в конец кода базового класса. __MQL5__ здесь лишь для примера. Как это сделать с тестером - это другой вопрос. Пока не работает сама идея - не вызываются методы наследуемого класса. При вызове Init() не идет в Init() наследуемого класса - в данном примере СNewsFilterTester. Помогите, пожалуйста.

#ifdef __MQL5__//MQL_TESTER || MQL_VISUAL_MODE
#include <NewsFilterTester.mqh>
#else
#include <NewsFilterLive.mqh>
#endif
 
leonerd:

Добрый день.

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

А делаю я два решения для тестирования новостей. Есть базовый класс CNewsFilter и два наследуемых CNewsFilterLive и CNewsFilterTester. Я хочу определять в своем коде CNewsFilter объект. А он уже автоматически выбирает класс в зависимости от того, какой режим запущен. Но что-то не получается. Вот базовый класс, я оставил лишь метод Init() для примера.

Наследуемый класс:

А потом вызываю в коде своего советника:

При отладке никогда не попадают в наследуемый класс СNewsFilterTester, в который должен попадать согласно директиве базового класса, которую я добавил в конец кода базового класса. __MQL5__ здесь лишь для примера. Как это сделать с тестером - это другой вопрос. Пока не работает сама идея - не вызываются методы наследуемого класса. При вызове Init() не идет в Init() наследуемого класса - в данном примере СNewsFilterTester. Помогите, пожалуйста.

Здесь

#include <NewsFilter.mqh>
....
CNewsFilter    news_filter;

news_filter.Init(Symbol(),MagicNumber);

вы создаёте объект базового класса. Соответственно - базовый класс у вас везде.

 

Как правильно писать условие : 

так

if(((MASlowHandle - PBid) > 0.0002) && ((MASlowHandle - MAFastHandle) > 0.0002))

или так:

if((MASlowHandle - PBid) > 0.0002 && (MASlowHandle - MAFastHandle) > 0.0002)

??

 
odyn:

Как правильно писать условие : 

так

или так:

??

Не принципиально. Можно даже так

if(MASlowHandle - PBid > 0.0002 && MASlowHandle - MAFastHandle > 0.0002)

По приоритету арифметические действия выше логических.

А вот если в условии есть и && и || то предпочтительней разделить скобками чтобы самому понимать было проще.

 
Alexey Viktorov:

Не принципиально. Можно даже так

По приоритету арифметические действия выше логических.

А вот если в условии есть и && и || то предпочтительней разделить скобками чтобы самому понимать было проще.

Спасибо за ответ!

 

По какой причине я не могу опубликовать код?

Я всегда получаю сообщение:

Проверка кода завершена с ошибками:
Обнаружены ошибки при проверке кода Торговая статистика Отчет в реальном времени.
https://www.mql5.com/en/code/28074/230766

Но я не понимаю причину ошибки публикации кода.

Пожалуйста, ответьте мне по этому поводу.

В чем проблема, по крайней мере, это должно быть выделено.

 
jaffer wilson:

По какой причине я не могу опубликовать код?

Я всегда получаю сообщение:

Проверка кода завершена с ошибками:
Обнаружены ошибки при проверке кода Торговая статистика Отчет в реальном времени.
https://www.mql5.com/en/code/28074/230766

Но я не понимаю причину ошибки публикации кода.

Пожалуйста, ответьте мне по этому поводу.

В чем проблема, по крайней мере, это должно быть выделено.

Где вопрос? Какие именно ошибки? Извините, все телепаты в отпуске.

Click

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