Ошибки, баги, вопросы - страница 2346

 
Aleksey Vyazmikin:

Раз тиков нет, то спред одинаковый на всем промежутке тестирования, а он маленький.

Посмотрите MqlRates.

 
fxsaber:

Посмотрите MqlRates.

Что я там должен был увидеть?

 

Обратите внимание на заявку 

Не обработанаНачата: 2018.12.17 14:19#2224434

 
Igor Makanu:

пример очевидного покажете?

Может CArrayObj поможет?

Документация по MQL5: Стандартная библиотека / Коллекции данных / CArrayObj
Документация по MQL5: Стандартная библиотека / Коллекции данных / CArrayObj
  • www.mql5.com
Класс CArrayObj обеспечивает возможность работы с динамическим массивом указателей на экземпляры класса CObject и его наследников. Это дает возможность работы как с многомерными динамическими массивами примитивных типов данных, так и с более сложно организованными структурами данных. В классе реализованы возможности добавления/вставки/удаления...
 
Artyom Trishkin:

Может CArrayObj поможет?

спасибо Артем, но не туда, тут в принципе проблема, что хочу класс MyClass  как typedef  описать и потом все макроподстановками в стандартных функциях обработки событий расставить

как писал выше, чтобы в OnInit() макроподстановки  сделали такой код:

void OnInit( void )
{
  m_class1.OnInit();
  m_class2.OnInit();
  m_class3.OnInit();
.....

для одного экземпляра класса m_class @fxsaber помог, подсказал как обернуть в дефайны, а для 3-х... ну пока никак 

 
Igor Makanu:

спасибо Артем, но не туда, тут в принципе проблема, что хочу класс MyClass  как typedef  описать и потом все макроподстановками в стандартных функциях обработки событий расставить

как писал выше, чтобы в OnInit() макроподстановки  сделали такой код:

для одного экземпляра класса m_class @fxsaber помог, подсказал как обернуть в дефайны, а для 3-х... ну пока никак 

Для однотипного класса решение уже подсказали: унаследуйте его от CObject, и макроподстановку добавьте в класс-менеджер, который будет хранить все добавленные экземпляры в CArrayObj, перебирать его и вызывать нужную OnXXX-функцию.

А вот для разных библиотек у меня тоже не получилось это реализовать. Чтобы одной строкой подключать несколько библиотек с такими макро-подстановками, и чтобы при вызове OnTick вызывался OnTick всех библиотек.

 
Andrey Khatimlianskii:

А вот для разных библиотек у меня тоже не получилось это реализовать. Чтобы одной строкой подключать несколько библиотек с такими макро-подстановками, и чтобы при вызове OnTick вызывался OnTick всех библиотек.

Что-то сильно не догоняю даже примера, что хочется получить. Можете показать?


ЗЫ Что касается менеджера, то см. EventBase.mqh здесь. Тупо сделал всех наследниками и при появлении нового объекта его указатель попадал в общий список, который вызывался циклом for в каждом On-событии.

 
fxsaber:

Что-то сильно не догоняю даже примера, что хочется получить. Можете показать?

MyClass_1.mqh:

class Myclass_1
  {
public:
   void              OnInit(){Print("Init 1");};
  };


MyClass_2.mqh:

class Myclass_2
  {
public:
   void              OnInit(){Print("Init 2");};
  };


Expert.mq5:

#include <MyClass_1.mqh>
#include <MyClass_2.mqh>

Myclass_1 m_class_1;
Myclass_2 m_class_2;

void OnInit( void )
{
  Print( "Init EA" );
}


Чтобы в результате выполнения получить все 3 принта: "Init 1", "Init 2" и "Init EA"

 

Всем, привет.

Вызываю из эксперта функцию  IndicatorParameters, но получаю ошибку 4014. Почему это может быть - подскажите? Build 1960.

 
Andrey Khatimlianskii:

Чтобы одной строкой подключать несколько библиотек с такими макро-подстановками, и чтобы при вызове OnTick вызывался OnTick всех библиотек.

Сделать макрос-обертку вокруг импорта которая формирует класс по имени либы (class##libname) и использует контекст для вызова внутри обертки (libname::oninit)

ну а класс подсовывается вышеупомянутому менеджеру.

только для каждой либы отдельная строка.