stocksharp. StockSharphttps://stocksharp.ru/handlers/atom.ashx?category=tag&id=stocksharp&type=forum&page=12Copyright @ StockSharp Platform LLC 2010 - 20242024-03-28T10:24:19Zhttps://stocksharp.ru/images/logo.pnghttps://stocksharp.ru/topic/4721/Commission management2014-09-09T11:03:17Z2014-09-09T11:03:17ZAndriihttps://stocksharp.ru/users/27996/info@stocksharp.ruВозможно ли управлять комиссией, то есть для разных типов инструментов комиссия считается по разному, как сделать одну комиссию которая будет работать как фиксированная сумма на закрытие позиции, а другая - процент от прибыли?https://stocksharp.ru/topic/4720/Ошибка при отмене заявки2014-09-09T09:02:07Z2014-09-09T09:02:07Zpma37592https://stocksharp.ru/users/50555/info@stocksharp.ruЕсть такой код. В нем в стратегии выставляем заявку, а потом сразу же отменяем.<br />Версия stocksharp 4.2.22. Для тестирования использовался терминал Quik Junior брокера finam. Коннектор Lua.<br />Лог следующий:<br /><div class='spoilertitle'><input type='button' value='Показать спойлер' class='btn btn-primary' onclick="toggleSpoiler(this, 'spolier_809cf3d50f814555b0bf29f4ff4ec63a');" title='Показать спойлер' /></div><div class='spoilerbox' id='spolier_809cf3d50f814555b0bf29f4ff4ec63a' style='display:none'><br />Имя Время Тип Сообщение<br />OCOS_RIU4@FORTS_SPBFUT00J13 09.09.2014 12:37:02 Info Стратегия запущена. [0,-1]. Позиция 0.<br />OCOS_RIU4@FORTS_SPBFUT00J13 09.09.2014 12:37:10 Info Регистрация новой Limit (0x19D013B) заявки на Buy с ценой 124770 и объемом 8. <br />OCOS_RIU4@FORTS_SPBFUT00J13 09.09.2014 12:37:10 Info Заявка UserOrderID=0b7f703e-e375-45a9-9f83-32ffe3209d8b; ID=0; TrasID=45327796; IsMatched=False; IsMatchedEmpty=True; IsMatchedPartially=False; Vol=8; Bal=8; State=Pending<br />OCOS_RIU4@FORTS_SPBFUT00J13 09.09.2014 12:37:10 Info Отмена заявки 45327796 (0x19D013B).<br />OCOS_RIU4@FORTS_SPBFUT00J13 09.09.2014 12:37:10 Info Заявку отменили<br />OCOS_RIU4@FORTS_SPBFUT00J13 09.09.2014 12:37:11 Error Заявка 45327796 (0x19D013B) не была принята по причине System.InvalidOperationException: Ошибка снятия заявки 0. Текст 'vy ne mozhete snyat' dannuyu zayavku'..<br />OCOS_RIU4@FORTS_SPBFUT00J13 09.09.2014 12:37:11 Info [_OrderFailed]: Ошибка при регистрации заявки: 0; ThreadID: 16; Ошибка: System.InvalidOperationException: Ошибка снятия заявки 0. Текст 'vy ne mozhete snyat' dannuyu zayavku'.; IsMatched=False; IsMatchedEmpty=True; IsMatchedPartially=False; Vol=8; Bal=8; State=Pending<br />OCOS_RIU4@FORTS_SPBFUT00J13 09.09.2014 12:37:11 Info Заявка 45327796 (0x19D013B) больше не активна.<br />OCOS_RIU4@FORTS_SPBFUT00J13 09.09.2014 12:37:11 Info Новая позиция: SPBFUT00J13-RIU4@FORTS=8.<br />OCOS_RIU4@FORTS_SPBFUT00J13 09.09.2014 12:37:11 Info Новая Buy сделка 115669077 по цене 124770 на 1 заявки 45327796.<br />OCOS_RIU4@FORTS_SPBFUT00J13 09.09.2014 12:37:11 Info Новая позиция: SPBFUT00J13-RIU4@FORTS=1.<br />OCOS_RIU4@FORTS_SPBFUT00J13 09.09.2014 12:37:11 Info [_OrderRegistered]: Заявка зарегистрирована: 2441834779; ThreadID: 16; IsMatched=False; IsMatchedEmpty=False; IsMatchedPartially=True; Vol=8; Bal=7; State=Active<br />OCOS_RIU4@FORTS_SPBFUT00J13 09.09.2014 12:37:11 Info Новая позиция: SPBFUT00J13-RIU4@FORTS=8.<br />OCOS_RIU4@FORTS_SPBFUT00J13 09.09.2014 12:37:11 Info Новая Buy сделка 115669079 по цене 124770 на 5 заявки 45327796.<br />OCOS_RIU4@FORTS_SPBFUT00J13 09.09.2014 12:37:11 Info Новая позиция: SPBFUT00J13-RIU4@FORTS=6.<br />OCOS_RIU4@FORTS_SPBFUT00J13 09.09.2014 12:37:11 Info Новая позиция: SPBFUT00J13-RIU4@FORTS=8.<br />OCOS_RIU4@FORTS_SPBFUT00J13 09.09.2014 12:37:11 Info Новая Buy сделка 115669080 по цене 124770 на 2 заявки 45327796.<br />OCOS_RIU4@FORTS_SPBFUT00J13 09.09.2014 12:37:11 Info Заявка 45327796 (0x19D013B) больше не активна.<br /></div><br /><br />По логу видно, что при отмене заявки, если заявка еще выставляется на сервере вызывается функция _OrderFailed, а не функция _OrderCanceledFailed.<br />Заявка ведь отменяется и ошибка отмены заявки. Так же не происходит реальной отмены заявки. Заявка выставляется и не происходит ее отмены.<br />Так же хотелось бы иметь какие-то коды ошибок для заявок.<br /><br />Код под катом:<br /><div class='spoilertitle'><input type='button' value='Показать спойлер' class='btn btn-primary' onclick="toggleSpoiler(this, 'spolier_4dd3e70269c34ce2b9f1829b2b1ba525');" title='Показать спойлер' /></div><div class='spoilerbox' id='spolier_4dd3e70269c34ce2b9f1829b2b1ba525' style='display:none'><br /><div class="code"><strong>Код</strong><div class="innercode"><pre class="brush:csharp">
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using StockSharp.Algo;
using StockSharp.Algo.Strategies;
using StockSharp.Algo.Candles;
using StockSharp.Algo.Testing;
using StockSharp.BusinessEntities;
using StockSharp.Logging;
namespace OrderTest
{
class OpenCancelOrderStrategy:Strategy
{
CandleManager _candleManager; //Менеджер свечек
CandleSeries _series; //Серия однотиковых свечек
protected override void OnStarted()
{
//Начало
_candleManager = new CandleManager(this.Connector);
_series = new CandleSeries(typeof(TickCandle), this.Security, 1);
Connector.RegisterMarketDepth(this.Security);
_series
.WhenCandlesFinished() //Когда закончится тик
.Do(ProcessCandle) //Вызывать процедуру
.Apply(this);
_candleManager.Start(_series);
base.OnStarted();
}
protected override void OnStopped()
{
_candleManager.Stop(_series);
_series.Dispose();
_candleManager.Dispose();
base.OnStopped();
}
private int IsOrder = 0;
private void ProcessCandle(Candle candle)
{
if (IsOrder < 1)
{
if (Security.BestAsk == null)
return;
IsOrder++;
//var order = this.BuyAtMarket(this.Volume);
var price = Security.BestAsk.Price;
var order = this.CreateOrder(StockSharp.Messages.Sides.Buy, price, Volume);
order
.WhenRegistered()
.Do(_OrderRegistered)
.Apply(this);
order
.WhenRegisterFailed()
.Do(_OrderFailed)
.Apply(this);
order
.WhenCanceled()
.Do(_OrderCanceled)
.Apply(this);
order
.WhenCancelFailed()
.Do(_OrderCanceledFailed)
.Apply(this);
RegisterOrder(order);
var msg = String.Format("Заявка UserOrderID={0}; ID={1}; TrasID={2}; IsMatched={3}; IsMatchedEmpty={4}; IsMatchedPartially={5}; Vol={6}; Bal={7}; State={8}", order.UserOrderId, order.Id, order.TransactionId, order.IsMatched(), order.IsMatchedEmpty(), order.IsMatchedPartially(), order.Volume, order.Balance, order.State);
this.AddInfoLog(msg);
CancelOrder(order);
msg = "Заявку отменили";
this.AddInfoLog(msg);
}
}
private void _OrderFailed(OrderFail Error)
{
var msg = String.Format("[OnOrderFailed]: Ошибка при регистрации заявки: {0}; ThreadID: {1}; Ошибка: {2}; IsMatched={3}; IsMatchedEmpty={4}; IsMatchedPartially={5}; Vol={6}; Bal={7}; State={8}", Error.Order.Id, Thread.CurrentThread.ManagedThreadId, Error.Error, Error.Order.IsMatched(), Error.Order.IsMatchedEmpty(), Error.Order.IsMatchedPartially(), Error.Order.Volume, Error.Order.Balance, Error.Order.State);
this.AddInfoLog(msg);
}
private void _OrderRegistered(Order order)
{
var msg = String.Format("[OnOrderRegistered1]: Заявка зарегистрирована: {0}; ThreadID: {1}; IsMatched={2}; IsMatchedEmpty={3}; IsMatchedPartially={4}; Vol={5}; Bal={6}; State={7}", order.Id, Thread.CurrentThread.ManagedThreadId, order.IsMatched(), order.IsMatchedEmpty(), order.IsMatchedPartially(), order.Volume, order.Balance, order.State);
this.AddInfoLog(msg);
}
private void _OrderCanceled(Order order)
{
var msg = String.Format("[_OrderCanceled]: Заявка успешно отменена: {0}; ThreadID: {1}; IsMatched={2}; IsMatchedEmpty={3}; IsMatchedPartially={4}; Vol={5}; Bal={6}; State={7}", order.Id, Thread.CurrentThread.ManagedThreadId, order.IsMatched(), order.IsMatchedEmpty(), order.IsMatchedPartially(), order.Volume, order.Balance, order.State);
this.AddInfoLog(msg);
}
private void _OrderCanceledFailed(OrderFail Error)
{
var msg = String.Format("[_OrderCanceledFailed]: Ошибка при отмене заявки: {0}; ThreadID: {1}; Ошибка: {2}; IsMatched={3}; IsMatchedEmpty={4}; IsMatchedPartially={5}; Vol={6}; Bal={7}; State={8}", Error.Order.Id, Thread.CurrentThread.ManagedThreadId, Error.Error, Error.Order.IsMatched(), Error.Order.IsMatchedEmpty(), Error.Order.IsMatchedPartially(), Error.Order.Volume, Error.Order.Balance, Error.Order.State);
this.AddInfoLog(msg);
}
}
}
</pre>
</div></div><br /></div>https://stocksharp.ru/topic/4719/логика WeightedIndexSecurity2014-09-09T05:42:30Z2014-09-09T05:42:30ZRomSunZhttps://stocksharp.ru/users/6384/info@stocksharp.ruЗдраствуйте.<br /><br />По примеру из хелпа создал WeightedIndexSecurity и добавил его в candleManager для формирования свечек TimeFrame. Далее подписался на событие<br /><div class="code"><strong>Код</strong><div class="innercode"><pre class="brush:csharp">
_indexSeries.CandleManager.Processing += (series, candle) =>
{
if (series == _indexSeries)//candle.State == CandleStates.Finished &&
ProcessCandle(candle);
};
private void ProcessCandle(Candle candle)
{
//вывод на график свечки
}
</pre>
</div></div><br />Вчера на вечерней сессии обнаружил такой неприятный момент: событие Processing для WeightedIndexSecurity вызывается только тогда, когда свеча по индексу получает статус Finished, а на изменения свечки не реагирует. Далее. Свечка по индексу получает статус Finished только после того, как свечка по самому низколиквидному инструменту, входящему в WeightedIndexSecurity получит статус Finished. А за этот период уже может сформироваться несколько свечек по более ликвидным инструментам из индекса, что приводит к тому, что на график свечки выводятся пачками по нескольку штук, вместо того, чтобы по окончанию текущего TimeFrame выводить сразу новую.<br /><br />Подскажите, что нужно переопределить, чтобы в данном случае свечка по индексу получала статус Finished как только любая, а не все, из свечек, входящих в индекс получала статус Finished?<br />https://stocksharp.ru/topic/4717/В Quik Finam Demo появляется ошибка при получении портфеля2014-09-08T07:28:54Z2014-09-08T07:28:54Zpma37592https://stocksharp.ru/users/50555/info@stocksharp.ruПодключаюсь к Quik Junior в компании Finam (<a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAAAR6NPBH_hY1LPd7ZlenayqoAm359EtZOBOzzrbOr9jZlDRYmuYkfszoPiyqYAhfhQ" title="http://www.finam.ru/howtotrade/demos0000D/">ссылка</a>).<br />Версия StockSharp 4.2.22. Сломалось именно в этой версии.<br />При использовании DDE выдается такое сообщение.<br /> <br />Имя Время Тип Сообщение<br />QuikTrader 01.01.0001 0:00:00 Info Connect<br />QuikTrader 08.09.2014 11:05:34 Info StartExport<br />QuikTrader 08.09.2014 11:05:34 Info Создан новый портфель CUR000228555.<br />QuikTrader 08.09.2014 11:05:34 Info Создан новый портфель 000000228555.<br />QuikTrader 08.09.2014 11:05:35 Info Создан новый портфель SPBFUT00J13.<br /><br />QuikTrader 08.09.2014 11:05:35 Error System.InvalidOperationException: Сообщение 'PortfolioChange,T=2014/09/08 11:05:35.018,P=SPBFUT00J13,Changes=[BeginValue, 99507.74],[CurrentValue, 0],[Leverage, 0],[VariationMargin, 0]' привело к ошибке обработки. ---> System.InvalidCastException: Заданное приведение является недопустимым.<br /> в StockSharp.Algo.TraderHelper.ApplyChanges(Portfolio portfolio, IDictionary`2 changes)<br /> в StockSharp.Algo.Connector.#=qD4$75gUxpEla88OiVCKE7kvxG1WiqgDVJZO1R2dSmUE=.#=qgng0OMOrruuZQvLTdBOe46t0unK9v61bj3Tyyd8FkAtABN_y7eimziqIs6qbi6JU(Portfolio #=q7drdcJidzEhMN4DDBqUOCA==)<br /> в StockSharp.Algo.Connector.#=qHmE9payiXIDgpz4KEgmuPA==(String #=qPVILwyRolEgznLPYmnbQwg==, Func`2 #=qha8cb9CUSxpgf04pA5wR9_PeIL6Bq_5399OKUhwxOEk=)<br /> в StockSharp.Algo.Connector.#=qEoMeWx_SyitWz20Ecm7wg$ZhoOXblGuG$e6cCK91jCI=(PortfolioChangeMessage #=q6SvGTjo3zE7hB_SkBNYMMw==)<br /> в StockSharp.Algo.Connector.OnProcessMessage(Message message, MessageAdapterTypes adapterType, MessageDirections direction)<br /> --- Конец трассировки внутреннего стека исключений ---<br /><br />При использовании Lua все хорошо работает.<br />Также было проверено на примере Quik\DDE\SampleSMA. <br /><br />https://stocksharp.ru/topic/4716/Лицензия не поддерживает стратегию 'MarketQuotingStrategy'.2014-09-06T18:22:37Z2014-09-06T18:22:37ZMenDelhttps://stocksharp.ru/users/6356/info@stocksharp.ruЗдравствуйте, объясните<br />Почему возникает ошибка: Лицензия не поддерживает стратегию 'MarketQuotingStrategy'?<br />Какая лицензия для этого нужна?https://stocksharp.ru/topic/4711/Проблема с candle.VolumeProfileInfo2014-09-05T07:50:04Z2014-09-05T07:50:04Zdevrusshttps://stocksharp.ru/users/50604/info@stocksharp.ruНачиная с .16 по-моему, все поля candle.VolumeProfileInfo кроме цен 0. Т.е. получается ситуация, когда Volume у свечки правильный, а разбивки на подуровни нет... <br /><br />Разбивка была на старых билдах, а также есть сейчас, но только на живых данных. На данных из Гидры - поля 0.<br />Так как на ранних билдах на истории разбивка была и сейчас есть на живых данных, есть подозрение, что какая-то ошибка при считывании из хранилищаhttps://stocksharp.ru/topic/4707/Lua: Получение свечей за предыдущий период2014-09-02T19:48:57Z2014-09-02T19:48:57ZAndriihttps://stocksharp.ru/users/27996/info@stocksharp.ruВопрос знатокам:<br />Если quik может построить график свечей за предыдущие дни, возможно это прикрутить? или выгрузить просто свечи?https://stocksharp.ru/topic/4705/Lua2014-09-01T12:06:21Z2014-09-01T12:06:21Zrobot.svhttps://stocksharp.ru/users/39504/info@stocksharp.ruПри переходе в Quik с DDE на Lua перестал идти экспорт исторических (собственных) таблиц.<br />Что нужно подкрутить?https://stocksharp.ru/topic/4704/Chart2014-08-29T11:37:57Z2014-08-29T11:37:57Zrobot.svhttps://stocksharp.ru/users/39504/info@stocksharp.ruСуществует ли возможность программного скролирования изображения в Charte к нужному элементу (напр. свечке) не меняя масштаба ?https://stocksharp.ru/topic/4702/Не работает корректно BestBid.Price в RealTimeEmulationTrader для QuikTrader2014-08-27T18:41:11Z2014-08-27T18:41:11Zpma37592https://stocksharp.ru/users/50555/info@stocksharp.ruИспользую RealTimeEmulationTrader для QuikTrader. К квику подключаюсь через DDE. <br />Тестировал версии StockSharp 4.2.10 и 4.2.20<br />Выбираю инструмент RI и создаю стратегию.<br />В стратегии получаю текущий лучший бид.<br />price=Security.BestBid.Price<br />У RI шаг цены 10. Но появляются время от времени цены не кратные 10.<br /><a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAADKT7pf5dLjVXM8iq6JQy7PJcyuFgz-70sZp_kU5o42feG9lsXFF2XQ5eOWFO5Cit8" title="http://joxi.ru/WSP-U_3JTJAANT5ffFo">http://joxi.ru/WSP-U_3JTJAANT5ffFo</a><br />Тестовый пример по ссылке:<br /><a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAAAu2IjQD4JCdU0j0ArEOvQ93q3XVDcLm0evocBfNqqyfg" title="https://yadi.sk/d/LDvb_uC6aYFuS">https://yadi.sk/d/LDvb_uC6aYFuS</a>https://stocksharp.ru/topic/4699/Как узнать индекс свечки в коллекции CandleSeries?2014-08-27T14:52:44Z2014-08-27T14:52:44Zloylickhttps://stocksharp.ru/users/61795/info@stocksharp.ruВозникла необходимость построить индикатор, в который входит индекс свечки как параметр. Время не подходит, потому что в выходные и между сессиями получаются дыры. Посему вопрос, как проще всего извлечь индекс конкретного объекта Candle в CandleSeries?https://stocksharp.ru/topic/4697/4.2.18 Quik with lua Не появляются портфели.2014-08-27T09:30:57Z2014-08-27T09:30:57ZAndriihttps://stocksharp.ru/users/27996/info@stocksharp.ru4.2.18 версии в примере Quik/Sample и поддержкой lua не появляются портфели, в дебаге событие вообще не вызывается, при этом проект Verify отображает успешную настройкуhttps://stocksharp.ru/topic/4696/Текущая позиция при старте стратегии и денежные средства2014-08-27T08:38:40Z2014-08-27T08:38:40Zdevrusshttps://stocksharp.ru/users/50604/info@stocksharp.ruВопрос по S# API: При старте стратегии нужно передать в стратегию <br />1. Свободные денежные средства (cash)<br />2. Текущие позиции по инструментам и среднюю цену позиции<br /><br /><div class="code"><strong>Код</strong><div class="innercode"><pre class="brush:csharp">
connector.NewPortfolios += portfolios =>
{
foreach (var pf in portfolios)
{
// регистрирует портфели на обновление данных
connector.RegisterPortfolio(pf);
if (pf.Name == "xxxxxxxxxx")
{
portfolio = pf;
potWindow.PortfolioGrid.Portfolios.Add(portfolio);
}
}
};
</pre>
</div></div><br /><br />При использовании данного кода (из уроков), портфели приходят с 0 значениями по позициям и деньгам... Но позже в PortfolioGrid верные значения появляются. Как отловить данный момент и передать эти значения до старта стратегии?<br /><br />Делается для того, чтобы при обрыве связи и рестарте стратегии, стратегия смогла продолжать управлять позициейhttps://stocksharp.ru/topic/4695/4.2.20 перестал работать GetCandleBounds()2014-08-25T16:11:55Z2014-08-25T16:11:55Zdevrusshttps://stocksharp.ru/users/50604/info@stocksharp.ruВерсия 4.2.20, перестал работать метод GetCandleBounds()<br />Вот кусов кода из стратегии (на .16 все работает):<br /><div class="code"><strong>Код</strong><div class="innercode"><pre class="brush:csharp">
var time = timeFrame.GetCandleBounds(Security).Min - timeFrame;
</pre>
</div></div><br /><br />Начиная с .19 выдает следующие ошибки:<br /><div class="quote"><span class="quotetitle">Цитата:</span><div class="innerquote"><br />Error 1 'System.TimeSpan' does not contain a definition for 'GetCandleBounds' and the best extension method overload 'StockSharp.Algo.Candles.CandleHelper.GetCandleBounds(System.TimeSpan, System.DateTime)' has some invalid arguments<br />Error 2 Argument 2: cannot convert from 'StockSharp.BusinessEntities.Security' to 'System.DateTime' <br /></div></div>https://stocksharp.ru/topic/4693/Проблема с Emulator в 4.2.192014-08-22T12:47:37Z2014-08-22T12:47:37ZRebelionhttps://stocksharp.ru/users/28840/info@stocksharp.ruHistoryEmulator сразу переходит в состояние Stopped. В 4.2.18 всё работало.<br /><br />Ниже - лог.<br /><br />0001/01/01 00:00:00.000| |HistoryEmulationConnector|Connect<br />0001/01/01 00:00:00.000| |HistoryEmulationConnector|StartExport<br />0001/01/01 00:00:00.000| |HistoryEmulationConnector|Создан новый портфель TEST.<br />2014/06/24 10:00:00.000| |HistoryEmulationConnector|Изменение состояния эмуляции Stopped -> Starting<br />2014/06/24 10:00:00.000| |HistoryEmulationConnector|Инструмент RIU4@FORTS зарегистрирован на получение рыночных данных для Level1.<br />2014/06/24 10:00:00.000| |HistoryEmulationConnector|Инструмент RIU4@FORTS зарегистрирован на получение рыночных данных для Trades.<br />2014/06/24 10:00:00.000| |HistoryEmulationConnector|Инструмент RIU4@FORTS зарегистрирован на получение рыночных данных для MarketDepth.<br />2014/06/24 10:00:00.000| |HistoryEmulationConnector|Изменение состояния эмуляции Starting -> Started<br />2014/06/24 10:00:00.000| |HistoryEmulationConnector|Инструмент RIU4@FORTS зарегистрирован на получение рыночных данных для Trades.<br />2014/06/24 10:00:00.000| |SBS_RIU4@FORTS_TEST|Стратегия запущена. [0,-1]. Позиция 0.<br />2014/06/24 10:00:00.000| |Эмулятор |Loading 24.06.2014 0:00:00 Events: 0<br />2014/06/24 10:00:00.000|Error |HistoryEmulationConnector|System.ArgumentException: Запись с таким ключом уже существует.<br /> в System.Collections.Generic.TreeSet`1.AddIfNotPresent(T item)<br /> в System.Collections.Generic.SortedDictionary`2.Add(TKey key, TValue value)<br /> в StockSharp.Algo.Storages.BasketMarketDataStorage.BasketMarketDataStorageEnumerator.#=q3Jz5hVT0MnABvCHFUbCGUyHlUARZEoWqwXRkYhTx1AmXVMcdGZ2iPwFlqTSdNpjx()<br /> в StockSharp.Algo.Testing.HistoryMessageAdapter.#=qsF3rzcGMMQG_ZnzG9_y_NmFG4_seb5hZe9gFPSKsLgw=(DateTime #=qxJtQZvEAPH8kmW2DxwNJzA==, IEnumerator`1 #=qZnrqR$w1hcgmkdENX7H3fw==)<br /> в StockSharp.Algo.Testing.HistoryMessageAdapter.#=qbDlGpGFQDLycuqdFSwqIqw==()<br />2014/06/24 10:00:00.000| |HistoryEmulationConnector|Изменение состояния эмуляции Started -> Stopping<br />2014/06/24 10:00:00.000| |HistoryEmulationConnector|Изменение состояния эмуляции Stopping -> Stopped<br />2014/06/24 10:00:00.000|Error |HistoryEmulationConnector|System.InvalidOperationException: Подключение в состоянии Connected получило неожиданное сообщение типа 'DisconnectMessage'.<br />https://stocksharp.ru/topic/4692/Проблема с Order.WhenRegistered() в 4.2.182014-08-21T23:15:07Z2014-08-21T23:15:07ZRebelionhttps://stocksharp.ru/users/28840/info@stocksharp.ru<div class="code"><strong>Код</strong><div class="innercode"><pre class="brush:csharp">
var newOrderDirection = pos > 0 ? Sides.Buy : Sides.Sell;
var newPositionToOpen = this.CreateOrder(newOrderDirection, price, Math.Abs(pos));
newPositionToOpen.WhenNewTrades().Do(OnNewStationaryRegimeTrades).Apply(this);
newPositionToOpen.WhenRegistered().Do(() =>
{
orderData.TryAdd(newPositionToOpen.Id, statisticParameters);
}).Apply(this);
</pre>
</div></div><br /><br />Не отрабатывает событие WhenRegistered(). Ставлю breakpoint'ы - код не исполняется. При этом сделки по ордерам вполне себе проходят, т.е. событие WhenNewTrades() вполне себе отрабатывает.<br />Да, статус "Регистрация" у заявки может висеть довольно долго, хотя все задержки стоят на 0 мс.https://stocksharp.ru/topic/4688/Разбор фичей API 4.2.17.02014-08-19T06:04:06Z2014-08-19T06:04:06ZJaguarFXhttps://stocksharp.ru/users/49779/info@stocksharp.ruОбновился до API 4.2.17.0 и сразу получил 12 критических ошибок.<br /><br />Реально сложности с пониманием "что же делать" вызвали 3 из них:<br /><br />1) прекратила работу конструкция var time = timeFrame.GetCandleBounds(Security).Min - timeFrame;<br />теперь она дает сразу две ошибки:<br />Ошибка 12 System.TimeSpan не содержит определение для "GetCandleBounds", а перегрузка лучшего метода расширения "StockSharp.Algo.Candles.CandleHelper.GetCandleBounds(System.TimeSpan, System.DateTime)" содержит несколько недопустимых элементов <br />Ошибка 13 Аргумент "2": преобразование типа из "StockSharp.BusinessEntities.Security" в "System.DateTime" невозможно <br /><br />2) прекратила работу конструкция Security.WhenNewTrades(),<br />теперь она дает сразу две ошибки:<br />Ошибка 15 StockSharp.BusinessEntities.Security не содержит определение для "WhenNewTrades", а перегрузка лучшего метода расширения "StockSharp.Algo.MarketRuleHelper.WhenNewTrades(StockSharp.BusinessEntities.Order)" содержит несколько недопустимых элементов<br />Ошибка 14 Аргумент экземпляра: не удается преобразовать из "StockSharp.BusinessEntities.Security" в "StockSharp.BusinessEntities.Order" <br /><br />3) прекратила работу конструкция Security.WhenMarketDepthChanged()<br />Ошибка 7 Ни одна из перегрузок метода "WhenMarketDepthChanged" не принимает "0" аргументов<br /><br />При этом есть подозрение, что последние две ошибки исправимы путем добавления Connector в скобки<br />Security.WhenNewTrades(Connector),<br />Security.WhenMarketDepthChanged(Connector)<br />Но нет уверенности что это так.<br /><br />Прошу прокомментировать ситуацию.https://stocksharp.ru/topic/4686/Проблема: не могу получить табличные данные ордеров и моих сделок2014-08-18T07:07:26Z2014-08-18T07:07:26Znikohttps://stocksharp.ru/users/61734/info@stocksharp.ruИсходные данные:<br />- Соединение Lua QuikFix<br />- версия API 4.2.14<br />Подключение:<br /><div class="code"><strong>Код</strong><div class="innercode"><pre class="brush:csharp">
String pathQuik = QuikTerminal.GetDefaultPath();
_trader = new QuikTrader
{
LuaFixServerAddress = "127.0.0.1:5001".To<EndPoint>(),
LuaLogin = "quik",
LuaPassword = "quik".To<SecureString>()
};
_trader.Connect();</pre>
</div></div><br />Данный код не работает:<br /><div class="code"><strong>Код</strong><div class="innercode"><pre class="brush:csharp">
var myMyTrade = _trader.MyTrades;
var myOrders = _trader.Orders;
</pre>
</div></div><br /><br />При просмотре через дебагер, массивы имею ноль элементов. У кого еще есть такая проблема или только у меня.https://stocksharp.ru/topic/4685/Проблемы с NewOrders в 4.2.162014-08-17T21:49:20Z2014-08-17T21:49:20ZRebelionhttps://stocksharp.ru/users/28840/info@stocksharp.ruПосле обновления с 4.2.14 на 4.2.16 перестало отрабатывать событие<br /><br />_connector.NewOrders += orders => Orders.Orders.AddRange(orders);<br /><br />Т.е. сделки отображаются, заявки - нет. В 4.2.14 версии работало.<br /><br /><br />Пример того, что всё работало на 4.2.14, по этой ссылке: <a href="http://stocksharp.com/forum/4672/Probliema-s-rieghistratsiiei-zaiavki/" title="http://stocksharp.com/forum/4672/Probliema-s-rieghistratsiiei-zaiavki/">http://stocksharp.com/fo...ieghistratsiiei-zaiavki/</a>https://stocksharp.ru/topic/4683/QUIK неверный код клиента2014-08-15T08:26:26Z2014-08-15T08:26:26ZVirKatohttps://stocksharp.ru/users/460/info@stocksharp.ruДобрый день!<br />При попытке запустить робота на другом QUIKe получаю ошибку "неверный код клиента". На тестовом QUIKe все хорошо. <br />Настройки из одного Квика копируются в другой. Разница между квиками: брокер; количество клиентов; Т+2 против тестового (там Т0 как я понимаю); название клиента на русском.<br />Портфель из Квика подгружается и код клиента при постановке заявки совпадает с тем что мне нужен. В ручную заявки спокойно проходят.<br />Подскажите, пожалуйста, что и как можно проверить? Куда копать?<br />Спасибо!<br /><br />Версия Stocksharp 4.2.14.<br />Создание заявки (пробовал оба варианта):<br /><div class="code"><strong>Код</strong><div class="innercode"><pre class="brush:csharp">
var newBuy = this.CreateOrder(StockSharp.Messages.Sides.Buy, ibid, qbuy);
RegisterOrder(newBuy);
</pre>
</div></div><br /><br /><div class="code"><strong>Код</strong><div class="innercode"><pre class="brush:csharp">
var newBuy = new Order
{
Portfolio = Portfolio,
Price = ibid,
Security = Security,
Volume = qbuy,
Direction = StockSharp.Messages.Sides.Buy,
};
RegisterOrder(newBuy);
</pre>
</div></div><br /><br />p.s. промазал немного. Перенесите в "Коннекторы » xUSSR » Quik", пожалуйста.