Полнофункциональный робот для МТ5 - страница 5

 

Доброе утро!

в тестере не хочет открывать позицию выдаёт ошибку 

ERR_TRADE_SEND_FAILED

4756

Не удалось отправить торговый запрос

Rbtg_NYCInclude tester

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

думаю что то тут нужно исправить

Rbtg_NYCInclude kod

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

сейчас попытаюсь заменить эту функцию на эту 

//+------------------------------------------------------------------+
//| Check for long position opening                                  |
//+------------------------------------------------------------------+
bool CSampleExpert::LongOpened(void)
  {
   bool res=false;
//--- check for long position (BUY) possibility

           {
            double price=m_symbol.Ask();
            double tp   =m_symbol.Bid()+m_take_profit;
            //--- check for free money
            if(m_account.FreeMarginCheck(Symbol(),ORDER_TYPE_BUY,InpLots,price)<0.0)
               printf("We have no money. Free Margin = %f",m_account.FreeMargin());
            else
              {
               //--- open position
               if(m_trade.PositionOpen(Symbol(),ORDER_TYPE_BUY,InpLots,price,0.0,tp))
                  printf("Position by %s to be opened",Symbol());
               else
                 {
                  printf("Error opening BUY position by %s : '%s'",Symbol(),m_trade.ResultComment());
                  printf("Open parameters : price=%f,TP=%f",price,tp);
                 }
              }
            //--- in any case we must exit from expert
            res=true;
           }
//--- result
   return(res);
  }
//+------------------------------------------------------------------+
//| Check for short position opening                                 |
//+------------------------------------------------------------------+
bool CSampleExpert::ShortOpened(void)
  {
   bool res=false;
//--- check for short position (SELL) possibility

           {
            double price=m_symbol.Bid();
            double tp   =m_symbol.Ask()-m_take_profit;
            //--- check for free money
            if(m_account.FreeMarginCheck(Symbol(),ORDER_TYPE_SELL,InpLots,price)<0.0)
               printf("We have no money. Free Margin = %f",m_account.FreeMargin());
            else
              {
               //--- open position
               if(m_trade.PositionOpen(Symbol(),ORDER_TYPE_SELL,InpLots,price,0.0,tp))
                  printf("Position by %s to be opened",Symbol());
               else
                 {
                  printf("Error opening SELL position by %s : '%s'",Symbol(),m_trade.ResultComment());
                  printf("Open parameters : price=%f,TP=%f",price,tp);
                 }
              }
            //--- in any case we must exit from expert
            res=true;
           }
//--- result
   return(res);
  }
//+------------------------------------------------------------------+
 
SanAlex:

Доброе утро!

в тестере не хочет открывать позицию выдаёт ошибку 

ERR_TRADE_SEND_FAILED

4756

Не удалось отправить торговый запрос

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

думаю что то тут нужно исправить


Да. Это у Вас дилер-Форексклаб для них тип ордера ФайлингФок. Погуляю с песом и поправим. Не подумал, что на Форексклабе ещё кто-то остался...

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

Да. Это у Вас дилер-Форексклаб для них тип ордера ФайлингФок. Погуляю с песом и поправим. Не подумал, что на Форексклабе ещё кто-то остался...

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


Добавлено.

Пример можно смотреть в торговом классе CTrade

SetMarginMode

Устанавливает режим расчета маржи в соответствии с настройками текущего счета

SetTypeFillingBySymbol

Устанавливает тип ордера по исполнению согласно настройкам указанного символа

Документация по MQL5: Стандартная библиотека / Торговые классы / CTrade / SetMarginMode
Документация по MQL5: Стандартная библиотека / Торговые классы / CTrade / SetMarginMode
  • www.mql5.com
SetMarginMode - CTrade - Торговые классы - Стандартная библиотека - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
ElenaFxPro4:

Да. Это у Вас дилер-Форексклаб для них тип ордера ФайлингФок. Погуляю с песом и поправим. Не подумал, что на Форексклабе ещё кто-то остался...

не заметил - точно у Вас тут брокер ещё прописан

Rbtg_NYCInclude kod 01 

 

Во заработал 

Rbtg_NYCInclude tester 01

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

         ENUM_ORDER_TYPE_FILLING TypeFilling = ORDER_FILLING_FOK;
         if (AccountInfoString(ACCOUNT_COMPANY)=="Alpari") TypeFilling = ORDER_FILLING_IOC;

местами поменял -----------

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

вроде пока красиво идёт 

Снимок 345

 
SanAlex:

Во заработал 

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

местами поменял -----------

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

вроде пока красиво идёт 


поскольку происходит предварительное тестирование алгоритмом, интересно - результат совпадает?
 
Renat Akhtyamov:
поскольку происходит предварительное тестирование алгоритмом, интересно - результат совпадает?

пока тестирую на минутном - комп слабенький, тестирование медленно идёт.

на первый взгляд так себе - посмотрим конечный результат.

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

ошибок в тестере от Эксперта нет  

 
SanAlex:

Доброе утро!

в тестере не хочет открывать позицию выдаёт ошибку 

ERR_TRADE_SEND_FAILED

4756

Не удалось отправить торговый запрос

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

думаю что то тут нужно исправить

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

сейчас попытаюсь заменить эту функцию на эту 

Не нужно.

119 строка должна быть такой        if (AccountInfoString(ACCOUNT_COMPANY)=="Alpari" || AccountInfoString(ACCOUNT_COMPANY)=="Forex Club International Limited")  TypeFilling = ORDER_FILLING_FOK;

и для AUTOOrderSELL тоже самое. И ВСЁ. :)


 
ElenaFxPro4:

Не нужно.

119 строка должна быть такой        if (AccountInfoString(ACCOUNT_COMPANY)=="Alpari" || AccountInfoString(ACCOUNT_COMPANY)=="Forex Club International Limited")  TypeFilling = ORDER_FILLING_FOK;

и для AUTOOrderSELL тоже самое. И ВСЁ. :)


ну пока так оставлю - после теста исправлю 

- не хочу останавливать тестер 

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

одно плохо сейчас тест идёт - и я кажись здесь через-щур завысил

Снимок 3456 

 
Vladimir Karputov:

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


Добавлено.

Пример можно смотреть в торговом классе CTrade

SetMarginMode

Устанавливает режим расчета маржи в соответствии с настройками текущего счета

SetTypeFillingBySymbol

Устанавливает тип ордера по исполнению согласно настройкам указанного символа

Спасибо большое. Безусловно нужно на автомате, но не смог найти как, потому слепил заплатку в виде тупого указания какому брокеру чего надо :) Их то всего 2. Переделаем. Спасибо.