Библиотеки: BestInterval - страница 16

 

Есть ли простой способ оставить рабочим свой OnTester после подключения БестИнтервал?

Это не помогает:

#define BESTINTERVAL_CALL_ONFUNCTIONS // В режиме BESTINTERVAL_ONTESTER будут вызываться OnTester и OnTimer.

Возвращается все равно финальный баланс (а нужен свой сложный критерий, BESTINTERVAL_ONTESTER_FORMULA не решает проблемы).

 
Andrey Khatimlianskii:

Получил вот такие результаты:

Видно, что вырезано 2 отрезка по 2 секунды каждый. Наверное, имеет смысл ограничить минимальный размер вырезаемого интервала?

У Вас идет выбрасывание по одной сделке. Это значит, что еще можно торговать за секунду ДО ее открытия и через секунду ПОСЛЕ. Отсюда выходит две секунды.

ps: в последнем билде МТ5 много предупреждений "deprecated behavior, hidden method calling will be disabled in a future MQL compiler version" при компиляции.

Отправил в личку. К сожалению, кодобаза пока не принимает исправленную версию.

 
Andrey Khatimlianskii:

Есть ли простой способ оставить рабочим свой OnTester после подключения БестИнтервал?

Это не помогает:

Возвращается все равно финальный баланс (а нужен свой сложный критерий, BESTINTERVAL_ONTESTER_FORMULA не решает проблемы).

#define BESTINTERVAL_ONTESTER // Критерий оптимизации - прибыль лучшего интервала.
#define BESTINTERVAL_CALL_ONFUNCTIONS // В режиме BESTINTERVAL_ONTESTER будут вызываться OnTester и OnTimer.
#include <fxsaber\BestInterval\BestInterval.mqh> // Вычисление лучшего интервала торговли

double OnTester()
{
  Print("Hello World");
  
  return(123);
}

В логе увидите сработавший Print, т.е. OnTester выполнится. Но не более - его результат игнорируется.


Вам нужно это

#define BESTINTERVAL_ONTESTER // Критерий оптимизации - прибыль лучшего интервала.
#define BESTINTERVAL_ONTESTER_FORMULA MyOnTester()
#include <fxsaber\BestInterval\BestInterval.mqh> // Вычисление лучшего интервала торговли

input int Input = 0;

double MyOnTester()
{
  return(123);
}


Результат

pass 1 returned result 123.000000 in 0:00:00.468
pass 0 returned result 123.000000 in 0:00:00.469
 
Andrey Khatimlianskii:


ps: в последнем билде МТ5 много предупреждений "deprecated behavior, hidden method calling will be disabled in a future MQL compiler version" при компиляции.

Что бы это значило?

 
fxsaber:

Вам нужно это

Не работает с Amount of Delete Intervals = 0.

В проверках дошел до такого советника:

#define BESTINTERVAL_ONTESTER // Критерий оптимизации - прибыль лучшего интервала.
#define BESTINTERVAL_ONTESTER_FORMULA MyOnTester()
#include <fxsaber\BestInterval\BestInterval.mqh> // Вычисление лучшего интервала торговли

input int inputParam = 0;

double MyOnTester()
{
  return(inputParam*100);
}

При Amount of Delete Intervals = 0 возвращает стартовый баланс во всех проходах.

При Amount of Delete Intervals = 1 возвращает ожидаемые значения.

 
Andrey Khatimlianskii:

Не работает с Amount of Delete Intervals = 0.

В проверках дошел до такого советника:

При Amount of Delete Intervals = 0 возвращает стартовый баланс во всех проходах.

При Amount of Delete Intervals = 1 возвращает ожидаемые значения.

В строке 713

  if (!inBestInterval_Action && inAmountDeleteIntervals)

уберите второе условие.

 
fxsaber:

В строке 713

уберите второе условие.

Взлетело! Благодарю.

 

У себя в таких универсальных библиотеках инпут-параметры выношу в отдельный файл и оборачиваю ifdef-ом, чтобы можно было вставить их в нужное место, не следя за порядком подключения самих файлов библиотек (который может играть роль).

Может, есть другой, более элегантный, способ управления порядком инпутов?

 
Andrey Khatimlianskii:

Может, есть другой, более элегантный, способ управления порядком инпутов?

Такой косметикой как-то не заморачивался. Столько всего другого нужно сделать...

Хорошо бы хоть где обсуждать перспективные вещи. С этим почти полный молчок.

 
fxsaber:

Хорошо бы хоть где обсуждать перспективные вещи. С этим почти полный молчок.

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

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

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