Вопрос по выставлению заявок
Atom
15.03.2012
Daenur


Ситуация простая - хочу купить/продать по рынку и прикрыть позицию стопом. Для примера использую акции сбера.

Вариант №1
Покупаю по рынку обычным способом (с помощью маркет-заявки или лимитной заявки с большим отступом по цене), все ок. Тут же подписываюсь на событие исполнения заявки. Хочу получать событие один единственный раз, когда заявка исполнилась полностью.
Код

this.When(this.mainOrder.Matched().Do(OnMainOrderMatched).Once());

Все хорошо, заявка попала в систему, исполнилась, попадаем в OnMainOrderMatched. Здесь я хочу получить среднюю цену исполнения заявки, чтобы от этого уровня поставить стоп-лосс.
Код

decimal averagePrice = this.mainOrder.GetAveragePrice();

К сожалению, averagePrice остается всегда равной нулю. В КВИКе аналогичный подход дает правильный результат, averagePrice равен цене исполнения заявки.

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

this.When(mainOrder.NewTrades()).Do(OnNewOrderTrades).Once();

далее в OnNewOrderTrades
Код

if ((this.mainOrder != null) && (this.mainOrder.Id == myTrades.Last().Order.Id))
{
	OnMainOrderMatched();
}

Тогда в OnMainOrderMatched уже имеем averagePrice соответствующую действительности.

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


Переходим к Варианту №2
Благодаря разработчикам S# существует более простой способ выставления заявок и прикрытия их стопами, через котирование и дочерние стратегии. Но сразу же наталкиваюсь на проблему с выставлением рыночной заявки через котирование - у заявки отбрасывается дробная часть и заявка появляется в системе по 101.00 или по 102.00, хотя реальная цена колеблется в этом промежутке с сотыми долями.
Это происходит и у меня, и в проекте-примере.


Возникает вопрос - кто как справляется с данной задачей в СмартКОМе?

Теги:


Спасибо:


< 1 2 
Mikhail Sukhov

Фотография
Дата: 15.03.2012
Ответить


Daenur
StockSharp 4.0.22

Михаил, может, есть возможность дать мне исходники всего проекта? Так бы я мог разбираться с проблемами, не обращаясь к Вам по пустякам. А то и я не могу понять в чем дело, и Вас напрягаю. Какая-то "угадайка" получается сильно растянутая по времени...


Работа напрямую со смартком - это SmartTrader.Wrapper. Только вам это не поможет. У вас какие-то данные "сдвинуты" (что было именем, стало кодом). Двое подтвердили уже по поводу сбера, что у них SBER@EQBR.
Спасибо:

Alexander

Фотография
Дата: 15.03.2012
Ответить


Начните с SampleSmart
Спасибо:

Daenur

Фотография
Дата: 15.03.2012
Ответить


Подключился в SampleSmart, со сбером аналогично (см. вложение).

Сейчас выяснил, я подключаюсь не напрямую к серверам АйТи Инвест, а через другой мидл-офис, по другому IP. С этим может быть связано?
sber.png 80 KB (207)
Спасибо:

Alexander

Фотография
Дата: 15.03.2012
Ответить


Возможно. Чтобы удостовериться - попробуйте подключиться напрямую к айти. Хотя бы по тестовому доступу.
Спасибо:

Daenur

Фотография
Дата: 15.03.2012
Ответить


По тестовому доступу все то же самое. :(
Завтра, конечно, попробую по нормальному логину напрямую к серверам АйТи Инвест подключиться, сейчас не хватает прав чтобы эту возможность настроить...

Но вообще у меня и раньше так же идентификаторы в Смарте выглядели, просто не знал, что это неправильно. И на прошлых версиях СмартКОМа, и на прошлых версиях S#.
Спасибо:

Mikhail Sukhov

Фотография
Дата: 15.03.2012
Ответить


Daenur
По тестовому доступу все то же самое. :(
Завтра, конечно, попробую по нормальному логину напрямую к серверам АйТи Инвест подключиться, сейчас не хватает прав чтобы эту возможность настроить...

Но вообще у меня и раньше так же идентификаторы в Смарте выглядели, просто не знал, что это неправильно. И на прошлых версиях СмартКОМа, и на прошлых версиях S#.


Получил демо. Мой скрин в аттаче. Любопытно, что шаг цены до сих пор неправильно транслируется. Уже была такая тема http://stocksharp.com/posts/m/12516/ и на форуме айти http://www.itinvest.ru/f...0&st=0&p=267901 У тех поддержки оказывается нет такого понятия как шаг цены[laugh] Секция ММВБ Смартком не поддерживается, имхо. Не знаю, имеет ли смысл дальше мучать это направление...
Спасибо: Daenur

Daenur

Фотография
Дата: 15.03.2012
Ответить


Я им, конечно же, написал. Но это вообще кретинизм полнейший! С КВИКом тоже проблемм хватает, но там хоть как-то работает. А со Смартом просто нет слов!

Согласен, дальше эту тему пинать не стоит. Сделают - хорошо. А пока придется руками выставлять. Увы, чувствую, еще намучаюсь со Смартом. [sneaky]

Спасибо большое, что уделили столько времени моей проблеме!
Спасибо:

Alexander

Фотография
Дата: 15.03.2012
Ответить


Daenur
Я им, конечно же, написал. Но это вообще кретинизм полнейший! С КВИКом тоже проблемм хватает, но там хоть как-то работает. А со Смартом просто нет слов!

Согласен, дальше эту тему пинать не стоит. Сделают - хорошо. А пока придется руками выставлять. Увы, чувствую, еще намучаюсь со Смартом. [sneaky]

Спасибо большое, что уделили столько времени моей проблеме!


Я своих первых ботов писал на смарткоме в 2009 году.
С тех пор стараюсь от этого держаться подальше.

На квике кстати все боты которые были написаны в начале 2011 года (через S#) - работают стабильно до сих пор. Т.е. действительно проблем можно сказать нет.
Спасибо:

Daenur

Фотография
Дата: 15.03.2012
Ответить


Так для себя я тоже через КВИК подключаюсь. :)
Спасибо:
< 1 2 

Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy