Расчеты при тестировании

Автор: ast

Расчеты при тестировании - Mon Apr 19 2010 08:35 PM

Только сейчас обратил внимание, что подсчет при тестировании идет как-то неправильно.

Похоже, что при закрытии позиции на определенном баре цена закрытия считается не та, которая задана в тейк-профите или стоп-лоссе, а цена открытия бара.

Это действительно такая фича или у меня что-то не так?
Как сделать, чтобы тестирование считалось правильно?
Автор: Nektodron

Re: Расчеты при тестировании - Tue Apr 20 2010 10:14 AM

ну например вечером закрылись по 50, стоп стоит на 40, а открытие было на 30 (геп). То позиция в расчетная части будет закрыта по 30.
Автор: ast

Re: Расчеты при тестировании - Tue Apr 20 2010 10:45 AM

ну это-то нормально.

Ненормальна следующая ситуация.
Закрылись по 50. Стоп стоит 30. Открылись на 40 и дошли до 20.
При этом позиция должна быть расчитана как закрытая по 30.
А она считается по 40 - по открытию.
Что в корне неправильно!

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

Ну и то же самое с тейк-профитом.
Автор: Nektodron

Re: Расчеты при тестировании - Tue Apr 20 2010 11:01 AM

if (IsLong && bar.Low <= price)
{
if (bar.Open < price)
{
price = bar.Open;
}
Close(signalName, barNum, price, OrderType.Fall);
}

Вот как идет расчет. Т.е закрываем по заданной цене, если минимум был достигнут. Если же открытие было ниже предложенной цены, то закрываем по открытию. С шортами все наоборот.
Автор: ast

Re: Расчеты при тестировании - Tue Apr 20 2010 11:15 AM

Ну так неправильно это!

Правильней смотреть диапазон между High и Low. И если цена заявки попадает в этот диапазон, то и считать именно по этой цене.

А если не попадает, то заявка не проходит, ждем следующего бара.
Автор: Nektodron

Re: Расчеты при тестировании - Tue Apr 20 2010 11:25 AM

Ничего подобного, если при открытии цена уже ниже, то условие уже сработает и заявка окажется в рынке.