Есть ли способ программно получить Тип модели тестирования?

 
Первое что приходит в голову- считать тики в баре. Если тик один, то по ценам открытия, если больше, то все тики.
 
Yuri Evseenkov:
Первое что приходит в голову- считать тики в баре. Если тик один, то по ценам открытия, если больше, то все тики.

Ок. А ВсеТики от Контрольных точек отличить?

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

Потому и задал вопрос, может есть что встроенное, или кто придумал уже решение?

 
Andrei Fandeev:

Ок. А ВсеТики от Контрольных точек отличить?

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

Потому и задал вопрос, может есть что встроенное, или кто придумал уже решение?

Может поможет, что в модели по контрольным точкам есть лишь 4 цены в баре - OHLC
 
Andrei Fandeev:

Ок. А ВсеТики от Контрольных точек отличить?

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

Потому и задал вопрос, может есть что встроенное, или кто придумал уже решение?

А по моему через временные интервалы вполне корректно определить модель. При моделировании по контрольным точкам берутся тики одного ближайшего меньшего таймфрейма находящегося внутри заданного. Например, если задан М5, то наибольший интервал между тиками будет не менее 4-х минут. Этого не может быть при тестировании по всем тикам , т.к здесь используются все доступные наименьшие таймфреймы. 
 
Artyom Trishkin:
Может поможет, что в модели по контрольным точкам есть лишь 4 цены в баре - OHLC
Т.е. если 4 тика за бар, то это режим КонтрольныеТочки? Сча проверю. Думаю там будет больше, по меньшим ТаймФреймам. В любом случае Спасибо.
 

Всем спасибо! Решение найдено. Через подсчет тиков в каждом баре.

  
if(IsTesting())
   {
      if(BT<iTime(NULL,0,0))
      {
         if(MT>100)
         {
            DrawTextLabel("Mod",2,5,35,"Это Тики",14,clrWhite);
         }
     
         DrawTextLabel("MT",2,5,5,"MT = "+IntegerToString(MT,0),14,clrWhite);
         BT=iTime(NULL,0,0);
         MT=0;
      }
      else
      {
         MT++;
      }
   }


Оказалось что на Всех тиках порядка нескольких тысяч.

На Контрольных около 24.

На Открытии, естественно, только 1

==

На разных ТаймФреймах и удалённости от текущей даты разные значения, но в целом не более 100 на Контрольных вроде.

 
Пожалуйста. Не за что. Только очень интересно  для чего это нужно. Предполагаю для автогеннерации прибыльных стратегий с помощью форвардов. Оптимизация на контрольных точках - тестирование разными методами.
 
Yuri Evseenkov:
Пожалуйста. Не за что. Только очень интересно  для чего это нужно. Предполагаю для автогеннерации прибыльных стратегий с помощью форвардов. Оптимизация на контрольных точках - тестирование разными методами.
Ну, почти )) Есть некоторые логики, которые не срабатывают на контрольных точках, но очень хорошо себя показывают в реале. Их если и запускать в тестере, то только на тиках.
 
Andrei Fandeev:
Ну, почти )) Есть некоторые логики, которые не срабатывают на контрольных точках, но очень хорошо себя показывают в реале. Их если и запускать в тестере, то только на тиках.
Но все равно должна присутствовать автоматизация изменения советника и автоматизация тестирования. Иначе модель тестирования можно просто посмотреть в настройках.
 
Yuri Evseenkov:
Но все равно должна присутствовать автоматизация изменения советника ...

Ну если "должна" - значит присутствует )))

На самом деле на вскидку много где можно ещё применить.

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

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