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

 
gumgum:

Ставлю тестирование с 2010.01.01 по today. Вывожу даду самого первого бара 2009.01.02.

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

 

2006.01.02, а почему не 2010.01.01?

А что мы знаем о серийности массивов?

 
Interesting:

2006.01.02, а почему не 2010.01.01?

А что мы знаем о серийности массивов?

Я хочу, чтобы при тестировании, исторических данных было достаточно. Как это сделать?

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

 
gumgum:

Я хочу, чтобы при тестировании, исторических данных было достаточно. Как это сделать?

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


При инициализации поверить наличие истории на сервере и у себя. если требуется подгрузить историю делаем это сразу (в блоке инициализации)...

А серийность (ее отсутствие) в данном вопросе покажет от куда считать 0 бар...

 

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

обьявлено две структуры (старшая и младшая) конструктор старшей вызывается в старте(),

конструктор младшей вызывается конструктором старшей структуры.

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

struct Ml
  {
   int               a;
   int               b;
   void Ml()
     {
      if(f)a=1; else a=2; // ?????????????????????????????      
      if(F)b=2; else b=3; // ?????????????????????????????        
     };
   void ~Ml(){};
   void m(){};
  };
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
struct St
  {
   bool              f;  // ?????????????????????
   bool              F;  // ?????????????????????
   Ml               x[];
   void St(){f=true; F=false; ArrayResize(x,1); x[0].m();};  // ?????????????????????
   void ~St(){};
   int          mult(int i){ArrayResize(x,i+1);return(x[i].a*x[0].b);};
   int           add(int i){ArrayResize(x,i+1);return(x[i].a+x[0].b);};
  };
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnStart()
  {
   St x[];
   ArrayResize(x,2);

   int Mult=x[1].mult(10);
   int Add=x[1].add(10);

   Print("x[1].mult(10)=",x[1].mult(10),"  x[1].add(10)=",x[1].add(10));
  }
//+------------------------------------------------------------------+
 
Interesting:

При инициализации поверить наличие истории на сервере и у себя. если требуется подгрузить историю делаем это сразу (в блоке инициализации)...

А серийность (ее отсутствие) в данном вопросе покажет от куда считать 0 бар...

вот так проверить https://www.mql5.com/ru/docs/series/seriesinfointeger? А как погрузить(ткните носом в правильном направлении)?
Документация по MQL5: Доступ к таймсериям и индикаторам / SeriesInfoInteger
Документация по MQL5: Доступ к таймсериям и индикаторам / SeriesInfoInteger
  • www.mql5.com
Доступ к таймсериям и индикаторам / SeriesInfoInteger - Документация по MQL5
 
gumgum:

Я хочу, чтобы при тестировании, исторических данных было достаточно. Как это сделать?

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

 

1 Тестер обеспечивает подгрузку как минимум 100 баров тестируемого таймфрейма перед датой начала тестирования.

2. Тестер подгружает историю как минимум с начала предыдущего года от даты начала тестирования.

Если вы выберете месячный таймфрейм, то Вам будет обеспечено 8 лет исторических данных. Если недельный таймфрейм, то 2 года. Просто при анализе сигналов используйте не текущий таймфрейм, а явно указывайте нужный Вам. 

 
stringo:

1 Тестер обеспечивает подгрузку как минимум 100 баров тестируемого таймфрейма перед датой начала тестирования.

2. Тестер подгружает историю как минимум с начала предыдущего года от даты начала тестирования.

Если вы выберете месячный таймфрейм, то Вам будет обеспечено 8 лет исторических данных. Если недельный таймфрейм, то 2 года. Просто при анализе сигналов используйте не текущий таймфрейм, а явно указывайте нужный Вам. 

поставил так:

 

Сижу жду.... стоим на месте 3.3% ни туды и ни сюды:

 

 
Urain:

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

обьявлено две структуры (старшая и младшая) конструктор старшей вызывается в старте(),

конструктор младшей вызывается конструктором старшей структуры.

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



Думаю пример из жизни будет более понятней :

При появлении новой позиции создаётся новый обьект который в себя включает динамичный массив указателей на сделки.

Тк в начальной ситуации сделка у позиции только одна то её данные записываются в сответствующую структуру при инициализации обьекта,

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

И вот как при этом передать этот тикет не ясно???

При глобальном обьявлении переменной проблем нет,

выбирается позиция записыватся тикет конструируется обьект,

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

и сделки и позиции( тк первая-открывающая сделка по тикету равна с id позиции),

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

 
gumgum:

поставил так:

 

Сижу жду.... стоим на месте 3.3% ни туды и ни сюды:

 

Загрузка данных? Что в журнале тестирования?
 
stringo:
Загрузка данных? Что в журнале тестирования?

На данный момент 5.6%

2010.08.06 13:08:52 Core 1 EURUSD,Daily: history begins from 2001.01.01 00:00
2010.08.06 13:08:52 Core 1 EURUSD,Daily: history cache reserved for estimated 2411 bars
2010.08.06 13:08:52 Core 1 EURUSD: contains 3208261 M1 records of beginning data from 2001.01.01 00:01 to 2009.12.31 18:59
2010.08.06 13:05:58 Core 1 para=EURUSD
2010.08.06 13:05:58 Core 1 delta=0.10
2010.08.06 13:05:58 Core 1 fc=0.19
2010.08.06 13:05:58 Core 1 M=11
2010.08.06 13:05:58 Core 1 dis=0.11
2010.08.06 13:05:58 Core 1 EURUSD,Monthly: testing of Experts\slivarobot.ex5 from 2010.01.01 00:00 to 2010.03.31 00:00 started with inputs:
2010.08.06 13:05:58 Core 1 EURUSD,Monthly: 1 minutes OHLC ticks generating
2010.08.06 13:05:58 Core 1 EURUSD,Monthly: history begins from 2001.01.01 00:00
2010.08.06 13:05:58 Core 1 EURUSD,Monthly: history cache reserved for estimated 120 bars
2010.08.06 13:05:58 Core 1 EURUSD: contains 3208261 M1 records of beginning data from 2001.01.01 00:01 to 2009.12.31 18:59
2010.08.06 13:03:13 Core 1 EURUSD: history synchronized from 1993.05.13 to 2010.08.05
2010.08.06 13:03:13 Core 1 EURUSD: load 27 bytes of history data to synchronize
2010.08.06 13:03:11 Core 1 EURUSD: symbol synchronized. 3304 bytes of symbol info received.
2010.08.06 13:03:11 Core 1 Performance: 31
2010.08.06 13:03:11 Core 1 39 Kb of total initialization data received
2010.08.06 13:03:11 Core 1 Successfully initialized
2010.08.06 13:03:11 Core 1 Initial deposit 10000.00 USD
2010.08.06 13:03:11 Core 1 Expert file added: Libraries\BSCAI.ex5. 3277 bytes loaded
2010.08.06 13:03:11 Core 1 Expert file added: Libraries\PNNOCHL(slivarobot).ex5. 13083 bytes loaded
2010.08.06 13:03:11 Core 1 Expert file added: Experts\slivarobot.ex5. 3598 bytes loaded
2010.08.06 13:03:11 Core 1 275 bytes of selected symbols loaded
2010.08.06 13:03:11 Core 1 7178 bytes of tester parameters loaded
2010.08.06 13:03:11 Core 1 3780 bytes of group info loaded
2010.08.06 13:03:11 Core 1 3124 bytes of account info loaded
2010.08.06 13:03:11 Core 1 Common synchronization completed
2010.08.06 13:03:07 Tester EURUSD,Monthly: testing of Experts\slivarobot.ex5 from 2010.01.01 00:00 to 2010.03.31 00:00 to be started
2010.08.06 13:03:07 Core 1 Authorized (agent build 302)
2010.08.06 13:03:07 Core 1 Connected
2010.08.06 13:03:06 Core 1 Connecting to 127.0.0.1:3000
2010.08.06 13:03:06 Core 1 Agent process started