С удивлением следил в последние 2 года за процессами трансформации концепции S#: вначале это была бесплатная простая лицензия с увеличением функций за прохождение обучения. Затем открыли коды и лицензия как таковая потеряла актуальность. Недавно снова закрыли коды, сославшись на \u0027огромные убытки\u0027. А S#.Studio пререименовали в S#.Designer, сделав обрезание функционала… При этом непосредственно в развитии функционала и удобства библиотек было сделано весьма немного, walk forward optimization как не было так и нет, торгового исполнения индексных инструментов для pair trading как не было, так и нет. Собственно сам факт отсутствия значимого вклада пользователей в развитие S# в эпоху \u0027открытого кода\u0027 достаточно плотно обсуждался в дискуссии (http://stocksharp.ru/forum/283/Nashi-niesbyvshiiesia-Open-source-miechty/). Краткий итог печален: пользователи делятся либо на алготрейдеров с идеями но без навыков качественного программирования, либо на программистов без алгоидей. И это без учета массы ламеров и алгодрочеров-неудачников. Однако по итогам проведенного эксперимента вполне можно предложить новую парадигму развития S# как открытой платформы - S#.PMO Суть в том, что создается Проектный офис (Project Menegement Office - PMO), в котором активные пользователи принимают участие с целью коллективного развития S# на основе проектного подхода и с учетом их компетенций. Каждый Проект, запушенный в Офисе, имеет цель создать укальный новый функционал или существенно развить имеющийся. Основные роли в каждом проекте: Алго-аналитик (1 место) - отвечает за проработку Технического задания, уточнение ТЗ в процессе выполнения, подготовку Справки пользователя в период выполнения, проверяет набор тест-кейсов на предмет охвата функционала и проводит тестирование результатов выполнения задания. Разработчик (1/2 места) - отвечает за реализацию в новых библиотеках нового функционала согласно ТЗ, результаты передает Тестировщику. Тестировщик (1 место) - верифицирует ТЗ на предмет четкости изложения до передачи разработчикам, во время разработки подготавливает тест-кейсы для функционального/регрессионного и интеграционного тестирования, после получения разработки или ее компонентов от Разработчика проводит обозначенное тестирование функционала вместе с Аналитиком. Спонсор (1-4 места) - место открывается в проектах, в которых требуется приобрести внешние платные компоненты или заказать разработку кода на языке отличном от C#, обеспечивает взнос не менее Х тыс.руб. Для таких проектов на этапе старта планируется Бюджет - общая сумма средств, которую необходимо набрать для успешной реализации проекта в целом. К каждой роли кроме Спонсора предъявляется минимальный набор требований: завершение курса обучения S# и не менее полугода участия в жизни Форума. К роли Разработчика доп. требование - заключается в наличии как минимум одной полноценной разработки на основе S#, опубликованной на общем GitHub. Для большей мотивации восстанавливается подход двух лицензий: бесплатная для проектирования (без возможности торговли на живых коннекторах), платная - с полным функционалом и с ежегодной оплатой лицензии. При этом оставляется возможность получить платную лицензию на 1 год за участие в 1 успешно завершенном проекте S#.PMO. Практика предоставление платных лицензий просто за обучение прекращается(не возобновляется). Руководителем Проектного офиса назначается Михаил, или иной участник текущей команды S#. Суть данной роли - верификация уместности запускаемых проектов, аудит фин. расходов для проектов с ненулевым бюджетом, акцепт готовых проектов с присвоением статуса успешно/неуспешно выполнен. Ведение Планов проектов не предусматривается, т.к. понятно что подобные проекты будут массово включать agile-методы итеративной разработки-тестирования, и жесткий контроль сроков каждой стадии не уместен. Однако при желании команды работать с Планом, План проекта может вестись Алго-аналитиком или участником с иной ролью. Перед стартом работы и при каждом изменении состава команды, участники собираются для очного общения в кафе/мдк/kfc и т.д. Основная цель - социализация и создание атмосферы доверия.
Подскажите, почему убран класс IndicatorManager (а так же связанный с ним CandleSeriesIndicatorSource) после версии 4.3.13 ? Есть ли его замены?
http://i80.fastpic.ru/big/2016/0607/13/a11822c498da3a6bed1f8d6782042c13.jpg Сырая нефть может вырасти до $60 за баррель к концу этого года, даже без вмешательства со стороны ОПЕК. Это сказал в интервью CNNMoney в четверг новый министр энергетики Саудовской Аравии Khalid Al Falih. Al Falih выступал сразу после того, как ОПЕК завершила саммит в Вене. В ходе встречи ОПЕК приняла решение не вводить квоту на добычу, в очередной раз провалив соглашение об ограничении добычи нефти. «Нужно продолжать следить за рынком и позволить рынку делать свое дело. Сейчас он работает в нашу пользу», – сказал Al Falih, намекая на снижение добычи в странах, не входящих в ОПЕК, и на рост цен на нефть. Al Falih, который сменил в мае давно занимавшего этот пост в Саудовской Аравии министра Ali al-Naimi, сказал, что вероятность цены на нефти в $60 к концу года «очень высока», также как и более высокие цены в 2017 году. Он сказал, что спрос и предложение «сошлись», и цены поднялись из-за перебоев в поставке. Недавние перебои в Нигерии, Канаде и Колумбии помогли цене на нефть подняться до $50 за баррель, почти вдвое с середины февраля. Читать далее \u003e\u003e\u003e
Доброго дня Если не жалко поделитесь пожалуйста примером работы с HydraStorage Я нашел только http://stocksharp.com/doc/html/e4a57b52-bd14-4640-a7c7-0979dba1ad0a.htm, а хотелось бы именно пример работы с Hydra Спасибо
http://i9.pixs.ru/storage/9/2/0/7c0d7bprev_7963821_22225920.jpg Приглашаем инвесторов, трейдеров и финансовых управляющих на 5-ю Инвестиционную Online Конференцию ProValue. Она стартует с понедельника 6 июня в 19.00МСК. На протяжении двух недель с Вами будут делиться знаниями и опытом лучшие представители финансовой индустрии СНГ и США. Недвижимость, Продвинутые опционные стратегии, вэлью инвестирование, финансовое планирование, пассивный доход, посуточная аренда, формирование успешного инвестиционного портфеля, эти, и множество других тем будут детально рассмотрены на конференции. Зарегистрироваться на Конференцию можно по этой ссылке \u003e\u003e\u003e Среди именитых спикеров такие трейдеры как: • Юлия Станчева — финансовый эксперт, аналитик, Лектор коуч программ и тренингов собственных торговых алгоритмов. • Денис Ковач — руководитель биржевой школы трейдинга NEW WAVE • Константин Фин – независимый финансовый советник, профессиональный инвестор, эксперт в управлении личными финансами, действующей кредитный юрист и практикующий психолог финансовых рынков. • Евгений Филиппов – Практикующий трейдер, торгующий на валютном рынке уже более 8-ми лет, финансовый эксперт на телевизионных каналах «Россия 24», «РБК», «Дождь» • Виталий Сергиенко – Основатель Rich Invest Group Профессиональный трейдер с 2007 года (FX, СМЕ), инвестор. • Глеб Задоя — Ведущий финансовый аналитик. Опыт работы на Форекс: с 2005г. Практикующий трейдер. Специализация: Комплексный анализ финансовых рынков. • Александр Денюков — Профессиональный инвестор в аукционы по банкротству и государственное имущество. • Иван Захаров — Эксперт в области корпоративных и личных финансов с 17-ти летним стажем в крупных холдингах. • Андрей Макарский — Управляющий инвестиционным фондом, биржевой аналитик, сертифицированный преподаватель и сооснователь Академии ProValue Информация о спикерах в цифрах: • Спикеры конференции управляют капиталами более — 250 млн. долл суммарно • Совокупный опыт торговли на финансовых рынках — 112 лет • Средняя доходность за прошлый год составила более — 25-30% • Вам будут раскрыты более 15 разных стратегий и тактик инвестирования Почему Вам стоит записаться на конференцию: • НОВЫЕ ЗНАНИЯ - Возможность узнать ранее неизвестные аспекты трейдинга. • ФИШКИ - Конференция это способ узнать уникальные подходы к анализу рынка спикерами. • РАЗНЫЕ ПУТИ ИНВЕСТИРОВАНИЯ - Если Вы в начале пути, то Вы сможете определить направление развития. • ОБМЕН ОПЫТОМ - Возможность новых знакомств и общения с единомышленниками. • АКТУАЛЬНАЯ ИНФОРМАЦИЯ - Работающие приемы, стратегии и тактики от практиков рынка. Конференция проводится в удобное время — каждый будний день в 19:00 и в 20:30 по московскому времени. Участие в конференции — бесплатно. Каждому записавшемуся бонус — набор материалов и приложений от спикеров, которые помогут добиться успеха на финансовых рынках. Онлайн конференция ProValue Conference — уникальное событие в мире инвестирования, которое должен посетить каждый! Зарегистрироваться вы можете тут \u003e\u003e\u003e
http://i11.pixs.ru/storage/7/1/2/151575640x_7549751_22225712.jpg В США создали всего 38 000 новых рабочих мест в мае и почти полмиллиона человек прекратили трудовые отношения. Это заставляет усомниться в силе экономики и, возможно, заставит ФРС отказаться от планов поднять процентные ставки этим летом. Увеличение найма было самым маленьким, начиная с осени 2010 года. Экономисты предсказывали рост рабочих мест в несельскохозяйственном секторе на 155 000. Более половины основных отраслей промышленности сократили рабочие места в прошлом месяце, первый раз за несколько лет. Другой плохой знак – временная занятость сократилась на 21 000 за месяц и на 64 000 в этом году, заявило в пятницу Министерство труда. Спад показателя временной работы в 2016 году – самый сильный за 7 лет роста. Это может быть признаком того, что наем, скорее всего, останется слабым. Темпы найма обычно увеличиваются, когда экономика сильная, и многие из временных работников в конечном счете получают работу на полный рабочий день. Количество созданных новых рабочих мест в мае было бы в два раза больше, если бы не крупная забастовка Verizon, которая оставила 35 000 сотрудников без работы. Но отчет о занятости по-прежнему остается самым слабым по крайней мере за два с половиной года, даже без учета последствий забастовки. Читать далее\u003e\u003e\u003e
http://i77.fastpic.ru/big/2016/0605/e1/2f1c2ec7d9c2b7ce90bcc8258ebddee1.jpg Доходность фондового рынка, если смотреть по S\u0026P 500, составила 3% за год, по состоянию на 2 июня 2016 года. Сейчас она находится в пределах 1% от пика, которого достигла чуть более года назад. Посмотрим, где мы находимся с рыночной стоимостью акций и ожидаемой прибылью. Рыночная стоимость акций по индикатору Баффета Наиболее важным показателем оценки фондового рынка является так называемый индикатор Баффета. Это соотношение общей рыночной капитализации к ВВП. Как отметил Уоррен Баффет, процент общей рыночной капитализации по отношению к ВВП США является «вероятно, лучшим показателем рыночной стоимости в любой момент времени». Коэффициент P/E Шиллера и его прогнозы Коэффициент P/E Шиллера (price/earnings Shiller), названный в честь его изобретателя профессора Йельского университета Роберта Шиллера, является еще одной объективной метрикой рыночной оценки. На сегодняшний день коэффициент находится на уровне 26,4, выше 25,3 в начале января. Это на 58,1% выше исторического среднего значения в 16,7. Читать далее\u003e\u003e\u003e
При повторной подписке на свечи того же инструмента и того же таймфрейма в лог начинают сыпаться ошибки вида 2016/05/30 15:52:09.090| |None |0 iteration 2016/05/30 15:52:10.339| |None |1 iteration 2016/05/30 15:52:10.341|Error |SmartTrader|System.InvalidOperationException: Subscribing 2016/05/30 15:52:10.351|Error |None |_smartTrader.Error : at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo) at System.Environment.get_StackTrace() at VisualMacdTests.Tests.c__DisplayClass0_0.b__3(Exception error) in E:\\Projects\\Exchange\\StockSharpProjects\\VisualMacd\\VisualMacdTests\\Tests.cs:line 53 at Ecng.Common.DelegateHelper.SafeInvoke(Action`1 handler, T arg) at StockSharp.Algo.Connector.OnProcessMessage(Message message) at Ecng.Common.DelegateHelper.SafeInvoke(Action`1 handler, T arg) at StockSharp.Messages.InMemoryMessageChannel.b__1() at Ecng.Common.Converter.c__DisplayClassf.b__e() at Ecng.Common.Converter.DoInCulture(CultureInfo cultureInfo, Func`1 func) at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.ThreadHelper.ThreadStart() 2016/05/30 15:52:11.358| |None |2 iteration 2016/05/30 15:52:11.359|Error |SmartTrader|System.InvalidOperationException: Subscribed 2016/05/30 15:52:11.360|Error |None |_smartTrader.Error : at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo) at System.Environment.get_StackTrace() at VisualMacdTests.Tests.c__DisplayClass0_0.b__3(Exception error) in E:\\Projects\\Exchange\\StockSharpProjects\\VisualMacd\\VisualMacdTests\\Tests.cs:line 53 at Ecng.Common.DelegateHelper.SafeInvoke(Action`1 handler, T arg) at StockSharp.Algo.Connector.OnProcessMessage(Message message) at Ecng.Common.DelegateHelper.SafeInvoke(Action`1 handler, T arg) at StockSharp.Messages.InMemoryMessageChannel.b__1() at Ecng.Common.Converter.c__DisplayClassf.b__e() at Ecng.Common.Converter.DoInCulture(CultureInfo cultureInfo, Func`1 func) at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.ThreadHelper.ThreadStart() 2016/05/30 15:52:12.363| |None |3 iteration 2016/05/30 15:52:12.364|Error |SmartTrader|System.InvalidOperationException: Subscribed 2016/05/30 15:52:12.364|Error |None |_smartTrader.Error : at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo) at System.Environment.get_StackTrace() at VisualMacdTests.Tests.c__DisplayClass0_0.b__3(Exception error) in E:\\Projects\\Exchange\\StockSharpProjects\\VisualMacd\\VisualMacdTests\\Tests.cs:line 53 at Ecng.Common.DelegateHelper.SafeInvoke(Action`1 handler, T arg) at StockSharp.Algo.Connector.OnProcessMessage(Message message) at Ecng.Common.DelegateHelper.SafeInvoke(Action`1 handler, T arg) at StockSharp.Messages.InMemoryMessageChannel.b__1() at Ecng.Common.Converter.c__DisplayClassf.b__e() at Ecng.Common.Converter.DoInCulture(CultureInfo cultureInfo, Func`1 func) at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.ThreadHelper.ThreadStart() 2016/05/30 15:52:13.370| |None |4 iteration 2016/05/30 15:52:13.371|Error |SmartTrader|System.InvalidOperationException: Subscribed 2016/05/30 15:52:13.371|Error |None |_smartTrader.Error : at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo) at System.Environment.get_StackTrace() at VisualMacdTests.Tests.c__DisplayClass0_0.b__3(Exception error) in E:\\Projects\\Exchange\\StockSharpProjects\\VisualMacd\\VisualMacdTests\\Tests.cs:line 53 at Ecng.Common.DelegateHelper.SafeInvoke(Action`1 handler, T arg) at StockSharp.Algo.Connector.OnProcessMessage(Message message) at Ecng.Common.DelegateHelper.SafeInvoke(Action`1 handler, T arg) at StockSharp.Messages.InMemoryMessageChannel.b__1() at Ecng.Common.Converter.c__DisplayClassf.b__e() at Ecng.Common.Converter.DoInCulture(CultureInfo cultureInfo, Func`1 func) at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.ThreadHelper.ThreadStart() Чуть попозже добавляются ещё и следующие (но думаю к делу это мало относится): 2016/05/30 15:52:18.521|Error |SmartTrader|System.InvalidOperationException: Series TimeFrameCandle_RIM6@FORTS_00-01-00 was not started earlier. at StockSharp.Algo.Candles.CandleManagerContainer.AddCandle(CandleSeries series, Candle candle) at System.Action`2.Invoke(T1 arg1, T2 arg2) at Ecng.Common.DelegateHelper.SafeInvoke(Action`2 handler, T1 arg1, T2 arg2) at StockSharp.Algo.Candles.CandleManager.ExternalCandleSource.OnNewCandles(CandleSeries series, IEnumerable`1 candles) at Ecng.Common.DelegateHelper.SafeInvoke(Action`2 handler, T1 arg1, T2 arg2) at StockSharp.SmartCom.SmartTrader.OnProcessMessage(Message message) at Ecng.Common.DelegateHelper.SafeInvoke(Action`1 handler, T arg) at StockSharp.Messages.InMemoryMessageChannel.b__1() Код теста: using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Text; using System.Threading.Tasks; using Ecng.Common; using StockSharp.Algo.Candles; using StockSharp.BusinessEntities; using StockSharp.Logging; using StockSharp.Messages; using StockSharp.SmartCom; using Xunit; namespace VisualMacdTests { public class Tests { public async Task MultipleCandleSubscription() { var _logManager = new LogManager(); _logManager.Listeners.Add(new FileLogListener(\"smartcom_logs.txt\")); var _smartTrader = new SmartTrader() { Address = \"mxdemo.ittrade.ru:8443\".To(), Login = \"*******\", Password = \"*******\", }; _logManager.Sources.Add(_smartTrader); //_logManager.Application.AddInfoLog(WorkingTimeToString(ExchangeBoard.Forts.WorkingTime)); // подписываемся на событие об успешном восстановлении соединения _smartTrader.Restored += () =\u003e { _logManager.Application.AddInfoLog(\"_smartTrader.Restored\"); }; // подписываемся на событие разрыва соединения _smartTrader.ConnectionError += error =\u003e { _logManager.Application.AddErrorLog(error, \"_smartTrader.ConnectionError\"); }; _smartTrader.MarketDataSubscriptionFailed += (security, type, error) =\u003e { _logManager.Application.AddErrorLog(error, $\"_smartTrader.MarketDataSubscriptionFailed {security.Id} {type}\"); }; // подписываемся на ошибку обработки данных (транзакций и маркет) _smartTrader.Error += error =\u003e { _logManager.Application.AddErrorLog(error, $\"_smartTrader.Error : {Environment.StackTrace}\"); }; Security tool = null; _smartTrader.NewSecurities += securities =\u003e { var rimSec = securities.FirstOrDefault(s =\u003e s.Type != null \u0026\u0026 s.Type.Value == SecurityTypes.Future \u0026\u0026 s.Id.Contains(\"RIM6\") ); if (rimSec != null) tool = rimSec; }; _smartTrader.UpdateSecurityByLevel1 = true; _smartTrader.UpdateSecurityLastQuotes = true; _smartTrader.Connect(); var _candleManager = new CandleManager(_smartTrader); while (tool == null) await Task.Delay(100); var tf = SmartComTimeFrames.Minute1; /* for (int i = 0; i \u003c 10; i++) { _logManager.Application.AddInfoLog($\"{i} iteration\"); var marketTime = _smartTrader.CurrentTime; var to = marketTime; var from = to.Subtract(TimeSpan.FromDays(7)); var _currentSeries = new CandleSeries(typeof(TimeFrameCandle), tool, tf); _smartTrader.SubscribeCandles(_currentSeries, from, DateTimeOffset.MaxValue); await Task.Delay(1000); _smartTrader.UnSubscribeCandles(_currentSeries); } */ for (int i = 0; i \u003c 10; i++) { _logManager.Application.AddInfoLog($\"{i} iteration\"); var marketTime = _smartTrader.CurrentTime; var to = marketTime; var from = to.Subtract(TimeSpan.FromDays(7)); var _currentSeries = new CandleSeries(typeof(TimeFrameCandle), tool, tf); _candleManager.Start(_currentSeries, from, DateTimeOffset.MaxValue); await Task.Delay(1000); _candleManager.Stop(_currentSeries); } _smartTrader.Disconnect(); } } } На первом цикле (закомментированный) ошибки те же, кажется проблемы именно в смартком коннекторе. Задержка в виде \"await Task.Delay(1000);\" не важна - в реальном приложении всё успевало прогрузиться до реал тайма, вылетало там же.
http://i80.fastpic.ru/big/2016/0603/47/cbaa2c4b227ad4bd0cbb381d7bd33947.jpg Приобретения увеличивают выручку и одновременно уничтожают прибыль и разводняют инвесторов Последние несколько лет XPO Logistics занимается агрессивными приобретениями, которые подпитывают рост выручки более 100% ежегодно в течение последних пяти лет. Эти приобретения, особенно покупка Norbert Dentressangle и Con-way Freight, на которые было потрачено свыше $6,5 млрд, были сделаны без учета экономических и денежных последствий. Как видно на графике, экономическая прибыль XPO Logistics, истинный денежный поток, сократился с $1 млн в 2010 году до -$950 млн на текущий момент. Основные причины разводнения акционерно стоимости: приобретения, финансируемые за счет инвесторов В добавок ко всему, XPO значительно увеличила долг и разводнила акционеров за этот период времени. За 2010-2015 гг. долг XPO вырос до 3,5 млрд (это больше рыночной капитализации). Количество акций в обращении выросло с 33 до 110 млн, или на 27% ежегодно за 2010-2015 годы. По сути, XPO финансировала свой рост приобретениями за счет акционеров, при этом не генерируя никакой прибыли. Читать далее \u003e\u003e\u003e
API: 4.2.1.5 Connector: SmartCom 3.0 ver. 3.0.79 Сервер: основной Пример: SampleSmart Запуск: exe из папки с примерами. Ночью, когда биржа не работает вылазит exception, приведенный ниже, который обрабатывается и перехватывается программой, поэтому программа не вываливается и это хорошо. --------------------------- Ошибка обработки данных --------------------------- System.InvalidOperationException: Подключение в состоянии Connected получило неожиданное сообщение типа \u0027DisconnectMessage\u0027. ---\u003e System.InvalidOperationException: connection closed by server (82.204.220.34:8090) --- Конец трассировки внутреннего стека исключений --- --------------------------- ОК --------------------------- Но если все оставлять как есть, то в 10 утра, когда биржа начнет работать - новые данные приходить не будут, нужно перезапускать программу. Повторить ошибку можно следующим образом: запустить в вечернюю сессию SampleSmart, выбрать стакан по какому-нибудь фьючерсу, оставить все на ночь. Ошибка вылезет в MessageBox.