Стоп заявка
Atom
6/13/2011
patermind


Добрый день. Сейчас фиксирую прибыль вот таким образом, просто выставляя лимитную заяку выше текущей цены цены на 30 рублей:
Quote:
var order3 = new Order
{
Portfolio = _portfolio,
Price = _instrument0.ShrinkPrice(_instrument0.BestAsk.Price+30),
Security = _instrument0,
Volume = 5,
Direction = OrderDirections.Buy,
};
trader.RegisterOrder(order3);

Но бывает так, что нужно в районе 30-ти рублей начать следить за ценой. Далее, например, при достижении 35 рублей при откате назад более чем на 3 рубля(до 32 рублей) выбросить лимитированную заявку с ценой 31,8. Т.е. эдакий трейлинг-стоп. Как это можно реализовать? Стратегии не используются.

Заранее спасибо!

Tags:


Thanks:


1 2 3  >
patermind

Avatar
Date: 6/13/2011
Reply


Исходя из http://stocksharp.com/do...9-8f48-dd8f806c39e7.htm :
Quote:

var order3 = new Order
{
Portfolio = _portfolio,
Type = OrderTypes.Conditional,
Volume = 5,
Security = _instrument0,
Direction = OrderDirections.Buy,
StopCondition = new QuikStopCondition
{
Type = QuikStopConditionTypes.TakeProfit,
ExpiryDate = this.ExpirationDate.SelectedDate,
StopPrice = _instrument0.BestAsk.Price+30,
Offset = 3,
Spread = 0.2,
ActiveTime = this.ActiveTime,
},
};
trader.RegisterOrder(order3);

Не работает - непонятно, что писать в
Quote:
Type = OrderTypes.Conditional
Type = QuikStopConditionTypes.TakeProfit,
ExpiryDate = this.ExpirationDate.SelectedDate,
ActiveTime = this.ActiveTime,


Не могли бы вы подсказать, что я делаю неправильно и как поправить?
Thanks:

Mikhail Sukhov

Avatar
Date: 6/14/2011
Reply


patermind
Не могли бы вы подсказать, что я делаю неправильно и как поправить?


Приведите настройки окна новой стоп заявки терминала Квик и я скажу как это сделать в коде.
Thanks:

patermind

Avatar
Date: 6/14/2011
Reply


Прилагаю скриншот того, как выглядит заявка в версии Quik

http://s48.radikal.ru/i1...106/52/0a0dbb268d45.jpg


Также прошу подсказать, как можно получить в рублях ТекСредства из таблицы Клиентский портфель. Пробовал _portfolio.CurrentAmount по подсказке с форума, и _portfolio.CurrentAmount.Value - возвращает всегда 0. Работаю на ММВБ. _portfolio.Name возвращает правильное имя торгового счета.

http://stocksharp.com/fo...-position-v-sobytiiakh/
похожая, думаю, проблема у человека.
Thanks:

Mikhail Sukhov

Avatar
Date: 6/14/2011
Reply


patermind
Прилагаю скриншот того, как выглядит заявка в версии Quik

http://s48.radikal.ru/i1...106/52/0a0dbb268d45.jpg


Код выше должен корректен. Какие ошибки выдает код?

patermind

Также прошу подсказать, как можно получить в рублях ТекСредства из таблицы Клиентский портфель. Пробовал _portfolio.CurrentAmount по подсказке с форума, и _portfolio.CurrentAmount.Value - возвращает всегда 0. Работаю на ММВБ. _portfolio.Name возвращает правильное имя торгового счета.

http://stocksharp.com/fo...-position-v-sobytiiakh/
похожая, думаю, проблема у человека.


Это особенности ММВБ и Квика.
Thanks:

patermind

Avatar
Date: 6/15/2011
Reply


Mikhail Sukhov


Код выше должен корректен. Какие ошибки выдает код?


Это особенности ММВБ и Квика.


Сейчас не могу прислать ошибки, как буду у компа - вышлю.

т.е. получить текущий баланс счета невозможно? тогда единственный выход - забивать руками в программу? Обидно, хотел автоматически начать считать количество акций, на которые можно выставить заявку.
Thanks:

Mikhail Sukhov

Avatar
Date: 6/15/2011
Reply


patermind
т.е. получить текущий баланс счета невозможно?


Возможно. По той ссылке, что вы прислали, написано, как получать текущий баланс.
Thanks:

patermind

Avatar
Date: 6/15/2011
Reply


Mikhail Sukhov
patermind
т.е. получить текущий баланс счета невозможно?


Возможно. По той ссылке, что вы прислали, написано, как получать текущий баланс.


Если я правильно понял совет по ссылке, делаю
Quote:
Console.WriteLine(trader.Portfolios.Any(p => p.CurrentAmount.Value > 0));

и получаю false. Не могли бы вы привести кусок кода?
Thanks:

patermind

Avatar
Date: 6/16/2011
Reply


Выставляю стоп вот так:
Code
var order1 = new Order
                                {
                                    Portfolio = _portfolio,
                                    Type = OrderTypes.Conditional,
                                    Volume = 5,
                                    Security = _instrument0,
                                    Direction = OrderDirections.Buy,
                                    StopCondition = new QuikStopCondition
                                    {
                                        Type = QuikStopConditionTypes.TakeProfit,
                                        ExpiryDate = DateTime.MaxValue,
                                        StopPrice = _instrument0.ShrinkPrice(_instrument0.BestBid.Price),
                                        Offset = 1,
                                        Spread = 0.02,
                                        ActiveTime = null,
                                    },
                                };

                                trader.RegisterOrder(order1);

получаю исключение:
Code

16.06.2011 11:53:11 Ecng.Trading.Quik.ApiException: Код ошибки WrongSyntax Сообщение ACCOUNT=L01-00000F00; CLIENT_CODE=S#; TRANS_ID=42776524; CLASSCODE=EQBR; SECCODE=LKOH; QUANTITY=2; OPERATION=B; ACTION=NEW_STOP_ORDER; STOPPRICE=1761,3; EXPIRY_DATE=GTC; OFFSET=1; OFFSET_UNITS=PRICE_UNITS; SPREAD=0,02; SPREAD_UNITS=PRICE_UNITS; STOP_ORDER_KIND=TAKE_PROFIT_STOP_ORDER;
   в #=qIC0em_Y9ttPjTaH5wr0hvpkv3aFwj0mcqWF7VUdIyGgDQkOGVwQSHJIIeinlK4Kh.#=qCDnuvU0p0CmYCPNQKXjVgw==(Int32 #=qdHPN_yHFRnIcr2y57$QZhQ==, StringBuilder #=qkd$GlOpEqM23R4sq1opYsQ==)
   в #=q02UxtFgauWdhIXYFhRWq6VtvjMmAFpAfaARTqgq1_iM=.#=qT29nW$7XhRVru2DGAJ35k6fNpjLmr9Ele_hXAFXFvjA=(String #=qgMwZtGc9_lSOb6BuEDfw$A==, OrderStatus& #=q4OhwAp6Bp91L0oOCquhAOQ==, UInt32& #=q1Gak7Svd4JIb$RTAyb7eMw==, Int64& #=q5jtQ3tHDK6Hp5UbL3kchiw==, String& #=q6UEPR__avOY7mtynHNE46Q==)
   в Ecng.Trading.Quik.QuikTrader.#=qqAd0VW0iJb4GasgZxL8JSVy_pxzmQ1Tj65b3zqcRk1I=(Order #=q_bFETIlAa_FSSjI$vpvChQ==, TransactionBuilder #=qztYF4TzOhvmcC7KsmDFugw==)
   в Ecng.Trading.Quik.QuikTrader.OnRegisterOrder(Order order)
   в Ecng.Trading.Algo.BaseTrader.RegisterOrder(Order order)


ММВБ, аккаунт в исключении указывается правильный. что делать?
Thanks:

Mikhail Sukhov

Avatar
Date: 6/16/2011
Reply


Я думаю дело в спреде.
Thanks:

patermind

Avatar
Date: 6/16/2011
Reply


уже писал сообщение, что решил - не обращайте внимания. Спасибо! Дело действительно в спреде - нужно стаивть его согласно шагу цены инструмента. поставил 0,1 - и заработало. или 0 - тоже все ок.


а с балансом - как его забрать, подскажите плиз?
Thanks:
1 2 3  >

Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy