Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Получи статус продавца и начни продавать свои сигналы!
Vassa
12
Vassa 2011.01.30 19:44 

Создаю эксперта при помощи Мастера MQL5 (стандартная библиотека), но в нем если уже есть открытая позиции не происходит доливки.

Хотел поменять поведение, но никак не получается разобраться где зашита проверка. 

Подскажите куда смотреть? 

Victor Kirillin
491
Victor Kirillin 2011.01.31 11:01  
Vassa:

Создаю эксперта при помощи Мастера MQL5 (стандартная библиотека), но в нем если уже есть открытая позиции не происходит доливки.

Хотел поменять поведение, но никак не получается разобраться где зашита проверка. 

Подскажите куда смотреть? 

Проверка "зашита" в методе bool CExpert::Processing()

bool CExpert::Processing()
  {
//--- check if open positions
   if(m_position.Select(m_symbol.Name()))
     {
      //--- open position is available
      //--- check the possibility of reverse the position
      if(CheckReverse()) return(true);
      //--- check the possibility of closing the position/delete pending orders
      if(!CheckClose())
        {
         //--- check the possibility of modifying the position
         if(CheckTrailingStop()) return(true);
         //--- return without operations
         return(false);
        }
     }
//--- check if plased pending orders

Смотрите на подчёркнутую строчку. Именно она отвечает за то, что если есть открытая позиция и ни каких действий с ней (позицией) не производилось (не развернули, не закрыли и не модифицировали), то //--- return without operations.

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

Выхода два:

1. "Простой". Скопировать куда-нибудь файл Expert.mqh, и править копию. При этом нужно будет изменить путь к файлу Expert.mqh в Вашем эксперте (файле ???.mq5).

    У этого "выхода" есть один крупный недостаток: при изменениях стандартной библиотеки (а смею Вас заверить, изменения ещё будут), Ваш эксперт может их (изменения) не заметить.

2. "Правильный". Создать свой класс, унаследовав его от базового класса CExpert (типа CMyExpert : public CExpert). В своём классе потребуется переопределить только один метод:

   virtual bool      Processing();
    далее, Вы можете его (переопределённый метод) наполнять своим функционалом ни чего не боясь.


Валерий
1436
Валерий 2011.01.31 15:55  
uncleVic:

    У этого "выхода" есть один крупный недостаток: при изменениях стандартной библиотекисмею Вас заверить, изменения ещё будут)


А когда 'Стандартеная библиотека' станет действительно Стандартной, замучился уже после каждой корректировки переделывать работающие на её основе скрипты , эксперты под новый 'имидж'.

Так мы никогда на реальный реал не выйдем. Кому нужны такие неожиданности, как-то, все сделки, позиции, начинают восприниматься, как Buy, в результате замены просто Type в методах классов СDealInfo, CPositiionInfo, CIOrderInfo на DealType, PositionType, OrderType ? И даже ошибки компиляции не выдаётся, только предупреждение о приведении типов.

Victor Kirillin
491
Victor Kirillin 2011.01.31 16:38  
Valmars:

А когда 'Стандартеная библиотека' станет действительно Стандартной, замучился уже после каждой корректировки переделывать работающие на её основе скрипты , эксперты под новый 'имидж'.

Так мы никогда на реальный реал не выйдем. Кому нужны такие неожиданности, как-то, все сделки, позиции, начинают восприниматься, как Buy, в результате замены просто Type в методах классов СDealInfo, CPositiionInfo, CIOrderInfo на DealType, PositionType, OrderType ? И даже ошибки компиляции не выдаётся, только предупреждение о приведении типов.

Мне очень жаль, но пришлось изменить наследование классов (для удобства дальнейшего использования). Такие "злобные" изменения, я думаю, были в последний раз.
Vladimir Batrudinov
4875
Vladimir Batrudinov 2011.01.31 17:29  
uncleVic:
Мне очень жаль, но пришлось изменить наследование классов (для удобства дальнейшего использования). Такие "злобные" изменения, я думаю, были в последний раз.
Боюсь что нет, хотя надеюсь на обратное...
Комбинатор
15652
Комбинатор 2011.02.01 11:50  
Interesting:
Боюсь что нет, хотя надеюсь на обратное...
Не-не. Бесполезно.
/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий