Ошибки, баги, вопросы - страница 2155

 
Vladimir Pastushak:

Может может кто то назвать хотя бы 2 преимущества кастомной истории ?

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

АЛЬТЕРНАТИВНЫЕ ПРОГРАММЫ ТЕСТИРОВАНИЯ MQL5?

fxsaber, 2016.12.16 15:50

  • Можно изменять самому цены и смотреть зависимость показателей ТС от этого процесса - строить соответствующие графики.
  • Аналогично - с комиссией. При этом изменять саму комиссию и/или вносить часть ее в цену. Опять те же графики ТС.
  • Аналогично с проскальзываниями.
  • По этим графикам можно определить, что ТС вовсе не отстой, если может работать на улучшенных ценах. Далее встанет вопрос поиска подходящего брокера с необходимыми торговыми условиями. Т.е. ТС на текущих ваших брокерах сливает. Но вы знаете, что нужно для профитности и ищите (не обязательно MT5) нужное место для торговли. Многие держали в руках очень достойные ТС, но выбрасывали их, т.к. на текущем брокере они были сливными. А надо было просто поменять брокера под нужные условия. Или выторговать у менеджера пониженную комиссию с соответствующим техническим обоснованием.
  • Можете фильтровать историю цен, выбивая из них шпильные тики. На которых высока вероятность неисполнения лимитного приказа - реджкет. Тем самым тестер не будет исполняться на шпилях, сделав исполнение ближе к реалу. Delay-режим тестера - для маркетов, не для лимитников.
  • Можете фильтровать историю цен, зная, какие цены не влияют на саму ТС. Обычно, 99% тиков никак не влияют на большинство ТС. Это позволяет на порядки ускорить тестирование ТС. Получается быстрее Облака - на локальной машине+бесплатно.
  • Можно брать стороннюю тиковую историю - не MT5. И сразу понять, насколько подходит источник по торговым условиям к вашей ТС.
  • Можно синхронизировать истории цен с разных символов, чтобы не возникали ложные арбитражные ситуации.
  • Можно запускать статистические советники в тестере на разных ценовых историях и сравнивать торговые условия.
  • Можно сравнивать лаги между различными фидами.
  • Можно убирать явные ошибки в истории цен, заполнять дыры.
  • Можно генерировать свою историю цен с нужными стат. данными - Монте-Карлить ТС.
  • Можно генерировать историю цен синтетических символов и прогонять на них ТС.
  • ...
 


Дополнительный пример к заявке #1913961

typedef void (*fn)();
struct A {     fn f; };
struct B : A {
        B() { B::f( 1 ); } //Error: '1' - wrong parameters count
        void f( int ) {}
};

Здесь вообще явно указано B::f, а все равно при компиляции ошибка 

 
A100:

Дополнительный пример к заявке #1913961

Здесь вообще явно указано B::f, а все равно при компиляции ошибка 

Как воспринимать f - как метод или как поле-функцию?

 
fxsaber:

Как воспринимать f - как метод или как поле-функцию?

Поле-функция по сигнатуре не подходит, а метод подходит
 
A100:
Поле-функция по сигнатуре не подходит, а метод подходит

Баг понятен изначально. Вы не ответили на вопрос.

 

Баг Тестера.

Пусть сначала стоит BUY-поза с TP. И на этот же TP стоит SellLimit. Тестер исполняет такие ситуации по-разному

  • сначала BUY_TP, затем SellLimit.
  • сначала SellLimit, затем BUY_TP.

Во втором случае имеем открытие сразу двух противоположны позиций на хедже или закрытие BUY-позиции без открытия SELL.

Для хеджа это еще усугубляется, что SellLimit может зареджектится из-за нехватки денег на открытие второй позиции.

В общем, просьба привести Тестер к однозначному поведению - сначала TP, затем Limit.

 
fxsaber:

Похоже, никто не тестит на кастомной тиковой истории. Стоит не тестить несколько часов, как история пропадает. Жуткий баг. Как люди еще что-то записывают с крипто-бирж для теста, не пойму.

Иногда еще что-то случается с Тестером и он начинает при закрытии каждой позиции выдавать нулевой профит. Вылечить получилось только пересозданием кастомного символа.

 
fxsaber:

Баг понятен изначально. Вы не ответили на вопрос.

Воспринимать в зависимости о контекста, в данном случае как метод
 
A100:
Воспринимать в зависимости о контекста, в данном случае как метод

Такая запись видится нормальной?

this.f = this.f; // Присвоить полю-функции указатель на метод.
 
fxsaber:

Такая запись видится нормальной?

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

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