Создать свой тестер стратегий

 
Для создания своего тестера стратегий нужно чтоб в окне графика первый (нулевой) бар отображался растущим, например на основе истории М1 периода. Все индикаторы и советники будут использовать эти данные для своих расчетов. Для этого нужно получить доступ к массиву ценовых данных и изменить элемент номер [0] - формирующийся бар. 
Как это сделать?  Есть идеи?
 
В таком окне будут отображаться все графические объекты, будут работать все кнопки советника которые в стандартном тестере не работают. Можно будет тестировать несколько индикаторов одновременно. Короче это будет обычный чарт просто первый бар формирующийся.
 
alex2andr:
В таком окне будут отображаться все графические объекты, будут работать все кнопки советника которые в стандартном тестере не работают. Можно будет тестировать несколько индикаторов одновременно. Короче это будет обычный чарт просто первый бар формирующийся.

Всё что вы описали, работает в нормальном тестере, отображает все объекты, и работают все кнопки.

Больше идей нет) 

 
Стандартный тестер хороший, я не спорю. Нужно кое-что другое.
Например, у меня есть советник и три индикатора к нем, я хочу тестировать их вместе. Стандартный тестер позволяет тестировать один советник или один индикатор. 
И мне нужно чтобы в тестере все кнопки и элементы управления работали. В стандартном тестере не работают. Не происходит обработка события нажатия кнопки.
 
alex2andr:
Стандартный тестер хороший, я не спорю. Нужно кое-что другое.
Например, у меня есть советник и три индикатора к нем, я хочу тестировать их вместе. Стандартный тестер позволяет тестировать один советник или один индикатор. 
И мне нужно чтобы в тестере все кнопки и элементы управления работали. В стандартном тестере не работают. Не происходит обработка события нажатия кнопки.
Я для тестера просто пишу код опроса кнопки, события и правда нет.
 
Alexey Volchanskiy:
Я для тестера просто пишу код опроса кнопки, события и правда нет.

Интересно, а как это сделать?

Может через событие OnTimer?  Оно же срабатывает в тестере? 

 
alex2andr:

Интересно, а как это сделать?

Может через событие OnTimer?  Оно же срабатывает в тестере? 

Я делал так:

   if(IsTesting()) { // Если запущено в тестере
    // Minus
    if(but_stat("Minus")) { // если нажали кнопку
     if(lot>SymbolInfoDouble(_Symbol, SYMBOL_VOLUME_MIN)) { // условие совпало
       ..... // что-то делаем
       button_off("Minus"); // Отжимаем кнопку
     }
    }
    // Plus
    if(but_stat("Plus")) { // если нажали кнопку
     if(lot<SymbolInfoDouble(_Symbol, SYMBOL_VOLUME_MAX)) { // условие совпало
       ..... // что-то делаем
       button_off("Plus"); // Отжимаем кнопку
     }
    }
   }


Если не в тестере, то всё работает через события "OnChartEvent"

 
alex2andr:

Интересно, а как это сделать?

Может через событие OnTimer?  Оно же срабатывает в тестере? 

Вы терминал уточняйте. Я про МТ4, там таймер в тестере тоже не работает, эмулирую его через OnTick.

А в таймере такой код для проверки состояния кнопки. Фактически, в тестере две кнопки опрашиваются, если какая-то нажата, открывается рыночный ордер и кнопка переводится в состояние "ненажата"

#include <Controls\Button.mqh>

CButton *cbSell, *cbBuy;

void CheckButtons()
{
    if(cbSell.Pressed())
    {
        OpenOrderWithCheck2(Symbol(), OP_SELL, 0.1, Bid, 50, 0, 0, "", 1, 0, clrDeepSkyBlue);
        cbSell.Pressed(false);
    }    
    if(cbBuy.Pressed())
    {
        OpenOrderWithCheck2(Symbol(), OP_BUY, 0.1, Bid, 50, 0, 0, "", 1, 0, clrRed);
        cbBuy.Pressed(false);
    }
    ChartRedraw();
}
Причина обращения: