Логгирование~/topic/1969/loggirovanie/Copyright @ StockSharp Platform LLC 2010 - 20242024-03-29T13:38:59Zhttps://stocksharp.com/images/logo.pnghttps://stocksharp.com/posts/m/11849/Все понятно, спасибо! Буду ждать обновление....2011-10-03T08:32:56Z2011-10-03T08:32:56ZАртем_2https://stocksharp.com/users/27723/info@stocksharp.comВсе понятно, спасибо! Буду ждать обновление....Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.com/posts/m/11846/Спасибо за ответы! 2. WriteMessage вызывается? - Нет не вызывается((( Наследуйтесь от LogListener, п...2011-10-03T08:27:44Z2011-10-03T08:27:44ZAlexanderhttps://stocksharp.com/users/2826/info@stocksharp.com<div class="quote"><span class="quotetitle">Артем_2 <a href="https://stocksharp.com/posts/m/11845/"><img src="https://stocksharp.com/images/icon_latest_reply.gif" title="Go to" alt="Go to" /></a></span><div class="innerquote">Спасибо за ответы!<br /><br /><div class="quote"><span class="quotetitle">Quote:</span><div class="innerquote"><br />2. WriteMessage вызывается?<br /></div></div><br /><br />- Нет не вызывается(((</div></div><br /><br />Наследуйтесь от LogListener, переопределяйте OnWriteMessage.Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.com/posts/m/11845/Спасибо за ответы! 2. WriteMessage вызывается? - Нет не вызывается(((2011-10-03T08:25:05Z2011-10-03T08:25:05ZАртем_2https://stocksharp.com/users/27723/info@stocksharp.comСпасибо за ответы!<br /><br /><div class="quote"><span class="quotetitle">Quote:</span><div class="innerquote"><br />2. WriteMessage вызывается?<br /></div></div><br /><br />- Нет не вызывается(((Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.com/posts/m/11843/Извиняюсь)2011-10-03T08:23:51Z2011-10-03T08:23:51Zfrontmanhttps://stocksharp.com/users/28487/info@stocksharp.comИзвиняюсь)Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.com/posts/m/11840/Добрый день! После перехода на S#4.0 столкнулся со следующими проблемами логгирования: 1. Есть неско...2011-10-03T08:12:51Z2011-10-03T08:12:51ZAlexanderhttps://stocksharp.com/users/2826/info@stocksharp.com<div class="quote"><span class="quotetitle">Артем_2 <a href="https://stocksharp.com/posts/m/11833/"><img src="https://stocksharp.com/images/icon_latest_reply.gif" title="Go to" alt="Go to" /></a></span><div class="innerquote">Добрый день!<br />После перехода на S#4.0 столкнулся со следующими проблемами логгирования:<br /><br />1. Есть несколько независимых(не находятся в ChildStrategies друг друга) стратегии, которые работают через один и тот же QuikTrader, у них одинаковые Security и Portfolio.<br /><br />Для прослушивания каждой из стратегий подключаю обработку события Log:<br /><br /><div class="code"><strong>Code</strong><div class="innercode"><pre class="brush:csharp">
Strategy.Log += new Action<StockSharp.Algo.Logging.LogMessage>(Strategy_Log)</pre>
</div></div><br /><br />Проблема в том, что событие обработки заявок (см. пример) срабатывает для каждой из этих стратегий, а не только для той стратегии, в которой происходила эта обработка. Такое ощущение, что Log срабатывает не для стратегии, а для ITrader:<br /><br />Например: <br />OQS, OSS, OWS - Это 3 независимые стратегии. В OQS запускается котирование, создается заявка и у всех 3-х стратегий срабатывает следующее событие: <br /><br />[MarketTime <10:45:51.076>]:[OQS] Обработка Limit заявки 38623862 на Sell с номером 935182789.<br />[MarketTime <10:45:51.233>]:[OSS] Обработка Limit заявки 38623862 на Sell с номером 935182789.<br />[MarketTime <10:45:51.234>]:[OWS] Обработка Limit заявки 38623862 на Sell с номером 935182789.<br /><br />2. Попытался реализовать свой ILogListener<br /><br /> <div class="code"><strong>Code</strong><div class="innercode"><pre class="brush:csharp">
public class MessageBoardLogListener : ILogListener
{
public void WriteMessage(LogMessage message)
{
string msg = string.Format("[{0}] {1}", message.Source.Name, message.Message);
Info.Inform(msg, message.Type.ConvertStrategyErrorState());
}
}
Потом в другом классе подключаю созданный MessageBoardLogListener к LogManager
class SomeClass
{
Strategy _Strategy;
//создаю _LogManager
public SomeClass()
{
this._LogManager = new LogManager();
this._LogManager.Listeners.Add(new MessageBoardLogListener());
this._LogManager.Sources.Add(this._Strategy);
}
}
</pre>
</div></div><br /><br /> После этого, как я понимаю, при возникновении события _Strategy.Log оно должно обрабатываться в MessageBoardLogListener.WriteMessage, однако этого не происходит. Подскажите, пожалуйста, что я делаю не так? <br /><br />3. При запуске стратегии (вызов Start()) в событие Log начинает выводиться ВСЯ ИСТОРИЯ обработки заявок. Т.е. выводятся сообщения типа:<br />[MarketTime <10:45:51.234>]:[OWS] Обработка Limit заявки 38623862 на Sell с номером 935182789 <br />для всех заявок, которые уже отработали в прошлом.<br /> - Это вызывает огромные неудобства, т.к. при активном использовании котирования запуск стратегии начинает занимать несколько минут из-за большого списка заявок.<br /></div></div><br /><br /><br />1, 3. Эти сообщения - просто обработка заявок. Это относится ко всем стратегиям, т.к. заявки обрабатываются из ITrader и смотрится какие нужны, какие - нет. Сделаю подобное логирование по флагу, согласен что мешает.<br /><br />2. WriteMessage вызывается?<br /><br /><br /><br />to frontman: не все сидят на плазе...Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.com/posts/m/11836/А насчет логирования. Не совсем понятно... Каждая стратегия принимает ВСЕ заявки поступившие в ITrad...2011-10-03T07:53:49Z2011-10-03T07:53:49Zfrontmanhttps://stocksharp.com/users/28487/info@stocksharp.comА насчет логирования. Не совсем понятно...<br />Каждая стратегия принимает ВСЕ заявки поступившие в ITrader<br />По этой причини и выводятся в лог для каждой стратегии.<br />Или я не так понял вопрос? Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.com/posts/m/11835/Могу ответить на 3й пунк. Для того что бы не качать все заявки заново используй Revisions. В SampleG...2011-10-03T07:51:49Z2011-10-03T07:51:49Zfrontmanhttps://stocksharp.com/users/28487/info@stocksharp.comМогу ответить на 3й пунк. <br />Для того что бы не качать все заявки заново используй Revisions.<br />В SampleGUI описано как это делать...<br />Там реализованы методы LoadRevisions и SaveRevisions.Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.com/posts/m/11833/Добрый день! После перехода на S#4.0 столкнулся со следующими проблемами логгирования: 1. Есть неско...2011-10-03T07:38:45Z2011-10-03T07:38:45ZАртем_2https://stocksharp.com/users/27723/info@stocksharp.comДобрый день!<br />После перехода на S#4.0 столкнулся со следующими проблемами логгирования:<br /><br />1. Есть несколько независимых(не находятся в ChildStrategies друг друга) стратегии, которые работают через один и тот же QuikTrader, у них одинаковые Security и Portfolio.<br /><br />Для прослушивания каждой из стратегий подключаю обработку события Log:<br /><br /><div class="code"><strong>Code</strong><div class="innercode"><pre class="brush:csharp">
Strategy.Log += new Action<StockSharp.Algo.Logging.LogMessage>(Strategy_Log)</pre>
</div></div><br /><br />Проблема в том, что событие обработки заявок (см. пример) срабатывает для каждой из этих стратегий, а не только для той стратегии, в которой происходила эта обработка. Такое ощущение, что Log срабатывает не для стратегии, а для ITrader:<br /><br />Например: <br />OQS, OSS, OWS - Это 3 независимые стратегии. В OQS запускается котирование, создается заявка и у всех 3-х стратегий срабатывает следующее событие: <br /><br />[MarketTime <10:45:51.076>]:[OQS] Обработка Limit заявки 38623862 на Sell с номером 935182789.<br />[MarketTime <10:45:51.233>]:[OSS] Обработка Limit заявки 38623862 на Sell с номером 935182789.<br />[MarketTime <10:45:51.234>]:[OWS] Обработка Limit заявки 38623862 на Sell с номером 935182789.<br /><br />2. Попытался реализовать свой ILogListener<br /><br /> <div class="code"><strong>Code</strong><div class="innercode"><pre class="brush:csharp">
public class MessageBoardLogListener : ILogListener
{
public void WriteMessage(LogMessage message)
{
string msg = string.Format("[{0}] {1}", message.Source.Name, message.Message);
Info.Inform(msg, message.Type.ConvertStrategyErrorState());
}
}
Потом в другом классе подключаю созданный MessageBoardLogListener к LogManager
class SomeClass
{
Strategy _Strategy;
//создаю _LogManager
public SomeClass()
{
this._LogManager = new LogManager();
this._LogManager.Listeners.Add(new MessageBoardLogListener());
this._LogManager.Sources.Add(this._Strategy);
}
}
</pre>
</div></div><br /><br /> После этого, как я понимаю, при возникновении события _Strategy.Log оно должно обрабатываться в MessageBoardLogListener.WriteMessage, однако этого не происходит. Подскажите, пожалуйста, что я делаю не так? <br /><br />3. При запуске стратегии (вызов Start()) в событие Log начинает выводиться ВСЯ ИСТОРИЯ обработки заявок. Т.е. выводятся сообщения типа:<br />[MarketTime <10:45:51.234>]:[OWS] Обработка Limit заявки 38623862 на Sell с номером 935182789 <br />для всех заявок, которые уже отработали в прошлом.<br /> - Это вызывает огромные неудобства, т.к. при активном использовании котирования запуск стратегии начинает занимать несколько минут из-за большого списка заявок.<br />Copyright @ StockSharp Platform LLC 2010 - 2024