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

 
Aleksey Popov:

Помогите распутать

"Tester - библиотека для MetaTrader 5"

"Эта библиотека позволяет любой MT4-style советник запустить в визуальном Тестере."

"Все это в чем-то повторяет возможности MT4-Тестера. Но есть и доп. возможности."


МТ4 или МТ5  все таки?


МТ5


Примеры

Первый запуск Тестера.

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

// #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() { return(INIT_SUCCEEDED); }
void OnDeinit( const int ) {}

Пример позволяет быстро познакомиться с принципами работы Тестера. Попробовать клавиши управления и т.д.

 
Хороший тестер, очень нравится, а как выбрать период тестирования?
 
Arduz:
Хороший тестер, очень нравится, а как выбрать период тестирования?

Не знаю, что Вы запускаете.

 
fxsaber:

Tester_Manual Не запускается на реале Открытия.

В журнале:

2019.04.14 15:43:08.334 Tester_Manual (RTS-6.19,M1) EX5 loading failed

Tester_Example запускается.

Может быть из-за того, что билд 2007?


 
Alexey Kozitsyn:

Может быть из-за того, что билд 2007?

Да.

 
fxsaber:

Да.

Билд 2025. Также не запускается. Журнал:

2019.04.16 16:02:04.950 Tester_Manual (TESTER_RTS Splice,M1)    System.Reflection.TargetInvocationException: Адресат вызова создал исключение. ---> System.ArgumentOutOfRangeException: Значение '117910' недопустимо для 'Value'. 'Value' должно лежать в диапазоне от 'Minimum' до 'Maximum'.
2019.04.16 16:02:04.950 Tester_Manual (TESTER_RTS Splice,M1)    Имя параметра: Value
2019.04.16 16:02:04.950 Tester_Manual (TESTER_RTS Splice,M1)       в System.Windows.Forms.NumericUpDown.set_Value(Decimal value)
2019.04.16 16:02:04.950 Tester_Manual (TESTER_RTS Splice,M1)       в winforms.Form1.InitLabel()
2019.04.16 16:02:04.950 Tester_Manual (TESTER_RTS Splice,M1)       в winforms.FormsMT5.FormRun(Int32& button, Int32& checkbox)
2019.04.16 16:02:04.950 Tester_Manual (TESTER_RTS Splice,M1)       --- Конец трассировки внутреннего стека исключений ---
2019.04.16 16:02:04.950 Tester_Manual (TESTER_RTS Splice,M1)       в System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
2019.04.16 16:02:04.950 Tester_Manual (TESTER_RTS Splice,M1)       в System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
2019.04.16 16:02:04.950 Tester_Manual (TESTER_RTS Splice,M1)       в System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
2019.04.16 16:02:04.950 Tester_Manual (TESTER_RTS Splice,M1)       в Wrapper.Wrapper.Call(MethodInfo method, Int64 owner, Int64 parameters, Int64 result)
2019.04.16 16:02:04.951 Tester_Manual (TESTER_RTS Splice,M1)    .Net runtime error
 
Alexey Kozitsyn:

Билд 2025. Также не запускается. Журнал:

У меня работает без проблем. Судя по логу, проблема в C#. Т.е. при запуске TradePanel_C#.

Попробуйте разобраться без Tester_Manual, почему эта панелька не запускается - см. описание. В соответствующей ветке ее автор, думаю, быстро сможет помочь.

 
fxsaber:

У меня работает без проблем. Судя по логу, проблема в C#. Т.е. при запуске TradePanel_C#.

Да, если б дело было в mql, скорее всего сам бы поправил. Но с C# не дружу. У Вас на биржевых символах (RTS, Si) нормально работает? Просто, походу, дело в ценах (точнее, в их размере).

 
Alexey Kozitsyn:

У Вас на биржевых символах (RTS, Si) нормально работает? Просто, походу, дело в ценах (точнее, в их размере).

Как на MQ-Demo открыть счет с биржевыми символами?

 
fxsaber:

Как на MQ-Demo открыть счет с биржевыми символами?

Отключаете хэдж, выбираете в выпадающем списке "Тип счета" - MOEX Demo Delayed.