Моделирование?!!!

 
Потиковое моделирование М30 - получилась пила - тестирование не возможно:
EURUSD,M30: 08.06.2005 17:57:10 1.2352
EURUSD,M30: 08.06.2005 17:57:13 1.2335
EURUSD,M30: 08.06.2005 17:57:16 1.2343
EURUSD,M30: 08.06.2005 17:57:19 1.2332
EURUSD,M30: 08.06.2005 17:57:22 1.2335
EURUSD,M30: 08.06.2005 17:57:25 1.2317
EURUSD,M30: 08.06.2005 17:57:28 1.2332
EURUSD,M30: 08.06.2005 17:57:34 1.2341
EURUSD,M30: 08.06.2005 17:57:37 1.2345
EURUSD,M30: 08.06.2005 17:57:40 1.2352
EURUSD,M30: 08.06.2005 17:57:43 1.2335
EURUSD,M30: 08.06.2005 17:57:46 1.2343
EURUSD,M30: 08.06.2005 17:57:49 1.2332
EURUSD,M30: 08.06.2005 17:57:52 1.2335
EURUSD,M30: 08.06.2005 17:57:55 1.2317
EURUSD,M30: 08.06.2005 17:57:58 1.2332
EURUSD,M30: 08.06.2005 17:58:04 1.2341
EURUSD,M30: 08.06.2005 17:58:07 1.2345
EURUSD,M30: 08.06.2005 17:58:10 1.2352
EURUSD,M30: 08.06.2005 17:58:13 1.2335
EURUSD,M30: 08.06.2005 17:58:16 1.2343
EURUSD,M30: 08.06.2005 17:58:19 1.2332
EURUSD,M30: 08.06.2005 17:58:22 1.2335
EURUSD,M30: 08.06.2005 17:58:25 1.2317
EURUSD,M30: 08.06.2005 17:58:28 1.2332
EURUSD,M30: 08.06.2005 17:58:34 1.2341
EURUSD,M30: 08.06.2005 17:58:37 1.2345
EURUSD,M30: 08.06.2005 17:58:40 1.2352
EURUSD,M30: 08.06.2005 17:58:43 1.2335
EURUSD,M30: 08.06.2005 17:58:46 1.2343
EURUSD,M30: 08.06.2005 17:58:49 1.2332
EURUSD,M30: 08.06.2005 17:58:52 1.2335
EURUSD,M30: 08.06.2005 17:58:55 1.2317
EURUSD,M30: 08.06.2005 17:58:58 1.2332
 
откуда брали данные?
 
Сервер: MetaQuotes-Demo - MetaQuotes Software Corp.
Загрузил данные для всех преиодов от М1 до М30
Запустил эксперт, выдающий потиковую историю в режиме "Every tick..."
Print(TimeToStr(CurTime(), TIME_DATE + TIME_SECONDS) + "; " + Bid);
 
Перезагрузил данные, сделал Recalculate, получил более похожие данные:
08.06.2005 17:56:05 1.2326
08.06.2005 17:56:11 1.2325
08.06.2005 17:56:21 1.2324
08.06.2005 17:56:23 1.2323
08.06.2005 17:56:25 1.2322
08.06.2005 17:56:27 1.232
08.06.2005 17:56:29 1.2319
08.06.2005 17:56:31 1.2318
08.06.2005 17:56:41 1.2317
08.06.2005 17:56:49 1.2318
08.06.2005 17:57:03 1.2319
08.06.2005 17:57:11 1.2318
08.06.2005 17:57:15 1.2317
08.06.2005 17:57:23 1.2316
08.06.2005 17:57:27 1.2315
08.06.2005 17:57:31 1.2314
08.06.2005 17:57:43 1.2313
08.06.2005 17:57:47 1.2314
08.06.2005 17:57:51 1.2315
08.06.2005 17:57:55 1.2316
08.06.2005 17:58:03 1.2317
08.06.2005 17:58:11 1.2318
08.06.2005 17:58:15 1.2319
08.06.2005 17:58:21 1.2318
08.06.2005 17:58:25 1.2317
08.06.2005 17:58:27 1.2316
08.06.2005 17:58:29 1.2315
08.06.2005 17:58:31 1.2314
08.06.2005 17:58:35 1.2313
08.06.2005 17:58:37 1.2312
08.06.2005 17:58:41 1.2311
08.06.2005 17:58:45 1.2312
08.06.2005 17:58:51 1.2313
08.06.2005 17:58:55 1.2314

Но, тестируемый эксперт закрывается по несуществующей цене

111 2005.06.08 17:57 sell 33 1.00 1.2317 1.2369 0.9210 0.00 0.00
112 2005.06.08 17:58 close 33 1.00 1.2356 1.2369 0.9210 -390.00 4683.50
 
Спрашивали? Ответьте, пожалуйста!
 
Давно бы так, и глотку не надо драть. Получите и распишитесь, вот цены смоделированные, а вот реальные, а это разница!!!
 
вопрос качества моделирования не давал покоя, я решил провести самостоятельное исследование. за начальную точку взял "недостаток" тестера - отсутствие мультифреймового моделирования, т.е. статичность т-ф на которых не запущен эксперт (за основу взял получасовки на которых должен был работать эксперт, вспомогательный т-ф М15, валюта GBPUSD, пятнадцатиминутки с 4/09/2003, получасовки в базе с 1/08/2004, МТ буилд 175 с обновлением, модель "Контрольные точки [используется ближайший т-ф+фрактальная интерполяция] ) . Написал индикатор с буферами который элементарно записывает TOHLC, и следующего эксперта:
//+------------------------------------------------------------------+
//|                                                       DifMod.mq4 |
//|                                        Copyright © 2005, Profi_R |
//|                                               rvm_fam на fromru тчк com |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2005, Profi_R"
#property link      "rvm_fam на fromru тчк com"

//---- input parameters
extern int stf=15;

//---- глобальные переменные 
datetime stftime, stfltime;
double rOpenPrice=0.0,rHighPrice=0.0,rLowPrice=0.0,rClosePrice=0.0,LastPrice=0.0;
double mOpenPrice=0.0,mHighPrice=0.0,mLowPrice=0.0,mClosePrice=0.0;
int DifOpenPrice=0,DifHighPrice=0,DifLowPrice=0,DifClosePrice=0;
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//---- 
   stfltime=iCustom(NULL,stf,"TOHLC",0,0);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
   int idFile;
//---- 
   stftime=iCustom(NULL,stf,"TOHLC",0,0);
   if(stftime!=stfltime)
   {
      mClosePrice=LastPrice;
      rOpenPrice= iCustom(NULL,stf,"TOHLC",1,1);
      rHighPrice= iCustom(NULL,stf,"TOHLC",2,1);
      rLowPrice = iCustom(NULL,stf,"TOHLC",3,1);
      rClosePrice=iCustom(NULL,stf,"TOHLC",4,1);
      DifOpenPrice =NormalizeDouble((rOpenPrice-mOpenPrice)/Point,0);
      DifHighPrice =NormalizeDouble((rHighPrice-mHighPrice)/Point,0);
      DifLowPrice  =NormalizeDouble((rLowPrice-mLowPrice)/Point,0);
      DifClosePrice=NormalizeDouble((rClosePrice-mClosePrice)/Point,0);
      idFile=FileOpen("DifMod.txt",FILE_READ|FILE_WRITE,"   ");
      FileSeek(idFile,0,SEEK_END);
      FileWrite(idFile,TimeToStr(stfltime)," ",DifOpenPrice," ",DifHighPrice," ",DifLowPrice," ",DifClosePrice);
      FileClose(idFile);
      stfltime=stftime;
      mOpenPrice=0.0;
      mHighPrice=0.0;
      mLowPrice=0.0;
      mClosePrice=0.0;
   }
   LastPrice=Bid;
   if(mOpenPrice==0.0)
   {
      mOpenPrice=LastPrice;
      mHighPrice=LastPrice;
      mLowPrice=LastPrice;
      mClosePrice=LastPrice;
   }
   if(LastPrice>mHighPrice) mHighPrice=LastPrice;
   if(LastPrice<mLowPrice) mLowPrice=LastPrice;
//----
   return(0);
  }
//+------------------------------------------------------------------+


а вот результаты тестера :
баров в истории = 11260
смоделировано тиков = 130474
качество моделирования = 50,00%

а это мои результаты:
смоделировано 15 минуток = 21872
из них на смоделированных 15 минутках цена
open отличается в 10576 случаях , отклонения в пределах от "-54" до "+132"
high отличается в 69 случаях , отклонения в пределах от "-8" до "+20"
low отличается в 77 случаях , отклонения в пределах от "-16" до "+22"
close отличается в 865 случаях , отклонения в пределах от "-33" до "+33"

теперь стоит вопрос как оценить эти результаты, ну и конечно на корректность подобного метода

P.S. забыл сказать результаты выведены в файл DifMod.txt в папке файлов

 
теперь стоит вопрос как оценить эти результаты, ну и конечно на корректность подобного метода
P.S. забыл сказать результаты выведены в файл DifMod.txt в папке файлов

175 билд от какого числа? после 1 июля в один из промежуточных билдов внесена ошибка чтения сгенерированного файла. сегодня будет выложен 176 билд, проверьте пожалуйста ещё раз.
 
теперь стоит вопрос как оценить эти результаты, ну и конечно на корректность подобного метода
P.S. забыл сказать результаты выведены в файл DifMod.txt в папке файлов

175 билд от какого числа? после 1 июля в один из промежуточных билдов внесена ошибка чтения сгенерированного файла. сегодня будет выложен 176 билд, проверьте пожалуйста ещё раз.

от 4 июля, но у меня чтение в любом случае не влияет на результаты, просто для того чтобы переводить позицию в конец файла
 
баг с чтением заключается в следующем: при обращании к текущим данным таймсерий close[0],time[0] etc отдавались данные предыдущего бара. проверьте по тайму и убедитесь
 
ok, будем ждать 176 буилда