Форум. StockSharphttps://stocksharp.ru/handlers/atom.ashx?category=forum&page=192Copyright @ StockSharp Platform LLC 2010 - 20242024-03-29T11:45:52Zhttps://stocksharp.ru/images/logo.pnghttps://stocksharp.ru/topic/2245/Событие о поступлении новых инструментов2011-12-19T08:51:05Z2011-12-19T08:51:05Zfrontmanhttps://stocksharp.ru/users/28487/info@stocksharp.ruХотел вывести в лог параметры инструментов новых:<br /><div class="code"><strong>Код</strong><div class="innercode"><pre class="brush:csharp">
_trader.NewSecurities +=
securities =>
this.GuiSync(() =>
{
var s = _securities.FirstOrDefault(sec => sec.Code == "RIH2");
if (s.IsNull()) return;
Console.WriteLine("{0}, {1}, {2}, {3}, {4}".Put(s.Code, s.MinStepPrice, s.MinStepSize, s.MaxPrice, s.MinPrice));
});</pre>
</div></div><br /><br />Но с удивлением в логе увидел:<br /><div class="code"><strong>Код</strong><div class="innercode"><pre class="brush:plain">
RIH2, 3,18507, 5,00000, 142625,00000, 127035,00000
RIH2, 3,18507, 5,00000, 142625,00000, 127035,00000
RIH2, 3,18507, 5,00000, 142625,00000, 127035,00000
RIH2, 3,18507, 5,00000, 142625,00000, 127035,00000
RIH2, 3,18507, 5,00000, 142625,00000, 127035,00000
RIH2, 3,18507, 5,00000, 142625,00000, 127035,00000
RIH2, 3,18507, 5,00000, 142625,00000, 127035,00000
RIH2, 3,18507, 5,00000, 142625,00000, 127035,00000
RIH2, 3,18507, 5,00000, 142625,00000, 127035,00000
RIH2, 3,18507, 5,00000, 142625,00000, 127035,00000
RIH2, 3,18507, 5,00000, 142625,00000, 127035,00000
RIH2, 3,18507, 5,00000, 142625,00000, 127035,00000
RIH2, 3,18507, 5,00000, 142625,00000, 127035,00000
RIH2, 3,18507, 5,00000, 142625,00000, 127035,00000
RIH2, 3,18507, 5,00000, 142625,00000, 127035,00000</pre>
</div></div><br /><br />Почему то инструмент несколько раз попадает в событие NewSecurities ... Так должно быть?https://stocksharp.ru/topic/2244/При тестировании на истории не срабатывает правило2011-12-19T08:29:34Z2011-12-19T08:29:34Zrafhttps://stocksharp.ru/users/28475/info@stocksharp.ruПри тестировании на исторических данных не отрабатывает правило:<br />this.When(() => { return true; }, TimeSpan.FromSeconds(5)).Do(() => { });https://stocksharp.ru/topic/2243/CandlesFinished и 4.0.92011-12-19T06:57:32Z2011-12-19T06:57:32Zfreelancerhttps://stocksharp.ru/users/28572/info@stocksharp.ruВ версии 4.0.9 не срабатывает правило CandlesFinished()https://stocksharp.ru/topic/2242/Невозможно обработать начальные значения индикатора2011-12-18T21:29:31Z2011-12-18T21:29:31Zpehashttps://stocksharp.ru/users/340/info@stocksharp.ruНеобходимо нарисовать все значения индикатора на графике. Проблема в том, что событие Changed индикатора начинает работать не с начального значения. Соответственно, рисуются только последние значения. Происходит это потому, что делегат событию Changed присваивается уже после регистрации свечек. Соответственно, какие-то свечки уже обработаны перед определением Changed для индикатора.<br /><br />Запуск бота происходит в середине торговой сессии, т.е. уже есть какие-то трейды<br />Последовательность запуска примерно такая<br /><div class="code"><strong>Код</strong><div class="innercode"><pre class="brush:csharp">
this._trader = new QuikTrader(QuikTerminal.GetDefaultPath());
this._cm = new CandleManager(this._trader);
this._trader.Connect();
this._trader.StartExport();
this.security = this._trader.Securities.FirstOrDefault(s => s.Code == this.SCode);
var candleToken = this._cm.RegisterTimeFrameCandles(security, this._timeFrame);
this.ATRToken = indicatorManager.RegisterIndicator(new AverageTrueRange { Length = 10 }, new CandleTokenIndicatorSource(candleToken, BaseCandleIndicatorSource.ByClose));
var ATR = this.ATRToken.Indicator as AverageTrueRange;
ATR.Changed += (input, res) =>
{
var candle = this._cm.GetTimeFrameCandle(this.security, this._timeFrame, 1);
var val = ATR.LastValue.GetValue<decimal>();
this.GuiAsync(() => this.chartWnd.ATR.Add(new DItem { date = candle.Time, value = val }));
};
</pre>
</div></div><br /><br />Как сделать добавление события Changed до регистрации свечек, я так и не разобрался. Ведь я не могу определить его без токена. А токен можно получить только зарегистрировав свечиhttps://stocksharp.ru/topic/2241/Алгоритм v1.02011-12-18T14:25:07Z2011-12-18T14:25:07Zingenierohttps://stocksharp.ru/users/28032/info@stocksharp.ruПриветствую участников форума.<br /><br />В первую очередь хочу поблагодарить создателя проекта Stock#, Михаила Сухова.<br />Я считаю, что Stock# – достаточно успешный стартап, который объединяет прогрессивно мыслящих трейдеров и, безусловно, является частью МФЦ:)<br /><br />В этой теме предлагаю обсудить вопросы, связанные с созданием алгоритма торгового робота.<br />Поскольку я торгую опционами, примеры буду приводить для этих инструментов. Не обессудьте.<br /><br />Начнем с блок-схемы, описывающей основные элементы системы.<br />1. Выбор источника данных.<br />В качестве источника данных может выступать торговый терминал (Quik, Альфа-Директ, SmartCOM) или шлюз Plaza2.<br />2. Проверка работы источника данных<br />В случае проблем с подключением выдает сообщение об ошибке и предлагает выбрать другой источник данных.<br />3. Выбор стратегии<br />Предоставляет возможность тестировать несколько стратегий в одной оболочке. Например, торговля волатильностью, торговля спредами, арбитраж.<br />4. Грааль<br />Основной элемент системы. Рассчитывает оптимальные параметры для совершения торговых операций.<br />5. Проверка сигналов на сделку<br />Решение о сделке принимается на основании получаемых данных. В случае если соблюдается условие, необходимое для совершения сделки, программа переходит к этапу отправки заявки.<br />На этом этапе предусматривается возможность изменять параметры для принятия решения. Например, менять значение волатильности или стоимости спреда -n страйков от центра.<br />6. Отправка заявки<br />Программа отправляет заявку в торговый терминал или шлюз. Если от биржи приходит ответ о выставлении заявки, сообщает об этом пользователю. Если возвращает ошибку или не приходит ответ, сообщает пользователю об ошибке и пытается отправить заявку повторно.<br />Здесь можно настроить время или количество попыток для отправки заявки.<br />7. Проверка активных заявок<br />Этот элемент проверяет, исполнилась ли заявка. В случае исполнения заявки и ответа от биржи сообщает пользователю о сделке. <br />8. Изменение заявки<br />Если заявка не исполнилась, предлагает изменить цену.<br />Бывают такие ситуации, когда мы согласны на исполнение по худшей цене. Можно ввести условие, например, увеличивать цену на 15 пунктов, если заявка не исполняется в течение 5 секунд.<br />Или исполнить по рынку, если заявка висит больше 15 секунд. При этом алгоритм перейдет в п.6 (Отправка заявки). Программа также сообщает пользователю о снятии первоначальной заявки.<br /><br />Буду признателен за конструктивную критику и рацпредложения.<br /><br /><br />Алексей<br /><br /><br /><a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAACTtyp-sUp2_MOwM1JPcpABoS9WtlPDrjadoeQeJiXmOjEY0Y-c6n14WTZnVaLdo_1XCUDSgjLgc-rD3ABC8_6R" title="http://imageshack.us/photo/my-images/24/algorithmv11.png/"><a href='http://img24.imageshack.us/img24/6218/algorithmv11.th.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'><img src="http://img24.imageshack.us/img24/6218/algorithmv11.th.png" style='max-width: 600px;' alt=""/></a></a>https://stocksharp.ru/topic/2240/Скорость эмуляции на исторических данных2011-12-18T09:50:45Z2011-12-18T09:50:45Zrafhttps://stocksharp.ru/users/28475/info@stocksharp.ru1. Зависит ли скорость генерации тиков EmulationTrader'ом при тестировании на исторических данных от объема вычислений в тестируемой стратегии? <br /><br />Другими словами, если у меня в правиле Rule, на событие Trader.NewTrades повешены вычисления занимающие одну минуту, будет ли EmulationTrader дожидаться окончания этих вычислений перед генерацией нового трейда?<br /><br />2. Возможно ли EmulationTrader'у давать приказ/разрешение на генерацию нового трейда (manual mode)? Или мб есть еще какая-либо встроенная функциональность для синхронизации EmulationTrader'а с многопоточными вычислениями?https://stocksharp.ru/topic/2239/Выставление двух заявок одновременно2011-12-17T21:14:27Z2011-12-17T21:14:27Zvk37https://stocksharp.ru/users/6296/info@stocksharp.ruЗдравствуйте. Подскажите, пожалуйста, есть ли более быстрый способ выставления двух заявок под Смарт одновременно, чем два последовательных вызова Trader.RegisterOrder? Если выставлять каждую заявку в своем потоке, может, будет быстрее?https://stocksharp.ru/topic/2238/Самые начальные вопросы2011-12-16T13:01:33Z2011-12-16T13:01:33Zktulhu2000https://stocksharp.ru/users/651/info@stocksharp.ruПодскажите самое простое, пожалуйста.<br /><br />Пробую реализовать торговлю по сигналам MACD, длинная 26, короткая 12, сигнальная 9, по тикам.<br />Примитивный пример должен уметь (из теста сигнала на истории) несколько сделок в секунду.<br />Нет понимания как это делается технически во времени.<br /><div class="code"><strong>Код</strong><div class="innercode"><pre class="brush:csharp">
pos = this.BuyAtMarket();
this.RegisterOrder(pos);
</pre>
</div></div><br />При сигнале на разворот, смотрю в pos, исполнилась ли? pos.IsMatched()<br />Подтверждение приходит, бывает, через несколько секунд. Читал что сделки приходят с опозданием, но подтверждение<br />выполнения в ордер - тоже? Как в принципе работает HFT тогда. Отправляется без обратной связи?<br />Полностью disappointed -(<br /><br />4.0.8 12635<br />SmartCom - демосчет<br /><br />https://stocksharp.ru/topic/2237/сделки из quik2011-12-16T11:25:24Z2011-12-16T11:25:24ZTeddyhttps://stocksharp.ru/users/28056/info@stocksharp.ru<b>плохо происходит экспорт сделок из quik. почему-то не запускается экспорт таблицы сделок при старте.Причём стаканы экспортируются хорошо.<br />Иногда при запуске экспорта таблицы всех сделок сделки всё же приходят.<br />При это в лог записывается такая ошибка:</b><br />Quik 15:04:10.0572790 Ошибка: System.InvalidOperationException: Данные для таблицы 'все сделки' экспортировались в меньшем формате. Не было найдено значение для колонки 'Класс'. Количество колонок равно '3', индекс колонки '3'.<br /> в #=qYrPp26Js2dQDBAGHhdNeuLqEkIAXwZEuT7JZoTJi1iQjqKM3DybE0HyKwfat9Wwt.#=q4vDH9mu7pOHNBukvTSsk8R_Uofw7yAJKwikb27VspoA=.#=qg4eWop4va2s8RgExyy_xXZ_v5p6gGCGYNXQqyNNndq0=(DdeTableColumn #=qaKomXN4HgkqB7zVT7d$mOw==)<br /> в #=qYrPp26Js2dQDBAGHhdNeuLqEkIAXwZEuT7JZoTJi1iQjqKM3DybE0HyKwfat9Wwt.#=qEwJitRViHAYQ3EgXh$6vyA==[T](Func`2 #=q4B$9aodJO1IWTPT1ra0fgA==, DdeTableColumn #=qDnp8O62VuHvWRTrj174ShQ==)<br /> в StockSharp.Quik.QuikTrader.#=q5fHjQqFQbBczWuz7ZW3R$Q==(Func`2 #=q_zY1_1TjagcninEg5QzaCw==, DdeTableColumn #=qRb56GOAW5bY6ou$ArqeQ0Q==)<br /> в StockSharp.Quik.QuikTrader.#=qu0qVITY4G4xAcnF7bAV5Jpglogr61FiLpmbQYlmY9jQ=.#=qHTquIyPH8sbQSdwrEC3SCmxX$2nk90G$x5Uxu2BmHmM=.#=q4a_4OV70IC99Qnu6EHoQ4A==(IList`1 #=q26dRsDbgz21XvUw1$kYE0Q==, Func`2 #=q0mlms4M0udnd$ofoFbBVTQ==)<br /> в #=qYrPp26Js2dQDBAGHhdNeuLqEkIAXwZEuT7JZoTJi1iQjqKM3DybE0HyKwfat9Wwt.#=qlOUVVrIdV9zspREEjQy_4g==(DdeTable #=qvfFOhYSuliexPhnW2euMiw==, IList`1 #=q6DbM7XtADOE0Btzz_XK0ow==, Action`2 #=quUIFuiU12Mb6h9TAkRjpmg==, Action`1 #=qMLpvh$OdcHuZ1GXlGWzHfA==, Boolean #=qoCqNzx$sEM1B9PA1FsrpTA==)<br /> в #=qYrPp26Js2dQDBAGHhdNeuLqEkIAXwZEuT7JZoTJi1iQjqKM3DybE0HyKwfat9Wwt.#=q4vDH9mu7pOHNBukvTSsk8R_Uofw7yAJKwikb27VspoA=.#=qg4eWop4va2s8RgExyy_xXZ_v5p6gGCGYNXQqyNNndq0=(DdeTableColumn #=qaKomXN4HgkqB7zVT7d$mOw==)<br /> в #=qYrPp26Js2dQDBAGHhdNeuLqEkIAXwZEuT7JZoTJi1iQjqKM3DybE0HyKwfat9Wwt.#=qEwJitRViHAYQ3EgXh$6vyA==[T](Func`2 #=q4B$9aodJO1IWTPT1ra0fgA==, DdeTableColumn #=qDnp8O62VuHvWRTrj174ShQ==)<br /> в StockSharp.Quik.QuikTrader.#=q5fHjQqFQbBczWuz7ZW3R$Q==(Func`2 #=q_zY1_1TjagcninEg5QzaCw==, DdeTableColumn #=qRb56GOAW5bY6ou$ArqeQ0Q==)<br /> в StockSharp.Quik.QuikTrader.#=qu0qVITY4G4xAcnF7bAV5Jpglogr61FiLpmbQYlmY9jQ=.#=qHTquIyPH8sbQSdwrEC3SCmxX$2nk90G$x5Uxu2BmHmM=.#=q4a_4OV70IC99Qnu6EHoQ4A==(IList`1 #=q26dRsDbgz21XvUw1$kYE0Q==, Func`2 #=q0mlms4M0udnd$ofoFbBVTQ==)<br /> в #=qYrPp26Js2dQDBAGHhdNeuLqEkIAXwZEuT7JZoTJi1iQjqKM3DybE0HyKwfat9Wwt.#=qlOUVVrIdV9zspREEjQy_4g==(DdeTable #=qvfFOhYSuliexPhnW2euMiw==, IList`1 #=q6DbM7XtADOE0Btzz_XK0ow==, Action`2 #=quUIFuiU12Mb6h9TAkRjpmg==, Action`1 #=qMLpvh$OdcHuZ1GXlGWzHfA==, Boolean #=qoCqNzx$sEM1B9PA1FsrpTA==)<br /><br /><b>При этом Verifier показывает что всё хорошо.Да и таблица настроена нормально. Колонка "класс" на месте индекс 3<br /><br />Также не происходит формирование свечек на кнопке Свечки. А если их формировать через кнопку Сделки,то всё хорошо строится.<br />Спасибо.<br /></b>https://stocksharp.ru/topic/2236/Запуск терминала Quik S# 4.0.8 terminal.launch() MethodAccessException2011-12-16T07:30:44Z2011-12-16T07:30:44ZEgorhttps://stocksharp.ru/users/410/info@stocksharp.ruЗдравствуйте,<br /><br />Переписываю робота под WPF. Возникла сложность. <br />При запуске терминала (terminal.launch()) выдает исключение, при попытке залогиниться выдает исключение...<br /><br /><div class="quote"><span class="quotetitle">Цитата:</span><div class="innerquote"><br />Исключение:Вызвано: "Методу "Ecng.Interop.WinApi.GetProcessId(ManagedWinapi.Windows.SystemWindow)", прозрачному для безопасности, не удалось вызвать машинный код с использованием метода "Ecng.Interop.WinApi.GetWindowThreadProcessId(IntPtr, Int32 ByRef)". Для вызова машинного кода требуются критические для безопасности или безопасные методы." (System.MethodAccessException)<br />Возникло System.MethodAccessException: "Методу "Ecng.Interop.WinApi.GetProcessId(ManagedWinapi.Windows.SystemWindow)", прозрачному для безопасности, не удалось вызвать машинный код с использованием метода "Ecng.Interop.WinApi.GetWindowThreadProcessId(IntPtr, Int32 ByRef)". Для вызова машинного кода требуются критические для безопасности или безопасные методы."<br /></div></div> <br /><br />В консольном варианте все работает. Все делаю по примеру. Может WPF чего-то хочет?<br />И еще, выходит сообщение, что не может найти окно квика, при этом квик запускается...<br /><br />Простите если этот вопрос уже был, но я его не нашел. <br />https://stocksharp.ru/topic/2235/Перенос сделок на следующий торговый день2011-12-16T04:41:08Z2011-12-16T04:41:08Zapostarhttps://stocksharp.ru/users/668/info@stocksharp.ruЗдравствуйте,<br /><br />Имеется в виду что сделка T1, совершенная в понедельник, будет недоступна в ITrader.MyTrades при запуске робота во вторник. Тем более будут недоступны параметры Security, которые были на момент совершения сделки.<br /><br />Хотелось бы узнать, есть ли в S# средства, облегчающие перенос сделок на следующий торговый день? И если есть, по возможности, пример использования.<br /><br />Спасибо,https://stocksharp.ru/topic/2234/Ошибки котирования в версии 4.082011-12-15T16:20:40Z2011-12-15T16:20:40Zmdvhttps://stocksharp.ru/users/6039/info@stocksharp.ruВот здесь котировщик насчитал у себя отрицательный остаток по заявке, хотя в итоге прокотировал правильно.<br /><div class="quote"><span class="quotetitle">Цитата:</span><div class="innerquote">20:21:01.169 | | TLS | Сейчас позиция -5, но стратегия считает, что она должна быть 5.<br />20:21:02.998 | | TLS | Стратегия хочет купить 10.<br />20:21:04.178 | | TLS | Отменяем стоп-заявку 18027554.<br />20:21:05.246 | | MMQS | Стратегия запущена.<br />20:21:05.296 | | MMQS | Котирование на Buy объема 10.<br />20:21:06.281 | | MMQS | Правило 'Изменение стакана инструмента RIZ1@RTS' активировано.<br />20:21:06.286 | | MMQS | Правило 'Изменение стакана инструмента RIZ1@RTS OR Изменение инструмента RIZ1@RTS' активировано.<br />20:21:06.683 | | MMQS | Цена текущей NULL и лучшей 133305.<br />20:21:06.684 | | MMQS | Лучший бид 133295 и лучший аск 133305.<br />20:21:06.704 | | MMQS | Регистрация новой заявки на Buy с ценой 133305 и объемом 10.<br />20:21:06.774 | | MMQS | Заявка 68725730 на Buy отправлена с ценой 133305 объемом 10.<br />20:21:06.778 | Warning | MMQS | Заявка 68725730 в процессе регистрации.<br />20:21:07.132 | | Alex-MTS | Новая заявка 6228761673 добавлена.<br />20:21:07.242 | | MMQS | Правило 'Регистрация заявки 0' активировано.<br />20:21:07.244 | | MMQS | Заявка 68725730 принята биржей.<br />20:21:07.272 | | MMQS | Цена текущей 133305 и лучшей 133315.<br />20:21:07.288 | | MMQS | Правило 'Изменение стакана инструмента RIZ1@RTS' активировано.<br />20:21:07.319 | | MMQS | Лучший бид 133300 и лучший аск 133310.<br />20:21:07.319 | | MMQS | Правило 'Изменение стакана инструмента RIZ1@RTS OR Изменение инструмента RIZ1@RTS' активировано.<br />20:21:07.362 | | MMQS | Котирование заявки 68725730 на Buy с ценой 133305 объемом 10.<br />20:21:07.440 | | MMQS | Перекотирование зарегистрировано для заявки 68725731 на Buy с ценой 133315 объемом 10.<br />20:21:07.451 | | MMQS | Цена текущей 133315 и лучшей 133320.<br />20:21:07.519 | | MMQS | Лучший бид 133300 и лучший аск 133310.<br />20:21:07.522 | | MMQS | Правило 'Регистрация заявки 0' удалено.<br />20:21:07.551 | | MMQS | Котирование заявки 68725731 на Buy с ценой 133315 объемом 10.<br />20:21:07.578 | | MMQS | Правило 'Изменение позиции стратегии MMQS' активировано.<br />20:21:07.698 | | MMQS | Перекотирование зарегистрировано для заявки 68725732 на Buy с ценой 133320 объемом 10.<br />20:21:08.457 | | MMQS | Позиция изменилась на 5. Оставшийся объем 5.<br />20:21:08.458 | | MMQS | Правило 'Изменение стакана инструмента RIZ1@RTS' активировано.<br />20:21:08.467 | | MMQS | NeedFinish(): QuotingVolume = 10, LeftVolume = 5, PositionManager = 5.<br />20:21:08.508 | | MMQS | Правило 'Изменение стакана инструмента RIZ1@RTS OR Изменение инструмента RIZ1@RTS' активировано.<br />20:21:08.522 | | MMQS | Правило 'Полное исполнение 0' активировано.<br />20:21:08.567 | | TLS | Текущая позиция равна -1.<br />20:21:08.617 | | MMQS | Заявка 68725731 полностью исполнилась. Оставшийся объем 5.<br />20:21:08.620 | | MMQS | Новая Buy сделка 472801201 по цене 133305 на 4 заявки 68725730.<br />20:21:08.635 | | MMQS | Правило 'Изменение позиции стратегии MMQS' активировано.<br />20:21:08.639 | Warning | MMQS | Заявка 68725731 устарела.<br />20:21:08.696 | | MMQS | Цена текущей 133320 и лучшей 133325.<br />20:21:08.696 | | MMQS | Правило 'Полное исполнение 0' удалено.<br />20:21:08.766 | | MMQS | Лучший бид 133305 и лучший аск 133315.<br />20:21:08.767 | | MMQS | Котирование заявки 68725732 на Buy с ценой 133320 объемом 10.<br />20:21:08.770 | | TLS | Текущая позиция равна 0.<br />20:21:08.890 | | MMQS | Новая Buy сделка 472801206 по цене 133305 на 1 заявки 68725730.<br />20:21:08.975 | | TLS | Текущая позиция равна 2.<br />20:21:10.879 | | MMQS | Новая Buy сделка 472801245 по цене 133315 на 2 заявки 68725731.<br />20:21:11.058 | | TLS | Текущая позиция равна 4.<br />20:21:11.140 | | MMQS | Новая Buy сделка 472801246 по цене 133315 на 2 заявки 68725731.<br />20:21:11.431 | | TLS | Текущая позиция равна 5.<br />20:21:12.626 | | MMQS | Новая Buy сделка 472801247 по цене 133315 на 1 заявки 68725731.<br />20:21:12.888 | | MMQS | Позиция изменилась на 15. Оставшийся объем -5.<br />20:21:12.981 | Error | MMQS | System.ArgumentException: Объем заявки не может быть отрицательным.<br />Имя параметра: order<br /> в #=qsUVx8aLRZW_nZe5D2rHIDiWKVXXkoXAoZYYzHGCUs54=.#=qDxPfdH_Kq9CBzErp1nnu1R545y2Xtsxe7cAxqJy6mNg=(Order #=qN4coryia38HIlf_yfnYVJQ==)<br /> в #=qsUVx8aLRZW_nZe5D2rHIDiWKVXXkoXAoZYYzHGCUs54=.#=qfuP0$ag0EHgliZROcagvSg==(Order #=qYcsI0mDVz2q9iTg86TO$BQ==)<br /> в StockSharp.Algo.BaseTrader.ReRegisterOrder(Order oldOrder, Order newOrder)<br /> в StockSharp.Algo.Strategies.Strategy.ReRegisterOrder(Order oldOrder, Order newOrder)<br /> в StockSharp.Algo.Strategies.QuotingStrategy.#=qrUYXjxsi0JCqFK7P5CYPyw==()<br /> в StockSharp.Algo.Strategies.QuotingStrategy.ProcessQuoting()<br /> в StockSharp.Algo.Strategies.StrategyRule.#=qvWLt08KMC7_T$lDfPoYcjqaskP8NOAw2pLVJRFjUtRA=.#=qJv6vJQAedTPjTV4doVggOA==(StrategyRule #=qR7gtMyt7FDDBA4fen5yLuw==)<br /> в StockSharp.Algo.Strategies.StrategyRule.#=qVaZMPl7BWORnOJP7lGJgw5piyuoAm7fXBf5KMM8IOvU=.#=qXyqHvt0szp3Zp2oVA3GQZQ==()<br /> в StockSharp.Algo.Strategies.StrategyRule.#=qNy3IEjptO8S__CmO0b5FQA==(Action #=qNg9PqvkE77FRjcHlgAnsow==)<br /> в StockSharp.Algo.Strategies.StrategyRule.#=qVaZMPl7BWORnOJP7lGJgw5piyuoAm7fXBf5KMM8IOvU=.#=qowjm6ZF4ORXfqvnWV37n8w==()<br /> в StockSharp.Algo.Strategies.Strategy.#=q5mOpzSxXWWqNgGaCcpW7ixEdBydRbb2Rr__vROQuDSo=.#=qWHCCBv$N7uJh8iz15CnJXMZ2QSrW1VSVobW21hmBuos=()<br /> в StockSharp.Algo.Strategies.Strategy.#=qByV2lqqoenNb0WwP1kmYSw==(StrategyRule #=qyQ5hNakS8UpJoI5vvtAsdw==, Delegate #=qq3fv8A6EZk6yfCTaLBqKLw==, Func`1 #=qtTqfTAdZt_yuMIwPZmFarw==)<br />20:21:12.981 | | MMQS | NeedFinish(): QuotingVolume = 10, LeftVolume = -5, PositionManager = 15.<br />20:21:13.052 | | MMQS | Правило 'MMQS - остановка' активировано.<br />20:21:13.064 | | MMQS | Заканчиваем котирование.<br />20:21:13.890 | | MMQS | Правило 'MMQS - остановка' удалено.<br />20:21:13.896 | | MMQS | Правило 'Изменение позиции стратегии MMQS' удалено.<br />20:21:14.089 | | MMQS | Стратегия останавливается.<br />20:21:14.220 | | MMQS | Правило 'Изменение стакана инструмента RIZ1@RTS OR Изменение инструмента RIZ1@RTS' удалено.<br />20:21:14.303 | | MMQS | Правило 'Регистрация заявки 0' удалено.<br />20:21:14.448 | | MMQS | Правило 'Ошибка регистрации заявки 0' удалено.<br />20:21:14.545 | | MMQS | Правило 'Полное исполнение 0' удалено.<br />20:21:14.622 | | MMQS | Правило 'Регистрация заявки 0' удалено.<br />20:21:14.716 | | MMQS | Правило 'Ошибка регистрации заявки 0' удалено.<br />20:21:14.816 | | MMQS | Правило 'Регистрация заявки 0' удалено.<br />20:21:14.902 | | MMQS | Правило 'Ошибка регистрации заявки 0' удалено.<br />20:21:15.065 | | MMQS | Правило 'Полное исполнение 0' удалено.<br />20:21:15.135 | | MMQS | Правило 'Ошибка регистрации заявки 0' удалено.<br />20:21:15.222 | | MMQS | Правило 'Полное исполнение 0' удалено.<br />20:21:15.347 | | MMQS | Правило 'Регистрация заявки 0' активировано.<br />20:21:15.431 | | MMQS | Стратегия остановлена.</div></div><br /><br />А тут еще два исключения, одно причем вылетело уже в стадии остановки. Возможно, будет полезно при поиске ошибок.<br /><div class="quote"><span class="quotetitle">Цитата:</span><div class="innerquote">20:46:02.312 | | TLS | Стратегия хочет продать 10.<br />20:46:08.627 | | MMQS | Стратегия запущена.<br />20:46:08.628 | | MMQS | Котирование на Sell объема 10.<br />20:46:09.113 | | MMQS | Правило 'Изменение стакана инструмента RIZ1@RTS' активировано.<br />20:46:09.113 | | MMQS | Правило 'Изменение стакана инструмента RIZ1@RTS OR Изменение инструмента RIZ1@RTS' активировано.<br />20:46:12.510 | | MMQS | Цена текущей NULL и лучшей 133255.<br />20:46:12.554 | | MMQS | Лучший бид 133300 и лучший аск 133315.<br />20:46:12.555 | | MMQS | Регистрация новой заявки на Sell с ценой 133255 и объемом 10.<br />20:46:12.929 | | MMQS | Заявка 68725735 на Sell отправлена с ценой 133255 объемом 10.<br />20:46:12.941 | Warning | MMQS | Заявка 68725735 в процессе регистрации.<br />20:46:12.983 | | MMQS | Правило 'Изменение стакана инструмента RIZ1@RTS' активировано.<br />20:46:13.066 | | MMQS | Правило 'Изменение стакана инструмента RIZ1@RTS OR Изменение инструмента RIZ1@RTS' активировано.<br />20:46:13.096 | Warning | MMQS | Заявка 68725735 в процессе регистрации.<br />20:46:13.142 | | MMQS | Правило 'Изменение стакана инструмента RIZ1@RTS' активировано.<br />20:46:13.183 | | MMQS | Правило 'Изменение стакана инструмента RIZ1@RTS OR Изменение инструмента RIZ1@RTS' активировано.<br />20:46:13.235 | Warning | MMQS | Заявка 68725735 в процессе регистрации.<br />20:46:13.241 | | MMQS | Правило 'Изменение стакана инструмента RIZ1@RTS' активировано.<br />20:46:13.295 | | MMQS | Правило 'Изменение стакана инструмента RIZ1@RTS OR Изменение инструмента RIZ1@RTS' активировано.<br />20:46:13.352 | Warning | MMQS | Заявка 68725735 в процессе регистрации.<br />20:46:13.411 | | MMQS | Правило 'Изменение стакана инструмента RIZ1@RTS' активировано.<br />20:46:13.746 | | MMQS | Правило 'Изменение стакана инструмента RIZ1@RTS OR Изменение инструмента RIZ1@RTS' активировано.<br />20:46:13.804 | Warning | MMQS | Заявка 68725735 в процессе регистрации.<br />20:46:13.906 | | TLS | Текущая позиция равна 4.<br />20:46:13.931 | | MMQS | Новая Sell сделка 472817806 по цене 133265 на 1 заявки 68725735.<br />20:46:13.934 | | Alex-MTS | Новая заявка 6229068357 добавлена.<br />20:46:14.316 | | TLS | Текущая позиция равна 2.<br />20:46:14.316 | | MMQS | Новая Sell сделка 472817807 по цене 133255 на 2 заявки 68725735.<br />20:46:14.526 | | MMQS | Правило 'Изменение позиции стратегии MMQS' активировано.<br />20:46:14.723 | | MMQS | Правило 'Регистрация заявки 0' активировано.<br />20:46:14.728 | | MMQS | Позиция изменилась на -4. Оставшийся объем 6.<br />20:46:14.922 | | MMQS | Правило 'Изменение стакана инструмента RIZ1@RTS' активировано.<br />20:46:15.283 | | MMQS | NeedFinish(): QuotingVolume = 10, LeftVolume = 6, PositionManager = -4.<br />20:46:15.283 | | MMQS | Правило 'Изменение стакана инструмента RIZ1@RTS OR Изменение инструмента RIZ1@RTS' активировано.<br />20:46:15.285 | | MMQS | Правило 'Изменение позиции стратегии MMQS' активировано.<br />20:46:15.286 | | MMQS | Заявка 68725735 принята биржей.<br />20:46:15.347 | | MMQS | Цена текущей 133255 и лучшей 133250.<br />20:46:15.407 | | MMQS | Лучший бид 133260 и лучший аск 133265.<br />20:46:15.432 | | MMQS | Котирование заявки 68725735 на Sell с ценой 133255 объемом 10.<br />20:46:21.944 | | TLS | Текущая позиция равна 1.<br />20:46:21.945 | | MMQS | Новая Sell сделка 472817808 по цене 133255 на 1 заявки 68725735.<br />20:46:22.058 | | TLS | Текущая позиция равна -3.<br />20:46:22.108 | | MMQS | Новая Sell сделка 472817809 по цене 133255 на 4 заявки 68725735.<br />20:46:22.173 | Error | MMQS | Заявка 0 не была принята по причине System.ArgumentException: Объем заявки не может быть нулевым.<br />Имя параметра: order<br /> в #=qsUVx8aLRZW_nZe5D2rHIDiWKVXXkoXAoZYYzHGCUs54=.#=qDxPfdH_Kq9CBzErp1nnu1R545y2Xtsxe7cAxqJy6mNg=(Order #=qN4coryia38HIlf_yfnYVJQ==)<br /> в #=qsUVx8aLRZW_nZe5D2rHIDiWKVXXkoXAoZYYzHGCUs54=.#=qfuP0$ag0EHgliZROcagvSg==(Order #=qYcsI0mDVz2q9iTg86TO$BQ==)<br /> в StockSharp.Algo.BaseTrader.ReRegisterOrder(Order oldOrder, Order newOrder).<br />20:46:22.225 | | TLS | Текущая позиция равна -5.<br />20:46:22.333 | | MMQS | Новая Sell сделка 472817810 по цене 133255 на 2 заявки 68725735.<br />20:46:29.151 | | MMQS | Позиция изменилась на -10. Оставшийся объем 0.<br />20:46:29.193 | | MMQS | NeedFinish(): QuotingVolume = 10, LeftVolume = 0, PositionManager = -10.<br />20:46:29.302 | | MMQS | Заканчиваем котирование.<br />20:46:29.471 | | MMQS | Правило 'MMQS - остановка' активировано.<br />20:46:29.538 | | MMQS | Правило 'MMQS - остановка' удалено.<br />20:46:29.603 | | MMQS | Стратегия останавливается.<br />20:46:29.752 | | MMQS | Правило 'Изменение стакана инструмента RIZ1@RTS OR Изменение инструмента RIZ1@RTS' удалено.<br />20:46:29.753 | | MMQS | Правило 'Изменение позиции стратегии MMQS' удалено.<br />20:46:29.828 | | MMQS | Правило 'Регистрация заявки 0' удалено.<br />20:46:29.871 | Error | MMQS | System.ArgumentException: Объем заявки не может быть нулевым.<br />Имя параметра: order<br /> в #=qsUVx8aLRZW_nZe5D2rHIDiWKVXXkoXAoZYYzHGCUs54=.#=qDxPfdH_Kq9CBzErp1nnu1R545y2Xtsxe7cAxqJy6mNg=(Order #=qN4coryia38HIlf_yfnYVJQ==)<br /> в #=qsUVx8aLRZW_nZe5D2rHIDiWKVXXkoXAoZYYzHGCUs54=.#=qfuP0$ag0EHgliZROcagvSg==(Order #=qYcsI0mDVz2q9iTg86TO$BQ==)<br /> в StockSharp.Algo.BaseTrader.ReRegisterOrder(Order oldOrder, Order newOrder)<br /> в StockSharp.Algo.Strategies.Strategy.ReRegisterOrder(Order oldOrder, Order newOrder)<br /> в StockSharp.Algo.Strategies.QuotingStrategy.#=qrUYXjxsi0JCqFK7P5CYPyw==()<br /> в StockSharp.Algo.Strategies.QuotingStrategy.ProcessQuoting()<br /> в StockSharp.Algo.Strategies.QuotingStrategy.#=qvRBtnEq$8OTzSl0sSz3Oaz5zZZ3N$TJM632W8cwFcK4=(Order #=q9R$FOW5lJabDGeUszviiKg==)<br /> в StockSharp.Algo.Strategies.StrategyRule`1.#=qnKJv_AUBQ2nk$t0_21MsvCcK2nOixUJnLPUHh3Ya5_M=.#=qI0aW$q4EMfNh3blikTuE1g==(StrategyRule`1 #=q8OwgonMw24n_QCn6xer8mw==, #=q0C77gGlERdjyzCBYqvE6mw== #=qequmtlTGrKaNBBjzwoP44A==)<br /> в StockSharp.Algo.Strategies.StrategyRule`1.#=qWONCPL3RjmiZWequmu$v6MK2gb3i618JFqKXuU4QIWM=.#=qdvWDvw0S0rw3RGlEeB8GB_5au_EnoDHQn7oDVtkGzbM=.#=qS$dWkByCetJ4sPfjoU7$Hw==()<br /> в StockSharp.Algo.Strategies.StrategyRule.#=qNy3IEjptO8S__CmO0b5FQA==(Action #=qNg9PqvkE77FRjcHlgAnsow==)<br /> в StockSharp.Algo.Strategies.StrategyRule`1.#=qWONCPL3RjmiZWequmu$v6MK2gb3i618JFqKXuU4QIWM=.#=qfE$UNRhYw_DkiM9czprhsA==(#=q4LG7hspktPgZCAqtfVwD3A== #=qdUFt54n6I7qq4fNY6aHR5w==)<br /> в StockSharp.Algo.Strategies.Strategy.#=qfUpZF1d0kfLHoJFmL5mxTeM45LziFEt905XO8WtYUYE=.#=qP3dOuD5_oi4FOGf7AXYuNaZXps13dvxoLkNZQgCxZP8=()<br /> в StockSharp.Algo.Strategies.Strategy.#=qByV2lqqoenNb0WwP1kmYSw==(StrategyRule #=qyQ5hNakS8UpJoI5vvtAsdw==, Delegate #=qq3fv8A6EZk6yfCTaLBqKLw==, Func`1 #=qtTqfTAdZt_yuMIwPZmFarw==)<br />20:46:29.902 | | MMQS | Правило 'Ошибка регистрации заявки 0' удалено.<br />20:46:29.903 | | MMQS | Правило 'Полное исполнение 0' удалено.<br />20:46:30.898 | | MMQS | Правило 'Регистрация заявки 0' удалено.<br />20:46:30.979 | | MMQS | Правило 'Ошибка регистрации заявки 0' удалено.<br />20:46:30.992 | | MMQS | Правило 'Полное исполнение 0' удалено.<br />20:46:31.031 | | MMQS | Правило 'Полное исполнение 0' активировано.<br />20:46:31.077 | | MMQS | Стратегия остановлена.</div></div>https://stocksharp.ru/topic/2233/ICandleBuilderSourceValue2011-12-15T16:19:47Z2011-12-15T16:19:47ZInsiderHSEhttps://stocksharp.ru/users/6099/info@stocksharp.ruНе могу найти, что передается в CandleBuilder. Trade не реализует ICandleBuilderSourceValue...https://stocksharp.ru/topic/2232/Не успевает сработать приостановка правил2011-12-15T13:41:34Z2011-12-15T13:41:34ZInsiderHSEhttps://stocksharp.ru/users/6099/info@stocksharp.ruКотирование. Хочу запустить стратегию с приостановленными правилами, для чего использую следующий код<br /><div class="code"><strong>Код</strong><div class="innercode"><pre class="brush:csharp">
this.SuspendRules();
base.OnStarting();
this.SuspendRules();
</pre>
</div></div><br /><br />Тем не менее, прежде чем второй SuspendRules() срабатывает стратегия успевает 1 раз провести котирование. По-видимому, в base.OnStarting() SuspendRules снимается. Есть ли способ запустить котирование с приостановленными правилами?https://stocksharp.ru/topic/2231/стратегия останавливается после отмены заявок.2011-12-15T12:12:52Z2011-12-15T12:12:52Zvaderhttps://stocksharp.ru/users/28223/info@stocksharp.ruспустя 15-20 минут стратегия останавливается после очередной отмены заявок.<br />Никаких сообщение об ошибке не выводится.https://stocksharp.ru/topic/2230/ТЕМА = Tripple Exponential MA2011-12-15T11:02:33Z2011-12-15T11:02:33ZJackSparrowhttps://stocksharp.ru/users/27783/info@stocksharp.ruВыложил TEMA = Tripple EMA, = 3*EMA(t) - 3*EMA(EMA(t)) + EMA(EMA(EMA(t)))<br /><br />ИМХО хорош при использовании в качестве сигнальных ( быстрых ) МА, при построении систем пересечения.<br />Полиномная формула удачно подавляет флуктуации. Хорошее исследование на тему фильтрации есть на пауке, кому интересно залезть в дебри найдет сам [biggrin] <br /><br />Вопросы и замечания приветсвуются.https://stocksharp.ru/topic/2229/Странность с экспортом инструментов2011-12-15T10:32:49Z2011-12-15T10:32:49Za.dobrynhttps://stocksharp.ru/users/28111/info@stocksharp.ruПереходим сейчас на другой контракт, с RIZ1 на RIH2. Изменила соответственно таблицу инструментов и таблицу всех сделок. Но при подключении к квику получается вот что<br /><a href='http://img32.imageshack.us/img32/2822/46048841.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'><img src="http://img32.imageshack.us/img32/2822/46048841.png" style='max-width: 600px;' alt=""/></a><br />Во второй строчке "остатки" старой бумаги, а в первой строчке по новой нет цен.<br />На другом квике тоже переходили на другую бумагу, но все нормально - первая строчка новой бумаги, а вторая NULL. Куда копать? Может, фильтр где-то в квике стоит?https://stocksharp.ru/topic/2228/Прокачка данных идет очень долго2011-12-15T06:26:33Z2011-12-15T06:26:33Zfrontmanhttps://stocksharp.ru/users/28487/info@stocksharp.ruНе понимаю почему, но дня 4 назад прокачка данных при старте экспорта стала очень медленной.<br />Вот лог подключения потоков<br />Фьючерсы: общая информация по сессии LoadRevisions 90189<br />Фьючерсы: cправочник торгуемых инструментов LoadRevisions 342761<br />Средства и лимиты клиентов LoadRevisions 0<br />Позиции клиентов LoadRevisions 1814365140<br />Фьючерсы: журнал сделок LoadRevisions 475872166<br />Фьючерсы: журнал заявок LoadRevisions 33600408<br />Фьючерсы: информация о торговой сессии LoadRevisions 511<br />"IRobot.vshost.exe" (Управляемый (v4.0.30319)): Загружен "C:\Documents and Settings\a.fadeev\Мои документы\Visual Studio 2010\Projects\IRobot\IRobot\bin\Release\Ecng.Xaml.dll"<br />"IRobot.vshost.exe" (Управляемый (v4.0.30319)): Загружен "C:\Documents and Settings\a.fadeev\Мои документы\Visual Studio 2010\Projects\IRobot\IRobot\bin\Release\StockSharp.Xaml.dll"<br />FORTS_FUTCOMMON_REPL\common - StreamStateChanged: LocalSnapshot<br />FORTS_FUTINFO_REPL\fut_sess_contents - StreamStateChanged: LocalSnapshot<br />FORTS_PART_REPL\part - StreamStateChanged: LocalSnapshot<br />FORTS_POS_REPL\position - StreamStateChanged: LocalSnapshot<br />FORTS_FUTTRADE_REPL\deal - StreamStateChanged: LocalSnapshot<br />FORTS_FUTTRADE_REPL\orders_log - StreamStateChanged: LocalSnapshot<br />FORTS_FUTINFO_REPL\session - StreamStateChanged: LocalSnapshot<br />FORTS_FUTAGGR20_REPL\orders_aggr - StreamStateChanged: LocalSnapshot<br />FORTS_FUTCOMMON_REPL\common - StreamStateChanged: ReOpenned<br />StreamLifeNumChanged: CURRENT LifeNum 0, NEW LifeNum 26687<br />FORTS_FUTCOMMON_REPL\common - StreamStateChanged: RemoveSnapshot<br />FORTS_FUTINFO_REPL\fut_sess_contents - StreamStateChanged: ReOpenned<br />StreamLifeNumChanged: CURRENT LifeNum 0, NEW LifeNum 2716<br />FORTS_FUTINFO_REPL\fut_sess_contents - StreamStateChanged: RemoveSnapshot<br />FORTS_FUTTRADE_REPL\deal - StreamStateChanged: ReOpenned<br />StreamLifeNumChanged: CURRENT LifeNum 0, NEW LifeNum 103<br />FORTS_FUTTRADE_REPL\deal - StreamStateChanged: RemoveSnapshot<br />FORTS_FUTTRADE_REPL\orders_log - StreamStateChanged: ReOpenned<br />StreamLifeNumChanged: CURRENT LifeNum 0, NEW LifeNum 103<br />FORTS_FUTTRADE_REPL\orders_log - StreamStateChanged: RemoveSnapshot<br />FORTS_PART_REPL\part - StreamStateChanged: ReOpenned<br />StreamLifeNumChanged: CURRENT LifeNum 0, NEW LifeNum 3808<br />FORTS_PART_REPL\part - StreamStateChanged: RemoveSnapshot<br />FORTS_POS_REPL\position - StreamStateChanged: ReOpenned<br />StreamLifeNumChanged: CURRENT LifeNum 0, NEW LifeNum 3808<br />FORTS_POS_REPL\position - StreamStateChanged: RemoveSnapshot<br />FORTS_FUTAGGR20_REPL\orders_aggr - StreamStateChanged: ReOpenned<br />StreamLifeNumChanged: CURRENT LifeNum 0, NEW LifeNum 1810<br />FORTS_FUTAGGR20_REPL\orders_aggr - StreamStateChanged: RemoveSnapshot<br />FORTS_FUTCOMMON_REPL\common - StreamStateChanged: Online<br />FORTS_FUTINFO_REPL\session - StreamStateChanged: ReOpenned<br />StreamLifeNumChanged: CURRENT LifeNum 0, NEW LifeNum 2716<br />FORTS_FUTINFO_REPL\session - StreamStateChanged: RemoveSnapshot<br />FORTS_FUTINFO_REPL\fut_sess_contents - StreamStateChanged: Online<br />FORTS_FUTAGGR20_REPL\orders_aggr - StreamStateChanged: Online<br />FORTS_FUTINFO_REPL\session - StreamStateChanged: Online<br />FORTS_POS_REPL\position - StreamStateChanged: Online<br />FORTS_FUTTRADE_REPL\deal - StreamStateChanged: RemoveSnapshot<br />FORTS_FUTTRADE_REPL\orders_log - StreamStateChanged: RemoveSnapshot<br />FORTS_PART_REPL\part - StreamStateChanged: Online<br />FORTS_FUTTRADE_REPL\orders_log - StreamStateChanged: RemoveSnapshot<br />FORTS_FUTTRADE_REPL\orders_log - StreamStateChanged: RemoveSnapshot<br />FORTS_FUTTRADE_REPL\orders_log - StreamStateChanged: Online<br />Поток '<Без имени>' (0xf34) завершился с кодом 0 (0x0).<br />FORTS_FUTTRADE_REPL\deal - StreamStateChanged: RemoveSnapshot<br />FORTS_FUTTRADE_REPL\deal - StreamStateChanged: RemoveSnapshot<br />FORTS_FUTTRADE_REPL\deal - StreamStateChanged: Online<br /><br /><br />Дольше всего прокачивается таблица deal... https://stocksharp.ru/topic/2227/Стратегия не снимает заявки2011-12-15T05:55:34Z2011-12-15T05:55:34Zvaderhttps://stocksharp.ru/users/28223/info@stocksharp.ruВсе заявки на продажу выставлены одной и той же стратегией, перед отправкой новой заявки выполняется CancelActiveOrders.(кроме тех случаев, когда заявка исполнена.)<br />Два вопроса.<br />1) Почему заявки не были сняты вызовом CancelActiveOrders?<br />2) почему они не были сняты последующими вызовани CancelActiveOrders?<br /><br />S# - 4.0.7https://stocksharp.ru/topic/2226/"Рабочая" версия SampleSmartConsole не получает инструмент и портфель2011-12-14T20:57:28Z2011-12-14T20:57:28ZАндрей Александровичhttps://stocksharp.ru/users/255/info@stocksharp.ruПриветствую, недавно закончил курс "Базовый" по S#, пытаюсь довести до ума пример SampleSmartConsole, но выполнение програмы останавливается после сообщения "Дожидаемся появления в программе инструмента RIH и портфеля "<br />Хотелось бы узнать где ошибка в этом коде и по какому алгоритму самому определять подобные моменты.<br /><br /><br /><div class="code"><strong>Код</strong><div class="innercode"><pre class="brush:csharp">
using System;
using System.Net;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using StockSharp.Algo;
using StockSharp.BusinessEntities;
using StockSharp.Smart;
using System.Threading;
using Ecng.Collections;
using Ecng.Common;
using StockSharp.Algo.Candles;
namespace MyFirstBot
{
class Program
{
static string login = "Мой логин";
static string password = "QKVDBU";
public static Portfolio portfolio;
public static Security secObject;
static string sec;
private StockSharp.Algo.Candles.CandleManager _candleManager;
private TimeSpan _candleWidth;
private SmartTrader trader;
const string secCode = "RIH2";
const string account = "Мой счет";
static string ipAddress = "62.141.86.229";
static System.Net.IPAddress addr = System.Net.IPAddress.Parse(ipAddress);
static System.Net.IPEndPoint server = new System.Net.IPEndPoint(addr, 8090);
static void Main()
{
try
{
var trader = new SmartTrader(login, password, server);
var waitHandle = new AutoResetEvent(false);
trader.Connected += () =>
{
Console.WriteLine("Подключение было произведено успешно.");
waitHandle.Set();
};
Console.WriteLine("Производим подключение...");
trader.Connect();
waitHandle.WaitOne();
trader.NewPortfolios += portfolios =>
{
// необходимое условие работы в SmartCOM
portfolios.ForEach(trader.RegisterPortfolio);
if (portfolio == null)
{
portfolio = portfolios.FirstOrDefault(p => p.Name == account);
if (portfolio != null)
{
Console.WriteLine("Портфель {0} появился.", account);
if (secObject != null)
waitHandle.Set();
}
}
};
trader.NewSecurities += securities =>
{
if (secObject == null)
{
secObject = securities.FirstOrDefault(sec => sec.Code == secCode && sec.Type == SecurityTypes.Equity);
if (secObject != null)
{
Console.WriteLine("Инструмент RIH2 появился.");
if (portfolio != null)
waitHandle.Set();
}
}
};
Console.WriteLine("Дожидаемся появления в программе инструмента RIH и портфеля {0}...".Put(account));
// запускаем экспорт по инструментам и портфелям
trader.StartExport();
// дожидаемся появления портфеля и инструмента
waitHandle.WaitOne();
trader.SecuritiesChanged += securities =>
{
// если инструмент хоть раз изменился (по нему пришли актуальные данные)
if (securities.Contains(secObject))
waitHandle.Set();
};
Console.WriteLine("Дожидаемся обновления данных по инструменту RIH2...");
trader.RegisterSecurity(secObject);
waitHandle.WaitOne();
}
catch (Exception ex)
{
Console.WriteLine(ex);
}
Console.ReadKey();
}
}
}
</pre>
</div></div>