Сообщество. StockSharphttps://stocksharp.ru/handlers/atom.ashx?category=community&page=142Copyright @ StockSharp Platform LLC 2010 - 20242024-03-29T10:12:08Zhttps://stocksharp.ru/images/logo.pnghttps://stocksharp.ru/topic/3912/Дока 4.1.18 не работает2013-08-22T20:08:14Z2013-08-22T20:08:14ZDenhttps://stocksharp.ru/users/6003/info@stocksharp.ruОткрываю StockSharp.chm и винда выдает диалог с Security Warning - Unknown Publisher.<br />Дальше открывается окно с докой и в правой панели пусто, и ничего не открывается <br />ни из Contents, ни из Index...<br /><br /><b>Уточнение: </b>дока из StockSharp_4.1.18_Sources.zip работает нормально. <br />Не работает скачанная отдельным файлом. Может браузер ее как-то снасильничал в дороге....https://stocksharp.ru/topic/3911/Баг с событиями ордеров если выставлять их руками в квике2013-08-22T16:30:07Z2013-08-22T16:30:07ZDenhttps://stocksharp.ru/users/6003/info@stocksharp.ruS# 4.1.17<br />Quik 6.7.3.2<br />Настройки трейдера:<br /><div class="code"><strong>Код</strong><div class="innercode"><br />// включаем асинхронный режим (не ждем Order.Id от биржи)<br /> this.Trader.IsAsyncMode = true;<br /><br />// включаем поддержку режима ручных заявок <br /> this.Trader.SupportManualOrders = true;<br /></div></div><br /><br />Выставляю руками заявку в стакан (заведомо неисполнимую, остается висеть в стакане).<br />Корректно прилетает <b>NewOrders</b>. У ордера State: Active<br /><br />Снимаю руками заявку.<br />Опять прилетает <b>NewOrders</b>. У ордера State: Done; Cancelled: True<br />Событие <b>OrdersChanged </b>не приходит...<br /><br />Если ордер исполняется частично тоже прилетает <b>NewOrders</b> с Partially: True и правильным балансом<br /><br />В случает когда ордер исполняется опять прилетает <b>NewOrders</b> с Matched: True Balance: 0 State: Done<br /><br /><br /><br />P.S. для <b>стоп</b>-ордеров, выставленных руками в квике, все работает правильно...https://stocksharp.ru/topic/3910/Есть ли смысл переходить на .Net 4.5?2013-08-22T14:42:53Z2013-08-22T14:42:53ZDenhttps://stocksharp.ru/users/6003/info@stocksharp.ruКоллеги,<br /><br />есть ли какая-либо практическая польза переходить на .Net 4.5?<br /><br />Действительно ли улучшается перформанс просто за счет перехода на новую<br />версию без правки кода (они это обещают)?<br /><br />Какие еще видите плюсы для робостроения от последней версии .Net?https://stocksharp.ru/topic/3908/перешел со сборки 12 на 17 и в чем причина ошибки понять не могу2013-08-20T08:13:38Z2013-08-20T08:13:38Zcasper-sshttps://stocksharp.ru/users/26936/info@stocksharp.ruМожет кто нить подскажет, в чем дело то...проект с 17 библиотекой запускаю, пишет что конект установить не удается по причине отсутствия коннекта...а под 12 сборкой все норм фурычит на том же роутере...???<br />https://stocksharp.ru/topic/3905/Ошибка: Header with id = 0 not found2013-08-20T06:52:25Z2013-08-20T06:52:25Zagio87https://stocksharp.ru/users/39596/info@stocksharp.ruЗдравствуйте!<br /><br />Спасибо за Гидру - с ней собирать и хранить историю очень удобно!<br /><br />Всем доволен, единственное, во время работы возникает ошибка (кусок лога ниже):<br /><br /><div class="code"><strong>Код</strong><div class="innercode"><pre class="brush:plain">
10:45:12.822| |Transaq |Сохранение Trade для GZU3@FORTS.
10:45:12.826| |Transaq |Для GZU3@FORTS загружено 3 сделок.
10:45:12.826| |Transaq |Сохранение MarketDepth для GZU3@FORTS.
10:45:12.835| |Transaq |Для GZU3@FORTS загружено 1 стаканов.
10:45:13.127|Error |TransaqTrader|System.InvalidOperationException: Header with id = 0 not found
10:45:13.127|Error |MarketDataTrader`1|System.InvalidOperationException: Header with id = 0 not found
10:45:13.834|Error |Transaq |System.InvalidOperationException: Header with id = 0 not found
в StockSharp.Hydra.Core.MarketDataTrader`1.GetTrades()
в StockSharp.Hydra.Core.TraderMarketDataSource`1.SaveValues[T](Func`1 getNewValues, Action`3 saveValues)
в StockSharp.Hydra.Core.TraderMarketDataSource`1.ProcessNewData()
в StockSharp.Hydra.Core.TraderMarketDataSource`1.OnLoad()
в StockSharp.Hydra.Core.BaseMarketDataSource.<Start>b__0()
10:45:13.835| |Transaq |Сохранение Trade для GZU3@FORTS.
10:45:13.839| |Transaq |Для GZU3@FORTS загружено 1 сделок.
10:45:13.839| |Transaq |Сохранение MarketDepth для GZU3@FORTS.
10:45:13.847| |Transaq |Для GZU3@FORTS загружено 1 стаканов.
10:45:13.848| |Transaq |Сохранение SecurityChange для GZU3@FORTS.
</pre>
</div></div><br /><br /><br />Ипользую Transaq, данные закачивает.<br /><br />Скажите, пожалуйста, что это за ошибка и как ее решить.https://stocksharp.ru/topic/3904/Как чистить память?2013-08-15T20:50:22Z2013-08-15T20:50:22ZBondhttps://stocksharp.ru/users/26882/info@stocksharp.ruПросто включаю и выключаю коннектор к Квику. И с каждым перезапуском он все тяжелее загружает данные, а потом на 4-5 включении выбрасывает с ошибкой о переполнении памяти. С каждым включением он съедает 400 Мб оперативной памяти, а после отключения её не выгружает. Только когда закрываешь окно коннектора он освобождает память. Код отключения у меня как из уроков:<br /><div class="code"><strong>Код</strong><div class="innercode"><pre class="brush:csharp">
public void DisConnectSafe()
{
//Если коннектор к торговой платформе не пуст и соединение установлено
if(Trader!=null && Trader.IsConnected)
{
Trader.StopExport();
Trader.Disconnect();
}
}
</pre>
</div></div><br />Dispose() не помогает!!!https://stocksharp.ru/topic/3903/помогите с плазой2013-08-15T18:18:30Z2013-08-15T18:18:30Zpft_manhttps://stocksharp.ru/users/28735/info@stocksharp.ruВ общем подключил у брокера плазу2 - брокер прислал логин, пароль и четыре ip адреса (подключение через сервер брокера), один default и три direct (впрочем, они отличаются только последней цифрой в числе после двоеточия. Скачал с сайта биржи роутер (ClientGate для 32-х разрядной системы), установил как службу. В процессе установки роутера указал эти ip адреса, логин и пароль. <br /><br />Дальше запускаю пример работы с плазой SampleGUI, но подключиться не удаётся. Не до конца понимаю, нужно ли указывать ip, пробовал и так и так. В случае когда указываю ip, который мне брокер прислал прямо в форме, выскакивает ошибка подключения к серверу (скрин ниже). В случае когда ничего не указываю, то есть комментирую эту строку в коде, долго-долго ничего не происходит, а потом появляется сообщение, что не удалось подключиться в установленное время. <br /><br /><div class="code"><strong>Код</strong><div class="innercode"><pre class="brush:csharp">
Trader.Address = Address.Text.To<IPEndPoint>();
</pre>
</div></div><br /><br />Ещё не понимаю, нужно ли указывать логин и пароль на форме SampleGUI, если я их уже в роутере при установке. Пробовал и указывать, и не указывать - не работает.<br /><br />Запускаю всё на локальной машине, то есть на домашнем компе.<br /><br />p.s. как же это всё сложно!https://stocksharp.ru/topic/3902/Нейронные сети и генетические алгоритмы2013-08-15T06:28:04Z2013-08-15T06:28:04ZBondhttps://stocksharp.ru/users/26882/info@stocksharp.ruУважаемые специалисты по алгоритмической торговле! Кто нибудь пробовал использовать в своих алгоритмах экзотические способы поиска скрытых закономерностей, такие как нейронные сети и генетические алгоритмы? Звучит красиво, но насколько они эффективны? Так как их реализация требует значительной загрузки мозгов! Оно того стоит?<br />Вот, <a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAAANygkgOJutceBrqLqFV1-jppNyUUP4BUwRJ-lVLZavCw" title="http://habrahabr.ru/post/190132">например</a>, человек ищет куда пристроить свою библиотеку с нейронными сетями под Матлаб. Хоть и не про трейдинг, но хоть какие-то наработки.https://stocksharp.ru/topic/3901/Как прогрузить все сделки по DDE ?2013-08-14T10:18:29Z2013-08-14T10:18:29ZМаксhttps://stocksharp.ru/users/6040/info@stocksharp.ruЕсли запись всех сделок с DDE идет с утра, то все нормально.<br />Но если включиться в середине дня, то данные из таблицы "все сделки" приходят только с момента подключения, хотя в таблице "все сделки" есть все сделки с утра.<br />Как быть?<br /><br />https://stocksharp.ru/topic/3900/Невозможно выставить рыночную заявку (OrderTypes.Market) AlfaTrader'ом2013-08-14T08:31:04Z2013-08-14T08:31:04ZIvan Zhilvanovichhttps://stocksharp.ru/users/28230/info@stocksharp.ruПривет!<br /><br />Подскажите, пожалуйста, почему в последних версиях библиотеки(например, 4.1.16.1, или 4.1.17) стало невозможно выставить рыночную заявку (OrderTypes.Market) AlfaTrader'ом?<br /><br />При попытке это сделать бросается Exception System.InvalidOperationException с сообщением "Рыночные заявки не поддерживаются". Данная функциональность раньше работала, например, с релизом 4.1.11. Заявки OrderTypes.Market на релизе 4.1.11 успешно выставляются.<br /><br />Код для сабмита рыночной заявки взят из примера AlfaDirect->SampleGUI:<br /><br /> try<br /> {<br /> var order = new Order<br /> {<br /> Type = IsMarket.IsChecked == true ? OrderTypes.Market : OrderTypes.Limit,<br /> Portfolio = Portfolio.SelectedPortfolio,<br /> Volume = Volume.Text.To<decimal>(),<br /> Price = Price.Text.To<decimal>(),<br /> Security = Security,<br /> Direction = IsBuy.IsChecked == true ? OrderDirections.Buy : OrderDirections.Sell,<br /> };<br /><br /> MainWindow.Instance.Trader.RegisterOrder(order);<br /><br /> DialogResult = true;<br /> }<br /> catch (Exception ex)<br /> {<br /> MessageBox.Show(this, ex.Message, "Ошибка");<br /> }<br /><br />Спасибо!<br />https://stocksharp.ru/topic/3898/Бага в расчете теты и в целом о расчете греков2013-08-12T18:56:16Z2013-08-12T18:56:16ZDenhttps://stocksharp.ru/users/6003/info@stocksharp.ruУважаемые разработчики!<br /><br />Нашел багу в расчете теты.<br /><br /><br /><br /> var theta =<br /> -(SecurityPriceMode(UnderlyingAsset) * deviation * (decimal)nd1) / (2 * (decimal)timeToExp.Sqrt() * <b>_dayInYear</b>) -<br /> sign * (Option.Strike * RiskFree * (decimal)(expRate * normaldistr.normaldistribution(sign * d2)));<br /><br /> return TryRound(theta);<br /> <br />Т.е. на кол-во дней в году делится только первое слагаемое. Если безрисковую ставку сделать ненулевой тета начинает быть положительной и зашкаливать :)<br />Правильно будет вот так:<br /><br /> var theta =<br /> -(SecurityPriceMode(UnderlyingAsset) * deviation * (decimal)nd1) / (2 * (decimal)timeToExp.Sqrt()) -<br /> sign * (Option.Strike * RiskFree * (decimal)(expRate * normaldistr.normaldistribution(sign * d2)));<br /><br /> return TryRound(theta / <b>_dayInYear</b>);<br /><br />Ну и переименовать бы ее в _day<b>s</b>InYear.<br /><br />Теперь в целом о греках.<br />Формулы, которые используются в расчетах применимы только для опционов на <b>АКЦИИ</b>. У нас на бирже только опционы на ФЬЮЧЕРСЫ.<br />На западных биржах есть и те, и другие.<br /><br />Если <b>НЕ</b> учитывать безрисковую ставку, то для фьючей по этим формулам правильно расчитываются дельта, гамма и вега, что<br />в общем для жизни хватает. Но если учитывать, то все неточно.<br />https://stocksharp.ru/topic/3897/Интеграция QuantLib в S#2013-08-11T14:25:23Z2013-08-11T14:25:23ZBuratinohttps://stocksharp.ru/users/451/info@stocksharp.ruКак на счёт того, чтобы добавить С++ библиотеку <b>QuantLib</b> в сборку S#? <a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAAD5Rgg3ELKshvloSRV1-XDs7HLc057zHYpMyRqMNp45Y2j3uQnz7n6KiQ0z_38eAWU" title="http://quantlib.org/extensions.shtml">Тут</a> я нашёл примеры двух портаций на C#, что вроде бы должно облегчить работу. Или всё же придётся рутинно прописывать каждую функцию?https://stocksharp.ru/topic/3896/SampleHistoryTesting2013-08-11T07:44:53Z2013-08-11T07:44:53Zsazonhttps://stocksharp.ru/users/39329/info@stocksharp.ruЗдравствуйте. <br /><br />Скачал новую версию api 4.1.17. Есть там "SampleHistoryTesting", пробую протестировать с данными (5-ти минутные свечи) "HistoryData.zip"(http://stocksharp.com/products/download/) - вылетает исключение: "Ошибка регистрации инструмента RIZ2@FORTS на получение рыночных данных для Trades". Причем в 4.1.13 с этими же данными все отрабатывется.Скачивал через hydra другие данные, аналогичная ситуация.<br /><br />Заранее благодарен.https://stocksharp.ru/topic/3895/Где-то косячок... =)2013-08-10T19:28:57Z2013-08-10T19:28:57ZBondhttps://stocksharp.ru/users/26882/info@stocksharp.ruИзменяющиеся цвета кнопок при подключении я сделал. Понравилось. Захотелось, чтобы при нажатии "Connect" запускался терминал и авторизовывался, если он не запущен. Да так, чтобы логин и пароль были записаны в отдельном фале, а не в коде(пока юзаю Junior для отладки). Сделал. Но вот косяк. Терминал запускается, а передавать значения в StockSharp.WpfConnectionInterface.dll не хочет. Если запускать код на включенном терминале, то все работает. Думал задержки маленькие поставить - не помогают. Нужен взгляд профессионала!)<br /><br />Как работает запуск и авторизация:<br />По адресу C:\Key_Junior\Key_Junior.txt храню файл Key_Junior.txt(кодировка файла UTF-8 вроде), в котором текст следующего содержания:<br />C:\Program Files\QUIK-Junior\info.exe<br />61488<br />ХХХХХХХХХХ<br />, где первая строка адрес нужного Квика, вторая и третья логин и пароль.<br />метод считывает каждую строку и запоминает нужные данные. А потом на их основе запускает терминал.<br /><br />Прилагаю архивчик, в нем:<br />Из StockSharp.WpfConnectionInterface - InterFace.xaml, InterFace.xaml.cs;<br />Из StockSharp.TraderConnection - SafeConnection.cs;<br />Текстовый файл - Key_Junior.txt.<br /><br />По отдельности работает. Вместе, на моменте передачи данных из потока(уже появляется надпись "Disconnect") зависает.<br /><br />П.С. Может это все как-то более рационально можно реализовать?https://stocksharp.ru/topic/3894/Некорректный расчет временной стоимости опциона2013-08-10T11:34:16Z2013-08-10T11:34:16ZDenhttps://stocksharp.ru/users/6003/info@stocksharp.ruВ выложенных сорцах временная стоимость определяется так:<br /><br />public static decimal <b>GetTimeValue</b>(this Security option)<br />{<br /> option.CheckOption();<br /> return (decimal)(option.GetCurrentPrice() - option.<b>GetUnderlyingAsset</b>().GetCurrentPrice());<br />}<br /><br />Цена опционов мала относительно цены БА, при вычете цены базового актива получится большое отрицательное число.<br /><br />Вариант, который будет работать всегда:<br /><br />return (decimal)(option.GetCurrentPrice() - option.<b>GetIntrinsicValue</b>());https://stocksharp.ru/topic/3892/Запрос на расширение Chart2013-08-10T07:46:10Z2013-08-10T07:46:10ZDenhttps://stocksharp.ru/users/6003/info@stocksharp.ruУважаемые разработчички!<br /><br />Если в график вставить большое кол-во свечек (скажем все 5-минутки за три месяца),<br />то неудобно в этом графике ориентироваться по временному масштабу.<br /><br />В <b>SciChart </b>есть элемент <b>SciChartOverview</b>, который в виде ползунка внизу позволяет<br />удобно масштабировать отображаемый на графике временной интервал. В качестве параметра он<br />принимает <b>ParentSurface</b>.<br /><br />Было бы здорово если бы сделали для него класс <b>ChartOverviewArea</b>, с конструктором<br /><b>ChartOverviewArea(ChartArea parentArea)</b><br /><br />Получался бы примерно такой код:<br /><br /><br /> var chart = new Chart();<br /><br /> var area = new ChartArea();<br /> chart.Areas.Add(area);<br /> var candlesElem = new ChartCandleElement();<br /> area.Elements.Add(candlesElem);<br /><br /> <b> var overview = new ChartOverviewArea(area);<br /> chart.Areas.Add(overview);</b><br />https://stocksharp.ru/topic/3891/Как работать с .sln ?2013-08-10T07:31:02Z2013-08-10T07:31:02ZBondhttps://stocksharp.ru/users/26882/info@stocksharp.ruВ групповом проекте куча проектов. Как мне запустить один необходимый? По умолчанию студия запускает первый! А мне нужен, допустим, пример из 3 урока.<br />И еще вопрос. Например, в том же 3 уроке хочу подправить в StockSharp.WpfConnectionInterface InterFace.xaml(Кстати Студия пишет, что в вашем не может создать экземпляр этой библиотеки и ее приходится подключать к проекту по-новому, хз почему). Как я понимаю это уже готовая библиотека и идет как ссылка к проекту и ее не исправишь из проекта. Нужно брать исходные коды StockSharp.WpfConnectionInterface и StockSharp.TraderConnection править их и по новому компилировать библиотеку. Но в исходном коде этих библиотек я не могу их отладить так как это библиотека и нужно создать новый проект и в нем сослаться на эту библиотеку, чтобы можно было запустить отладку. Как запустить на отладку проект создающий библиотеку классов?<br />Скорее всего я что-то делаю не верно. Хорошо, когда все проекты лежат вместе, нагляднее. Но как теперь во всей этой куче файлов разгребаться непонятно [confused]<br /><br />P.S. И еще парочка дурацких вопросов. Я могу изменить тип разрабатываемого проекта в процессе? Например, создал проект консольного приложения, а потом захотел сделать из него библиотеку. Как изменить тип проекта? Создавать новый проект и копировать в него код? Наверное, как-то проще делается))) Плюс Студия так и нарочит закрыть текущий проект когда хочешь создать новый проект. Можно создать новый проект в Новом окне Студии?https://stocksharp.ru/topic/3889/Проблема экспорта таблицы инструментов для опционов, если есть инструменты со спота2013-08-09T19:24:21Z2013-08-09T19:24:21ZDenhttps://stocksharp.ru/users/6003/info@stocksharp.ruУважаемые разработчики!<br /><br />Для того, чтобы работать с опционами, в таблице инструментов нужна колонка "<b>Базовый актив</b>".<br /><br />Для спотовых инструментов и индексов она всегда пустая.<br />S# кидает эксепшены и не грузит такого рода инструменты.<br />Просьба добавить проверку по <b>коду класса</b> и требовать непустую колонку базового актива только для <b>SPBFUT </b>и <b>SPBOPT</b>https://stocksharp.ru/topic/3888/Strategy LifeCycle. Окончание стратегии2013-08-09T14:46:20Z2013-08-09T14:46:20ZAndriihttps://stocksharp.ru/users/27996/info@stocksharp.ruСоздаю некую стратегию на покупку<br /><div class="code"><strong>Код</strong><div class="innercode"><pre class="brush:csharp">
new MarketQuotingStrategy(direction, volume)
{
WaitAllTrades = true
};</pre>
</div></div><br />где volume = 3, какое событие произойдет когда будет куплен нужный объем<br />есть <br /><div class="quote"><span class="quotetitle">Цитата:</span><div class="innerquote">MarketRuleHelper WhenStopping - правило на событие начала остановки работы стратегии.<br />MarketRuleHelper WhenStopped - правило на событие полной остановки работы стратегии.</div></div><br />на сколько завершение и остановка идентичны?<br />можете показать пример, создания стратегии при завершении другой?<br /><br />вообще бы знать, что когда вызывается, какой-то список событий.https://stocksharp.ru/topic/3887/Кривой стакан2013-08-09T13:56:55Z2013-08-09T13:56:55ZBrusianskiihttps://stocksharp.ru/users/16733/info@stocksharp.ruДобрый день, уважаемый разработчики!<br />С чем может быть связана проблема с отображением стакана по SVAV