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


Добрый день. Сейчас фиксирую прибыль вот таким образом, просто выставляя лимитную заяку выше текущей цены цены на 30 рублей:

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

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


Tags:


Thanks:


1 2 3  >
patermind

Avatar
Date: 6/13/2011
Reply


Исходя из http://stocksharp.com/doc/html/a82865dd-98ed-4579-8f48-dd8f806c39e7.htm :

var order3 = new Order { Portfolio = _portfolio, Type = OrderTypes.Conditional, Volume = 5, Security = _instrument0, Direction = OrderDirections.Buy, StopCondition = new QuikStopCondition , }; trader.RegisterOrder(order3); Не работает - непонятно, что писать в 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/i122/1106/52/0a0dbb268d45.jpg

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

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

Thanks:

Mikhail Sukhov

Avatar
Date: 6/14/2011
Reply


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

http://s48.radikal.ru/i122/1106/52/0a0dbb268d45.jpg

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

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

http://stocksharp.com/forum/1633/Svoistvo-Portfolio-u-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: т.е. получить текущий баланс счета невозможно?

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

Если я правильно понял совет по ссылке, делаю

Console.WriteLine(trader.Portfolios.Any(p => p.CurrentAmount.Value > 0)); и получаю false. Не могли бы вы привести кусок кода?

Thanks:

patermind

Avatar
Date: 6/16/2011
Reply


Выставляю стоп вот так:

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);

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


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