Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Почитай интервью участников Automated Trading Championship
Mike Kharkov
846
Mike Kharkov 2014.11.16 23:15 
Доброй ночи.
На демо счете код работает нормально.
Поставил потестить на истории на реальном счете.
(Депозит там нулевой)
И советник отказывается совершать сделку:
"failed market buy 0.01 NZDCHF.m [Invalid volume]"

Код запроса на покупку выглядит следующим образом:

bool SendOrderBuy(double price, double volume, double pos_prof, double prc_bid)
{  
   
   if(volume >= 50){
       volume = 50;
   }
   
   /*----------
   
   else if(volume >= 500){
      Print("ОШИБКА! Обьем Ордера привысил размер 50 лотов и сейчас ровняется", volume,"-м");
      return(false);
   };
   
   ------------*/

   MqlTradeRequest request = {0};
   MqlTradeResult  result  = {0};
   //---заполняем поля торгового запроса
   request.action       = TRADE_ACTION_DEAL;       // Тип выполняемого действия
   request.symbol       = _Symbol;                 // Имя торгового инструмента
   request.magic        = magic_number;            // Магический Ордер
   request.volume       = volume;                  // Запрашиваемый объем сделки в лотах
   request.price        = price;                   // Цена  
   request.type         = ORDER_TYPE_BUY;          // Тип ордера
   request.tp           = 0;                       // Цена, по которой сработает Take Profit ордер при движении цены в благоприятном направлении
   request.sl           = 0;                       // Цена, по которой сработает Stop Loss ордер при движении цены в неблагоприятном направлении
   request.deviation    = 0;                       // Максимально приемлемое отклонение от запрашиваемой цены, задаваемое в пунктах
   request.type_filling = ORDER_FILLING_IOC;       // Тип ордера по исполнению
   request.type_time    = ORDER_TIME_DAY;          // Тип  длительности действия ордера               
                  
                  
   //---проверим хватает ли средств для открытия позиции
        double margin = 0.0;
                     
   if (!OrderCalcMargin(request.type, request.symbol, request.volume, request.price, margin))
                        return(false);
                     
   if (margin > AccountInfoDouble(ACCOUNT_FREEMARGIN))
                        return(false);
                  
                     
   //---отправка запроса на сервер и проверка результата отправки
   if (OrderSend(request,result))
       {
         if ( result.retcode == TRADE_RETCODE_DONE)
              {
                 return (true);
              };
            };

                                                  
                     return(false);
   };// функция торгового запроса-------------------------------------------------------------------------------------------------+  
Вопрос: 

В чем может быть проблема?


+ такой момент для себя хотел ещё выяснить:

Допустим я хочу перебрать все инструменты существующие, по нужным мне 
критериям и что бы в одном советнике можно было торговать сразу на всех 
инструментах.

Как это можно реализовать правильно?

Что конкретно прописать необходимо?

(в общем саму идею(максимально рациональную) хотелось бы увидеть.)



P.S. Буду благодарен за советы.

Mike Kharkov
846
Mike Kharkov 2014.11.17 01:00  
Mike_Kharkov:
И советник отказывается совершать сделку:
"failed market buy 0.01 NZDCHF.m [Invalid volume]"
    С этим вроде разобрался.
    На том типе счета просто нельзя тоговать сотыми долями лота(микролота).
    Остается вопрос с перебором инструментов...
  
    P.S. Во время тестирования на истории мне так же непонятен момент со свопами:
    Если я торгую объемом 0.01(на демо на истории) или объемом 0.1(на реале на истории) то своп взымается(или начисляется) таким образом, как будто я торгую одним лотом!?
   
    Почему это происходит?
    Это же полная дезинформация для новичков получается.
    (от этого же очень сильно результаты тестирования зависеть могут в некоторых стратегиях.)
Alexey Da
Модератор
6580
Alexey Da 2014.11.17 11:43  

Какой билд клиентского терминала вы используете?

Какие настройки свопов по инструменту на сервере?

Можете приложить отчет тестера?

Andrey Barinov
39221
Andrey Barinov 2014.11.17 13:33  
alexvd:

Какой билд клиентского терминала вы используете?

Какие настройки свопов по инструменту на сервере?

Можете приложить отчет тестера?

Провел похожий тест. В билде 1010 свопы по паре GBPUSD для всех сделок (0.1 -0.24 лотов) считаются как для сделок объемом 1 лот. В билде 1014 этого уже не наблюдается и свопы выглядят правильными...
Mike Kharkov
846
Mike Kharkov 2014.11.17 17:24  
alexvd:

Какой билд клиентского терминала вы используете?

Какие настройки свопов по инструменту на сервере?

Можете приложить отчет тестера?

   Использую Билд 1010.
   Насколько я понял - все что до 1-го лота(объемы) считаются по свопам как 1 лот.
   Отчет пока не могу приложить.
   Файлы(TXT) в логах по удалял в свое время(что бы они винт не грузили своим объемом.) - теперь ничего там нет. ))

   P.S. А обновиться как то можно до билда 1014?
   (и почему автоматичеcкого обновления не произошло(до последней версии) в таком случае?)
Alexey Da
Модератор
6580
Alexey Da 2014.11.18 09:14  
Mike_Kharkov:

   P.S. А обновиться как то можно до билда 1014?
   (и почему автоматичеcкого обновления не произошло(до последней версии) в таком случае?)
На MetaQuotes-Demo выложен билд 1016. Там проблема с расчетом свопов уже исправлена.
Andrey Barinov
39221
Andrey Barinov 2014.11.18 10:22  
alexvd:
На MetaQuotes-Demo выложен билд 1016. Там проблема с расчетом свопов уже исправлена.

В версии 1016 походу что-то сломалось с работой с файлами в облаке.

Появилась такая ошибка (только при использовании облака):

2014.11.18 11:15:42    Tester    expert file C:\Users\a.barinov\AppData\Roaming\MetaQuotes\Terminal\Common\Files\calendar_statement.csv process error

В билдах 1010 и 1014 все работало...

Андрей.

Alexey Da
Модератор
6580
Alexey Da 2014.11.18 13:39  
Wahoo:

В версии 1016 походу что-то сломалось с работой с файлами в облаке.

Появилась такая ошибка (только при использовании облака):

2014.11.18 11:15:42    Tester    expert file C:\Users\a.barinov\AppData\Roaming\MetaQuotes\Terminal\Common\Files\calendar_statement.csv process error

В билдах 1010 и 1014 все работало...

Андрей.

Давайте все подробности + исходник в сервисдеск.
Andrey Barinov
39221
Andrey Barinov 2014.11.18 14:00  
alexvd:
Давайте все подробности + исходник в сервисдеск.

Запостил.

File processing error
Ошибки, MetaTrader 5 Client, Открыта, Начата: 2014.11.18 13:59, #1106690
/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий