Перфоманс тестинга на истории~/topic/1837/perfomans-testinga-na-istorii/Copyright @ StockSharp Platform LLC 2010 - 20242024-03-28T20:14:50Zhttps://stocksharp.ru/images/logo.pnghttps://stocksharp.ru/posts/m/12363/ Мы, кажется, друг друга не понимаем.))) У меня последняя версия, код, который я привёл, в ней дейст...2011-10-15T15:45:00Z2016-08-16T00:02:03ZMikhail Sukhovhttps://stocksharp.ru/users/201/info@stocksharp.ru<div class="quote"><span class="quotetitle">bender <a href="https://stocksharp.ru/posts/m/12360/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote"><br />Мы, кажется, друг друга не понимаем.)))<br />У меня последняя версия, код, который я привёл, в ней действительно не существует. Но я про то, что этот код в последней версии не работает, хотя судя по докам <a href="http://stocksharp.com/doc/ " title="http://stocksharp.com/doc/ ">http://stocksharp.com/doc/ </a>должен работать, отсюда и возник <a href="http://stocksharp.com/posts/m/12336/" title="http://stocksharp.com/posts/m/12336/">этот</a> вопрос. А где нибудь можно почитать про новый CandleManager?<br /></div></div><br /><br />Доки пока нет. Изменения вкратце. CandleManager теперь не строит свечки. Он лишь получает их от ICandleSource и передает дальше + сохраняет в контейер. Свечки строит CandleBuilder. Он принимает сделки от свои ITradeSource и через ICandleFactory превращается их в Candle.Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/12360/ Дифф показывает, что код, который вы привели выше, уже не существует. Поэтому я и говорю, что верси...2011-10-15T13:08:43Z2016-08-16T00:02:03Zbenderhttps://stocksharp.ru/users/28723/info@stocksharp.ru<div class="quote"><span class="quotetitle">Mikhail Sukhov <a href="https://stocksharp.ru/posts/m/12359/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote"><br />Дифф показывает, что код, который вы привели выше, уже не существует. Поэтому я и говорю, что версия не последняя Гидры, нужно обновиться.</div></div><br />Мы, кажется, друг друга не понимаем.)))<br />У меня последняя версия, код, который я привёл, в ней действительно не существует. Но я про то, что этот код в последней версии не работает, хотя судя по докам <a href="http://stocksharp.com/doc/ " title="http://stocksharp.com/doc/ ">http://stocksharp.com/doc/ </a>должен работать, отсюда и возник <a href="http://stocksharp.com/posts/m/12336/" title="http://stocksharp.com/posts/m/12336/">этот</a> вопрос. А где нибудь можно почитать про новый CandleManager?<br />Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/12173/ Да, это было бы здорово. Но перед тем как делать советую ознакомится с этим и этим. Я уже сделал, п...2011-10-11T00:57:00Z2016-08-16T00:01:58Zbenderhttps://stocksharp.ru/users/28723/info@stocksharp.ru<div class="quote"><span class="quotetitle">Mikhail Sukhov <a href="https://stocksharp.ru/posts/m/12171/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote"><br />Да, это было бы здорово. Но перед тем как делать советую ознакомится с <a href="http://stocksharp.com/doc/html/621927b7-839f-4492-8dbb-162e63d57769.htm" title="http://stocksharp.com/doc/html/621927b7-839f-4492-8dbb-162e63d57769.htm">этим</a> и <a href="http://stocksharp.com/posts/m/10581/" title="http://stocksharp.com/posts/m/10581/">этим</a>.</div></div><br /><br />Я уже сделал, правда пока редко использовал, в прикреплённом архиве классы , которые надо добавить-заменить в Гидре, делал в 3.2.5, в следующих не пробовал.<br />Посмотрел вторую ссылку, метод CandlesGenerate.Generate разве должен работать? Вот такой код у меня не работает:<br /><br /><div class="code"><strong>Код</strong><div class="innercode"><pre class="brush:csharp">
var candleManager = new CandleManager(trades) { IsSyncRegister = true };
CandleToken token = candleManager.RegisterCandles(candleType, security, args);
IMarketDataStorage<Candle> candleStorage = null;
candleStorage = storage.GetCandleStorage<TimeFrameCandle, TimeSpan>(security, args.To<TimeSpan>()) as IMarketDataStorage<Candle>;
var candles = candleManager.GetCandles(token);
candleStorage.Save(candles);
</pre>
</div></div> <br /><br /><div class="quote"><span class="quotetitle">Mikhail Sukhov <a href="https://stocksharp.ru/posts/m/12171/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote"><br />Автоматику планируете сделать? </div></div><br />Это как? Чтобы при закачке сделок автоматически создавались и сохранялись свечки? Пока нет.Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/12171/Если действительно никто не делает(вроде брался человек) и первый пост ещё актуален, я могу сделать,...2011-10-10T23:21:09Z2016-08-16T00:01:58ZMikhail Sukhovhttps://stocksharp.ru/users/201/info@stocksharp.ru<div class="quote"><span class="quotetitle">bender <a href="https://stocksharp.ru/posts/m/12167/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote">Если действительно никто не делает(вроде брался человек) и первый пост ещё актуален, я могу сделать, вернее уже сделал - отдельное окно в гидре, которое формирует свечки разных типов по заданному интервалу времени и сохраняет их по указанному пути, свечки не скачиваются,а формируются из закачанных сделок.</div></div><br /><br />Да, это было бы здорово. Но перед тем как делать советую ознакомится с <a href="http://stocksharp.com/doc/html/621927b7-839f-4492-8dbb-162e63d57769.htm" title="http://stocksharp.com/doc/html/621927b7-839f-4492-8dbb-162e63d57769.htm">этим</a> и <a href="http://stocksharp.com/posts/m/10581/" title="http://stocksharp.com/posts/m/10581/">этим</a>. Возможно, что уже сделано многое, и тогда нужно лишь это привести в нормальный вид и скомбинировать.<br /><br />Автоматику планируете сделать?Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/10893/ Я думаю, что подобное можно было бы решить через собственную реализацию ICandleManager, которая бы ...2011-09-07T17:43:09Z2016-08-16T00:01:13Zbenderhttps://stocksharp.ru/users/28723/info@stocksharp.ru<div class="quote"><span class="quotetitle">Mikhail Sukhov <a href="https://stocksharp.ru/posts/m/10836/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote"><br />Я думаю, что подобное можно было бы решить через <a href="http://stocksharp.com/posts/m/10506/" title="http://stocksharp.com/posts/m/10506/">собственную реализацию ICandleManager</a>, которая бы не строила свечки каждый раз из тиков, а просто из бы подгружала. Сама загрузка тиков и стаканов происходит несколькими потоками, которые отличны от потока эмуляции (теоретически, они не должны влиять на скорость обработки данных - тестирования). В потоке эмуляции как раз и происходит построение свечек, что сильно тормозит общий процесс тестирования.<br /><br />Если убрать загрузки тиков, то тогда перестанут строится и стаканы. Как же у вас происходит матчинг заявок?</div></div><br /><br />А матчинг заявок это что? Если определение цены исполнения моей заявки по данным стакана, то никак не происходит, я оцениваю величину проскальзывания до тестирования и через него получаю ожидаемую цену. А так вы наверное правы, просто сделал что первое пришло в голову.<br />И ещё, допустим, у меня система на пробое ценового канала. По свечкам я определю момент входа, а как потом используя тики и стакан произвести матчинг? Если прогонять все тики внутри свечи, то это снова может затормозить тестирование.<br />Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/10836/Здравствуйте, напишу, как я решил проблему медленного тестирования по тикам. Изначально из тиковых д...2011-09-05T15:56:56Z2016-08-16T00:01:10ZMikhail Sukhovhttps://stocksharp.ru/users/201/info@stocksharp.ru<div class="quote"><span class="quotetitle">bender <a href="https://stocksharp.ru/posts/m/10817/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote">Здравствуйте, напишу, как я решил проблему медленного тестирования по тикам. Изначально из тиковых данных гидры строятся минутные свечки(я использую только свечки по времени) и сохраняются в отдельный каталог. Это всё делается стандартными средствами S#. Затем начинается собственно тестирование, и вот как тестировать стратегии по коллекции свечек, а не тиков, в S# я не нашёл( может, чего пропустил?). Поэтому я сделал свою реализацию ITrader, в которую добавил событие NewCandle. Этот новый класс получает коллекцию минутных свечек за тестируемый период и нужный таймфрейм, по которым формирует новую коллекцию свечек нужного таймфрейма, затем идёт перебор этих свечек и с каждой новой свечёй вызывается событие NewCandle, на которое подписаны тестируемые стратегии. Кодом могу поделится, если кому надо.</div></div><br /><br />Я думаю, что подобное можно было бы решить через <a href="http://stocksharp.com/posts/m/10506/" title="http://stocksharp.com/posts/m/10506/">собственную реализацию ICandleManager</a>, которая бы не строила свечки каждый раз из тиков, а просто из бы подгружала. Сама загрузка тиков и стаканов происходит несколькими потоками, которые отличны от потока эмуляции (теоретически, они не должны влиять на скорость обработки данных - тестирования). В потоке эмуляции как раз и происходит построение свечек, что сильно тормозит общий процесс тестирования.<br /><br />Если убрать загрузки тиков, то тогда перестанут строится и стаканы. Как же у вас происходит матчинг заявок?Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/18567/Помогите. Программирую я плохо, как мифический индус. Пишу оптимизатор, хочу сделать тестирование на...2012-04-24T17:31:28Z2012-04-24T17:31:28ZSpiritschaserhttps://stocksharp.ru/users/1927/info@stocksharp.ruПомогите. Программирую я плохо, как мифический индус. Пишу оптимизатор, хочу сделать тестирование на готовых свечках из текстовых таблиц. С чего нужно начать? Сделать свой источник или Builder?Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/16006/Дошли наконец-то руки :) В ПО очень важно быть на онлайне постоянно. С тех пор и стратегия стала соб...2012-01-28T13:54:55Z2012-01-28T13:54:55ZMikhail Sukhovhttps://stocksharp.ru/users/201/info@stocksharp.ru<div class="quote"><span class="quotetitle">Garic <a href="https://stocksharp.ru/posts/m/16003/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote">Дошли наконец-то руки :)</div></div><br /><br />В ПО очень важно быть на онлайне постоянно. С тех пор и стратегия стала событийной, и S# 4.1 (что в dev ветке) поддерживает закачку свечек из хранилища.Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/16003/Дошли наконец-то руки :) Сделал пример для TimeFrameCandles Скорость примерно в 5.5 раза выше чем с ...2012-01-28T09:09:04Z2012-01-28T12:29:26ZGarichttps://stocksharp.ru/users/809/info@stocksharp.ruДошли наконец-то руки :)<br /><br />Сделал пример для TimeFrameCandles<br />Скорость примерно в 5.5 раза выше чем с CandleBuilder (в примере можно переключать)<br /><br />Данные совпадают, за исключением свечей NonTradingDealType которые почему-то стандартный CandleBuilder выдаёт. Пример 06.10.2011 - свеча 14.00 - её быть не должно. Параметр CandleManager.NonTradingDealType не влияет.Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/15214/Спасибо, заработало Правда пока криво и результаты немного расходятся с обычным тестом на истории - ...2011-12-27T20:47:12Z2011-12-27T20:47:12ZGarichttps://stocksharp.ru/users/809/info@stocksharp.ruСпасибо, заработало [rolleyes] <br /><br />Правда пока криво и результаты немного расходятся с обычным тестом на истории - как доковыряю - выложу.<br /><br />Нужно синхронизировать поток свечей и поток NewTrade чтобы сделки проходили одинаково при обоих тестах (тест по расчитанным свечам и тест по сделкам).<br />Т.е. нужно выдавать свечи по какому-то событию. Логично чтобы это был Trader.NewTrade. Но как определить по tradе нужно ли выплёвывать candleFinished для свечки? Для timeFrame свечей понятно, а для остальных - такой информации нет.<br /><br />Похоже облом - нужно чтобы у сохранённой свечи в хранилище был код первой и последней сделки (или есть другой вариант? )<br /><br />В моих кастомных range-барах это есть (для отладки сделал), но что делать со стандартными?<br /><br /><br />По скорости - тест недели RIZ1 стратегия на минутках - Покупка на 00 минуте, продажа на 30 минуте по candleFinished<br /> - по сделкам 02:07.10<br /> - по сохранённым свечам, синхронизация по Trader.MarketTimeChanged раз в минуту 00:21.96<br /> - по сохранённым свечам, синхронизация по Trader.MarketTimeChanged раз в секунду 00:22.77<br /> - по сохранённым свечам, синхронизация по Trader.NewTrade 00:24.15<br /><br />примерно в 7 раз быстрееCopyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/15194/ICandleSource Т.е. нужно сделать по типу своего CandleBuilder? Он должен генерить события CandlesSta...2011-12-27T10:54:54Z2011-12-27T10:54:54ZMikhail Sukhovhttps://stocksharp.ru/users/201/info@stocksharp.ru<div class="quote"><span class="quotetitle">Garic <a href="https://stocksharp.ru/posts/m/15192/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote"><div class="quote"><span class="quotetitle">Mikhail Sukhov <a href="https://stocksharp.ru/posts/m/15175/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote">ICandleSource</div></div><br /><br />Т.е. нужно сделать по типу своего CandleBuilder?<br />Он должен генерить события CandlesStarted, CandlesChanged, CandlesFinished<br /></div></div><br /><br />Я бы сказал по аналогии с SmartCandleSource<br /><br /><div class="code"><strong>Код</strong><div class="innercode"><pre class="brush:csharp">
/// <summary>
/// SmartCOM источник свечек типа <see cref="TimeFrameCandle"/>.
/// </summary>
public class SmartCandleSource : ICandleSource
{
/// <summary>
/// Создать <see cref="SmartCandleSource"/>.
/// </summary>
/// <param name="trader">Шлюз к SmartCOM, через событие <see cref="SmartTrader.NewHistoryCandles"/> будут получаться свечки.</param>
public SmartCandleSource(SmartTrader trader)
{
if (trader == null)
throw new ArgumentNullException("trader");
Trader = trader;
Trader.NewHistoryCandles += OnNewHistoryCandles;
From = Trader.MarketTime.Date - TimeSpan.FromDays(5);
}
/// <summary>
/// Начальная дата, с которой необходимо получать данные из SmartCOM. По-умолчанию равно -5 дней от начала текущей сессии.
/// </summary>
public DateTime From { get; set; }
/// <summary>
/// Шлюз к SmartCOM, через событие <see cref="SmartTrader.NewHistoryCandles"/> будут получаться свечки.
/// </summary>
public SmartTrader Trader { get; private set; }
IEnumerable<CandleToken> ICandleSource.Tokens
{
get { return Trader.HistoryCandleTokens; }
}
private Action<CandleToken, IEnumerable<Candle>> _candlesStarted;
event Action<CandleToken, IEnumerable<Candle>> ICandleSource.CandlesStarted
{
add { _candlesStarted += value; }
remove { _candlesStarted -= value; }
}
event Action<CandleToken, IEnumerable<Candle>> ICandleSource.CandlesChanged
{
add { }
remove { }
}
private Action<CandleToken, IEnumerable<Candle>> _candlesFinished;
event Action<CandleToken, IEnumerable<Candle>> ICandleSource.CandlesFinished
{
add { _candlesFinished += value; }
remove { _candlesFinished -= value; }
}
event Action<Exception> ICandleSource.ProcessDataError
{
add { }
remove { }
}
CandleToken ICandleSource.GetToken(Type candleType, Security security, object arg)
{
CheckTypes(candleType, arg);
return Trader.HistoryCandleTokens.FirstOrDefault(c => c.Security == security && c.Arg == arg);
}
bool ICandleSource.IsSupport(Type candleType, Security security, object arg)
{
return candleType == typeof(TimeFrameCandle) && security.Trader == Trader && arg is TimeSpan && SmartTimeFrames.CanConvert((TimeSpan)arg);
}
CandleToken ICandleSource.Register(Type candleType, Security security, object arg)
{
if (((ICandleSource)this).GetToken(candleType, security, arg) != null)
throw new ArgumentException("Группировка свечек уже зарегистрирована ранее с переданными параметрами.");
CheckTypes(candleType, arg);
var token = Trader.RegisterHistoryRealTimeCandles(security, (TimeSpan)arg, From);
token.Source = this;
return token;
}
void ICandleSource.UnRegister(CandleToken token)
{
Trader.UnRegisterHistoryRealTimeCandles(token);
}
private static void CheckTypes(Type candleType, object arg)
{
if (candleType == null)
throw new ArgumentNullException("candleType");
if (candleType != typeof(TimeFrameCandle))
throw new ArgumentException("SmartCOM поддерживает свечки только типа {0}.".Put(candleType), "candleType");
if (!(arg is TimeSpan))
throw new ArgumentException("Аргумент {0} должен быть типа {1}.".Put(arg, typeof(TimeSpan)), "arg");
}
private void OnNewHistoryCandles(CandleToken token, IEnumerable<TimeFrameCandle> candles)
{
_candlesStarted.SafeInvoke(token, candles);
_candlesFinished.SafeInvoke(token, candles);
}
void IDisposable.Dispose()
{
Trader.NewHistoryCandles -= OnNewHistoryCandles;
}
}</pre>
</div></div><br />Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/15192/ICandleSource Т.е. нужно сделать по типу своего CandleBuilder? Он должен генерить события CandlesSta...2011-12-27T10:06:05Z2011-12-27T10:06:05ZGarichttps://stocksharp.ru/users/809/info@stocksharp.ru<div class="quote"><span class="quotetitle">Mikhail Sukhov <a href="https://stocksharp.ru/posts/m/15175/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote">ICandleSource</div></div><br /><br />Т.е. нужно сделать по типу своего CandleBuilder?<br />Он должен генерить события CandlesStarted, CandlesChanged, CandlesFinished<br /><br />Что должно их провоцировать (какое внешнее событие), за какой период должны отдаваться свечки, по сколько штук за один раз? <br />Не видя внутренности сложно понять.<br />Я так понимаю, отдаваться должны свечи всех зарегистрированных типов?<br />Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/15175/А как тестеру скормить предварительно расчитанные свечи? Ничего подходящего не нашёл, а без них он р...2011-12-26T20:15:33Z2011-12-26T20:15:33ZMikhail Sukhovhttps://stocksharp.ru/users/201/info@stocksharp.ru<div class="quote"><span class="quotetitle">Garic <a href="https://stocksharp.ru/posts/m/15171/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote">А как тестеру скормить предварительно расчитанные свечи?<br />Ничего подходящего не нашёл, а без них он работает существенно медленней чем в старых версиях (сравниваю с 3.2.7)</div></div><br /><br />ICandleSourceCopyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/15171/А как тестеру скормить предварительно расчитанные свечи? Ничего подходящего не нашёл, а без них он р...2011-12-26T16:38:19Z2011-12-26T16:38:19ZGarichttps://stocksharp.ru/users/809/info@stocksharp.ruА как тестеру скормить предварительно расчитанные свечи?<br />Ничего подходящего не нашёл, а без них он работает существенно медленней чем в старых версиях (сравниваю с 3.2.7)Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/14800/Сломалась генерация свечек (4.0.9) Я так понимаю в CandlesCompress вместо candleManager.Sources.Add(...2011-12-18T21:41:00Z2011-12-18T21:41:00ZAlexanderhttps://stocksharp.ru/users/2826/info@stocksharp.ru<div class="quote"><span class="quotetitle">Garic <a href="https://stocksharp.ru/posts/m/14795/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote">Сломалась генерация свечек (4.0.9)<br /><br />Я так понимаю в CandlesCompress вместо<br /><div class="code"><strong>Код</strong><div class="innercode"><pre class="brush:csharp">
candleManager.Sources.Add(new CandleBuilder(new RawConvertableCandleBuilderSource<Trade>(trades)));</pre>
</div></div><br />надо<br /><div class="code"><strong>Код</strong><div class="innercode"><pre class="brush:csharp">
candleManager.Sources.Add(new CandleBuilder(new RawConvertableCandleBuilderSource<Trade>(trades)) { IsSyncRegister = true }); </pre>
</div></div></div></div><br /><br />Да, верно.<br />Залил.Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/14795/Сломалась генерация свечек (4.0.9) Я так понимаю в CandlesCompress вместо candleManager.Sources.Add(...2011-12-18T14:38:32Z2011-12-18T14:38:32ZGarichttps://stocksharp.ru/users/809/info@stocksharp.ruСломалась генерация свечек (4.0.9)<br /><br />Я так понимаю в CandlesCompress вместо<br /><div class="code"><strong>Код</strong><div class="innercode"><pre class="brush:csharp">
candleManager.Sources.Add(new CandleBuilder(new RawConvertableCandleBuilderSource<Trade>(trades)));</pre>
</div></div><br />надо<br /><div class="code"><strong>Код</strong><div class="innercode"><pre class="brush:csharp">
candleManager.Sources.Add(new CandleBuilder(new RawConvertableCandleBuilderSource<Trade>(trades)) { IsSyncRegister = true }); </pre>
</div></div>Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/12533/Поставил решарпер, в связи с этим несколько вопросов. Он в основном выдает три замечания - убрать th...2011-10-19T19:10:32Z2011-10-19T19:10:32ZMikhail Sukhovhttps://stocksharp.ru/users/201/info@stocksharp.ru<div class="quote"><span class="quotetitle">bender <a href="https://stocksharp.ru/posts/m/12525/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote">Поставил решарпер, в связи с этим несколько вопросов. Он в основном выдает три замечания - убрать this, использовать var и переименовать обработчики событий. Я думал, что var нужен только для анонимных типов, но если надо поменяю.</div></div><br /><br />Предупреждений по var не увидел. Возможно у нас разные настройки. Обычно я var использую, когда тип переменной слишком большой. Анонимный тип тут не при чем.<br /><br /><div class="quote"><span class="quotetitle">bender <a href="https://stocksharp.ru/posts/m/12525/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote"><br /> А обработчики событий из, например, StartStop_Click предлагает переименовать в StartStopClick, хотя везде они поименованы через подчёркивание. Может он у меня настроен не так?<br /></div></div><br /><br />Да скорее всего.<br /><br />Мне больше сама структура кода смущает. Например, CandlesCompress уж слишком сложен в поминании. Там явно переизбыток лямбд.Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/12525/ Спасибо. Глянул мельком, замечаний море. Будем улучшать знания в C#. Скажите, когда будет финальный...2011-10-19T12:13:31Z2011-10-19T12:13:31Zbenderhttps://stocksharp.ru/users/28723/info@stocksharp.ru<div class="quote"><span class="quotetitle">Mikhail Sukhov <a href="https://stocksharp.ru/posts/m/12508/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote"><br />Спасибо. Глянул мельком, замечаний море. Будем улучшать знания в C#. Скажите, когда будет финальный коммит, и можно будет пройтись по пунктам.<br /><br />Сделайте, пожалуйста, табуляцию табами, а не пробелами. Сейчас иначе весь файл переформатируется студией, если его другие начнут править. Советую поставить R#, он покажет так же часть ошибок в коде.</div></div><br /><br />Поставил решарпер, в связи с этим несколько вопросов. Он в основном выдает три замечания - убрать this, использовать var и переименовать обработчики событий. Я думал, что var нужен только для анонимных типов, но если надо поменяю. А обработчики событий из, например, StartStop_Click предлагает переименовать в StartStopClick, хотя везде они поименованы через подчёркивание. Может он у меня настроен не так?<br />Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/12508/Добавил окно с возможностью формирования свечек по интервалу дат, пока только таймфрейм, тики и объё...2011-10-18T23:24:25Z2011-10-18T23:24:25ZMikhail Sukhovhttps://stocksharp.ru/users/201/info@stocksharp.ru<div class="quote"><span class="quotetitle">bender <a href="https://stocksharp.ru/posts/m/12432/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote">Добавил окно с возможностью формирования свечек по интервалу дат, пока только таймфрейм, тики и объём, остальные пока не успел. Кнопка авто, автоматически выставляет интервал по всем загруженным сделкам, если свечки в указанный каталог уже сохранялись - то от последней свечи до последней сделки. Т.к. писал это для более ранней версии, сейчас там есть уже не нужные вещи вроде xml файла, постараюсь на неделе доработать. Залил на кодеплекс</div></div><br /><br />Спасибо. Глянул мельком, замечаний море. Будем улучшать знания в C#. Скажите, когда будет финальный коммит, и можно будет пройтись по пунктам.<br /><br />Сделайте, пожалуйста, табуляцию табами, а не пробелами. Сейчас иначе весь файл переформатируется студией, если его другие начнут править. Советую поставить R#, он покажет так же часть ошибок в коде.Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/12432/Добавил окно с возможностью формирования свечек по интервалу дат, пока только таймфрейм, тики и объё...2011-10-17T15:17:19Z2011-10-17T15:18:16Zbenderhttps://stocksharp.ru/users/28723/info@stocksharp.ruДобавил окно с возможностью формирования свечек по интервалу дат, пока только таймфрейм, тики и объём, остальные пока не успел. Кнопка авто, автоматически выставляет интервал по всем загруженным сделкам, если свечки в указанный каталог уже сохранялись - то от последней свечи до последней сделки. Т.к. писал это для более ранней версии, сейчас там есть уже не нужные вещи вроде xml файла, постараюсь на неделе доработать. Залил на кодеплексCopyright @ StockSharp Platform LLC 2010 - 2024