Библиотеки: Tester - страница 17

 
fxsaber #:

На подобной картине

нужно мышкой нажать на графике, где свечи строятся. Тогда нажатия клавиш начнут учитываться.
Благодарю!
Отчасти сработало. Скорость кнопками вверх/вниз регулируется.
Остальные функции не хотят срабатывать.
Вот еще бы паузу выудить... ))
Но мне и этого пока достаточно.
 
Реter Konow #:

Вы гений! Это то, что нужно.))

Можно было бы добавить панель с ручным управлением скорости и кнопкой паузы или отмотки назад. Подумаю над панелью управления Вашим тестером как только закончу переход на МТ5. Можно много сделать.

Здравствуйте!
Вам удалось для этого уникального тестера сделать панельку управления?
А то у меня только кнопки регулировки скорости работают.
Остальные кнопки тестер в упор не видит.
 
apologetest #:
Вам удалось для этого уникального тестера сделать панельку управления?
Все, что есть, выложено. Если что-то перестало работать - разбираться нет возможности.
 
fxsaber #:
Все, что есть, выложено. Если что-то перестало работать - разбираться нет возможности.

)

 

Я начал изучать вашу библиотеку, и она просто великолепна. Она полностью позволяет создать панель управления для реализации пользовательского тестера.


(Автоперевод с английского модератором)

I started exploring your library, and it's outstanding. It's fully capable of creating a control panel to implement a custom tester.

 

В вашем примере кода значение TickSize выводится как 0. Почему так происходит? Похоже, что это свойство не было клонировано, хотя другие свойства, похоже, присутствуют.

// #define REPORT_BROWSER      // Создание отчета с запуском браузера - требует разрешения DLL.
#define TESTER_CUSTOM // Запуск советника в пользовательском Тестере
#include <fxsaber\Tester\Tester.mqh> // https://www.mql5.com/ru/code/24848

// Простейший советник для ручной торговли.

#include <MT4Orders.mqh> // https://www.mql5.com/ru/code/16006

#define Bid SymbolInfoDouble(_Symbol, SYMBOL_BID)
#define Ask SymbolInfoDouble(_Symbol, SYMBOL_ASK)

#define KEY_B 66
#define KEY_S 83
#define KEY_C 87

// Клавиша b - покупка, s - продажа, c - закрытие.
void OnChartEvent( const int id, const long &lparam, const double &dparam, const string &sparam )
{
  if (id == CHARTEVENT_KEYDOWN)
  {
    switch ((int)lparam)
    {
    case KEY_B: // buy
      OrderSend(_Symbol, OP_BUY, 1, Ask, 100, 0, 0);
    
      break;
    case KEY_S: // sell
      OrderSend(_Symbol, OP_SELL, 1, Bid, 100, 0, 0);
    
      break;
    default:
    case KEY_C: // close
      for (int i = OrdersTotal() - 1; i >= 0; i--)
        if (OrderSelect(i, SELECT_BY_POS) && (OrderType() <= OP_SELL))
          OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), 100);
    }
  }
}

// Неиспользуемые On-функции нужно прописать пустыми.
void OnTick() {}
void OnTimer() {}
int OnInit() { Print(_Symbol, " ", SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_SIZE)); return(INIT_SUCCEEDED); }
void OnDeinit( const int ) {}

 


Никакой другой код не был изменен.
 
hini #:
В вашем примере кода значение TickSize выводится как 0. Почему так происходит? Похоже, что это свойство не было клонировано, хотя другие свойства, похоже, присутствуют.

Указанная выше проблема была решена. Проблема заключалась в том, что создание пользовательских символов иногда было неполным.

 
У меня возник вопрос: я прочитал код и обнаружил, что тестер откатывается, создавая различные виртуальные среды каждую минуту. Можно ли это реализовать с помощью функции снимков виртуальной среды?
 
hini #:
У меня возник вопрос: я прочитал код и обнаружил, что тестер откатывается, создавая различные виртуальные среды каждую минуту. Можно ли это реализовать с помощью функции снимков виртуальной среды?

Если речь идет про Snapshot.mqh, то это сделать нельзя. Он для снимков реального окружения.


Каждую минуту сохраняется полноценный Virtual (текущие ордера + история ордеров). Очевидно, что для отката назад в Тестере не нужно каждый раз сохранять историю ордеров. Т.е. возможно было бы немного экономить на потреблении памяти. Я не стал этого делать. Tester.mqh - это просто демонстрация возможного продукта для Маркета.