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

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

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

 

Баг Тестера.

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

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

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

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

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

 
fxsaber:

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

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

 
fxsaber:

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

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

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

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

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

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

 
A100:

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

Да где угодно, где это вписывается в контекст. Сама запись мне видится несколько абсурдной, несмотря на ее валидность.

 
fxsaber:

Да где угодно, где это вписывается в контекст. Сама запись мне видится несколько абсурдной, несмотря на ее валидность.

До // запись нормальна... после - абсурдна

 
A100:

До // запись нормальна... после - абсурдна

Не вижу ничего абсурдного в желании присвоить полю-функции указатель на метод

typedef void (*fn)();

void g() { Print(__FUNCSIG__); }

struct A
{
  fn f;
  
  A() : f(g) {}
};

struct B : A
{
  void f() { Print(__FUNCSIG__); }
  
  void A100()   { this.f = this.f; } // не присвоить полю-функции указатель на одноименный метод, а на другой метод - пожалуйста:
  void A100_2() { this.f = this.h; } // 'h' - pointer to this function type is not supported yet
  
  void h() { Print(__FUNCSIG__); }
};

void OnStart()
{
  B b;
  
  b.f(); // void g()
  
  b.A100();
  
  b.f(); // void g()
}
 
fxsaber:

Не вижу ничего абсурдного в желании присвоить полю-функции указатель на метод

Абсурдность заключается в том что компилятор не поддерживает указатели на простые методы, а если бы и поддерживал - то указатель на обычную функцию и на простой метод при прочих равных условиях имеют разную сигнатуру