Библиотеки: Virtual - страница 5

 
Maxim Dmitrievsky:
Не думали попробовать еще ускорить через GPU? или там нечего разделять на потоки

На потоки возможно разделить только сопровождение ордеров. Если и имеет смысл по потокам бить, то только при большом количестве ордеров. Например, гридеры.

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

Но в OpenCL ноль, т.к. использую  встроенное в CPU видео.


просто как упражнение в кодировании кернелов :)

Упражнения стоят много времени. Почти все работы, что выложил, носят прикладной характер. Т.е. использую. А поскольку забываю часто, что и как написал, то подсматриваю в описание на КБ.

 
fxsaber:

На потоки возможно разделить только сопровождение ордеров. Если и имеет смысл по потокам бить, то только при большом количестве ордеров. Например, гридеры.

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

Но в OpenCL ноль, т.к. использую  встроенное в CPU видео.

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

сам 0, т.к. не появлялось даже задач таких никогда 

OpCL и на ядра процессора распространяется тоже

 
Maxim Dmitrievsky:

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

Это возможно, если точно знать, где находятся интервалы без ордеров. При этом надо еще в торговой логике иметь независимые куски истории, когда, например, никакой индикатор на текущем куске не использует свои значения (пусть и завуалированно - EMA, например) с предыдущего. Т.е. в общем виде такое разделение на потоки не понять.


Virtual может работать, как паразит MT5-Тестера. Тогда все просто - одна строка. Если же говорить о полноценном использовании, то все несколько сложнее.

 
fxsaber:

Чего хотите добиться? Ваш советник не соответствует условию.

А можете тогда сделать такую же библиотеку  только для мт5 советников?

Как то станно , написали библиотеку для мт5, НО торговая логика умирающего мт4.Зачем эта каша не понимаю.

Вы будете виртуально ездить на ферарри но в реальности на жигулях)

Вся прелесть бы и была взять советник для мт5 и с минимальными переделками запустить его в виртуальном окружении.

И добавили бы ещё во время сделки стрелки на график момент сделки бай\селл для наглядности происходящего в виртуальном окружении

 

Hi @fxsaber ,

Can you tell me about the real-time testing environment?

It doesn't show or test data of today?

I am using the same example EA as published in your article.

Thank you.

Файлы:
 
FxTrader562:

Hi @fxsaber ,

Can you tell me about the real-time testing environment?

It doesn't show or test data of today?

I am using the same example EA as published in your article.

Thank you.

Если Вы хотите провести бэктест с текущим днем, то для этого Virtual не нужна. Вот решение через кастомные символы:

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Библиотеки: Symbol

fxsaber, 2018.07.09 14:20

// Включаем в бэктест текущий день
#property script_show_inputs

#include <Symbol.mqh> // https://www.mql5.com/ru/code/18855

input int Offset = -24 * 7; // Offset in hours

#define HOUR 3600

void OnStart()
{
  const SYMBOL Symb(_Symbol + "_Offset" + (string)Offset); // Создали символ

  if (Symb.IsExist()) // Если символ создан
  {
    Symb.CloneProperties(); // Скопировали свойства
    
    MqlRates Rates[];

    // Сместили время баров
    for (int i = CopyRates(_Symbol, PERIOD_M1, 0, (int)SeriesInfoInteger(_Symbol, PERIOD_M1, SERIES_BARS_COUNT), Rates) - 1; i >= 0; i--)
      Rates[i].time += Offset * HOUR;
      
//    Symb.CloneTicks(Ticks);

    // Записали смещенные бары и включили символ в Обзор рынка
    if ((Symb.CloneRates(Rates) > 0) && Symb.On())
      ChartOpen(Symb.Name, PERIOD_CURRENT); // Открыли график нового символа
  }
}

MT5 Build 1880 - работает пока.


Если же Вы хотите real-time тестирование, то делается это по аналогии с примером из описания. Я не буду расписывать все шаги для этого, т.к. это требует много сил и времени.

 
fxsaber :

If you want to go back to the current day Here is the solution through custom symbols:


If you want real-time testing, then this is done. It will take you a lot of time and effort.

Thank you for your reply.

I will look into it.

 
Рецепт, чтобы библиотека компилировалась и в MT4
 

Замер производительности в MT4-тестере


Без Virtual

2715872 tick events (64699 bars, 2715972 bar states) processed in 0:00:03.572 (total time 0:00:04.009)


Через Virtual

2715890 tick events (64699 bars, 2715990 bar states) processed in 0:00:01.342 (total time 0:00:01.825)


Примерно в 2.5 раза.

 
Добрый день! Virtual не работает в mt5 build 1940 - при установке VirtualTester=True и запуске оптимизации не выполняется ни одной сделки( при VirtualTester=False оптимизация идет как обычно, но с обычной медленной скоростью).