Автор: 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
Ничего подобного, если при открытии цена уже ниже, то условие уже сработает и заявка окажется в рынке.