pyhta4og
|
Date: 3/10/2012
Вопросы: 1. Проскальзывание ставите MarketEmulator.Settings.Slippage=100? 2. Используете в стратегии только маркет-ордера? 3. Тестируете со генерируемыми стаканами ? 4. Тестируете с настоящими стаканами ?
|
|
Thanks:
|
|
|
|
|
Moadip
|
Date: 3/10/2012
pyhta4og Вопросы: 1. Проскальзывание ставите MarketEmulator.Settings.Slippage=100? 2. Используете в стратегии только маркет-ордера? 3. Тестируете со генерируемыми стаканами ? 4. Тестируете с настоящими стаканами ?
1. Нет, проскальзывание ставиться внутри стратегии. Про класс MarketEmulator вообще не знал. В примерах по тестированию использование данного класса не нашел. Можно небольшой пример как его применять? 2. Да, только маркет ордера. 3.4. Тест на генерируемых стаканах.
|
|
Thanks:
|
|
|
|
|
pyhta4og
|
Date: 3/10/2012
Moadip pyhta4og Вопросы: 1. Проскальзывание ставите MarketEmulator.Settings.Slippage=100? 2. Используете в стратегии только маркет-ордера? 3. Тестируете со генерируемыми стаканами ? 4. Тестируете с настоящими стаканами ?
1. Нет, проскальзывание ставиться внутри стратегии. это как? В моем понятии проскальзывание это то что происходит на бирже а не выставляется внутри стратегии. Например MarketEmulator.Settings.Slippage - это то, насколько по более худшей цене по сравнению с последняя сделка произойдет исполнение маркет-ордера Про класс MarketEmulator вообще не знал. В примерах по тестированию использование данного класса не нашел. Можно небольшой пример как его применять? см. EmulationTrader.MarketEmulator и документацию 2. Да, только маркет ордера. с 4.0.20->4.0.21 ничего с матчингом маркетордеров не менялось, для того чтобы выяснить есть ли ошибка в тестере надо по логам по ордерно разбитраться. 3.4. Тест на генерируемых стаканах.
|
|
Thanks:
|
|
|
|
|
Moadip
|
Date: 3/10/2012
|
|
|
|
Quote:это как? В моем понятии проскальзывание это то что происходит на бирже а не выставляется внутри стратегии. Естественно что проскальзывание происходит на бирже. Допустим есть лучший бид/оффер 900/910, я хочу продать по рынку. Посылаю лимитку на продажу по 800, т.е. устанавливаю для стратегии порог в 100п на проскальзывание. Моя заявка может исполнится как по 900, так и допустим по 850, т.е. по лучшему биду в текущий момент. Если же на момент когда моя заявка будет на бирже лучший бид будет меньше 800, скажем 790, то я встану в стакан лимиткой на продажу по 800. Это я и называю учитывать/выставлять проскальзывание внутри стратегии. Quote:Например MarketEmulator.Settings.Slippage - это то, насколько по более худшей цене по сравнению с последняя сделка произойдет исполнение маркет-ордера Это то как работает алгоритм данного свойства? Т.к. в моем понимании проскальзывание это не то, насколько по более худшей цене пройдет исполнение моей заявки по сравнению с последней. А то, по какой цене исполнится моя заявка, относительно той цены, которую я увидел в стакане на момент отправления заявки.
|
|
Thanks:
|
|
|
|
|
pyhta4og
|
Date: 3/10/2012
|
|
|
|
Moadip Quote:это как? В моем понятии проскальзывание это то что происходит на бирже а не выставляется внутри стратегии. Естественно что проскальзывание происходит на бирже. Допустим есть лучший бид/оффер 900/910, я хочу продать по рынку. Посылаю лимитку на продажу по 800, т.е. устанавливаю для стратегии порог в 100п на проскальзывание. Моя заявка может исполнится как по 900, так и допустим по 850, т.е. по лучшему биду в текущий момент. Если же на момент когда моя заявка будет на бирже лучший бид будет меньше 800, скажем 790, то я встану в стакан лимиткой на продажу по 800. Это я и называю учитывать/выставлять проскальзывание внутри стратегии. Понял вас. Но в таком случае вы пользуетесь лимитными заявками, а не маркетордерами. Поскольку ввсе-таки выставляете цену в 800. В итоге, вы утверждаете что теперь кидаете селл-заявку ниже рынка на 100 пунктов и она всегда исполняется по этой самой худщей цене, даже если есть бид гораздо лучше? Quote:Quote:Например MarketEmulator.Settings.Slippage - это то, насколько по более худшей цене по сравнению с последняя сделка произойдет исполнение маркет-ордера Это то как работает алгоритм данного свойства? Т.к. в моем понимании проскальзывание это не то, насколько по более худшей цене пройдет исполнение моей заявки по сравнению с последней. А то, по какой цене исполнится моя заявка, относительно той цены, которую я увидел в стакане на момент отправления заявки. Смотрите, есть режим эмуляции без стакана вообще. Это когда нет генераторов и нет данных о стакане. В этом конкретном случае заявки помеченные как маркетные (НЕ лимитные!) исполняются по LastTrade плюс Slippage если заявка на покупку или LastTrade минус Slippage если на продажу. Если есть какие-то стаканы, генерированные или записанные то и маркетные ордера и лимитированные филяться о встречные заявки и свойство Slippage фактически не используется
|
|
|
|
|
Moadip
|
Date: 3/10/2012
|
|
|
|
Quote:Но в таком случае вы пользуетесь лимитными заявками, а не маркетордерами. Может я чего то не знаю, но насколько мне известно на фортс нет рыночных заявок. Если надо войти по рынку, то выставляется лимитка с заведомо большей/меньшей ценой, чтобы купить/продать. Касательно S# знаю только два способа как подать заявку. Code
void GoLong(decimal vol)
{
var order = new Order
{
Portfolio = Portfolio,
Price = Security.BestAsk.Price + Security.MinStepSize * _instrSlippage, ////////////// проскальзывание
Security = Security,
Volume = vol,
Direction = OrderDirections.Buy,
};
RegisterOrder(order);
}
Code
var order = StrategyHelper.CreateOrder(this, OrderDirections.Buy, Security.GetMarketPrice(OrderDirections.Buy), Volume);
RegisterOrder(order);
Возможно Security.GetMarketPrice(OrderDirections.Buy) считается "рыночным" ордером? Quote:В итоге, вы утверждаете что теперь кидаете селл-заявку ниже рынка на 100 пунктов и она всегда исполняется по этой самой худщей цене, даже если есть бид гораздо лучше?
Именно! Это и показано на скриншотах выше. Quote:Смотрите, есть режим эмуляции без стакана вообще. Это когда нет генераторов и нет данных о стакане. В этом конкретном случае заявки помеченные как маркетные (НЕ лимитные!) исполняются по LastTrade плюс Slippage если заявка на покупку или LastTrade минус Slippage если на продажу.
Если есть какие-то стаканы, генерированные или записанные то и маркетные ордера и лимитированные филяться о встречные заявки и свойство Slippage фактически не используется А вот за это спасибо. Такие нюансы в справке не написаны. UPD: Отвечаю сам на свой вопрос "рыночные" это BuyAtMarket и SellAtMarket. Но с реализацией данных методов я не совсем согласен(посмотрел рефлектором) Т.к. с помощь их не всегда можно войти по "рынку".
|
|
Thanks:
|
|
|
|
|
Mikhail Sukhov
|
Date: 3/12/2012
Moadip UPD: Отвечаю сам на свой вопрос "рыночные" это BuyAtMarket и SellAtMarket. Но с реализацией данных методов я не совсем согласен(посмотрел рефлектором) Т.к. с помощь их не всегда можно войти по "рынку".
На РТС нет маркетных заявок. Так что хоть как-то входить. Не по планкам же.
|
|
Thanks:
|
|
|
|
|
JackSparrow
|
Date: 3/12/2012
Mikhail Sukhov Moadip UPD: Отвечаю сам на свой вопрос "рыночные" это BuyAtMarket и SellAtMarket. Но с реализацией данных методов я не совсем согласен(посмотрел рефлектором) Т.к. с помощь их не всегда можно войти по "рынку".
На РТС нет маркетных заявок. Так что хоть как-то входить. Не по планкам же. Так вопрос утыкается в то что если есть цена более лучшая чем указанная то сделка закрывается по ней. Это, на фортсе, будет принцип входа по маркету. Тоже самое что по краю стакана ударить.
|
|
Thanks:
|
|
|
|
|
Mikhail Sukhov
|
Date: 3/13/2012
JackSparrow Так вопрос утыкается в то что если есть цена более лучшая чем указанная то сделка закрывается по ней. Это, на фортсе, будет принцип входа по маркету. Тоже самое что по краю стакана ударить.
Сейчас речь о тестере? С тестером это не ко мне. Я ответил насчет того, почему XXXAtMarket так сделан.
|
|
Thanks:
|
|
|
|
|
Alexander
|
Date: 3/13/2012
Moadip Quote:В итоге, вы утверждаете что теперь кидаете селл-заявку ниже рынка на 100 пунктов и она всегда исполняется по этой самой худщей цене, даже если есть бид гораздо лучше?
Именно! Это и показано на скриншотах выше. Фикс залит на codeplex. Возьмите свежие библиотеки из ветки dev и протестируйте. Только учитывайте то, что архив с котировками (RIU9@RTS) был также обновлён.
|
|
Thanks:
|
|
|
|