Не пойму- баг в тестере МТ5? - страница 2

 
Vladimir Karputov:

Нужен минимально воспроизводимый код + проверить на MetaQuotes-Demo.

Так Вы мало того, что не на Windows, Вы запускаетесь из под Wine, при этом пользуете Windows XP. 

 

Тесты проводите сначала на Windows и не на "хромой кобыле", а на современной операционке и на сервере MetaQoutes-Demo. 

извините, наверное я ГДЕ-ТО не разглядел мин. требования!! к системе, или дисклаймер о том,что на "хромой" кобыле,как вы выразились, результаты будут отличаться - это раз!

два -  я наоборот почему-то вижу, что линукс заявлен в поддержке!


а так же из официальной статьи компании

Известные проблемы

Как уже отмечалось выше, Wine не является полностью стабильным приложением. Соответственно, некоторые функции терминала MetaTrader 5 могут работать некорректно. На данный момент выявлены следующие проблемы:

    Не функционирует MQL5 Маркет

За исключением вышеуказанной проблемы, вы можете полноценно пользоваться всеми функциями терминала MetaTrader 5 в Linux.
и ни слова не сказано, КАКУЮ винду я должен эмулировать через wine,а наоборот заявлено,что все будет работать,как положено. так что ваше заявление просто вброс. "хромая" кобыла вполне себе скачет на всех четырех.
 

Проверочный советник:

//+------------------------------------------------------------------+
//|                                              Exchange_CTrade.mq5 |
//|                        Copyright 2016, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#include <Trade\PositionInfo.mqh>
#include <Trade\Trade.mqh>
//--- global variable
CPositionInfo  m_position;                   // trade position object
CTrade         m_trade;                      // trading object
bool     IN=true;
bool     OUT=true;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   SymbolSelect("EURJPY",true);
   SymbolSelect("USDJPY",true);
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   double open_EURJPY=iOpen(0,"EURJPY",PERIOD_M30);
   double open_USDJPY=iOpen(0,"USDJPY",PERIOD_M30);
   if(IN)
     {
      if(TimeCurrent()>D'2016.08.13 19:00:00')
        {
         datetime date=TimeCurrent();
         IN=false;
         m_trade.Sell(1.00,"EURJPY");
         m_trade.Buy(0.76,"USDJPY");
        }
     }
   if(OUT)
     {
      if(TimeCurrent()>D'2016.09.16 15:00:00')
        {
         datetime date=TimeCurrent();
         OUT=false;
         for(int i=PositionsTotal()-1;i>=0;i--)
           {
            if(m_position.SelectByIndex(i))
              {
               Print("Start Close");
               m_trade.PositionClose(m_position.Ticket());
               uint     retcode             = m_trade.ResultRetcode();
               string   retcode_description = m_trade.ResultRetcodeDescription();
               string   comment             = m_trade.ResultComment();
               Print("End close. Ticket ",m_position.Ticket(),
                     ": Retcode ",retcode,
                     ", RetcodeDescription ",retcode_description,
                     ", Comment ",comment);
              }
           }
        }
     }
  }
//+------------------------------------------------------------------+
//| Get Open for specified bar index                                 |
//+------------------------------------------------------------------+
double iOpen(const int index,string symbol=NULL,ENUM_TIMEFRAMES timeframe=PERIOD_CURRENT)
  {
   if(symbol==NULL)
      symbol=Symbol();
   if(timeframe==0)
      timeframe=Period();
   double Open[];
   double open=0;
   ArraySetAsSeries(Open,true);
   int copied=CopyOpen(symbol,timeframe,index,1,Open);
   if(copied>0) open=Open[0];
   return(open);
  }
//+------------------------------------------------------------------+

Открывает нормально. На максимальной скорости баланс отображает без пауз и задержек. Оба графика не тормозят. И закрывает по адекватным ценам:

1 

 

2 

 

Нормальная операционка:

2016.11.22 18:55:29.476 Terminal        MetaTrader 5 x64 build 1472 started (MetaQuotes Software Corp.)
2016.11.22 18:55:29.478 Terminal        Windows 10 Pro (x64 based PC), IE 11.00, UAC, Intel Core i3-3120M  @ 2.50GHz, RAM: 4160 / 8077 Mb, HDD: 386112 / 476372 Mb, GMT+02:00
2016.11.22 18:55:29.478 Terminal        C:\Users\barab\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075

Подключаюсь к MetaQuotes-Demo.


Вывод: Вам нужно крепко поискать неровности программирования в своём коде. 

Файлы:
 

Владимир, вы тут кому-то из пользователей говорили-вы читаете ответы на свои вопросы? мне хочется задать вам тот же вопрос, я перед этим написал большой пост, где показал,что в маркете лежит советник,при тестировании которого вылезает та же проблема!

ошибка в моем советнике может быть какая угодно или не быть, это не отвечает на вопрос - откуда дровишки...откуда несуществующие цены?

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

если ошибка есть в тестере,значит тот,кто будет ее использовать, заработает хулион рублей тут.

в конце концов мне по барабану, претензии потом не мне будут предъявлять,что вам тестер полное УГ, купленный советник с офигенными тестами сливает на реале

 
ivanivan_11:

Владимир, вы тут кому-то из пользователей говорили-вы читаете ответы на свои вопросы? мне хочется задать вам тот же вопрос, я перед этим написал большой пост, где показал,что в маркете лежит советник,при тестировании которого вылезает та же проблема!

ошибка в моем советнике может быть какая угодно или не быть, это не отвечает на вопрос - откуда дровишки...откуда несуществующие цены?

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

если ошибка есть в тестере,значит тот,кто будет ее использовать, заработает хулион рублей тут.

в конце концов мне по барабану, претензии потом не мне будут предъявлять,что вам тестер полное УГ, купленный советник с офигенными тестами сливает на реале

Пожалуйста, начните локализовывать проблему:

  1. Запустите свой код, но на сервере MetaQuotes.
  2. Запустите мой проверочный код:
    1. На своём торговом сервере
    2. На сервере MetaQuotes
 
у меня недавно два лога создалось в тестере, один на 16 Гб, другой на 33 Гб и место на диске закончилось, может что-то где-то переполнилось ...
 
Вообще когда видим график, а закрытие на нём идёт по нереальным ценам - в первую очередь это криворуконастроенный торговый сервер. И я уже с месяц назад видел замечания именно по серверу Admiral. Тогда, вроде был вопрос, что график визуально имел нормальный вид, а вот тики то ли в 13-00, то ли в 14-00 имели неимоверно гигантский разброс. К сожаления не удалось получить реал доступ к серверу, но глюки были точно в настройках торгового сервера.
 

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

в общем-то я не понимаю,что вы хотите показать своим тестовыми советником. то,что он открывает-закрывает сделки по существующим ценам? так это не новость, я и не утверждал,что ВСЕ цены глючные,я показывал,что МОГУТ БЫТЬ несуществующие цены,а ваш советник открыл по сделке,слил их и закрыл,на этом все. по-вашему,это релевантное сравнение условий?

вот скрин с моего советника еще, некоторые сделки открывает-закрывает нормально,некоторые-видно как.



на демо метаквот не прогнал,т.к. там не маркет исполнение,а инстант. выдает ошибку

2016.11.22 21:09:58    Core 1    2016.08.05 15:59:31   failed instant buy 2.00 EURJPY at 0.000 [Invalid price]

возиться и разбираться в чем дело с ней,я не стал.

прогнал на сервере робофорекс 2016.11.22 21:16:51.251    Network    '2315305': authorized on RoboForex-MetaTrader 5 through Europe #1 (ping: 45.93 ms)

на нем проблема не воспроизвелась. проблемное место проскочил нормально.

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

2016.11.22 21:32:12     Core 1  USDJPY : 2016.10.10 23:59 - 4 tick prices mismatch for 1 minute bars
2016.11.22 21:32:06     Core 1  USDJPY : 2016.09.14 23:59 - real ticks absent for 147 minutes out of 1440 total minute bars within a day
2016.11.22 21:32:06     Core 1  USDJPY : 2016.09.13 23:59 - no real ticks within a day
2016.11.22 21:32:06     Core 1  USDJPY : 2016.09.12 23:59 - no real ticks within a day
2016.11.22 21:32:06     Core 1  USDJPY : 2016.09.09 23:59 - no real ticks within a day
2016.11.22 21:32:06     Core 1  USDJPY : 2016.09.08 23:59 - no real ticks within a day
2016.11.22 21:32:06     Core 1  USDJPY : 2016.09.07 23:59 - no real ticks within a day
2016.11.22 21:32:00     Core 1  USDJPY : 2016.09.06 23:59 - no real ticks within a day
2016.11.22 21:32:00     Core 1  USDJPY : 2016.09.05 23:59 - no real ticks within a day
2016.11.22 21:32:00     Core 1  USDJPY : 2016.09.02 23:59 - no real ticks within a day
2016.11.22 21:32:00     Core 1  USDJPY : 2016.09.01 23:59 - no real ticks within a day

т.е. если по какой-то паре есть реальные тики,а по второй в этом время нет,и тестер начинает генерировать их, могут быть проблемы?

однако совой из маркета проблема воспроизводиться спокойно как на альпари сервере,так и на метаквот

скрин с метаквот демо


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

 
Условия тестирования точно опишите, пожалуйста. Чтобы не было разночтений. Таймфрейм и символ на котором тестируется, период теста, режим генерации тиков, начальный депозит, настройки советника ( идеально *.set файл).
 

Нет. Никаких закрытых кодов. Только открытый код. Ибо такое г..:

2016.11.22 21:00:15.651 OnTimer critical error
2016.11.22 21:00:15.651 2016.11.14 00:00:06   stack overflow

 мне не нужно 😉

 

Ок,забываем про мой советник,нет его и никогда не было. я пошутил.

Начнем все заново.

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

на сервере метаквот на паре EURUSD  в режиме OHLC на ТФ М1 с даты 13.11.16 по 19.11. 16 с ДЕФОЛТНЫМИ настройками (т.е. настройки были по-умолчанию,ничего там не менял) и получил свой тестерный грааль.




Однако затем я открыл график пары,на которой он тестировался и увидел там такую картинку.


Цена открытия сделки НЕ СОВПАДАЕТ!!! с ценой на графике на 500пп !!!

2016.11.23 01:26:09.857 Core 1  2016.11.18 03:27:40   deal #1952 sell 1.00 EURUSD at 1.06388 done (based on order #1466)

Прошу помощи - в чем дело?


З.Ы.

Vladimir Karputov:

Нет. Никаких закрытых кодов. Только открытый код. Ибо такое г..:

2016.11.22 21:00:15.651 OnTimer critical error
2016.11.22 21:00:15.651 2016.11.14 00:00:06   stack overflow

 мне не нужно 😉

Ничем не могу помочь с открытым кодом. Если данный советник ПРОДАЕТСЯ!! в маркете,значит он прошел ВСЕ проверки и гарантированно работоспособен! Попробуйте потестировать советник не на вашей новомодной системе, а на "хромой" кобыле. Вот у меня с ней (с кобылой) подобных проблем нет с советником.


З.З,Ы. я обычный пользователь,который озвучил проблему,хотелось бы решение

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