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

 
Maxim Kuznetsov # :

in Demo/Real/Contest trading  : TerminalInfoInteger(TERMINAL_CONNECTED) !=0  and (optional but recommended) first tick reached or TimeCurrent() changed

always true for testing/optimization

Спасибо, не подумал, искал аккаунт и логин...

Thank you, didn't thought of it, I was searching for account and login ...

 

Build 4435

template< typename Type >
class A
{
   Type Value;
   
public:
   struct B
   {
      A* L;
      
   public:
      B( A* l ) : L( l ){}
      B( const B& b ) : L( b.L ){}
      
      Type get()
      {
         return L.Value;
      }
   };
   
public:
   A( const Type& value ) : Value( value ){}
   
   B begin()
   {
      return B( &this );
   }
};

template< typename Type >
Type get( A< Type >::B& b )  // 'A' - objects are passed by reference only
{
   return b.get();
}

void OnStart()
{
   A< double > a( 3.1415 );
   
   Print( get( a.begin() ) );
}

Если вместо шаблона функции get написать:

double get( A< double >::B& b )
{
   return b.get();
}

то всё работает нормально.

 

https://www.mql5.com/ru/code/50597

Вот этот индикатор ломает все терминалы

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

То есть, запускаешь оптимизацию, сперва фактор восстановления держится около 1-3, потом, через несколько секунд появляется сет с фактором 70, потом 80, и огромное число с 90 и выше. 



Запускаешь эти "лютые" сеты, а они при первом запуске показывают слив, при втором запуске - чистый грааль (только вверх), отрабатывая этот исполинский ФВ, а третий раз - какую-то рандомную картину. Потом по кругу. 

Какой-то хаос. 


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

ZZVolatility
ZZVolatility
  • www.mql5.com
Ещё один зиг заг. ZigZag
 
Ivan Butko #:

https://www.mql5.com/ru/code/50597

Вот этот индикатор ломает все терминалы

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

То есть, запускаешь оптимизацию, сперва фактор восстановления держится около 1-3, потом, через несколько секунд появляется сет с фактором 70, потом 80, и огромное число с 90 и выше. 



Запускаешь эти "лютые" сеты, а они при первом запуске показывают слив, при втором запуске - чистый грааль (только вверх), отрабатывая этот исполинский ФВ, а третий раз - какую-то рандомную картину. Потом по кругу. 

Какой-то хаос. 


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

новый бар не используется?

у newbar есть 2 варианта, на каждом тике проверяется условие на новом баре, (по инидкатору -1 бар)

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


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

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

ну а тестер благодаря оптимизации от разработчиком, вообще не надежная штука

 
lynxntech #:

новый бар не используется?

у newbar есть 2 варианта, на каждом тике проверяется условие на новом баре, (по инидкатору -1 бар)

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


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

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

ну а тестер благодаря оптимизации от разработчиком, вообще не надежная штука

Новый бар....

Ну, в других советниках есть отдельная функция, но в этом именно - берутся последние значения ЗигЗага. 

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

Короче говоря, тестирую по ценам открытия.


При этом, стандартный зиг-заг работает исправно

 
Ivan Butko #:

Новый бар....

Ну, в других советниках есть отдельная функция, но в этом именно - берутся последние значения ЗигЗага. 

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

Короче говоря, тестирую по ценам открытия.


При этом, стандартный зиг-заг работает исправно

у меня тоже всегда все работало, я еще с этой лажой столкнулся с ASCTRend 15 лет назад. в онлайне все идеально открывалось под каждой отметкой, в тестере пропуски, прошло 15 лет, тестер все тот же.

где-то там скрывается нюанс, и не тот который в проперти нужно прописывать....

 

удалил свои сообщения,

написанные останутся видными им.

 
lynxntech #:

удалил свои сообщения,

написанные останутся видными им.

Уже видели про несколько ваших аккаунтов. 
 
Artyom Trishkin #:
Уже видели про несколько ваших аккаунтов. 

какие смог, удалил,

а про те которые удалил, они видны остались администрации.

надеюсь пойдет на пользу, для всех не будешь 
 
Robert Sadamon #:

Спасибо, что проверили. Это не я решил, что в коде ошибка. В режиме отладки, я вижу что тикет берется с "потолка". Соответственно до расчетов профита дело не доходит. Терминал у меня глючит получается? Или компилятор?

вот в отладке прошли строку получения тикета. Выдал не понятно что?! По истории смотрю закрыто было всего не более 20 сделок.

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

Очевидно, что отладчик поломали совсем.

Этот цикл

  int i, c, l;
  for(i=2; i < rates_total; i++)
   {
    c=i-1;
    l=i-2;
    if(i == 5)
      printf("%d %d %d", l, c, i);
    DebugBreak();
   }

в режиме отладки всегда показывает, что i всегда 2; с всегда 0 и l всегда 0;

Только когда выполнено условие if(i == 5) печатает правильные значения, но в дебагере по прежнему никаких изменений.

Как быстро человек привыкает к хорошему и как болезненно от этого отвыкать. Что случилось с командой MQ???