﻿<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type='text/css' href='https://stocksharp.com/css/style.css'?>
<?xml-stylesheet type='text/css' href='https://stocksharp.com/css/bbeditor.css'?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title type="html">БУДЬ МУДРЕЙ! Определяй кол. контрактов правильно!</title>
  <id>~/topic/4210/bud-mudrei!-opredelyai-kol_-kontraktov-pravilno!/</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-04-22T16:43:26Z</updated>
  <logo>https://stocksharp.com/images/logo.png</logo>
  <link href="https://stocksharp.com/handlers/atom.ashx?category=topic&amp;id=4210" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.com/posts/m/28676/</id>
    <title type="text">http://smart-lab.ru/uploads/images/01/24/55/2013/12/18/7e0a4a1777.png http://smart-lab.ru/uploads/im...</title>
    <published>2013-12-18T13:37:58Z</published>
    <updated>2013-12-18T13:37:58Z</updated>
    <author>
      <name>algotrading</name>
      <uri>https://stocksharp.com/users/50509/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;a href='http://smart-lab.ru/uploads/images/01/24/55/2013/12/18/7e0a4a1777.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="http://smart-lab.ru/uploads/images/01/24/55/2013/12/18/7e0a4a1777.png" style='max-width: 600px;' alt=""/&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href='http://smart-lab.ru/uploads/images/01/24/55/2013/12/18/57423cb8be.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="http://smart-lab.ru/uploads/images/01/24/55/2013/12/18/57423cb8be.png" style='max-width: 600px;' alt=""/&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Когда мы имеем больше одной стратегии, в которых уверены, возникает вопрос каким количеством лотов торговать. На данный вопрос еще в 50-60х годах попробовал ответить Гарри Марковиц, за что в 1992 году получил нобелевскую премию.&lt;br /&gt;Однако, в отличие от мастодонтов портфельной теории, сейчас мы управляем портфелем стратегий, и зачастую мы оцениваем лишь финансовые потоки которые они генерируют и нам не важно на каком конкретно инструменте торгует наша стратегия, на акциях на фьючерсах, либо опционах .&lt;br /&gt;&lt;br /&gt;Оптимизация портфеля — процесс относительно несложный если использовать специальные программные средства такие как матлаб, или R. В обоих языках в свободном доступе можно скачать оптимизаторы инвестиционных портфелей, в R, их несколько. Мне как не профессиональному программисту довольно сложно перекидываться с одного языка на другой, не освоив толком C# и S#(до сих пор приходится пересматривать курсы). Поэтому,  реализация простого механизма подбора оптимального портфеля была выполнена именно на C#.&lt;br /&gt;&lt;br /&gt;Для меня, основная идея оптимизации портфеля — это  нахождение таких весов каждой из стратегий, чтобы соотношение риска и доходности было на приемлемом уровне.&lt;br /&gt;Для оценки того, насколько хороша наша стратегия я использовал показатель -отношение среднедневного ретурна портфеля к его стандартному отклонению. В меру природной скромности, называть его в свою честь не стал. ;)&lt;br /&gt;Но ближе к делу:&lt;br /&gt; &lt;br /&gt;Вот код оптимизатора (проект можно будет скачать, он внизу  статьи):&lt;br /&gt;&lt;br /&gt;&lt;a href='http://smart-lab.ru/uploads/images/01/24/55/2013/12/18/0f523699e6.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="http://smart-lab.ru/uploads/images/01/24/55/2013/12/18/0f523699e6.png" style='max-width: 600px;' alt=""/&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Данный оптимизатор принимает на вход Ecxel файл, сохраненный, как csv. В данный файл должны быть загружены ретурны стратегий, из которых нужно собрать портфель (Формат ретурнов, как на картинке).  Для тех, кто знаком в концепцией оптимального F, там все аналогично, за исключением того, что вместо ретурнов подставляются HPR.&lt;br /&gt;&lt;br /&gt;Обязательно в файле нудно указать дату, формат даты можно изменить в коде.&lt;br /&gt;&lt;br /&gt;&lt;a href='http://smart-lab.ru/uploads/images/01/24/55/2013/12/18/a5d867114a.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="http://smart-lab.ru/uploads/images/01/24/55/2013/12/18/a5d867114a.png" style='max-width: 600px;' alt=""/&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;После того, как все возможные варианты просчитались они сохраняются в ту же папку, под тем же именем файла, однако к нему добавляется .result.csv&lt;br /&gt;&lt;br /&gt;И о чудо, открывая этот файл, мы найдем 30 лучших вариантов портфеля отсортированные от максимума к минимуму по показателю отношение среднедневного ретурна портфеля к его стандартному отклонению.&lt;br /&gt;&lt;br /&gt;&lt;a href='http://smart-lab.ru/uploads/images/01/24/55/2013/12/18/7256fed55d.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="http://smart-lab.ru/uploads/images/01/24/55/2013/12/18/7256fed55d.png" style='max-width: 600px;' alt=""/&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Показатель, как видно на рисунке записывается в графу value — так как теоретически можно использовать любой показатель. Предложенный мной показатель можно заменить в коде, на тот, какой вам нравится больше, как вариант Sharp Ratio, либо Sortino.&lt;br /&gt;&lt;br /&gt;Количество лучших результатов можно изменить в строчке 54.&lt;br /&gt;&lt;br /&gt;&lt;a href='http://smart-lab.ru/uploads/images/01/24/55/2013/12/18/5a095d0772.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="http://smart-lab.ru/uploads/images/01/24/55/2013/12/18/5a095d0772.png" style='max-width: 600px;' alt=""/&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Формат даты в строчке 24.&lt;br /&gt;&lt;br /&gt;&lt;a href='http://smart-lab.ru/uploads/images/01/24/55/2013/12/18/7b4e03a07b.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="http://smart-lab.ru/uploads/images/01/24/55/2013/12/18/7b4e03a07b.png" style='max-width: 600px;' alt=""/&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Самый простой способ воспользоваться обретенными знаниями:&lt;br /&gt;&lt;br /&gt;&lt;a href='http://smart-lab.ru/uploads/images/01/24/55/2013/12/18/af7ac0863c.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="http://smart-lab.ru/uploads/images/01/24/55/2013/12/18/af7ac0863c.png" style='max-width: 600px;' alt=""/&gt;&lt;/a&gt;&lt;br /&gt;*Синхронизацию, можно выполнить в excel с помощью сводной таблицы. (Вставка=&amp;gt;Сводная таблица=&amp;gt;Ок)&lt;br /&gt;&lt;br /&gt;&lt;a href='http://smart-lab.ru/uploads/images/01/24/55/2013/12/18/ab1408f097.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="http://smart-lab.ru/uploads/images/01/24/55/2013/12/18/ab1408f097.png" style='max-width: 600px;' alt=""/&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Для того, чтобы проверить адекватно ли работает мой оптимизатор, я использовал Combination Strategy, один из инструментов WealthLab.&lt;br /&gt; &lt;br /&gt;Наилучший портфель:&lt;br /&gt;&lt;br /&gt;&lt;a href='http://smart-lab.ru/uploads/images/01/24/55/2013/12/18/744bd49dbc.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="http://smart-lab.ru/uploads/images/01/24/55/2013/12/18/744bd49dbc.png" style='max-width: 600px;' alt=""/&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;2-ой портфель по ранжированию оптимизатора:&lt;br /&gt;&lt;br /&gt;&lt;a href='http://smart-lab.ru/uploads/images/01/24/55/2013/12/18/6113c4a80e.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="http://smart-lab.ru/uploads/images/01/24/55/2013/12/18/6113c4a80e.png" style='max-width: 600px;' alt=""/&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;3-ий портфель:&lt;br /&gt;&lt;br /&gt;&lt;a href='http://smart-lab.ru/uploads/images/01/24/55/2013/12/18/e7a3c747a0.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="http://smart-lab.ru/uploads/images/01/24/55/2013/12/18/e7a3c747a0.png" style='max-width: 600px;' alt=""/&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Помимо того, что Wealth-lab Score подтверждает адекватность работы оптимизатора, также доходность как правило получается выше, однако доходность не учитывает риск, поэтому ее для сравнения я брать не стал.&lt;br /&gt; &lt;br /&gt;Если кто-нить захочет написать похожим образом генетический оптимизатор, по мотивам моей статьи — буду рад такому подарку на новый год. ;)&lt;br /&gt;&lt;br /&gt;&lt;a href='http://smart-lab.ru/uploads/images/01/24/55/2013/12/18/db3e5a9aea.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="http://smart-lab.ru/uploads/images/01/24/55/2013/12/18/db3e5a9aea.png" style='max-width: 600px;' alt=""/&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;После того, как найдены веса оптимального портфеля, нужно прописать расчет количества контрактов в самой стратегию. Обращаясь к количеству денег на счете метод управления капиталом должен рассчитывать количество контрактов.&lt;br /&gt; &lt;br /&gt;Для S# стратегий данную функцию можно прописать одной строчкой:&lt;br /&gt;Кол контрактов = (Сумма на счете*Вес в портфеле)/Гарантийное обеспечение&lt;br /&gt;&lt;br /&gt;&lt;a href='http://smart-lab.ru/uploads/images/01/24/55/2013/12/18/edab6bc27b.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="http://smart-lab.ru/uploads/images/01/24/55/2013/12/18/edab6bc27b.png" style='max-width: 600px;' alt=""/&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;В результате, торговля начинает приобретать абсолютно другое качество — данный подход не только избавляет трейдера от головной боли, думая каким кол контрактом заходить, в каждой отдельной сделке. Торговля портфелем обоснованно упорядочивает торговый процесс,  становится философией. Портфель сам  адаптируется к изменению  количества денег на счете. Мы же высвобождаем время на создание новых стратетий и реализацию новых идей.&lt;br /&gt; &lt;br /&gt;Спасибо всем, кто дочитал до конца!&lt;br /&gt;Учитесь программировать, тестируйет свои идеи, получайте прибыль и узнавайте много всего нового!&lt;br /&gt; &lt;br /&gt;И как вы помните, я сам начал изучать программирование сравнительно недавно — поэтому получится и у Вас. Главное не стесняться обращаться к профессионалам, в этом хорошо помогают курсы да и просто общение с программистами -  &lt;a href="http://stocksharp.com/lesson/stocksharp/
" title="http://stocksharp.com/lesson/stocksharp/
"&gt;http://stocksharp.com/lesson/stocksharp/
&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;Буду рад, если моя программа улучшит качество вашего трейдинга!&lt;br /&gt;&lt;a href="http://stocksharp.com/lesson/stocksharp/" title="http://stocksharp.com/lesson/stocksharp/"&gt; Николай Флеров наш ученик!&lt;/a&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>