Фундаментальные вопросы на злободневные темы~/topic/4057/fundamentalnye-voprosy-na-zlobodnevnye-temy/Copyright @ StockSharp Platform LLC 2010 - 20242024-03-28T10:05:21Zhttps://stocksharp.ru/images/logo.pnghttps://stocksharp.ru/posts/m/27860/Не простые вопросы на сложные темы: - Вопрос к процессам протекающим в S#. Могу ли я создать несколь...2013-10-22T14:56:46Z2013-10-22T14:56:46ZIvanBhttps://stocksharp.ru/users/26984/info@stocksharp.ru<div class="quote"><span class="quotetitle">Bond <a href="https://stocksharp.ru/posts/m/27859/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote">Не простые вопросы на сложные темы:<br /><br />- Вопрос к процессам протекающим в S#. Могу ли я создать несколько потоков для расчета стратегии во время цикла перебора параметров? Для каждой стратегии нам нужно свое хранилище исторических данных, трейдер, секьюрити и портфолио. Чтобы не клонировать их каждый раз, я могу создать для одного потока одно хранилище, копию одного трейдера, один секьюрити и один портфолио, чтобы внутри этого потока итерировать только стратегию с новыми параметрами? А потом копировать эти потоки, например, до 4 для загрузки всех ядер процессора и максимального распараллеливания. Это я к тому, чтобы не плодить одинаковые данные лишний раз. А в каждую новую стратегию передавать новые параметры. Возможно ли это?</div></div><br />Вообще распараллеливание тестирования может быть сделано в разных направлениях, где-то я об этом писал на форуме.<br />Идеальный вариант, когда все параллельные потоки не зависимы по обработке, в том числе и по всем используемым ресурсам.<br />Если объект используется в разных потоках, при этом не изменяется, то думаю, можно его использовать во всех потоках (например хранилище данных), другое дело, если объект подвергается изменениям в потоках, например трейдер (генерируются события, на разные сигналы - новая свеча и т.д.), то такой объект должен быть индивидуален для каждого потока.<br /><br /><div class="quote"><span class="quotetitle">Bond <a href="https://stocksharp.ru/posts/m/27859/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote">- Как вывести свои данные на график? Например, я беру текущее значение индикатора MA умножаю его на 2 и получаю какое-то значение. </div></div><br />Полагаю, надо создавать свой индикатор.<br /><br /><div class="quote"><span class="quotetitle">Bond <a href="https://stocksharp.ru/posts/m/27859/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote">Как мне сохранить это значение? В каком формате сохранять (в файл txt, xaml, в коллекцию или как-то еще)?</div></div> <br />Самый быстрый вариант по производительности и затратам сил, сохранение в коллекцию, но коллекции тоже разные есть, в плане производительности, выбор зависит от потребностей, Думаю, самый выгодный вариант, хранить значения в списке List<>.<br />Сохранять через сериализацию:<br /><a target="_blank" href="http://msdn.microsoft.com/ru-ru/library/ms233843.aspx
" title="http://msdn.microsoft.com/ru-ru/library/ms233843.aspx
">http://msdn.microsoft.co...u/library/ms233843.aspx
</a><br /><a target="_blank" href="http://msdn.microsoft.com/ru-ru/library/szzyf24s.aspx
" title="http://msdn.microsoft.com/ru-ru/library/szzyf24s.aspx
">http://msdn.microsoft.co...u/library/szzyf24s.aspx
</a><br /><br /><div class="quote"><span class="quotetitle">Bond <a href="https://stocksharp.ru/posts/m/27859/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote">Как мне его потом вывести на график из хранилаща?</div></div><br />Десериализовать данные и пробегая по всем значениям, стандартным образом выводить на график, где на каждой итерации:<br /><div class="code"><strong>Код</strong><div class="innercode"><pre class="brush:csharp">
var chartValueMy = new ChartIndicatorValue(_indicatorMy, <одно значение из десериализованных данных>);
Chart.ProcessValues(candle.OpenTime, new Dictionary<IChartElement, object>
{
{_chartIndicatorMyElement, chartValueMy}
})</pre>
</div></div>Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/27859/Не простые вопросы на сложные темы: - Вопрос к процессам протекающим в S#. Могу ли я создать несколь...2013-10-22T12:27:08Z2013-10-22T13:49:01ZBondhttps://stocksharp.ru/users/26882/info@stocksharp.ruНе простые вопросы на сложные темы:<br /><br />- Вопрос к процессам протекающим в S#. Могу ли я создать несколько потоков для расчета стратегии во время цикла перебора параметров? Для каждой стратегии нам нужно свое хранилище исторических данных, трейдер, секьюрити и портфолио. Чтобы не клонировать их каждый раз, я могу создать для одного потока одно хранилище, копию одного трейдера, один секьюрити и один портфолио, чтобы внутри этого потока итерировать только стратегию с новыми параметрами? А потом копировать эти потоки, например, до 4 для загрузки всех ядер процессора и максимального распараллеливания. Это я к тому, чтобы не плодить одинаковые данные лишний раз. А в каждую новую стратегию передавать новые параметры. Возможно ли это?<br /><br />- Как вывести свои данные на график? Например, я беру текущее значение индикатора MA умножаю его на 2 и получаю какое-то значение. Как мне сохранить это значение? В каком формате сохранять (в файл txt, xaml, в коллекцию или как-то еще)? Как мне его потом вывести на график из хранилаща? Интересуют самые производительные варианты.Copyright @ StockSharp Platform LLC 2010 - 2024