Проблеммы при тестировании - страница 2

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

Причины, по которым Вы видите различия, я указал:
1) Моделирование создает сотни промежуточных состояний каждого бара, а Вы этого не принимаете в расчет. Принимаете только единственное сформировавшееся состояние бара, по которому судите.
2) Используете примитивное незащищенное условие сравнения пересечения. Условие даже не различает разницу между 0.0000001 и 0.0001 (где допустимая дельта, защищающая от сверхмелких пересечений на сблизившихся линиях? где защита проверки пересечения по паре точек?)

Вместо того, чтобы изменить свое восприятие "как все работает?", сконцентрироваться на подсказках и подумать над своим незащищенным/небезопасным кодом, Вы строите неверные(основанные на неправильной картине "как все реально работает") умозаключения и даете советы разработчикам.

Так как Вы встали на путь програмирования (то есть, Вы - программист), то будет корректным такой совет: если что-то работает не так, то сначала ищите ошибку у себя. В коде, в восприятии или в понимании реальных процессов.

Кстати, для многих переход от написания экспертов для Омеги и Метастока в МетаТрейдер был болезненным. Люди вдруг стали понимать, что эксперт в несколько строк с примитивными условиями - это совсем не эксперт, а незащищенная поделка.
 

Причины, по которым Вы видите различия, я указал:
1) Моделирование создает сотни промежуточных состояний каждого бара, а Вы этого не принимаете в расчет. Принимаете только единственное сформировавшееся состояние бара, по которому судите.
2) Используете примитивное незащищенное условие сравнения пересечения. Условие даже не различает разницу между 0.0000001 и 0.0001 (где допустимая дельта, защищающая от сверхмелких пересечений на сблизившихся линиях? где защита проверки пересечения по паре точек?)

Да какие разницы в тысячные доли, если я русским языком Вам сказал, что к примеру на графике функции "at"
стоит значение -4.9396, а в распринтовке эксперта -7.4625.
Эксперт просто считывает неправильные данные с индикатора. И я за метил, что это почти во всех случаях, когда в индикаторе много циклов. Не могу это точно утверждать, но мне кажется что дело все-така в работе программы тестера. А спорить тут можно до умопомрачения.
Кстати хотел сделать трассу, на выводимом, внизу графике, чтобы все таки до Вас, извините, дошло это.
Но когда ставлю ObjectCreate("test"+Bars,OBJ_ARROW,1,Time[0],value) в separate window - он ничего не отображает, хотя если в основном окне, то все рисует. Это тоже вопросик почему?

Вместо того, чтобы изменить свое восприятие "как все работает?", сконцентрироваться на подсказках и подумать над своим незащищенным/небезопасным кодом, Вы строите неверные(основанные на неправильной картине "как все реально работает") умозаключения и даете советы разработчикам.

А как насчет режима plot хотябы для будущей версии?
Сейчас когда Вы не видите, можно долго об'яснять, а еслиб видели, то и об'яснять не пришлось бы.

Так как Вы встали на путь програмирования (то есть, Вы - программист), то будет корректным такой совет: если что-то работает не так, то сначала ищите ошибку у себя. В коде, в восприятии или в понимании реальных процессов.

Я в основном так и делаю, а обращаюсь, когда уже явно что-то не то, или не могу разобраться.
И я не "прграммист", - а создатель, торгового инструментария и стратегий, и по мнению окружающих, интересного и довольно прибыльного. А программист, как-бы по неволе.
Для меня визуализация данных расчета - это очень важно. Меня не увлекает программирование и рисование как таковое, понимаете? И здесь дело не в амбициях, и кто кого поучит. Важно, чтобы каждый хорошо исполнял ту работу за которую взялся. И постоянные затырки с программированием в МТ4 меня тормозят, чтобы делать основную работу. И просто скажите чесно, ведь удобно было бы, если бы в тестере стоял бы режим plot, как в WLD к примеру? Или от этого было бы кому-то хуже?

Кстати, для многих переход от написания экспертов для Омеги и Метастока в МетаТрейдер был болезненным. Люди вдруг стали понимать, что эксперт в несколько строк с примитивными условиями - это совсем не эксперт, а незащищенная поделка.

В тех программах свои плюсы - простота программирования(экономит время), надежность и четкость работы, в некоторых неплохая визуализация результатов. И это не незащищенные поделки, там все четко, - Buy Next Bar at Market, и берет точно на начале следующего бара, а если нужен уточненный расчет, то тестируется просто на малом Timeframe и MT4 в этом смысле ничего не выиграет, разве что на тиках, данных которых к примеру за год, все-равно нет, да и не нужно. И то что Вы написали,- скорее относится к МТ3, где было всего 2 извилины (в смыле рисования) - да это и понятно,- каменный век - (толи техника еще была на этом уровне, толи создавалось для таких), но все течет все изменяется и вот мы уже видим 8 извилин, и просто дикую гордость создателей за свой продукт, правда пока к создателям стратегий и инструментария не всегда относятся доброжелательно, хотя по логике продукт создавался и для них тоже.

"И уж который год я воюю с этим Forexом... И бросало меня от Омеги и т.п., аж до самого до МТ4..."

Искренне Ваш - Александр.
 
Да, вот еще, - прилагаю картинку. Условие было чтобы брал на пересечениях. А берет - сами видите где.[img]
[/img]
Не понял с URL. Вот у меня файл на комьпьютере в jpg, чего дальше?
 
Почти час убил на этот индикатор, так что за эксперта не возьмусь. Пока я расставил все фигурные скобки ... и так и не разобрался. Поэтому , следующий.

Мои выводы:
1. Индикатор на реале и индикатор на истории работают по разному - из-за такой логики
2. Все равно не сошлись скобки, в фукнции старт я насчитал 10 левых скобок, и 9 правых скобок, при этом компилятор не ругается. Возможно, глаз замылился, потэтому пусть считает кто-нибудь другой.

Выкладываю причесанный код:

int start() { //10 скобка
int cbi,i,n;
//int counted_bars=IndicatorCounted();
//if (counted_bars<0) return (-1);
//if (counted_bars>0) counted_bars--;
cbi=Bars-IndicatorCounted()-2;
//------------------------------------ 
for(i=cbi; i>=0; i--) //9
   {
   if (i<Bars-p-1) //8
      {
      sx=0; 
      sy=0; 
      sxy=0; 
      sx2=0;
      Print("i=",i); 
      for (n=0; n<=p-1; n++) //7
         {
         sx=sx+i+n; 
         sy=sy+Close[i+n]; 
         sxy=sxy+(i+n)*Close[i+n]; 
         sx2=sx2+MathPow(i+n,2);
         }//7   
      Print("n=",n);
      aa=(sx*sy-p*sxy)/(MathPow(sx,2)-p*sx2); 
      bb=(sy-aa*sx)/p;
      lr[i]=bb+aa*i;
      }//8
   if (i<Bars-p-pma-1) //6
      {
      sum=0.0; 
      for (n=0; n<=pma-1; n++) //5
         {
         Print("n2=",n);
         sum+=lr[i+n];
         }//5 
      ma[i]=sum/pma;
      }//6
   if (i<Bars-p-pma-pma2-1) //4
      { 
      sum2=0.0; 
      for (n=0; n<=pma2-1; n++) //3
         {
         sum2+=ma[i+n];
         }//3 
      ma2=sum2/pma2; 
      at[i]=(ma[i]-ma2)/Point; 
      }//4
   if (i<Bars-p-pma-pma2-pma3-1) //2
      {
      sum3=0.0; 
      for (n=0; n<=pma3-1; n++) //1
         {
         sum3+=at[i+n];} 
         ma3[i]=sum3/pma3;
         }//1
      a0[i]=0.0000001;
      }//2
//--------------------------------------------------------------------

   return(0);
   }//9



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

 

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


Прочитав Ваше сообщение, я забеспокоился, может код индикатора неправильно привел.
Скоптровал его со страници, в MeteEditor открыл - создать новый индикатор,обозначил другим именем.
Вставил, откомпилировал - никаких ошибок. Для проверки поместил на EURUSD15, - все красиво нарисовалось.

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

Мои выводы:
1. Индикатор на реале и индикатор на истории работают по разному - из-за такой логики
2. Все равно не сошлись скобки, в фукнции старт я насчитал 10 левых скобок, и 9 правых скобок, при этом компилятор не ругается. Возможно, глаз замылился, потэтому пусть считает кто-нибудь другой.

Скобка в последнем цикле стоит.
for (n=0; n<=pma3-1; n++) //1
{
sum3+=at[i+n];}
 
Почти час убил на этот индикатор, так что за эксперта не возьмусь. Пока я расставил все фигурные скобки ... и так и не разобрался. Поэтому , следующий.

Мои выводы:
1. Индикатор на реале и индикатор на истории работают по разному - из-за такой логики
2. Все равно не сошлись скобки, в фукнции старт я насчитал 10 левых скобок, и 9 правых скобок, при этом компилятор не ругается. Возможно, глаз замылился, потэтому пусть считает кто-нибудь другой.

Скобка в последнем цикле стоит.


Точно, теперь увидел скобку. Но тем не менее вот доказательство некорректности работы индикатора.
Верхнее окно - нарисовано в реале
Нижнее окно - накинуто позже
И на глаз видно, что начинается расхождение, и Обзор рынка показывает.
Все параметры - по умолчанию, только цвета у второго изменил, чтобы различать.
Эксперт в бектесте никогда не покажет одинаковые значения , и сделки никогда не будут корректными, тем более в модели Все тики.
 
Можно еще посмотреть: открыть график после тестирования с этим индикатором, и на него накинуть этот индикатор, думаю будут различаться.
 
Можно еще посмотреть: открыть график после тестирования с этим индикатором, и на него накинуть этот индикатор, думаю будут различаться.


Это зависит от механизма расчета в тестере. Если он будет реально в тесте расчитывать по тикам - будет различаться, если расчет делается сразу, а прогон позже, то различий не будет. Сейчас проверю.
 
Renat, Slawa и вся команда - мои искренейшие поздравиления !!!
Этот топик надо обязательно сохранить , он является наглядным доказательством адекватности расчетов любых корректных индикаторов при бектесте в МТ4.
Индикаторы различаются, причем существенно , на глаз.

Без ложной скромности напомню, что я внес в это свою лепту - ветка про механизм расчета индикаторов в начале года :)
Причина обращения: