Сообщество. StockSharphttps://stocksharp.ru/handlers/atom.ashx?category=community&page=247Copyright @ StockSharp Platform LLC 2010 - 20242024-03-29T00:39:02Zhttps://stocksharp.ru/images/logo.pnghttps://stocksharp.ru/topic/1671/вывод через dde не стартует для таблицы "портфель по деривативам"2011-06-16T07:23:54Z2011-06-16T07:23:54ZGreene-nskhttps://stocksharp.ru/users/27932/info@stocksharp.ruВызываю StartExport. Для всех остальных таблиц экспорт стартует, для "Портфель по деривативам" не хочет. Для того, чтобы пришел портфель приходится стартовать вывод руками.<br />S# 3.1.10.0https://stocksharp.ru/topic/1670/3.2 и сериализация свечей2011-06-15T22:17:12Z2011-06-15T22:17:12ZInsiderHSEhttps://stocksharp.ru/users/6099/info@stocksharp.ruНе получается сериализовать свечи, пишет что CandleToken не помечен соответствующим атрибутом. Может, в 3.2 реализован штатный способ сохранения свечей на диск?https://stocksharp.ru/topic/1669/Индикатор - рефакторинг2011-06-15T20:02:44Z2011-06-15T20:02:44ZMikhail Sukhovhttps://stocksharp.ru/users/201/info@stocksharp.ruПервый существенный рефакторинг. Произвести нужно, различий уже много в каждом из индюков. Что бросилось в глаза:<br /><br /><ol><br /><li>Класса нужно объявлять public. Иначе их не будет видно с наружи (в роботе).<br /><li>Предлагаю все воспользоваться R# и применить выложенные настройки (применять через аддон к R# - rsm.codeplex.com). Файл должен быть "зеленым", в идеале вообще без меток.<br /><li>Давайте разнесем индюки по разным папкам. Я создал 2 - для тренд и волатильность. Подозреваю, что их недостаточно. При переносе файла так же нужно менять и namespace чтобы было правильнее с точки зрения C#.<br /><li>Есть 2 класса - SingleValueIndicator и LengthIndicator. Предлагаю свои индюки отнаследовать именно от них (какой именно подойдет можно понять по коду).<br /><li>Имена. Будем делать длинными? Посмотрите как получилось со скользящими. Нормально? Если да, то давайте и свои так же переделаем.<br /></ol><br />https://stocksharp.ru/topic/1668/TakeProfitStrategy - Объем заявки не может быть нулевым.2011-06-15T19:42:24Z2011-06-15T19:42:24ZInsiderHSEhttps://stocksharp.ru/users/6099/info@stocksharp.ruВерсия 3.2.<br />При срабатывании сигнала запускается действие<br /><div class="code"><strong>Код</strong><div class="innercode"><pre class="brush:csharp">
private void Action1()
{
var order = _signalDirection == OrderDirections.Buy ? base.BuyAt(Security.LastTrade.Price) : base.SellAt(Security.LastTrade.Price);
var qstr = new MyMarketQuotingStrategy(order, 0m.Pips(order.Security), 0m.Pips(order.Security)) { PriceType = MarketPriceTypes.Middle, MaxErrorCount = 2 };
base.ChildStrategies.Add(qstr);
SecureTrades(qstr);
}
private void SecureTrades(Strategy str)
{
str.NewMyTrades += trades =>
{
// создаем пакетную стратегию, которая будет объединять все защитные пары стратегий по каждой из пришедших по родительской стратегии сделок
var batch = new BatchStrategy(BatchFinishModes.All);
// для каждой сделки добавляем для защиты по пакетной стратегии
foreach (var t in trades)
{
var s = new BatchStrategy(BatchFinishModes.First);
// выставляет тейк-профит в пунктах
var takeProfit = new MyTakeProfitStrategy(t, TakeProfit);
takeProfit.BestPriceOffset = 0m.Pips(t.Order.Security);
takeProfit.PriceOffset = 0m.Pips(t.Order.Security);
takeProfit.MaxErrorCount = 2;
takeProfit.UseMarketQuoting = true;
// выставляет стоп-лосс в пунктах
var stopLoss = new MyStopLossStrategy(t, StopLoss);
stopLoss.BestPriceOffset = 0m.Pips(t.Order.Security);
stopLoss.PriceOffset = 0m.Pips(t.Order.Security);
stopLoss.MaxErrorCount = 2;
stopLoss.UseMarketQuoting = true;
s.ChildStrategies.Add(takeProfit);
s.ChildStrategies.Add(stopLoss);
batch.ChildStrategies.Add(s);
}
base.ChildStrategies.Add(batch);
};
}
</pre>
</div></div><br /><br />В результате получаю следующий лог:<br /><div class="code"><strong>Код</strong><div class="innercode"><pre class="brush:plain">
VDS 15.06.2011 23:18:19 Стратегия запущена.
VDS 15.06.2011 23:20:01 [MMQS] Стратегия запущена.
VDS 15.06.2011 23:20:01 [MMQS] Регистрация новой заявки на Buy с ценой 9763 и объемом 1.
VDS 15.06.2011 23:20:01 [MMQS] Заявка 83837918 на Buy отправлена с ценой 9763 объемом 1.
VDS 15.06.2011 23:20:17 [MMQS] Позиция изменилась на 1.
VDS 15.06.2011 23:20:17 [MMQS] Заканчиваем котирование с неисполненным объемом равный 0.
VDS 15.06.2011 23:20:17 [MMQS] Стратегия останавливается.
VDS 15.06.2011 23:20:17 [MMQS] Стратегия остановлена.
VDS 15.06.2011 23:21:02 [MMQS] Стратегия запущена.
VDS 15.06.2011 23:21:09 [MMQS] Регистрация новой заявки на Buy с ценой 9763 и объемом 1.
VDS 15.06.2011 23:21:11 [MMQS] Заявка 83837919 на Buy отправлена с ценой 9763 объемом 1.
VDS 15.06.2011 23:21:11 [MMQS] Позиция изменилась на 1.
VDS 15.06.2011 23:21:11 [MMQS] Заканчиваем котирование с неисполненным объемом равный 0.
VDS 15.06.2011 23:21:11 [MMQS] Стратегия останавливается.
VDS 15.06.2011 23:21:11 [BS] Стратегия запущена.
VDS 15.06.2011 23:21:11 [MMQS] Стратегия остановлена.
VDS 15.06.2011 23:21:11 [BS] [BS] Стратегия запущена.
VDS 15.06.2011 23:21:17 [BS] [BS] [MTPS] Стратегия запущена.
VDS 15.06.2011 23:21:17 [BS] [BS] [MTPS] Цена текущей 1 и лучшей 9783.
VDS 15.06.2011 23:21:17 [BS] [BS] [MTPS] Котирование заявки 0 на Sell с ценой 1 объемом 0.
VDS 15.06.2011 23:21:19 [BS] [BS] [MSLS] Стратегия запущена.
VDS 15.06.2011 23:21:19 [BS] [BS] [MTPS] System.ArgumentException: Объем заявки не может быть нулевым.
Parameter name: order
at StockSharp.Algo.TraderHelper.#=qLXaN0algzgDBsw6fL5g3xaIlhhTYVQnmzcQDJXxFOrU=(Order #=qWXq3jB6jTZ2iF22oDzWvHw==)
at StockSharp.Algo.TraderHelper.#=qDFpU1YoTr3fblYauaHBvMg==(Order #=q1610m$u1mmPjgA6udOcZdQ==)
at StockSharp.Algo.BaseTrader.ReRegisterOrder(Order oldOrder, Order newOrder)
at StockSharp.Algo.Strategies.Strategy.ReRegisterOrder(Order oldOrder, Order newOrder)
at StockSharp.Algo.Strategies.QuotingStrategy.#=qMEPRc8S0wl31v01gtQybow==()
at StockSharp.Algo.Strategies.QuotingStrategy.#=qrUj$Ns0mMAxxqh0k0FFJLBiPs_ZjpLzGs4nD7HMEB2Y=.#=qT87pKfV2SNITwCrVPXClEg==()
at StockSharp.Algo.Strategies.StrategyRule.#=qDYUeDT$gBHBaiAb$fAwEix6EMBQFWfxRkrpaRMiTmvs=()
at StockSharp.Algo.Strategies.Strategy.#=qOhBmTMx_CuyhB9VHemT_UQ==(StrategyRule #=qInhSYRIpOjVVx7xao$LOvA==, Action #=qIIVK4c4QTCW6iU5TC2n_LA==)
VDS 15.06.2011 23:21:19 [BS] [BS] [MTPS] Цена текущей 1 и лучшей 9783.
VDS 15.06.2011 23:21:19 [BS] [BS] [MTPS] Котирование заявки 0 на Sell с ценой 1 объемом 0.
VDS 15.06.2011 23:21:19 [BS] [BS] [MTPS] System.ArgumentException: Объем заявки не может быть нулевым.
Parameter name: order
at StockSharp.Algo.TraderHelper.#=qLXaN0algzgDBsw6fL5g3xaIlhhTYVQnmzcQDJXxFOrU=(Order #=qWXq3jB6jTZ2iF22oDzWvHw==)
at StockSharp.Algo.TraderHelper.#=qDFpU1YoTr3fblYauaHBvMg==(Order #=q1610m$u1mmPjgA6udOcZdQ==)
at StockSharp.Algo.BaseTrader.ReRegisterOrder(Order oldOrder, Order newOrder)
at StockSharp.Algo.Strategies.Strategy.ReRegisterOrder(Order oldOrder, Order newOrder)
at StockSharp.Algo.Strategies.QuotingStrategy.#=qMEPRc8S0wl31v01gtQybow==()
at StockSharp.Algo.Strategies.QuotingStrategy.#=qrUj$Ns0mMAxxqh0k0FFJLBiPs_ZjpLzGs4nD7HMEB2Y=.#=qT87pKfV2SNITwCrVPXClEg==()
at StockSharp.Algo.Strategies.StrategyRule.#=qDYUeDT$gBHBaiAb$fAwEix6EMBQFWfxRkrpaRMiTmvs=()
at StockSharp.Algo.Strategies.Strategy.#=qOhBmTMx_CuyhB9VHemT_UQ==(StrategyRule #=qInhSYRIpOjVVx7xao$LOvA==, Action #=qIIVK4c4QTCW6iU5TC2n_LA==)
VDS 15.06.2011 23:21:19 [BS] [BS] Стратегия останавливается.
VDS 15.06.2011 23:21:19 [BS] [BS] [MSLS] Стратегия останавливается.
VDS 15.06.2011 23:21:19 [BS] [BS] Стратегия остановлена.
VDS 15.06.2011 23:21:19 [BS] [BS] [MTPS] Стратегия остановлена.
VDS 15.06.2011 23:21:19 [BS] [BS] [MSLS] Стратегия остановлена.
</pre>
</div></div><br />Баг или я что-то делаю не так?https://stocksharp.ru/topic/1667/[SOLVED] (инфа устарела!) Quik: RegisterOrder для маркет-ордера кидает исключение2011-06-15T09:23:34Z2011-06-15T09:23:34ZPresidenthttps://stocksharp.ru/users/510/info@stocksharp.ruдобрый день.<br />вот такая конструкция у меня валится с ошибкой:<br /><br /> Order buyOrder = new Order<br /> {<br /> Portfolio = this.Portfolio,<br /> Price = buySecurity.GetMarketPrice(OrderDirections.Buy),<br /> Security = buySecurity,<br /> Volume = buyVolume,<br /> Direction = OrderDirections.Buy,<br /> Type = OrderTypes.Market<br /> };<br /> this.Trader.RegisterOrder(buyOrder);<br /><br />Код ошибки WrongSyntax Сообщение ACCOUNT=тут правильный аккаунт; CLIENT_CODE=S#; TRANS_ID=47229994; CLASSCODE=EQBR; SECCODE=SBER03; QUANTITY=2; OPERATION=B; TYPE=M; ACTION=NEW_ORDER; PRICE=97,91; EXECUTION_CONDITION=PUT_IN_QUEUE;<br /><br />пробовал не указывать Price (как это делается в GUI QUIK для маркет-ордеров) - ошибка повторяется.<br /><br />не подскажите в чем тут может быть дело?https://stocksharp.ru/topic/1666/Форум: Ошибка в подписке на темы2011-06-14T12:51:55Z2011-06-14T12:51:55Zvalenockhttps://stocksharp.ru/users/167/info@stocksharp.ruУведомления об обновлении подписанных тем приходят по нескольку раз, бессистемно. <br />Например, сегодня пришло обновление на тему, в которой я сам же и писал 10 дней назад - т.е. мало того, что обновление опоздало на 10 дней, так оно ещё и среагировало на меня.<br />https://stocksharp.ru/topic/1665/[FIXED] RandomEmulationTrader не генерит данные2011-06-14T10:27:55Z2011-06-14T10:27:55ZPresidenthttps://stocksharp.ru/users/510/info@stocksharp.ruИсторические данные проигрываются.<br /><br />Но когда вместо исторических данных пытаюсь использовать случайные, то данные не генерятся.<br /><br />Пример - в коде вместо этого:<br /><div class="code"><strong>Код</strong><div class="innercode"><pre class="brush:csharp">
var storage = new TradingStorage(new InMemoryStorage())
{
BasePath = @"C:\MyProjects\HistoryData",
};
var trader = new HistoryEmulationTrader(
new Dictionary<Security, TimeSpan> {
{ securityA, TimeSpan.FromSeconds(1) },
{ securityB, TimeSpan.FromSeconds(1) }},
new[] { portfolio },
storage);
</pre>
</div></div><br /><br />пытался сделать:<br /><div class="code"><strong>Код</strong><div class="innercode"><pre class="brush:csharp">
var trader = new RandomEmulationTrader(
new Dictionary<Security, TimeSpan> {
{ securityA, TimeSpan.FromSeconds(1) },
{ securityB, TimeSpan.FromSeconds(1) }},
new[] { portfolio });
</pre>
</div></div><br /><br />при этом все остальное оставив без изменений.<br /><br />Нужно ли еще что-то менять чтобы заработал генератор случайных данных?<br /><br />PS. вместо ((( и ))) должны быть угловые скобки - форум не переваривает их что очень неудобно для вставки кода.https://stocksharp.ru/topic/1664/Стоп заявка2011-06-13T17:25:04Z2011-06-13T17:25:04Zpatermindhttps://stocksharp.ru/users/28000/info@stocksharp.ruДобрый день. Сейчас фиксирую прибыль вот таким образом, просто выставляя лимитную заяку выше текущей цены цены на 30 рублей:<br /><div class="quote"><span class="quotetitle">Цитата:</span><div class="innerquote">var order3 = new Order<br /> {<br /> Portfolio = _portfolio,<br /> Price = _instrument0.ShrinkPrice(_instrument0.BestAsk.Price+30),<br /> Security = _instrument0,<br /> Volume = 5,<br /> Direction = OrderDirections.Buy,<br /> };<br /> trader.RegisterOrder(order3);</div></div><br />Но бывает так, что нужно в районе 30-ти рублей начать следить за ценой. Далее, например, при достижении 35 рублей при откате назад более чем на 3 рубля(до 32 рублей) выбросить лимитированную заявку с ценой 31,8. Т.е. эдакий трейлинг-стоп. Как это можно реализовать? Стратегии не используются.<br /><br />Заранее спасибо!https://stocksharp.ru/topic/1663/ActionStrategy() и свечи2011-06-13T09:44:44Z2011-06-13T09:44:44Zvalenockhttps://stocksharp.ru/users/167/info@stocksharp.ruДля работы со свечками в ActionStrategy доступны <br /><div class="code"><strong>Код</strong><div class="innercode">NewCandle(CandleToken) <br />Changed(Candle, ICandleManager) <br />Finished(Candle, ICandleManager)</div></div><br />А как получить доступ к _candleManager.CandlesFinished() ? т.е. как вызывать Action каждый раз по окончанию свечи ?<br />Я делаю так:<br /><div class="code"><strong>Код</strong><div class="innercode">When(_candleToken.NewCandle()).Do(delegate() <br />{ <br /> var finishedCandle = _candleManager.GetTimeFrameCandles(Security, _timeFrame, 2).FirstOrDefault(); <br />}).MakePeriodical();<br /></div></div><br />Но это явно не джедайский подход, хотелось бы что-то поэлегатнее, в идеале в духе _candleManager.CandlesFinished() - чтобы сразу получать список законченных свечек и работать с ними как-то так:<br /><div class="code"><strong>Код</strong><div class="innercode">When(_candleToken.NewCandleFinished()).Do(Action(Candle newCandle); </div></div><br />https://stocksharp.ru/topic/1660/Stock# 3.2 beta2011-06-11T19:25:24Z2011-06-11T19:25:24ZMikhail Sukhovhttps://stocksharp.ru/users/201/info@stocksharp.ruВыложил на бокс.<br /><br /><b>Изменения</b>:<br /><ol><br /><li>Существенно изменилась модель тестирования. Остался только EmulationTrader (отвечает и за историю, и за случайные данные).<br /><li>Событийная модель для стратегий стала основной. И теперь она работает чисто на событиях.<br /><li>Strategy.OnProcess переехал в TimeFrameStrategy.<br /><li>Исчез StrategyManager. Из-за пункта 2 он стал не нужен, так как каждое действие активируется в том потоке, в котором пришло событие.<br /><li>Order.InitializationTime исчез, но появился Order.Latency. Поддерживается высокая точность замера round trip заявок, актуально для HFT шлюзов.<br /><li>Ecng.Trading был переименован в StockSharp.<br /><li>Класс для расчета кривой эквити и графический контрол для отображения.<br /><li>В дистрибутив вошли Alfa + Plaza.<br /><li> <a href="http://stocksharp.com/forum/1626/Zapusk-tierminala-Launch/
" title="http://stocksharp.com/forum/1626/Zapusk-tierminala-Launch/
">http://stocksharp.com/fo...pusk-tierminala-Launch/
</a><br /></ol><br /><br /><b>Баги</b>:<br /><ol><br /><li> <a href="http://stocksharp.com/posts/m/8336/
" title="http://stocksharp.com/posts/m/8336/
">http://stocksharp.com/posts/m/8336/
</a><br /><li> <a href="http://stocksharp.com/forum/1606/oshibka-pri-dvizhienii-zaiavki-ArgumentOutOfRangeException/
" title="http://stocksharp.com/forum/1606/oshibka-pri-dvizhienii-zaiavki-ArgumentOutOfRangeException/
">http://stocksharp.com/fo...entOutOfRangeException/
</a><br /><li> <a href="http://stocksharp.com/posts/m/8701/
" title="http://stocksharp.com/posts/m/8701/
">http://stocksharp.com/posts/m/8701/
</a><br /><li> <a href="http://stocksharp.com/posts/m/8794/
" title="http://stocksharp.com/posts/m/8794/
">http://stocksharp.com/posts/m/8794/
</a><br /></ol>https://stocksharp.ru/topic/1659/Ошибка экспорта стакана2011-06-10T16:17:54Z2011-06-10T16:17:54ZDenhttps://stocksharp.ru/users/6003/info@stocksharp.ruS# 2.6.2 + Quik 5.17<br /><br />Вызываю для текущего фьюча на RTS:<br /><br /> <div class="code"><strong>Код</strong><div class="innercode">this.Trader.RegisterQuotes(_RI);<br /></div></div><br />Стакан открывается сам.<br /><br />Потом использую код из примера:<br /><br /> <div class="code"><strong>Код</strong><div class="innercode"> foreach (var qoute in this.Trader.GetMarketDepth(_RI))<br /> {<br /> Console.WriteLine("Направление {0} Объем {1} Цена {2}", qoute.OrderDirection, qoute.Volume, qoute.Price);<br /> } </div></div><br /><br />Получаю серию ошибок:<br /><br /><div class="code"><strong>Код</strong><div class="innercode">System.InvalidOperationException: Название таблицы со стаканом оформлено неверно '[стакан]RTS-6.11-SPBFUT'.<br /> at Ecng.Trading.Quik.QuikTrader.#=qTre19CdRPyKpnVO8WaQdUkvQrIiCuIHe9XcW7RXbC04=.#=qwQWcSTSHTT$2hNIl5pTVwA==()<br /> at Ecng.Trading.Algo.BaseTrader.ProcessEvents(Action handler)<br /></div></div><br />Скриншот настроек:<br /><a href='http://xmages.net/storage/10/1/0/1/8/upload/be6bae0a.jpg' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'><img src="http://xmages.net/storage/10/1/0/1/8/upload/be6bae0a.jpg" style='max-width: 600px;' alt=""/></a><br /><br />Помогите разобраться в чем дело, пожалуйста!https://stocksharp.ru/topic/1658/Индикация перерыва на бирже2011-06-10T12:42:37Z2011-06-10T12:42:37Zmorissonhttps://stocksharp.ru/users/28389/info@stocksharp.ruА есть ли возможность узнать, торгует сейчас биржа или нет?<br /><br />ITrader.IsWorkingTime я так понял просто проверяет, клиринговое время сейчас, или нет. <br />А интересует именно идут ли торги в данный момент?<br /><br />Спасибоhttps://stocksharp.ru/topic/1657/рестарт экспорта в нерабочее время. как отключить?2011-06-09T20:45:59Z2011-06-09T20:45:59ZGreene-nskhttps://stocksharp.ru/users/27932/info@stocksharp.ruВсю ночь, после закрытия рынков каждые 2 минуты рестартует экспорт (открываются и закрываются окошки экспорта по dde в квик, приходят Trader.OrdersChanged). Как это отключить?<br /><br />Настройки переподключения следующие:<br /><br /><div class="code"><strong>Код</strong><div class="innercode"><br /> // инициализируем механизм переподключения<br /> Trader.ReConnectionSettings.WorkingTime = Exchange.Rts.WorkingTime;<br /> Trader.ReConnectionSettings.ConnectingAttemptCount = 0;<br /> Trader.ReConnectionSettings.ReConnectingAttemptCount = -1;<br /> Trader.ReConnectionSettings.Interval = TimeSpan.FromSeconds(30);<br /> Trader.ReConnectionSettings.ExportTimeOutInterval = TimeSpan.FromSeconds(30);<br /> Trader.ReConnectionSettings.ConnectDisconnectTimeOutInterval = TimeSpan.FromSeconds(60);<br /></div></div>https://stocksharp.ru/topic/1656/Гидра и Finam2011-06-09T16:55:05Z2011-06-09T16:55:05Zanotharhttps://stocksharp.ru/users/6089/info@stocksharp.ruУстановил себе гидру-база встала нормально. Запросил бумаги с Finam-все нормально, но число сделок стоит равное 0, решил запросить сделки за последние дни-ничего, как будто бы не было. Нажал старт экспорта-тоже молчок.https://stocksharp.ru/topic/1655/в дайжесте форума все битые ссылки2011-06-09T09:53:45Z2011-06-09T09:53:45Zromanickhttps://stocksharp.ru/users/28047/info@stocksharp.ruНи одна ссылка из дайжеста не открывается.<br />Вот например.<br /><a href="http://stocksharp.com/forum/digest.aspx?g=posts&m=8094#post8094
" title="http://stocksharp.com/forum/digest.aspx?g=posts&m=8094#post8094
">http://stocksharp.com/fo...sts&m=8094#post8094
</a><br />https://stocksharp.ru/topic/1654/Ошибка ClosePosition2011-06-09T09:12:38Z2011-06-09T09:12:38Zromanickhttps://stocksharp.ru/users/28047/info@stocksharp.ruИногда при вызове метода ClosePosition выскакивает ошибка "Объём заявки не может быть нулевым"<br />Версия s#: 3.1.10<br />По-моему это из-за того что неверно рассчитывается позиция.https://stocksharp.ru/topic/1653/Работа со свечка .Заезженная тема2011-06-08T17:03:53Z2011-06-08T17:03:53ZСамунджян Артемhttps://stocksharp.ru/users/675/info@stocksharp.ruЗдравствуйте подскажите пожалуйста, как только не делал и не пробвоал вызывать свечи всё время возвращеть либо ноль,либо пишет что нет ссылки на обьект.Пример с samplecandles смотрел но там нет той части как получить именно O,H,L,C и другие данные со свечи,там есть только часть того что они передаються на новый чарт с графиком ,где он сам их как то получает.<br />Не могли бы вы скинуть маленький примерчик как просто получить последние 10 свечей по лукойлу и вывести их нормально,чтоб ыэти значения были равны не нулю.ПО возможности скиньте весь код.<br />Заранее спасибо!https://stocksharp.ru/topic/1652/прибыльность последней сделки2011-06-08T15:41:49Z2011-06-08T15:41:49Zromanickhttps://stocksharp.ru/users/28047/info@stocksharp.ruЧто-то не могу найти просто способа узнать прибыльность последней закрытой позиции. После того как она закрылась, через PositionManager она уже не доступна... Есть ли какой-нибудь простой способ узнать её объём и прибыльность в рублях?https://stocksharp.ru/topic/1651/ClosePosition() не работает в HistoryEmulation2011-06-08T08:18:18Z2011-06-08T08:18:18Zvalenockhttps://stocksharp.ru/users/167/info@stocksharp.ruпри вызове ClosePosition() из своей стратегии в процессе HistoryEmulation получаю:<br />"Объем заявки не может быть отрицательным.<br />Parameter name: order"<br />если в данный момент я в шорте и позиция соответственно отрицательная.<br />Видимо, она пытается маркет ордер поставить просто с размером позиции.<br /><br /><br />https://stocksharp.ru/topic/1649/Стратегия купила 1, котировщик продал 22011-06-07T09:50:56Z2011-06-07T09:50:56Zhobohttps://stocksharp.ru/users/27889/info@stocksharp.ruДобрый день. <br />Поделитесь кто-нибудь, как реализовать гарантированное исполнение SL при проскальзывании. <br />Стоп например, 100 пунктов. И если уж проскользнуло, то исполнить по любой цене. <br /><br />Все что я пробовал - дает те или иные ошибки. То параметров не хватало:<br /><div class="code"><strong>Код</strong><div class="innercode">MTS 17:16:22.0112446 [BS] [BS] [SLS] Регистрация защитной заявки с ценой 184590 и объемом 1.<br />MTS 17:16:22.0282456 [BS] [BS] [SLS] System.ArgumentNullException: Значение не может быть неопределенным.<br />Имя параметра: value<br /> в Ecng.Trading.Algo.Strategies.BestByPriceQuotingStrategy.set_BestPriceOffset(Unit value)<br /> в Ecng.Trading.Algo.Strategies.BestByPriceQuotingStrategy..ctor(Order order, Unit bestPriceOffset)<br /> в Ecng.Trading.Algo.Strategies.MarketQuotingStrategy..ctor(Order order, Unit bestPriceOffset, Unit priceOffset)<br /> в Ecng.Trading.Algo.Strategies.ProtectiveStrategy.CreateQuoting(Order order)<br /> в Ecng.Trading.Algo.Strategies.ProtectiveStrategy.CreateOrder()<br /> в Ecng.Trading.Algo.Strategies.QuotingStrategy.OnProcess()<br /> в Ecng.Trading.Algo.Strategies.Strategy.#=qZIvlEwumCnLOHChv0nHsiE2DmvMiBjA27jwCfRBG6Ng=.#=qjSTDqQrm5VigoeELaU6R4g==()</div></div><br />Не совсем понял, чем отличаются эти оффсеты, сделал так<br /><div class="code"><strong>Код</strong><div class="innercode">var stopLoss = new StopLossStrategy(t, 100) { UseMarketQuoting = true, PriceOffset = 50, BestPriceOffset=0, MaxErrorCount=100 };</div></div><br /><br />Теперь вообще странное что-то: на 1 купленный контракт котировщик продал аж 2 [blink] <br /><div class="code"><strong>Код</strong><div class="innercode">MTS 14:54:38.0406533 [BS] Стратегия запущена.<br />MTS 14:54:38.0406533 [BS] [BS] Стратегия запущена.<br />MTS 14:54:38.0416533 [BS] [BS] [TPS] Стратегия запущена.<br />MTS 14:54:38.0416533 [BS] [BS] [SLS] Стратегия запущена.<br />MTS 14:54:59.0968576 07.06.2011 12:55:44 ============================position=1<br />MTS 14:55:43.1393767 [BS] [BS] [SLS] Регистрация защитной заявки с ценой 187765 и объемом 1.<br />MTS 14:55:43.1393767 [BS] [BS] [SLS] [MQS] Стратегия запущена.<br />MTS 14:55:43.1393767 [BS] [BS] [SLS] Регистрация новой заявки на Sell с ценой 187765 и объемом 1.<br />MTS 14:55:43.4373937 [BS] [BS] [SLS] Заявка 53384124 на Sell отправлена с ценой 187765 объемом 1.<br />MTS 14:55:43.7714129 07.06.2011 12:56:28 ============================position=0<br />MTS 14:55:44.4384510 [BS] [BS] [SLS] [MQS] Котируемая заявка 53384124 исполнилась.<br />MTS 14:55:44.4384510 [BS] [BS] [SLS] [MQS] Осталось 1 контрактов.<br />MTS 14:55:45.4395083 [BS] [BS] [SLS] [MQS] Регистрация новой заявки на Sell с ценой 187765 и объемом 1.<br />MTS 14:55:45.7195243 [BS] [BS] [SLS] [MQS] Заявка 53384125 на Sell отправлена с ценой 187765 объемом 1.<br />MTS 14:55:46.7395826 [BS] [BS] [SLS] [MQS] Цена текущей 187765 и лучшей 187715.<br />MTS 14:55:46.7395826 [BS] [BS] [SLS] [MQS] Котирование заявки 53384125 на Sell с ценой 187765 объемом 1.<br />MTS 14:55:47.0085980 [BS] [BS] [SLS] [MQS] Перекотирование зарегистрировано для заявки 53384126 на Sell с ценой 187715 объемом 1.<br />MTS 14:55:47.7756419 07.06.2011 12:56:32 ============================position=-1<br />MTS 14:55:48.0086552 [BS] [BS] [SLS] [MQS] Заканчиваем котирование с неисполненным объемом равный 0 контрактов.<br />MTS 14:55:48.0086552 [BS] [BS] [SLS] [MQS] Стратегия останавливается.<br />MTS 14:55:49.0087124 [BS] [BS] [SLS] [MQS] Стратегия остановлена.<br />MTS 14:55:50.0137699 [BS] [BS] [SLS] Котируемая заявка 53384124 исполнилась.<br />MTS 14:55:50.0137699 [BS] [BS] [SLS] Осталось -1 контрактов.<br />MTS 14:55:50.0137699 [BS] [BS] [SLS] Стратегия останавливается.<br />MTS 14:55:51.0158272 [BS] [BS] [SLS] Стратегия остановлена.<br />MTS 14:55:51.0158272 [BS] [BS] Стратегия останавливается.<br />MTS 14:55:51.0158272 [BS] [BS] [TPS] Стратегия останавливается.<br />MTS 14:55:52.0168845 [BS] [BS] [TPS] Котирование закончилось.<br />MTS 14:55:52.0168845 [BS] [BS] [TPS] Стратегия остановлена.<br />MTS 14:55:52.0168845 [BS] [BS] Стратегия остановлена.<br />MTS 14:55:52.0168845 [BS] Стратегия останавливается.<br />MTS 14:55:53.0189418 [BS] Стратегия остановлена.</div></div>