Сообщество. StockSharphttps://stocksharp.ru/handlers/atom.ashx?category=community&page=251Copyright @ StockSharp Platform LLC 2010 - 20242024-03-28T22:29:26Zhttps://stocksharp.ru/images/logo.pnghttps://stocksharp.ru/topic/1588/Изменение позиции2011-05-14T16:08:14Z2011-05-14T16:08:14Zvfreemanhttps://stocksharp.ru/users/773/info@stocksharp.ruКоллеги, подскажите, плз, как правильно определять момент изменения позиции? Я так понял, что в этом может помочь событие PositionsChanged, но оно вызывается чаще, чем мне бы хотелось.<br /><br />"События вызываются всегда, когда Квик через ДДЕ посылает обновление таблицы с позициями. А происходит это не только тогда, когда происходит сделка. В этой таблице есть и поля, которые изменяются постоянно." Mikhail Sukhov<br /><br />Теоретически я могу устанавливать свой флаг при срабатывании NewMyTrades и только после этого события обрабатывать PositionsChanged, но подозреваю, что можно сделать проще.<br /><br />2 Mikhail - <b>так</b> можно задавать вопросы?https://stocksharp.ru/topic/1587/Документация2011-05-14T14:18:02Z2011-05-14T14:18:02ZMikhail Sukhovhttps://stocksharp.ru/users/201/info@stocksharp.ruЕсть желающие сделать завершающий процесс? Доку предлагаю сделать <a href="http://stocksharp.com/doc/" title="http://stocksharp.com/doc/">интегрированной с S#</a>, на базе Sandcastle.https://stocksharp.ru/topic/1586/Роботы роботы роботы....2011-05-13T18:54:46Z2011-05-13T18:54:46ZSerghttps://stocksharp.ru/users/484/info@stocksharp.ruПриветствую, Михаил и Коллеги)<br />В очередной раз хотел бы поблагодарить Вас за Ваш труд. Проект растет, развивается и превратился уже в настоящего великана) Желаю Вам не сбавлять обороты))<br /><br />Теперь по существу...<br />Прошло немало времени и наверняка у каждого накопилось не по одному работающему роботу либо хелперу(автоматизатору ручной работы) которые всегда нужны под рукой в рабочем(запущенном) состоянии. Хотел бы выяснить кто как справляется в условиях работы с одним Квиком? Возможно у кого-то есть какие-то наработки по объединению рабочих примеров или идеи как это можно сделать. Буду рад если поделитесь)))<br /><br />Если где что недоглядел ткните плиз))https://stocksharp.ru/topic/1585/SmartCOM не меняет заявки2011-05-13T17:25:53Z2011-05-13T17:25:53Zromanickhttps://stocksharp.ru/users/28047/info@stocksharp.ruВечер добрый!<br />Заметил странное поведение в работе тестового сервера ITInvest. Не знаю куда писать сначала - Вам или в ITInvest, решил всё же вам.<br />В общем суть проблемы: я выставляю заявку, например 5 лотов. Затем по надобности меняю эту заяку при помощи ReRegisterOrder.<br /><div class="code"><strong>Код</strong><div class="innercode">sended = sellOrder.Clone();<br />sended.Volume = 3; // уменьшаю число лотов<br />sended.Price = sellPrice; // меняю цену<br />logOrder(sended); // для проверки вывожу параметры ордера<br />ReRegisterOrder(sellOrder, sended);</div></div><br />Заявка до замены не исполнялась даже частично.<br />Инструмент - RIM1, биржа РТС. Т.е. биржа должна поддерживать замену заявки. В ответ на ReRegisterOrder в OnNewOrders приходит новая зявка с новым id. В объекте Order указан верный объём и верная цена. Список Order.Messages пуст. Ошибок ни в OrdersFailed ни в ProcessDataError не возникает. Из всего этого я делаю вывод, что замена заявки принята сервером.<br /><br />Однако, заявка на сервере не меняется! Точнее меняется только её id, а не число лотов! Во-первых, это видно в параллельно запущенном SmartTrader-е, во-вторых когда заявка (уже с новым Id) исполняется, то исполняется то число лотов которые было в первой заявке - т.е. 5.<br /><br />Почему такое может быть?https://stocksharp.ru/topic/1584/Формирование свечей в Quik и QuikJunior2011-05-12T20:26:12Z2011-05-12T20:26:12Zl-wayhttps://stocksharp.ru/users/16565/info@stocksharp.ruВсем привет<br /><br />Столкнулся с такой проблемой.<br />Запускаю одного и того же робота под Quik (версия 5.16) и Quik Junior (версия 5.21). Меняю только путь к квику и номер счета.<br />Под quik на реальном счете получение свечей отрабатывает нормально:<br /><br />var candlesEnum = TraderHelper.GetTimeFrameCandles(p_candleManager, Security, timeFrame, new Range<DateTime>(startCandleTime, endCandleTime));<br /><br />Под Quik Junior GetTimeFrameCandles всегда возвращает ноль свечей.<br />При этом Strategy.Trader.Trades[] - заполнена, а candleManager.Source.Trades[] - пустая. Т.е. таблица всех сделок получена и дело видимо не в передаче данных из quik junior в программу.<br /><br />В чем может быть причина?https://stocksharp.ru/topic/1583/свой чартинг2011-05-12T13:52:45Z2011-05-12T13:52:45Znoobhttps://stocksharp.ru/users/27876/info@stocksharp.ru Господа,<br /><br /> Очень мне хочется заиметь свой собственный чартинг для торговли прямо с графика через несколько брокеров (с api), а также для тестирование стратегий на истории.<br /> <br /> Насколько сложно на C# написать чартинг уровня Esignal или Medved Quotetracker, чтобы был красивый и быстрый? У меня есть только опыт программирование на C# (без графики). <br /><br /> Какие технологии использовать (wpf?) ? Какие книги по программированию графики на C# посоветуете? Может быть есть какие-то исходники уже готовых графиков?<br /><br />Заранее спасибо.https://stocksharp.ru/topic/1582/Обязательные колонки в схемах2011-05-11T18:24:44Z2011-05-11T18:24:44ZMikhail Sukhovhttps://stocksharp.ru/users/201/info@stocksharp.ruСделал небольшой рефакторинг в плане обязательных колонок для схем. Исходил из того, что значимыми по трафику таблицы это: стаканы, инструменты (ласты) и тиковые сделки. Их оптимизировал, задав для них максимальное количество необязательных колонок. Все остальные (включая позы, портфели и заявки) оптимизировать смысла не вижу, так как вряд ли они будут иметь хоть какой то значимый трафик.https://stocksharp.ru/topic/1581/Нужна реализация стратегии написание тестирование оптимизация запуск2011-05-11T15:14:14Z2011-05-11T15:14:14Zkisliyhttps://stocksharp.ru/users/5961/info@stocksharp.ruЕсть стратегия которую нужно написать протестировать оптимизировать и запустить робота. Стратегия основана на ренко и мани менедменте.<br />Работа на нескольких инструментах. <br />Если есть кто может помочь жду условий!https://stocksharp.ru/topic/1580/Скорость работы робота через Quik2011-05-11T14:28:40Z2011-05-11T14:28:40ZStanislav121https://stocksharp.ru/users/28608/info@stocksharp.ruВопрос о быстродействии робота и скорости совершения сделок.<br />Насколько я понял, роботы на S# работают быстрее, чем роботы написанные на qipule/<br />Но ведь робот на S# будет взаимодействовать с биржей через quik. <br />Не будет ли это нивелировать приемущества в скорости подачи заявок и всего остального?https://stocksharp.ru/topic/1579/Открытие арбитражной позиции2011-05-11T08:59:40Z2011-05-11T08:59:40Zvfreemanhttps://stocksharp.ru/users/773/info@stocksharp.ruКоллеги, может кто поделиться соображениями по поводу открытия арбитражной позиции? Как может помочь Stock#? На какие микро алгоритмы и методы обратить внимание?<br />Что я понимаю под открытием арбитражной позиции - одновременное открытие позиций по нескольким инструментам по нужным (с допустимым проскальзыванием ?) ценам. На данный момент я реализовал анализ стаканов (биды/аски) нужных инструментов и определения момента открытия позиции в ту или иную сторону. Т.е. подошел к реализации метода именно открытия арбитражной позиции.<br />Может кто примерчиком небольшим поделится.<br /><br />ps: пишу на VB, но с C# тоже разберусь...https://stocksharp.ru/topic/1578/Документация в PDF2011-05-10T07:21:15Z2011-05-10T07:21:15Zhahohuhttps://stocksharp.ru/users/3023/info@stocksharp.ruПриветствую. Отличная библиотека, спасибо. Приятно смотреть код, снимаю шляпу!<br /><br />Можно ли приложить документацию в PDF? Удобно полистать на досуге на ebook для обзорного знакомства с библиотекой. Попытался было сам сформировать из chm, но при печати в pdf частично слетает форматирование, а популярные конвертеры валятся с ошибками.https://stocksharp.ru/topic/1577/Глюки codeplex2011-05-09T07:37:04Z2011-05-09T07:37:04Zanotharhttps://stocksharp.ru/users/6089/info@stocksharp.ruдумал тут поработать с транзак пока было время-да никак не мог подключиться к codeplex ни с помощью tortoise ни с помощью team explorer.<br />Пишет: The following permissions are needed to perform this operation:view collection-level information. Может кто встречался с такой проблемой?https://stocksharp.ru/topic/1576/TimeFrameCandle2011-05-09T04:29:59Z2011-05-09T04:29:59Zhobohttps://stocksharp.ru/users/27889/info@stocksharp.ruДобрый день. Версия - 3.0.19.<br />Как получить 2 последние пятиминутные свечи?<br /><br /><div class="code"><strong>Код</strong><div class="innercode">var candleTimeFrame = TimeSpan.FromMinutes(5);<br /><br />_candleManager = new CandleManager(_trader);<br />CandleToken token = _candleManager.RegisterCandles<TimeFrameCandle, TimeSpan>(_secur, candleTimeFrame);<br /><br />var candles1 = _candleManager.GetTimeFrameCandle(_secur, candleTimeFrame, DateTime.Now - TimeSpan.FromDays(2));<br />var candles2 = _candleManager.GetTimeFrameCandle(_secur, candleTimeFrame, DateTime.Now);<br /></div></div><br /><br />В аргумент "период" (который DateTime вроде) что только не пробовал подставить - безрезультатно.<br />В частности candles1 и candles2 - null [cursing]https://stocksharp.ru/topic/1575/Удалил PlazaListener2011-05-08T18:15:08Z2011-05-08T18:15:08ZMikhail Sukhovhttps://stocksharp.ru/users/201/info@stocksharp.ruДолго я на него смотрел, что же из него выйдет в конечном итоге. В конечном итоге вышла обертка над PlazaStream, которая данные переводит из CP2Record в PlazaRecord. Конвертер я перенес в PlazaStream, поэтому логики в PlazaListener вообще не осталось. Плюс ко всему был явный недочет, когда PlazaStreamManager оперирует не PlazaStream, а PlazaListener.https://stocksharp.ru/topic/1574/Оставшиеся задачи до версии бета2011-05-07T14:53:25Z2011-05-07T14:53:25ZMikhail Sukhovhttps://stocksharp.ru/users/201/info@stocksharp.ru<ol><br /><li> Нужно доделать потоки с заявками, сделками (собственными и тиковыми). Сейчас через потоки заполняются только инструменты, портфели, стаканы и позиции.<br /><li> PlazaStreamManager сейчас создает отдельные потоки для каждного стрима. Расточительно по ресурсам. Лучшем переделать на ThreadPool. И да, кто может мне объяснить в чем смысл всех этих ProcessMessage?<br /><li> Логику PlazaTableSerializer лучше перекинуть в PlazaSchemaParser. И да, можно ли построить логику PlazaSchemaParser на основе IniConfigParser?<br /></ol><br /><br />Кто что сделает?https://stocksharp.ru/topic/1573/GetTimeFrameCandles, дубляж свечей.2011-05-06T16:33:48Z2011-05-06T16:33:48ZIlya Gruntalhttps://stocksharp.ru/users/27778/info@stocksharp.ruКак узнал о S# - обрадовался. Начал работать - танцую с бубнами до сих пор, не переставая...<br />Расстраиваюсь теперь, что вроде написано грамотно, и в то же время постоянно какие-то неудобства.<br /><br />GetTimeFrameCandles, и та, что на Count, и та что на Range<DateTime> выдаёт двойные свечи.<br />Пробежавшись по форуму увидел такую же тему, вопрос так и остался нерешенным.<br /><br /><span style="font-size:90%">Date Time Low-Open-Close-High#Volume<br />06.05.2011 10:00:00 9505-9536-9594-9606#16110<br />06.05.2011 10:00:00 9505-9536-9594-9606#16110<br />06.05.2011 10:15:00 9594-9594-9604-9656#9529<br />06.05.2011 10:15:00 9594-9594-9604-9656#9529</span><br /><br />И так далее, в 11:00 выдаёт тоже две свечи, но отличающиеся ценой закрытия и объёмом.<br /><br />После 12:00:00 всё нормально.<br /><br />Пока писал эту тему, снова запустил прогу, чтобы скопировать лог и МАГИЧЕСКИМ образом дубляж исчез. Больше всего как раз таки пугает вот такое вот непостоянство результата... на кону ведь всё таки деньги настоящие :)<br /><br /><em><b>Очень прошу Вас, Михаил!</b></em><br />Пожалуйста, посмотрите внимательно ещё раз на реализацию метода (extension) GetTimeFrameCandles, и попробуйте выяснить почему в одном списке со свечами встречаются такие непостоянные повторения...<br /><br />В свою очередь уверяю, что это не мой косяк, ставил стопы сразу после вызова функции. Могу конечно скинуть код, если не верится... Мне сейчас самому не верится, потому что баг исчез, но он был, при этом я ничего не менял.<br /><br />Надеюсь на взаимопонимание... очень хочется... чтобы всё работало... стабильно...https://stocksharp.ru/topic/1572/Расчет IV2011-05-06T13:30:49Z2011-05-06T13:30:49Zlolpighttps://stocksharp.ru/users/2460/info@stocksharp.ruДобрый вечер!<br /><br />В новой версии Stock# 3.1. была добавлена функция расчета IV TraderHelper.IV.<br />По какой формуле она рассчитывается: берется с биржи, по формулам ртс или каким-либо другим способом?<br /><br />Спасибо! <br />https://stocksharp.ru/topic/1571/Ошибки 3.1.8 - MQS и TPS2011-05-06T13:19:41Z2011-05-06T13:19:41Zsklementievhttps://stocksharp.ru/users/27969/info@stocksharp.ruSMS 13:57:38.8970000 Стратегия запущена.<br />SMS 18:08:15.3345000 [MQS] Стратегия запущена.<br />SMS 18:08:19.2876250 [MQS] Регистрация новой заявки на Buy с ценой 187355 и объемом 1.<br />SMS 18:08:24.5688750 [MQS] Заявка 50192976 на Buy отправлена с ценой 187355 объемом 1.<br />SMS 18:08:25.8345000 [MQS] Цена текущей 187355 и лучшей 187370.<br />SMS 18:08:25.8345000 [MQS] Котирование заявки 50192976 на Buy с ценой 187355 объемом 1.<br />SMS 18:08:30.5688750 [MQS] System.ArgumentException: Транзакции 'ACTION=MOVE_ORDERS; TRANS_ID=50192977; CLASSCODE=SPBFUT; SECCODE=RIM1; MODE=0; FIRST_ORDER_NUMBER=3778516298; FIRST_ORDER_NEW_PRICE=187370; FIRST_ORDER_NEW_QUANTITY=1;' не была зарегистрирована. Причина 'Ошибка перестановки заявок. [FORTS] "Не найдена заявка для перестановки.".'.<br />Parameter name: transactionTxt<br /> at #=qD2xOlf6klYFMEqtIvCYIe2XY4xXoVkHgFfkByZAQ1qw=.#=qNXOXmWEmwXdPYi_TkF4W6bPcEpPDuFGL9tlQ874ryM0=(String #=qXZ5zwAATKIu4VLaGz5N8aw==, OrderStatus& #=qltJU$y_613bV2l5sHrIgUg==, UInt32& #=qDIqRM$HiFNGyjx9swP6UQQ==, Int64& #=q1MgiXGnPVgibGvM0SxigGQ==, String& #=qFgkUO6WJ3vkER9CkFyqNGw==)<br /> at Ecng.Trading.Quik.QuikTrader.#=qGIuaBOZtIYYqSbmJcRu5_pl9N0wlmbfV42B1_Mb9kYg=(Order #=qKBg6VgHRf_u81iatG7ZOAg==, TransactionBuilder #=qoS97U74WoFWYvGl4_AC_vQ==)<br /> at Ecng.Trading.Quik.QuikTrader.OnReRegisterOrder(Order oldOrder, Order newOrder)<br /> at Ecng.Trading.Algo.BaseTrader.ReRegisterOrder(Order oldOrder, Order newOrder)<br /> at Ecng.Trading.Algo.Strategies.Strategy.ReRegisterOrder(Order oldOrder, Order newOrder)<br /> at Ecng.Trading.Algo.Strategies.QuotingStrategy.OnProcess()<br /> at Ecng.Trading.Algo.Strategies.Strategy.#=qUL8QvVim672IJySZ2YTQUUsFaJn7CGayxOKgwtzvhpk=.#=q8yYRTpqONiObQC8C5scz5A==()<br />SMS 18:08:30.5688750 [MQS] Стратегия останавливается.<br />SMS 18:08:30.7251250 [TPS] Стратегия запущена.<br />SMS 18:36:42.1157500 [MQS] Стратегия запущена.<br />SMS 18:36:42.8032500 [MQS] Регистрация новой заявки на Sell с ценой 186560 и объемом 2.<br />SMS 18:36:43.2563750 [MQS] Заявка 50192978 на Sell отправлена с ценой 186560 объемом 2.<br />SMS 18:36:44.2563750 [MQS] Цена текущей 186560 и лучшей 186555.<br />SMS 18:36:44.2563750 [MQS] Котирование заявки 50192978 на Sell с ценой 186560 объемом 2.<br />SMS 18:36:45.6626250 [TPS] Стратегия запущена.<br />SMS 18:36:46.7251250 System.InvalidOperationException: Collection was modified; enumeration operation may not execute.<br /> at System.ThrowHelper.ThrowInvalidOperationException(ExceptionResource resource)<br /> at System.Collections.Generic.List`1.Enumerator.MoveNextRare()<br /> at System.Collections.Generic.List`1.Enumerator.MoveNext()<br /> at System.Linq.Enumerable.WhereEnumerableIterator`1.MoveNext()<br /> at Ecng.Collections.CollectionHelper.ForEach[T](IEnumerable`1 source, Action`1 action)<br /> at Ecng.Trading.Algo.Strategies.Strategy.#=qDEfeO4l1j8zLEDu9Vd9OJtzOv6xz2s_g728Qk0yAhZ4=.#=qdjhgixd9xBF$tuxj$TRmhRHg3u68VrzzXcLNwzIjAm8=(IStrategyChildStrategyList #=qudvEAW9VYqjkOB1dpZ38oQ==)<br /> at Ecng.Collections.CollectionHelper.SyncGet[TCollection,TResult](TCollection collection, Func`2 func)<br /> at Ecng.Trading.Algo.Strategies.Strategy.#=qsnomqswcij2P6ah0kflSEHo8I_UWXiC8Df2cwMz64AY=(DateTime #=qmgzjhBbbE6jLjBbOvSCeeA==)<br /> at Ecng.Trading.Algo.Strategies.Strategy.#=qUL8QvVim672IJySZ2YTQUUsFaJn7CGayxOKgwtzvhpk=.#=q8yYRTpqONiObQC8C5scz5A==()<br />SMS 18:49:09.0063750 [TPS] System.NullReferenceException: Object reference not set to an instance of an object.<br /> at Ecng.Trading.Algo.Strategies.QuotingStrategy.OnError(Exception error)<br /> at Ecng.Trading.Algo.Strategies.Strategy.#=qUL8QvVim672IJySZ2YTQUUsFaJn7CGayxOKgwtzvhpk=.#=q8yYRTpqONiObQC8C5scz5A==()<br />SMS 18:49:09.0063750 [TPS] Стратегия останавливается.<br />SMS 18:49:10.0376250 [TPS] Котирование закончилось.<br />SMS 18:49:10.1470000 [TPS] Стратегия остановлена.<br /><br /><br />https://stocksharp.ru/topic/1570/Проблема с VS Express2011-05-06T10:49:55Z2011-05-06T10:49:55ZMCTuTeJ|19951995https://stocksharp.ru/users/18/info@stocksharp.ruСкорее всего это никак не связано со s#, но при работе программы периодически вылетает следующая ошибка :<br /><br />[Window Title]<br />vshost32.exe<br /><br />[Main Instruction]<br />Прекращена работа программы "vshost32.exe"<br /><br />[Content]<br />Windows может провести поиск способа устранения этой ошибки в Интернете.<br /><br />[V] Показать подробности проблемы [Искать решение проблемы в Интернете и закрыть программу] [Закрыть программу] [Отладить программу]<br /><br /><br /><br />Сигнатура проблемы:<br /> Имя события проблемы: APPCRASH<br /> Имя приложения: myapp.vshost.exe<br /> Версия приложения: 10.0.30319.1<br /> Отметка времени приложения: 4ba2084b<br /> Имя модуля с ошибкой: ntdll.dll<br /> Версия модуля с ошибкой: 6.1.7600.16385<br /> Отметка времени модуля с ошибкой: 4a5bdadb<br /> Код исключения: c0000005<br /> Смещение исключения: 00051f70<br /> Версия ОС: 6.1.7600.2.0.0.256.48<br /> Код языка: 1049<br /> Дополнительные сведения 1: 210e<br /> Дополнительные сведения 2: 210e3e549afb1787469717137fc06cf9<br /> Дополнительные сведения 3: 564c<br /> Дополнительные сведения 4: 564cff13b9022bacdfbe0c6c5dc876a7<br /><br />Ознакомьтесь с заявлением о конфиденциальности в Интернете:<br /> <a target="_blank" href="http://go.microsoft.com/fwlink/?linkid=104288&clcid=0x0419
" title="http://go.microsoft.com/fwlink/?linkid=104288&clcid=0x0419
">http://go.microsoft.com/...104288&clcid=0x0419
</a><br /><br />Если заявление о конфиденциальности в Интернете недоступно, ознакомьтесь с его локальным вариантом:<br /> C:\Windows\system32\ru-RU\erofflps.txt<br /><br /><br />ОС -Win7 32 bit, CallStack получить не удается ... <br />Гуглил достаточно активно, но однозначной причины не нашел. Если кто-нибудь сталкивался, помогите, пожалуйста.https://stocksharp.ru/topic/1569/Загрузка info_options.wnd не проходит2011-05-06T05:05:39Z2011-05-06T05:05:39Zvfreemanhttps://stocksharp.ru/users/773/info@stocksharp.ruКоллеги, а только у меня при попытке загрузить настройки из файла info_options.wnd вываливается сообщение?<br /><a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAADxlMlfcGqj2CSlhK7PsumTVlG04W7rGMZIbioitMzRjA" title="http://www.radikal.ru"><a href='http://i025.radikal.ru/1105/e3/88a2826e49e5.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'><img src="http://i025.radikal.ru/1105/e3/88a2826e49e5.png" style='max-width: 600px;' alt=""/></a></a><br />Stock# 3.1.8<br />Quik 5.18.0.386<br />