Форум. StockSharphttps://stocksharp.ru/handlers/atom.ashx?category=forum&page=168Copyright @ StockSharp Platform LLC 2010 - 20242024-03-29T11:38:23Zhttps://stocksharp.ru/images/logo.pnghttps://stocksharp.ru/topic/2765/Не снимаются ранее выставленные заявки2012-06-05T16:44:44Z2012-06-05T16:44:44ZLiberalhttps://stocksharp.ru/users/6066/info@stocksharp.ruНе снимаются ранее выставленные заявки. После отмены каждой ранее выставленной заявки внутри сообщения trader.NewOrders, срабатывает сообщение trader.OrdersCancelFailed. В консоль выводится: "Произошла ошибка. Код 14, описание 'Не найдена заявка для удаления'." <br /><br /><div class="code"><strong>Код</strong><div class="innercode"><pre class="brush:csharp">
trader.NewOrders += (orders) =>
{
orders.ForEach(trader.CancelOrder);
};
trader.OrdersCancelFailed += (err) =>
{
string msg = err.FirstOrDefault().Error.Message;
Console.WriteLine(msg);
};
trader.StartExport();
</pre>
</div></div><br />Версия S#: commit 17567. Версия роутера: 1.14.1_32. Лог роутера прилагается.<br /><br />Эти заявки видны и в SampleGUI, но точно так же отменить их невозможно.<br />При выборе заявки не активна кнопка “Снять заявку”. Активна только кнопка “Снять все заявки”. Но ее нажатие ни к чему не приводит.<br /><br />При запуске SampleGUI соединение нормально устанавливается (видны инструменты и ранее созданные заявки), но при этом выскакивает ислкючение: ”Поток FORTS_VM_REPL выбросил ошибку. Couldn’t open baseless repl datastream”.https://stocksharp.ru/topic/2764/Переход на боевую версию2012-06-05T14:41:46Z2012-06-05T14:41:46Zqpilehttps://stocksharp.ru/users/6397/info@stocksharp.ruНадо ли делать что то дополнительно при переходе с тестового контура на боевой логин? Оповещать биржу? имя в коде прописывать? https://stocksharp.ru/topic/2763/Добавление стратегии2012-06-05T10:16:09Z2012-06-05T10:16:09ZAndriihttps://stocksharp.ru/users/27996/info@stocksharp.ruесть класс Strategy, если наследовать от него и создать собственную стратегию, как ее подключить? Покажите или направьте где можно посмотреть как подключить свою стратегию, чтобы она перехватывала события, или как в нее передавать события... В общем что делать со стратегией, как ее запустить?https://stocksharp.ru/topic/2762/ошибка Не удалось получить фабрику класса COM2012-06-04T14:48:03Z2012-06-04T14:48:03Zfishhttps://stocksharp.ru/users/241/info@stocksharp.ruпри попытке подключения вот такая ошибка<br /><br /><br /><hr />Ошибка<br /><hr />Не удалось получить фабрику класса COM для компонента с CLSID {EAB94E8C-7106-42F7-BB04-C57ACD895DE3} из-за следующей ошибки: 80040154 Класс не зарегистрирован (Исключение из HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).<br /><hr />ОК <br /><hr />https://stocksharp.ru/topic/2761/Простые примеры.2012-06-04T07:21:59Z2012-06-04T07:21:59Znuanhttps://stocksharp.ru/users/6492/info@stocksharp.ruБольшая просьба участников форума. <br />Если у вас есть примеры, которые вам не нужны, какие то наработки с комментариями, <br />скиньте пожалуйста!<br />P.S. Заранее благодарен.https://stocksharp.ru/topic/2760/Тестирование на случайных величинах2012-06-03T22:50:34Z2012-06-03T22:50:34ZMikhail Sukhovhttps://stocksharp.ru/users/201/info@stocksharp.ruХочу понять как это делают в своей практике другие? Для хохмы запустил два раза пример <a href="http://stocksharp.com/doc/html/ab42038e-836b-4c00-9332-0b2db2cbd948.htm" title="http://stocksharp.com/doc/html/ab42038e-836b-4c00-9332-0b2db2cbd948.htm">SampleEmulationTesting</a> и мне выдало следующие:<br /><br /><a href='http://gyazo.com/1db2355624cb5afcbd9d263507e71c72.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'><img src="http://gyazo.com/1db2355624cb5afcbd9d263507e71c72.png" style='max-width: 600px;' alt=""/></a><br /><a href='http://gyazo.com/8b95fda06ea661a4d5dbda2b4c598683.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'><img src="http://gyazo.com/8b95fda06ea661a4d5dbda2b4c598683.png" style='max-width: 600px;' alt=""/></a><br /><br />Картинки диаметрально противоположные. Рандомизатор .NET ерунда однако. Видимо нужно что-то посложнее.https://stocksharp.ru/topic/2759/4.1.2 CandleManager пропуск тиков за текущий день2012-06-03T19:32:58Z2012-06-03T19:32:58ZMoadiphttps://stocksharp.ru/users/5973/info@stocksharp.ruСборка <b>17507</b><br /><br />При подгрузке тиков за текущий день, идет пропуск, из за этого свечки собираются не с начала торгов.<br /><br /><div class='spoilertitle'><input type='button' value='Показать спойлер' class='btn btn-primary' onclick="toggleSpoiler(this, 'spolier_9f187f6588134eb9bf2e1d12266eae7e');" title='Показать спойлер' /></div><div class='spoilerbox' id='spolier_9f187f6588134eb9bf2e1d12266eae7e' style='display:none'><a href='http://s019.radikal.ru/i632/1206/35/1129c140cd7d.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'><img src="http://s019.radikal.ru/i632/1206/35/1129c140cd7d.png" style='max-width: 600px;' alt=""/></a></div><br />На одной из более ранних сборок<br /><br /><div class='spoilertitle'><input type='button' value='Показать спойлер' class='btn btn-primary' onclick="toggleSpoiler(this, 'spolier_2077793c1ace44eea33943a4326d070c');" title='Показать спойлер' /></div><div class='spoilerbox' id='spolier_2077793c1ace44eea33943a4326d070c' style='display:none'><a href='http://s019.radikal.ru/i615/1206/a6/13b7d27eb031.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'><img src="http://s019.radikal.ru/i615/1206/a6/13b7d27eb031.png" style='max-width: 600px;' alt=""/></a></div><br />https://stocksharp.ru/topic/2758/Заявки WindowsForms2012-06-01T17:08:12Z2012-06-01T17:08:12ZKefirhttps://stocksharp.ru/users/6033/info@stocksharp.ruДобрый день!<br /><br />Примерно с версии библиотеки 4.0.23 перестали регистрироваться заявки ( в квик поступают, передаются на сервер, но не регистрируются) в версии 4.0.2 все работает.<br /><br />Что я пропустил?<br /><br />Подозрение что что-то с потоками, но сомневаюсь.<br /><br />В прикрепленных файлах рабочая 4.0.2 в нерабочей 4.1 библиотекиhttps://stocksharp.ru/topic/2756/Проблемы с лицензией.2012-06-01T08:35:22Z2012-06-01T08:35:22ZMrNoBoodyhttps://stocksharp.ru/users/6042/info@stocksharp.ruПеренёс робота на пром сервер IT Invest получил новую лицензию запускаю для теста SimplGui Plaza, выдаёться исключение о том что лицензионный файл неправильный, на домашнем компьютере который работал на Demo сервере всё работало без ошибок, подскажите как решить проблему.<br />Использую StockShapr 4.1.https://stocksharp.ru/topic/2755/Исторические данные2012-06-01T01:09:24Z2012-06-01T01:09:24Zseashamanhttps://stocksharp.ru/users/772/info@stocksharp.ruПомогите советом. <br />Как идеологически правильно организовать доступ стратегии к истории свечек, при использованием OEC.https://stocksharp.ru/topic/2754/Не приходит Security.LastTrade2012-05-31T08:11:37Z2012-05-31T08:11:37ZMemoryhttps://stocksharp.ru/users/6063/info@stocksharp.ruВ security в версии 4.1.1 не приходят lastrade по инексу фючерсу на индекс RTS (RIM2). Значение Security.LastTrade всегда NULL. Рекомендацию по почистке ревизии в папке сроботом выполнил путем удаления всех dll вышеозначенной пакпке. Хотелось бы уточнмть что конкретно понимается в данном случае под термином "почистить" и как получить LastTrade? https://stocksharp.ru/topic/2753/4.1.1 Проблема с тиковыми свечками2012-05-30T14:53:58Z2012-05-30T14:53:58ZMoadiphttps://stocksharp.ru/users/5973/info@stocksharp.ruВ обработчик события СandleManager.Processing обновленные свечки приходят примерно раз в 1сек.<br /><br />Если написать что то подобное<br /><div class="code"><strong>Код</strong><div class="innercode"><pre class="brush:csharp">
_candleManager.Processing += (series, candle) =>
{
if(candle.State == CandleStates.Finished)
{
this.GuiAsync(() => MessageBox.Show(this, "Свечка закончена"));
}
};
</pre>
</div></div><br /><br />И воткнуть бряк в условие, то его срабатывание можно ждать долго и упорно.<br /><br />С таймфреймовыми свечками все нормально.<br /><br />https://stocksharp.ru/topic/2752/Как в 4.1 формировать свечки из тиков в реал тайме?2012-05-30T08:53:49Z2012-05-30T08:53:49Zionnhttps://stocksharp.ru/users/6029/info@stocksharp.ruКак теперь формировать свечки из тиков в реальном времени?<br />Мне нужно самому генерировать тики (сделки), без ITrader.<br /><br /><br />в 3 версии, я делал так:<br /><br />определял источник свечек, с методом AddNewTrade() и через него скармливал тики. CandleManager соответственно строил свечки, а теперь?<br /><br /><div class="code"><strong>Код</strong><div class="innercode"><br />public abstract class MyCandleSource : Disposable, ICandleSource<br /><br />public class ParallelMyTraderCandleSource : MyCandleSource<br /> {<br /> private readonly SynchronizedList<Trade> _newTrades = new SynchronizedList<Trade>();<br /><br /> private bool _isInProcess;<br /> private readonly Timer _timer;<br /><br /> /// <summary><br /> /// Создать <see cref="ParallelTraderCandleSource"/>.<br /> /// </summary><br /> /// <param name="trader">Торговый шлюз, у которого используется событие <see cref="ITrader.NewTrades"/>.</param><br /> public ParallelMyCandleSource()<br /> : this(TimeSpan.FromMilliseconds(300))<br /> { }<br /><br /> /// <summary><br /> /// Создать <see cref="ParallelTraderCandleSource"/>.<br /> /// </summary><br /> /// <param name="trader">Торговый шлюз, у которого используется событие <see cref="ITrader.NewTrades"/>.</param><br /> /// <param name="interval">Интервал отправки новых сделок.</param><br /> public ParallelMyCandleSource(TimeSpan interval)<br /> : base(int.MaxValue, int.MaxValue)<br /> { <br /><br /> _timer = interval.CreateTimer(OnProcessTrades);<br /> }<br /><br /> /// <summary><br /> /// Обработчик события <see cref="ITrader.NewTrades"/>.<br /> /// </summary><br /> /// <param name="trades">Новые сделки.</param><br /> protected override void OnNewTrades(IEnumerable<Trade> trades)<br /> {<br /> base.OnNewTrades(trades);<br /><br /> _newTrades.AddRange(trades);<br /> }<br /><br /><br /> public override void AddNewTrades(Trade trade)<br /> {<br /> base.AddNewTrades(trade);<br /><br /> _newTrades.Add(trade);<br /> }<br /><br /> private void OnProcessTrades()<br /> {<br /> if (_isInProcess)<br /> return;<br /><br /> _isInProcess = true;<br /><br /> try<br /> {<br /> var newTrades = _newTrades.SyncGet(c =><br /> {<br /> var retVal = c.ToArray();<br /> c.Clear();<br /> return retVal;<br /> });<br /><br /> if (newTrades.Length > 0)<br /> base.RaiseNewTrades(newTrades);<br /> }<br /> finally<br /> {<br /> _isInProcess = false;<br /> }<br /> } <br /> }<br /></div></div>https://stocksharp.ru/topic/2751/За год не могу сформировать свечки 5 мин.2012-05-30T03:04:37Z2012-05-30T03:04:37ZVladOAhttps://stocksharp.ru/users/5989/info@stocksharp.ruВерсия 4.1.1 ( и в предыдущих версия то же)<br />Если формируешь свечки за 1 два месяца размером 5 мин. , то все нормально, если пытаюсь большой интервал (год, два)<br />то вылетает и пишет:<br /><br />Сигнатура проблемы:<br /> Имя события проблемы: CLR20r3<br /> Сигнатура проблемы 01: hydra.exe<br /> Сигнатура проблемы 02: 4.1.1.0<br /> Сигнатура проблемы 03: 4fc5025a<br /> Сигнатура проблемы 04: Ecng.Reflection<br /> Сигнатура проблемы 05: 1.0.0.0<br /> Сигнатура проблемы 06: 4f986578<br /> Сигнатура проблемы 07: 1f0<br /> Сигнатура проблемы 08: 22<br /> Сигнатура проблемы 09: System.OutOfMemoryException<br /> Версия ОС: 6.1.7601.2.1.0.256.48<br /> Код языка: 1049<br /> Дополнительные сведения 1: 0a9e<br /> Дополнительные сведения 2: 0a9e372d3b4ad19135b953a78882e789<br /> Дополнительные сведения 3: 0a9e<br /> Дополнительные сведения 4: 0a9e372d3b4ad19135b953a78882e789<br /><br />Память на компьютере 3 Gb. Система Win7 - 32x.https://stocksharp.ru/topic/2750/CandleManager.Processing2012-05-29T21:46:59Z2012-05-29T21:46:59ZMemoryhttps://stocksharp.ru/users/6063/info@stocksharp.ruв стратегии для тестирования на истории повесил <br />_candleManager.Processing += OnCandleChanged;<br /><br />В результате в OnCandleChanged имею следующее:<br /><br />17.06.2009 10:32:48 Candle open time 17.06.2009 10:30:00 open price 105690<br />17.06.2009 10:39:29 Candle open time 17.06.2009 10:35:00 open price 106210<br />17.06.2009 10:45:33 Candle open time 17.06.2009 10:40:00 open price 106725<br />17.06.2009 10:50:02 Candle open time 17.06.2009 10:45:00 open price 106660<br />17.06.2009 10:52:39 Candle open time 17.06.2009 10:50:00 open price 107040<br />17.06.2009 10:55:01 Candle open time 17.06.2009 10:55:00 open price 106995<br />17.06.2009 11:00:00 Candle open time 17.06.2009 11:00:00 open price 106840<br />17.06.2009 11:05:00 Candle open time 17.06.2009 11:05:00 open price 106555<br /><br />Первые 2 колонки Trader.MarketTime дальше время открытия свечи и цена открытия. <br />Инструмент RIU9 из примеров.<br /><br />Кусок кода создания и инициализации стратегии:<br /><br /> var candleManager = new CandleManager(_trader);<br /> var series = new CandleSeries(typeof(TimeFrameCandle), security, timeFrame);<br /> candleManager.Start(series);<br /> _strategy = new MyStrat(candleManager)<br /> {<br /> Volume = 1,<br /> Portfolio = portfolio,<br /> Security = security,<br /> Trader = _trader<br /> };<br /><br />Вопрос. Почему первые пять свечей приходят с таким опазданием относительно MarketTime и как с этим бороться? <br /><br /><br />https://stocksharp.ru/topic/2749/Не срабатывает правило WhenBestAskPriceLess2012-05-29T18:00:28Z2012-05-29T18:00:28ZКот Матроскинhttps://stocksharp.ru/users/808/info@stocksharp.ruСтранное дело... В 4.0.23 версии отлично срабатывали правила. Поставил последнюю версию с dev-ветки, изменил лишь с this.When(this.Security.BestAskPriceLess()) на this.Security.WhenBestAskPriceLess(). Стало примерно так:<br /><div class="code"><strong>Код</strong><div class="innercode"><pre class="brush:csharp">
StrategyRule<Security> _opRule;
Unit _opPriceUnit = new Unit() { Type = UnitTypes.Limit };
......
_opPriceUnit.Value = this.Security.ShrinkPrice(_indicator.LastValue);
_opRule = this.Security.WhenBestAskPriceLess(_opPriceUnit).Do(() =>
{
MQStrategy = new MarketQuotingStrategy(OrderDirections.Buy, this.Volume)
{ PriceType = MarketPriceTypes.Following };
this.ChildStrategies.Add(MQStrategy);
}).Once().Apply(this);</pre>
</div></div><br />Теперь правила перестали срабатывать на тех же периодах: Цена срабатывания правила равна Unit = 100,98, Low опустился ниже, но покупки не произошло. Бумага Сбер обычка, сред маленький<br /><div class="quote"><span class="quotetitle">Цитата:</span><div class="innerquote">MarketTime:2012.03.02 12:40:00, позиция = 0, Unit = 100,98, H = 101,45, L = 101,20<br />MarketTime:2012.03.02 12:50:00, позиция = 0, Unit = 100,98, H = 101,27, L = 100,83<br />MarketTime:2012.03.02 13:00:01, позиция = 0, Unit = 100,98, H = 100,97, L = 100,76<br />MarketTime:2012.03.02 13:10:03, позиция = 0, Unit = 100,98, H = 100,98, L = 100,79<br />MarketTime:2012.03.02 13:20:00, позиция = 0, Unit = 100,98, H = 101,03, L = 100,91<br />MarketTime:2012.03.02 13:30:04, позиция = 0, Unit = 100,98, H = 101,02, L = 100,93</div></div><br />https://stocksharp.ru/topic/2748/4.1 не идут изменения по индексам2012-05-29T06:53:36Z2012-05-29T06:53:36Zionnhttps://stocksharp.ru/users/6029/info@stocksharp.ruLastTrade по индексам (MICEX RTSI) заполняется только при запуске. Изменяются только RTSSel и RTSTop15.<br /><br />В пример SampleGUI добавил код:<br />Trader.Tables.Add(Trader.TableRegistry.Index);<br />Trader.Tables.Add(Trader.TableRegistry.IndexLog);https://stocksharp.ru/topic/2747/4.1 Проблема с ReRegisterOrder2012-05-28T19:57:29Z2012-05-28T19:57:29ZFiNickhttps://stocksharp.ru/users/6053/info@stocksharp.ruПомните у нас неправильно работал ReRegisterOrder? Так вот, я поставил версию 4.1 (в которой вроде чинили багу), и не понял как этим пользоваться. <br />Собственно, вопрос: как послать команду на перерегистрацию так, чтобы биржа сама выставила обьем новой заявки (равный остатку по старой заявке)?<br />Напомню, что мы не знаем остаток по заявке в произвольный момент времени, только биржа точно знает этот остаток.https://stocksharp.ru/topic/2746/Какая то ошибка2012-05-28T15:33:31Z2012-05-28T15:33:31Ztmthttps://stocksharp.ru/users/6032/info@stocksharp.ruЗдраствуйте, такая проблема. Обновился до 4.1, после чего у меня программа стала не стабильно работать, просто берет и выключается! (в режиме отладки никаких ошибок, ничего!) Лога к сожалению в программке нету, сейчас попробую его сделать, может поможет. <br />Думал может sqlite тупит, но перепробовав все сборки с офф сайта ничего не изменилось.<br /><br />При переходе с 4.0.23 изменил лишь<br /><div class="quote"><span class="quotetitle">Цитата:</span><div class="innerquote"> this<br /> .When(Security.MarketDepthChanged())<br /> .Do(str);</div></div><br />на<br /><div class="code"><strong>Код</strong><div class="innercode"><pre class="brush:csharp">
Security
.WhenMarketDepthChanged()
.Do(str);</pre>
</div></div><br />и<br /><div class="code"><strong>Код</strong><div class="innercode"><pre class="brush:csharp">
Trader.QuotesChanged += depths =>
{ ... };</pre>
</div></div><br />на<br /><div class="code"><strong>Код</strong><div class="innercode"><pre class="brush:csharp">
Trader.MarketDepthsChanged += depths =>
{ ... };</pre>
</div></div><br />На 4.0.23 все прекрасно работало, но было одно но, при обновлении quik до последней версии(6.02.0.39), переставал работать.https://stocksharp.ru/topic/2745/Парочка вопросов2012-05-28T14:36:01Z2012-05-28T14:36:01ZKazai Mazaihttps://stocksharp.ru/users/5954/info@stocksharp.ruГидра 4.0.23 - Сделки есть, но свечки не создает.<br />На форуме уже тему поднимали, вроде как в Гидре 4.1 это дело залечили.<br /><br />Но 4.1 гидра отказывается видеть источник.С чем может быть связано? Может какие то тонкости свои в добавлении источника?<br /><br /><br />П.С. трейдер и источник подлатал в связи с мелкими изменениями в S# 4.1 <br />