﻿<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type='text/css' href='https://stocksharp.ru/css/style.css'?>
<?xml-stylesheet type='text/css' href='https://stocksharp.ru/css/bbeditor.css'?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title type="html">алготрейдинг. StockSharp</title>
  <id>https://stocksharp.ru/handlers/atom.ashx?category=tag&amp;id=алготрейдинг&amp;type=articles&amp;page=2</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-04-07T05:36:20Z</updated>
  <logo>https://stocksharp.ru/images/logo.png</logo>
  <link href="https://stocksharp.ru/handlers/atom.ashx?category=tag&amp;id=алготрейдинг&amp;type=articles&amp;page=2" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.ru/topic/6989/</id>
    <title type="text">Где и как скачать маркет-данные по американскому рынку. Решение.</title>
    <published>2016-12-02T11:58:44Z</published>
    <updated>2016-12-29T10:36:50Z</updated>
    <author>
      <name>William B</name>
      <uri>https://stocksharp.ru/users/7/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="StockSharp" />
    <category term="Hydra" />
    <category term="Алготрейдинг" />
    <category term="Торговые роботы" />
    <category term="данные" />
    <category term="datamining" />
    <category term="Trading robots" />
    <content type="html">В нашей сегодняшней статье мы расскажем о том где можно бесплатно или за относительно небольшие деньги скачать исторические данные по американскому рынку, а также об универсальном способе скачивать, сохранять, анализировать и использовать в собственных алгоритмах любые типы рыночных данных. &lt;br /&gt;Прежде всего давайте коснемся основных источников маркет-даты по американским ценным бумагам с кратким их описанием. В целом можно выделить три типа источников:&lt;br /&gt;1. Источники исторических данных, например биржи, которые поставляют историю торгов на собственной площадке (конечно оставляем за гранью прямые подключения которые относятся к типу 2).&lt;br /&gt;2. Источники рыночных данных, например брокерские терминалы, через который конечно можно загрузить в том числе и определенную историю, но основной интерес представляет то, что происходит прямо сейчас.&lt;br /&gt;3. Универсальные источники, которые объединяют в себе тип 1 и тип 2, и как правило представлены специализированными сервисами.&lt;br /&gt;&lt;br /&gt;К первому типу источников можно смело отнести такие сайты как &lt;a target="_blank" rel="nofollow" href="https://www.google.com/finance" title="https://www.google.com/finance"&gt;Google&lt;/a&gt; и &lt;a target="_blank" rel="nofollow" href="https://finance.yahoo.com/" title="https://finance.yahoo.com/"&gt;Yahoo Finance&lt;/a&gt;:&lt;br /&gt;&lt;a href='https://stocksharp.ru/file/103933/14.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="https://stocksharp.ru/file/103933/14.png?size=800x800" alt="http://" title="http://" /&gt;&lt;/a&gt;&lt;br /&gt;Несомненным достоинством этих сервисов является их полная бесплатность, однако, с другой стороны, интрадей маркет-данные скачать будет невозможно, также как невозможно получить, что либо кроме свечей. Под что-либо мы конечно подразумеваем такие данные как Level1, Order Log, Market Depth и т.д.&lt;br /&gt;Это практически исключает возможность использования полученных данных для тестирования стратегий, предполагающих торговлю внутри дня. С другой стороны, если ваша стратегия предполагает среднесрочную торговлю, например, основана на подходе “Черепах”, либо вы практикуете портфельное инвестирование без слишком частого перетряхивания портфеля, то использование данных с этих источников будет очень обоснованно и целесообразно.&lt;br /&gt;&lt;br /&gt;К источникам рыночных данных как уже написано выше, относятся, прежде всего, брокерские терминалы или другие подключения к брокеру, которые есть у каждого практикующего трейдера. Например: Fusion/Blackwood, Rithmic, Gain Capital, OEC Trader, Sterling и т.д. &lt;br /&gt;&lt;a href='https://stocksharp.ru/file/103936/15.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="https://stocksharp.ru/file/103936/15.png?size=800x800" alt="http://" title="http://" /&gt;&lt;/a&gt;&lt;br /&gt;Плюсы от использования данного источника видны практически сразу. Во-первых, это бесплатно (конечно без учета тех комиссий, которые вы платите брокеру). Во-вторых, это множество данных которые можно получить: некоторые типы свечей, тики, Level1, DOM и т.д. К минусам можно причислить отсутствие глубокой истории и необходимость хитрого сбора нужных данных, когда без специализированного ПО не обойтись. &lt;br /&gt;При таком подходе, ваши возможности для тестирования значительно расширяются. Появляется возможность создавать не только внутридневные стратегии, но и высокочастотные алгоритмы, основанные на найденных исторических закономерностях.&lt;br /&gt;&lt;br /&gt;Универсальные источники - это в большинстве своем специализированные сервисы, которые поставляют как реал-тайм маркет-дату, так и любую запрошенную историю, например &lt;a target="_blank" rel="nofollow" href="http://www.iqfeed.net/stocksharp/" title="http://www.iqfeed.net/stocksharp/"&gt;IQFeed&lt;/a&gt;. &lt;br /&gt;&lt;a href='https://stocksharp.ru/file/103927/16.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="https://stocksharp.ru/file/103927/16.png?size=800x800" alt="http://" title="http://" /&gt;&lt;/a&gt;&lt;br /&gt;Главным плюсом подобного источника является его универсальность и наполненность данными, т.е. в любой момент по запросу пользователя можно получить любые нужные данные, тиковые, свечи, стаканы и т.п. Минусом такого подхода является платность данного сервиса, цена на который начинается от 50$ в месяц в базовой версии. Если возникает желание получить несколько больше, то потребуется подключить дополнительные функции, которые как вы уже поняли тоже будут стоить денег. Но, как и предыдущий вариант, вам потребуется специальная программа для сбора и хранения данных. Ведь по окончанию действия подписки вы потеряете все данные. Плюс глубина истории, хоть и больше, чем у предыдущего способа, но все равно она ограничена. Особенно для тиковых данных.&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/products/hydra/" title="http://stocksharp.com/products/hydra/"&gt;S#.Data (Hydra)&lt;/a&gt; (ознакомиться с инструкцией и примерами по работе с программой можно &lt;a href="http://stocksharp.ru/s/2cdQFGGD" title="http://stocksharp.ru/s/2cdQFGGD"&gt;&lt;span style="color:blue"&gt;здесь&lt;/span&gt;&lt;/a&gt;). Это бесплатная программа, доступная для скачивания. Hydra предоставляет множество различных функций, но основной ее задачей является скачивание и накопление данных.&lt;br /&gt;&lt;a href='https://stocksharp.ru/file/103979/HydraWhite.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="https://stocksharp.ru/file/103979/HydraWhite.png?size=800x800" alt="http://" title="http://" /&gt;&lt;/a&gt;&lt;br /&gt;Hydra поддерживает загрузку не только свечей любого таймфрейма, но и тиков, ордер лога, level 1, стаканов по множеству инструментов. При этом программа умеет не только скачивать, но и накапливать данные, идущие от брокера, например из &lt;a target="_blank" rel="nofollow" href="https://futuresonline.com/trading/oec-trader" title="https://futuresonline.com/trading/oec-trader"&gt;OEC Trader&lt;/a&gt;, Sterling и т.д.&lt;br /&gt;&lt;br /&gt;Hydra хранит данные в форматах CSV или BIN (сверх компактный формат хранения данных - 7 байт на 1 снимок стакана или 2 байта на тик). Данные располагаются локально, как файлы, и к ним есть доступ из любых программных языков , а также позволяет в конечном итоге пользователю хранить и использовать огромный массив рыночных данных на домашнем компьютере, сервере или в облаке (поддерживается AWS).&lt;br /&gt;&lt;br /&gt;Подводя итоги настоящей статьи, надеемся, что методы изложенные в ней позволят вам, получить маркет-дата за адекватные средства и немного приблизиться к профессиональным участникам. &lt;br /&gt;Они давно так делают!&lt;br /&gt;Желаем удачи на рынке!&lt;br /&gt;</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/6983/</id>
    <title type="text">S#.Data (Hydra) - инструкция и примеры по работе с программой.</title>
    <published>2016-12-01T16:37:31Z</published>
    <updated>2016-12-01T16:37:31Z</updated>
    <author>
      <name>William B</name>
      <uri>https://stocksharp.ru/users/7/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="StockSharp" />
    <category term="Hydra" />
    <category term="Алготрейдинг" />
    <category term="Торговые роботы" />
    <category term="данные" />
    <category term="datamining" />
    <category term="трейдинг" />
    <content type="html">Гидра - программа для скачивания и накопления маркет-данных. В данной статье расскажем, как скачивать историю с Google Finance, брокера Gain Capital и сервиса IQFeed.&lt;br /&gt;Для начала расскажем немного об интерфейсе программы. После первого запуска вы увидите главное окно, которое предложит вам выбрать источники данных.&lt;br /&gt;&lt;a href='https://stocksharp.ru/file/103917/1.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="https://stocksharp.ru/file/103917/1.png?size=800x800" alt="http://" title="http://" /&gt;&lt;/a&gt;&lt;br /&gt;Обратите внимание на описание каждого источника, если рядом с ним написано:&lt;br /&gt;&lt;em&gt;Source is designed to get history data …&lt;/em&gt; - то это означает возможность скачивания исторических данных, &lt;br /&gt;а если написано:&lt;br /&gt;&lt;em&gt;Source is designed to get market-data ..&lt;/em&gt; -  то это означает возможность подключения к реалтайм источнику данных и самостоятельному сбору истории. Забегая вперед, подобный способ зачастую дешевле простой покупки данных у дата-вендора.&lt;br /&gt;&lt;br /&gt;Теперь выберем ряд источников и попробуем получить маркет дату. В качестве таковых мы предлагаем использовать: Google (как источник исторических данных), OECTrader (как источник реал-тайм данных, который вам даст брокер при открытие счета), IQFeed (как источник реал-тайм данных с максимальным количеством одновременных подписок).&lt;br /&gt;&lt;br /&gt;Ставим галочки напротив выбранных источников.&lt;br /&gt;После нажатия кнопки ОК, программа предложит вам включить дополнительные возможности. &lt;br /&gt;&lt;a href='https://stocksharp.ru/file/103918/2.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="https://stocksharp.ru/file/103918/2.png?size=800x800" alt="http://" title="http://" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Они достаточно полно описаны в самой программе, поэтому не будем здесь вдаваться в описание каждой из них.&lt;br /&gt;Для того, чтобы двигаться дальше достаточно будет просто нажать ОК, не выбирая в данном окне ничего. При необходимости всегда можно вернуть данную настройку через кнопку ADD -&amp;gt; Tools и выбрать необходимое.&lt;br /&gt;После всех проделанных процедур мы получаем в левом окне добавленные источники, каждый из которых теперь необходимо настроить.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size:160%"&gt;Google Finance&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Делается это простым нажатием на кнопку карандаша, &lt;a href='https://stocksharp.ru/file/103919/3.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="https://stocksharp.ru/file/103919/3.png?size=800x800" alt="http://" title="http://" /&gt;&lt;/a&gt; которая открывает окно настроек.&lt;br /&gt;&lt;a href='https://stocksharp.ru/file/103920/4.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="https://stocksharp.ru/file/103920/4.png?size=800x800" alt="http://" title="http://" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Быстренько пробежимся по каждой из них, чтобы сложилось полное понимание. Итак:&lt;br /&gt;Start date - дата с которой Hydra будет получать рыночные данные&lt;br /&gt;Time Offset - смещение времени. В данном случае 1 означает, что данные за сегодняшний день скачаны не будут. Это нужно для того, чтоб не скачать половину дня, когда торги еще не завершены.&lt;br /&gt;Weekend - когда галочка установлена выходные дни игнорируются.&lt;br /&gt;Time interval - hydra скачивает данные по частям. Данный параметр позволяет указать насколько большие части будут использованы. При значении 30 программа будет скачивать данные пакетами по 30 дней.&lt;br /&gt;Header, work from, work until, work interval - настройки по работе самой программы, в течение какого времени она должна загружать данные (от и до)&lt;br /&gt;Data directory - папка в которой будут храниться скачанные данные, можно оставить по умолчанию, можно выбрать любую собственную. &lt;b&gt;Рекомендуем создавать под каждый источник отдельную директорию, чтобы данные не перезаписывались.&lt;/b&gt;&lt;br /&gt;Format - формат сохраняемых данных. Поддерживается BIN - специальный формат Hydra позволяющий получать уникальную степень сжатия (2 байта на тик, 7 байтов на стакан) либо всем известный CSV (тут объем обычный)&lt;br /&gt;Max.errors - максимальное количество ошибок в источнике.&lt;br /&gt;Dependency - указывает на добавленную задачу, которая должна быть выполнена до текущей (в нашем случае это может быть либо IQFeed, либо OEC Trader)&lt;br /&gt;Logging level - уровень логирования.&lt;br /&gt;&lt;br /&gt;Давайте оставим все данные по умолчанию и выберем бумаги по которым будет происходить скачивание данных. Допустим выберем штук 5 тикеров, входящих в S&amp;amp;P500 индекс, например: MMM, AFL, GOOG, AAPl, T.&lt;br /&gt;&lt;br /&gt;Для этого все эти инструменты нужно добавить:&lt;br /&gt;&lt;a href='https://stocksharp.ru/file/103921/5.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="https://stocksharp.ru/file/103921/5.png?size=800x800" alt="http://" title="http://" /&gt;&lt;/a&gt;&lt;br /&gt;Поскольку источник Google не поддерживает автоматическое добавление инструментов, то потребуется добавление их в базу вручную&lt;br /&gt;&lt;a href='https://stocksharp.ru/file/103922/6.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="https://stocksharp.ru/file/103922/6.png?size=800x800" alt="http://" title="http://" /&gt;&lt;/a&gt;&lt;br /&gt;Далее повторяем процедуру для каждой бумаги и перемещаем их в раздел Selected&lt;br /&gt;&lt;a href='https://stocksharp.ru/file/103923/7.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="https://stocksharp.ru/file/103923/7.png?size=800x800" alt="http://" title="http://" /&gt;&lt;/a&gt;&lt;br /&gt;После этого просто подключаем источник &lt;a href='https://stocksharp.ru/file/103924/8.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="https://stocksharp.ru/file/103924/8.png?size=800x800" alt="http://" title="http://" /&gt;&lt;/a&gt; и нажимаем Start.&lt;br /&gt;По окончании скачивания вы должны получить вот такие результаты&lt;br /&gt;&lt;a href='https://stocksharp.ru/file/103925/9.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="https://stocksharp.ru/file/103925/9.png?size=800x800" alt="http://" title="http://" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size:160%"&gt;OpenECry (Gain Futures) &lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Источник рыночных данных для клиентов Gain Capital, который вам дает брокер бесплатно при открытие счета. Ключевые настройки источника во многом аналогичны настройкам, которые мы сделали в Google с той лишь разницей, что теперь нужно вносить логин/пароль от вашего аккаунта для доступа к потоку данных и выбрать правильный адрес с которого эти данные будут идти. Предустановлено 3 возможности: тестовый сервер (к которому подключаемся мы и который предназначен для разработчиков), симулятор (сервер для демо счетов), реальный сервер (сервер, имеющий подключение к реальному рынку и реальным счетам). Если у вас открыт счет, то ваш выбор реальный сервер.&lt;br /&gt;&lt;a href='https://stocksharp.ru/file/103926/10.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="https://stocksharp.ru/file/103926/10.png?size=800x800" alt="http://" title="http://" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Параметр Candle from data нужен для указания начальной даты, с которой необходимо скачивать историю в виде свечей.&lt;br /&gt;После того, как вы это сделаете добавляем инструменты данные по которым мы хотим получить, поскольку OEC поддерживает автоматическую загрузку и поиск инструментов, делаем это через кнопку Download Securities, с последующим добавлением их через код инструмента. Наш выбор ESZ6 (мини S&amp;amp;P) и NQZ6 (мини Nasdaq).&lt;br /&gt;&lt;a href='https://stocksharp.ru/file/103935/11.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="https://stocksharp.ru/file/103935/11.png?size=800x800" alt="http://" title="http://" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;В результате добавления у вас должно получиться тоже самое, что представлено на картинке.&lt;br /&gt;Теперь обратите ваше внимание на нижнюю часть окна. В самом начале статьи мы говорили о том, что Hydra поддерживает загрузку и хранение множества типов рыночных данных, настройки о том какие данные загружать можно сделать с помощью соответствующей панели:&lt;br /&gt;&lt;a href='https://stocksharp.ru/file/103934/12.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="https://stocksharp.ru/file/103934/12.png?size=800x800" alt="http://" title="http://" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;On Ticks - означает, что будут загружаться тики&lt;br /&gt;On Market Depth - означает, что будут загружаться стаканы&lt;br /&gt;Candles имеет дополнительную настройки при нажатии на кнопку можно выбрать типы свечей которые будут загружаться, вот как это выглядит:&lt;br /&gt;&lt;a href='https://stocksharp.ru/file/103932/13.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="https://stocksharp.ru/file/103932/13.png?size=800x800" alt="http://" title="http://" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;On Level 1 - означает, что будут загружаться лучший бид/аск, а также ряд полей фундаментальной статистики тикера.&lt;br /&gt;Теперь достаточно нажать кнопку Start и Hydra начнет получать данные и сохранять их локально. При этом, получаться будут как исторические, так и рыночные данные по торгам, которые идут прямо сейчас!&lt;br /&gt;Таким образом, можно самостоятельно накапливать и сохранять рыночные данные, а затем использовать их при тестировании собственных стратегий.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size:160%"&gt;IQFeed&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;IQFeed предоставляет, как и OpenECry, интрадей данные. Но, в отличие от OEC, IQFeed поддерживает очень большой диапазон параллельных подписок, а также значительно большую глубину истории, как по свечам, так и по тиковым данным.&lt;br /&gt;Настройки источника аналогичны OpenEcry:&lt;br /&gt;&lt;a href='https://stocksharp.ru/file/103937/20.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="https://stocksharp.ru/file/103937/20.png?size=800x800" alt="http://" title="http://" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Параметр Candle from data нужен для указания начальной даты, с которой необходимо скачивать историю в виде свечей.&lt;br /&gt;Параметр Ticks from data нужен для указания начальной даты, с которой необходимо скачивать историю в виде тиков.&lt;br /&gt;Все остальные действия аналогичны описанным выше. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size:160%"&gt;Работа с данными&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Теперь после всех манипуляций, нужно понять, а как же с этими данными работать и что еще может программа. Напомним, что данные сохраняются в той папке, куда вы их скачали, но как посмотреть, что получилось.&lt;br /&gt;Для этого обратимся к источнику OEC Trader по которому было скачано множество данных, выделим его и нажмем правую кнопку мыши.&lt;br /&gt;&lt;a href='https://stocksharp.ru/file/103931/2016-11-30_10-22-22.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="https://stocksharp.ru/file/103931/2016-11-30_10-22-22.png?size=800x800" alt="http://" title="http://" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;После этого из менюшки можно выбирать то, каким образом работать с инструментом. Давайте выберем Market Depths и затем в открывшемся окне нажмем кнопку с лупой.&lt;br /&gt;В результате мы получим подобную картинку&lt;br /&gt;&lt;a href='https://stocksharp.ru/file/103928/17.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="https://stocksharp.ru/file/103928/17.png?size=800x800" alt="http://" title="http://" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Далее аналогично выбираем Level 1, а потом Candles 1 min, только в окне работы со свечами выбираем не лупу, а кнопку “Построить график”. Результаты показаны на рисунках ниже&lt;br /&gt;&lt;a href='https://stocksharp.ru/file/103929/18.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="https://stocksharp.ru/file/103929/18.png?size=800x800" alt="http://" title="http://" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href='https://stocksharp.ru/file/103930/19.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="https://stocksharp.ru/file/103930/19.png?size=800x800" alt="http://" title="http://" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Вот таким образом можно просматривать данные и работать с ними прямо из программы.&lt;br /&gt;Надеемся наш продукт поможет вам в трейдинге и разработке прибыльных торговых систем.&lt;br /&gt;</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/298/</id>
    <title type="text">Colocation преодолевает скорость света. 3 часть</title>
    <published>2015-07-11T13:07:28Z</published>
    <updated>2016-09-22T16:05:41Z</updated>
    <author>
      <name>Николай_Флёров</name>
      <uri>https://stocksharp.ru/users/6456/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Алготрейдинг" />
    <category term="Торговые роботы" />
    <category term="Высокочастотная торговля" />
    <category term="HFT роботы" />
    <category term="colocation" />
    <category term="Статьи" />
    <content type="html">&lt;a href="http://stocksharp.com/posts/m/33318/" title="http://stocksharp.com/posts/m/33318/"&gt;&lt;b&gt;Перейти к части 2&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Colocation обеспечивает лучшее решение для высокоскоростных приложений&lt;/b&gt;&lt;br /&gt;Мы показали, что механизм центрального компьютера может быть заменен на функционально идентичный механизм с использованием группы компьютеров, размещенных с серверами биржи. Парадоксально, но в целях достижения эквивалентного результата мы должны были использовать абсурдные на первый взгляд генераторы искусственных задержек, что тормозило передачу информации от каждого сервера к компьютеру на задержку равную задержке полного круга между сервером и центральным компьютером – d  (плюс дополнительная задержка сервера в общем механизме, совмещенных групп). Для большинства алгоритмов &amp;quot;центрального компьютера&amp;quot; удаление генераторов задержки в похожем сценарии позволит дизайнерам разработать алгоритм распределения, который не только соответствует, но гораздо лучше, чем алгоритм &amp;quot;центрального компьютера&amp;quot;. Природа и значение улучшения будет зависеть от алгоритма и его функции. В большинстве случаев, алгоритм &amp;quot;центрального компьютера&amp;quot; придется переписать с нуля, чтобы воспользоваться преимуществом предвидения на местном рынке. (Однако, в некоторых случаях, улучшение невозможно. Рассмотрим это на примере неких ежечасных &amp;quot;слепых&amp;quot; аукционов. В таком случае, использование одного центрального компьютера будет оптимальным. То есть более экономичным, чем в группе совмещенных компьютеров.).&lt;br /&gt;Вспомним наш пример &amp;quot;Нью-Йорк-Лондон&amp;quot; из предыдущего раздела. Что было бы, если бы замедлили передачу информации в дата-центре Нью-Йоркской биржи с коэффициентом 10 000 (с типичных двух микросекунд до 20 миллисекунд). Ни один уважающий себя высокочастотный трейдер не станет мириться с таким положением вещей. Удаление генератора задержки позволило бы размещенным компьютерам &amp;quot;заглянуть в  будущее на локальных рынках&amp;quot; по сравнению с тем, что видит центральный компьютер. Это позволило бы развить значительное превосходство торговой стратегии. Фирмы, занимающиеся высокочастотной торговлей готовы платить миллионы долларов в месяц, чтобы увидеть 20 мс. в будущем. Другими словами, если компьютер находится в середине между финансовыми биржами, то это лучший способ приблизиться  к скорости света, а с помощью компьютеров, размещенным в дата-центрах разных бирж  можно &amp;quot;преодолеть скорость света&amp;quot; - откуда и название этой статьи.&lt;br /&gt;Но даже и без каких-либо дополнительных усовершенствований, стратегии на механизме совмещенных групп должны быть развернуты только в N финансовых центрах по всему миру, а не n⋅ (N-1) / 2 &amp;quot;серединных торговых точек&amp;quot;, показанные в статье Nature. Наконец, самая хорошая новость: нам никогда не понадобятся страшные &amp;quot;корабли для высокоскоростной торговли&amp;quot;!&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Вариант полноценного Colocation решения может эмулировать любое другое решение&lt;/b&gt;&lt;br /&gt;Мы показали, что механизм &amp;quot;центрального компьютера&amp;quot; может быть всегда заменен на функционально эквивалентный механизм или более эффективный, при использовании группы компьютеров, размещенных в дата-центрах бирж. Один вопрос, который остается: может ли быть улучшено данное решение? Можем ли мы, добавив несколько дополнительных компьютеров в середине и/или удалив некоторые из размещенных компьютеров, получить любое лучшее решение, чем то, которое может быть реализовано с помощью механизма &amp;quot;совмещенных групп&amp;quot;? Ответ: - нет. Полная группа N компьютеров совместного размещения с серверами N обеспечивает оптимальную конфигурацию, которая не может быть улучшена.&lt;br /&gt;Для того, чтобы заявить об этом официально, мы определяем новый термин: &amp;quot;агрегирующая конструкция&amp;quot;.  Агрегирующая конструкция - это группа компьютеров, работающих под распределенным алгоритмом, включая каналы коммуникации между членами группы и все входные и выходные каналы связи с внешним миром (состоящая из &amp;quot;серверов&amp;quot;). В отличие от одного компьютера под управлением алгоритма, спецификация агрегирующей конструкции должна включать сведения, касающиеся пространственных расположений входов и выходов, а также компьютеров-членов, и задержки ограничений на связи между этими местами. Агрегирующая конструкция более официальный термин для того, что мы называли &amp;quot;черный ящик&amp;quot; в предыдущих разделах.&lt;br /&gt;Данные N серверов, полноценного colocation решения агрегирующей конструкции – это объединение N компьютеров, совмещенных с соответствующими им серверами.&lt;br /&gt;В заключении, чтобы продолжить наше доказательство, нам нужно будет провести операцию по &amp;quot;объединению&amp;quot; компьютеров. Если C1 и C2 два отдельных, совмещенных компьютера под управлением алгоритма A1 и A2, соответственно, то C1^C2 обозначает компьютер, на котором запущены те же алгоритмы и используются в сочетании входящих/исходящих каналов обоих компьютеров как входящих / исходящих каналов одного объединенного компьютера, соответственно (см. рисунок -  &amp;quot;Операция по созданию объединенного компьютера C1 ^ C2&amp;quot;). Операция соединения является чисто косметической. Два алгоритма работают независимо друг от друга на объединённом компьютере и сохраняют все их свойства (например, смещение времени, входные задержки и т.д.). Сообщения, полученные и отправленные от двух алгоритмов, также остаются прежними. Операция по объединению позволяет рассматривать два размещенных компьютера, как один компьютер, который функционально эквивалентен обоим, будучи объединенными. От перестановки компьютеров суть операционного объединяющего компьютера не изменится. (В соответствии с правилами &lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAACII1MJ6hR0Q7p_5u-2iHJ1V6a5nkXF-15GF9J6kvvQCEq99CJqzi-dKAaUsMa9BjxDq467I2imvwUpZadJGYAm" title="https://en.wikipedia.org/wiki/Commutative_property"&gt;commutative&lt;/a&gt; и &lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAACII1MJ6hR0Q7p_5u-2iHJ1bIzK8ofp35d4wZzPSxVsN0RI8gmdgTwsjTCMYSPS3VDYw0gOVGns_HYHMzKuSudu" title="https://en.wikipedia.org/wiki/Associative_property"&gt;associative&lt;/a&gt;.).&lt;br /&gt;&lt;div align="center"&gt;&lt;a href='https://stocksharp.ru/file/103447/%D0%9E%D0%BF%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D1%8F-%D0%BF%D0%BE-%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D1%8E-%D0%9E%D0%B1%D1%8A%D0%B5%D0%B4%D0%B8%D0%BD%D0%B5%D0%BD%D0%BD%D0%BE%D0%B3%D0%BE-%D0%BA%D0%BE%D0%BC%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1%80%D0%B0++++.jpg' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="https://stocksharp.ru/file/103447/%D0%9E%D0%BF%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D1%8F-%D0%BF%D0%BE-%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D1%8E-%D0%9E%D0%B1%D1%8A%D0%B5%D0%B4%D0%B8%D0%BD%D0%B5%D0%BD%D0%BD%D0%BE%D0%B3%D0%BE-%D0%BA%D0%BE%D0%BC%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1%80%D0%B0++++.jpg?size=800x800" alt="Операция по созданию объединенного компьютера C1 ^ C2" title="Операция по созданию объединенного компьютера C1 ^ C2" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Теперь мы готовы сформулировать и доказать основной результат.&lt;br /&gt;Следствие 1. Любое объединение компьютеров, подключенных к нескольким серверам, может быть повторно реализовано с использованием полноценного colocation решения агрегирующей конструкции таким образом, что поведение агрегирующей конструкции (как зафиксировано серверами) неотличимо от исходной совокупности.&lt;br /&gt;Для доказательства используем метод математической индукции (mathematical induction ) по числу K компьютеров совокупности, которые не совмещены ни с одним из серверов. &lt;br /&gt;Очевидно, что вывод верен для К = 0. Здесь каждый компьютер агрегирующей конструкции находится в colocation связке с одним из серверов. Для того, чтобы сформировать эквивалент полноценного colocation решения агрегирующей конструкции, мы добавляем компьютеры, не совершающие никаких действий, к серверам, у которых нет подключенных компьютеров, и мы заменяем все компьютеры, находящиеся в colocation связке с данным сервером на их Joined версию (см. рисунок выше), чтобы обеспечить единый объединенный объект на каждый сервер.&lt;br /&gt;Предположим теперь, что следствие верно для некоторого K ≥ 0.&lt;br /&gt;Рассмотрим агрегирующую конструкцию D* подключённую к N-серверам (X1, ..., Xn), так чтобы K+1 компьютеров, которые не находятся в colocation связке ни с одним из серверов.&lt;br /&gt;Мы начинаем с нормализации D*: добавляем компьютеры, не совершающие никаких действий, к серверам, у которых не было подключенных компьютеров D*, и мы заменяем все агрегирующие конструкции, находящиеся в colocation связке с данным сервером на  Joined версию (см. рисунок выше), чтобы обеспечить единый объединенный объект на каждый сервер. Это не меняет количество, не находящихся в colocation связке компьютеров D* или поведение агрегирующей конструкции.&lt;br /&gt;Отныне, мы предполагаем, что Di является одним из компьютеров D*, находящийся в colocation связи с сервером Xi  для i  = 1, ..., N. и что компьютеры DN+1, ..., DN+K+1, не находятся в colocation связи ни с одним из серверов.&lt;br /&gt;Таким образом, мы предполагаем, что объект DN+K+1 не связан напрямую с любым сервером Xi. Если он был подключен непосредственно к Xi, мы всегда можем поручить компьютерам, находящимся в Colocation связке c Di стать сквозным посредником между Xi и DN+K+1.&lt;br /&gt;Рассмотрим теперь все D1, …, DN+K компьютеры, как &amp;quot;серверы&amp;quot; в теореме 1. Пусть C = DN+K+1 будет центральным компьютером связующим с &amp;quot;серверами&amp;quot; D1, …, DN+K. По теореме 1, мы можем построить функционально идентичную систему, которая заменяет C на N+K компьютеров Xi, размещенным с соответствующими компьютерами Di.&lt;br /&gt;Наконец, определим новую агрегирующую конструкцию E* работающую на компьютерах E1, …, EN+K, где мы устанавливаем  Ei = Ci ^ Di..&lt;br /&gt;Очевидно, что агрегирующую конструкции E* - это эквивалент D* (когда под присмотром серверов Xi), но имеет только К участников, которые не находятся в colocation связи ни с одним из серверов. Таким образом, по методу индукции, E* является эквивалентом полноценного colocation решения агрегирующей конструкции. Это завершает (предыдущий) шаг и доказывает следствие.&lt;br /&gt;Примечание: Доказательство данного следствия может рассматриваться как предоставление метода, который позволяет удалить один за одним в любой последовательности не связанные colocation связью участников совокупности D* без изменения функциональности агрегирующей конструкции (как это зафиксировано серверами).&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Colocation предоставляет оптимальное решение&lt;/b&gt;&lt;br /&gt;Рассуждая об &amp;quot;оптимальности&amp;quot; мы можем только предположить, что пользователь имеет в виду измеримую меру полезности, которую можно будет применить к любой совокупности агрегирующих конструкций с определенным набором серверов. Мы предполагаем, что функция &amp;quot;полезности&amp;quot; может базироваться только на данных, полученных с серверов. (Например, можно было бы оценить торговую стратегию по ее средним дневным результатам на основе некоторого эталона, используя исторические исходные данные, собранные серверами). Теперь мы можем перефразировать Следствие 1 и констатировать, что:&lt;br /&gt;Следствие 2. Полноценное colocation решение агрегирующей конструкции является оптимальным вариантом для HFT арбитражеров. Другими словами, нераспределенный алгоритм может обойти другие алгоритмы, используя агрегирующую конструкцию и colocation связку с серверами бирж.&lt;br /&gt;Примечание: в итоге, в высшей степени важно учитывать нашу ненавязчивую позицию в определение того, что является &amp;quot;лучшими&amp;quot; средствами. Независимо от того, как вы оцениваете работу вашего алгоритма (например, желаете ли вы заработать или потерять больше денег), вы не можете обогнать  распределённый вариант описанный выше. В качестве примера: Не начинайте интервенцию йены, если не находитесь в Токио (а также если не находитесь в Лондоне, если на то пошло)!&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Реверсивные роли – распределенные биржи преодолевают скорость света&lt;/b&gt;&lt;br /&gt;До сих пор мы рассматривали теорему 1 в сценариях, состоящих из торгового компьютера, подключенного к серверам нескольких бирж, потому что это схема укладывается в сценарий &amp;quot;серединной точки&amp;quot; из статьи журнала Nature. Теперь мы переформулируем теорему 1, поменяв местами  роли бирж и финансовых центров.&lt;br /&gt;Традиционные биржи располагают центральным matching (мэтчинг/матчинг) движком  для компьютеров клиентов HFT, размещенным в одном центре обработки данных. Удаленные клиенты могут находиться по всему миру, используя компьютеры, расположенные в точке доступа дата-центров (либо самой биржи, либо сторонних компаний), которые предлагают безопасное, надежное и естественно с малой задержкой подключение к центральной системе (ядру биржи).&lt;br /&gt;Рассмотрим теперь мэтчинговый движкок бирж как “центральный компьютер” и точку доступа в дата-центры, как &amp;quot;серверы&amp;quot;, приведенные в теореме 1. Используя эту хитрость, теорема 1 может быть сформулирована следующим образом:&lt;br /&gt;Следствие 3. Любой центральный мэтчинговый движок биржи подключенный к N ≥ 1 точки доступа дата центров может быть воспроизведен с использованием группы N соединенных между собой мэтчинговых движков, которые находятся в соответствующих дата-центрах таким образом, что поведение новой реализации (как зафиксировано в дата-центрах) ничем не отличается от оригинального решения  на одном мэтчинговом движке.&lt;br /&gt;В результате, следствия 1 и 2, могут быть преобразованы таким же образом. В частности архитектура биржи, которая использует полноценное colocation решение агрегирующей конструкции  мэтчинговых движков (один мэтчинговый движок на каждую точку доступа дата центра) является оптимальной!&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Кейс для распределенных бирж&lt;/b&gt;&lt;br /&gt;Очевидно, что участники, торгующие HFT алгоритмы, давно выяснили преимущества colocation, когда торгуют арбитраж AAPL между различными серверами бирж Нью-Джерси, или когда торгуют арбитраж E-Mini на CME в Aurora, IL versus SPY, Arca в Secaucus NJ. Так почему же биржи упорно используют центральные мэтчинговые движки?&lt;br /&gt;Основной причиной является производительность и прибыль биржи. По сравнению с одним центральным биржевым компьютером, распределенная биржевая архитектура добавляет проблем с точки зрения дизайна и сложности устройства, увеличивает задержки сделки, а также дополнительные затраты на инфраструктуру. Эти эффекты могут ощутить  на своем опыте все клиенты биржи, даже те, которые не участвуют в арбитражных операциях и рады торговать в одном месте совместного размещения с простым, быстрым и относительно недорогим центральным мэтчинговым движком. Распределенная архитектура биржи также будет способствовать снижению (или сведет на нет) необходимость арбитража, что в результате снизит огромные объемы торговли арбитражеров, которые приносят пользу бирже.&lt;br /&gt;На фондовом рынке США, торговля географически сосредоточена в одном месте. Начиная с NYSE и Nasdaq, практически все фондовые торги в США осуществляются на серверах в Нью-Джерси, которые находятся в нескольких десятках километров друг от друга. Несмотря на то что (благодаря 1998 SEC Regulation ATS) одна и та же акция может торговаться на нескольких биржах, каждая биржа, как правило, имеет только один мэтчинговый движок для данного эмитента. Несмотря на все это еще можно было утверждать, что, в целом, американский рынок акций использует распределенную мэтчинговую архитектуру:&lt;br /&gt;1.	Акции биржи и ATS (альтернативные торговые системы) требуют отправки заявок на разные площадки, чтобы получить лучшую цену (благодаря 2007 SEC регулирования NMS).&lt;br /&gt;2.	Распределители для умных заявок расположенные в точках доступа отправляют  заявку на ту биржу, где заявка имеет наибольшие шансы пройти по лучшей цене.&lt;br /&gt;3.	Брокер/банк, выполняющие внутренние внебиржевые сделки и &amp;quot;дарк пулы&amp;quot; можно рассматривать как расширение основного мэтчингового механизма биржи.&lt;br /&gt;Конечно, дьявол кроется в деталях и если посмотреть внимательно, то существующая биржевая архитектура Фондового рынка США (если рассматривать в совокупности как единый механизм) является чудовищно сложной и неэффективной. Компьютеры HFT трейдеров, имеющие colocation связку с несколькими ближайшими биржами процветают, торгуя арбитраж и другие интеллектуальные методы, эксплуатирования неэффективностей.&lt;br /&gt;На рынках акций, опционов и фьючерсов, в силу исторических причин, восходящих к торговле фьючерсами на кукурузу или пшеницу, большинство американских фондовых фьючерсов и опционов торгуются в Чикаго (на CME и CBOE, соответственно). Здесь логично было бы просто переместить мэтчинговые движки CME и CBOE в Нью-Джерси. Но это вряд ли произойдет, учитывая, что пока еще нет конкурентного давления на биржи Чикаго, которое мотивировало бы их на этот шаг. Высокочастотные трейдеры этому только  рады и конкурируют друг с другом, чтобы построить лучше дешевле, быстрее, распределенные арбитражные стратегии (используя &lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAADTWIbHEha9azDQ18xhCJYc7pzdcvzhuG23wKnDyEBoSzOHSFwrArvWatkPeN43qUc" title="http://spreadnetworks.com/network-map/"&gt;Spread Networks tunnel&lt;/a&gt; и &lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAABvmUAFEq9Ua1bG47o8kcKyz3EtLIWAFzSvLOkRjO1L3LDfxfEOJiNlMw0NhmaUzpP82yx5nljnxLOqgVjusNM0LEvVA3DQ4QyiG0gPXfwHxQ" title="http://www.wsj.com/articles/SB10001424052702303947904579340711424615716"&gt;its true-speed-of-light successors&lt;/a&gt;[9]).&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Поистине распределенная архитектура биржи&lt;/b&gt;&lt;br /&gt;Наконец, давайте зададим обратный вопрос: почему и где были бы полезны распределенные биржевые серверы мэтчинга заявок для конкретного инструмента в отдалении от самих бирж? Первый ответ в том, что распределение биржевых серверов в пространстве было бы полезно, если клиенты были бы географически &amp;quot;рассредоточены&amp;quot; и не желали заказывать colocation своих торговых компьютеров с центральным мэтчинговым движком биржи.&lt;br /&gt;До сих пор, единственная область, где распределенная биржевая архитектура нашла свое применение - это торговля на рынке Forex. Например, когда вы торгуете USD (доллар США) против JPY (Японская иены), необходима локальная информация о состоянии экономики каждой из двух далеко расположенных стран. Кроме того, есть политические аргументы против торговли своей валютой с помощью мэтчинговых движков далеко за рубежом.&lt;br /&gt;Когда впервые была представлена электронная заявка на спот рынке Forex, что впервые произошло в 1990-х годах, были первоначально две USD/JPY биржи: Reuters (в Лондоне) и Майнекс (в Токио). Лондон - Токио задержки в те дни были порядка 300 мс, которые легко заметны невооруженным глазом. Также, были политические причины против торговли свей валютой на зарубежных площадках.&lt;br /&gt;Когда мне была  поставлена задача разработки новой глобальной биржи &lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAACoH97WW-47CyU_WqkXz56Kx2CwGvoW82QEyFeLXf8tOg" title="http://www.ebs.com/"&gt;EBS Forex exchange&lt;/a&gt;, я выбрал распределенную архитектуру с тремя синхронизированными мэтчинговыми движками - в Лондоне, Нью-Йорке и Токио[10]. Это при условии отличной производительности во всех трех регионах и удовлетворении требований мировых банков. В 1996, EBS вошла в состав Minex, став доминирующей мировой USD/JPY площадкой на межбанковском электронном рынке - позиция, которую она занимает и по сей день. (Хотелось бы мне в то время обладать информацией из этой статьи, иметь представление о данной работе, когда пытался убедить своих коллег поверить в распределенную архитектуру бирж... но, в конце концов, мы использовали наше шестое чувство -, - и оказались правы)&lt;br /&gt;Другой пример распределенной Forex площадки является &lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAAAfEzAthDQx6hFQbIgIyRGOIaSRtBmIalvG0xolpALcsZGF2A29i511x1yLCL6pAYQ" title="http://www.fastmatch.com/features"&gt;Fastmatch&lt;/a&gt;, которая также имеет три мэтчинговых движка: в Лондоне, Нью-Йорке и Токио. Ее архитектура значительно отличается от EBS, однако, заявки распространяются не прозрачным способом  и мэтчинг осуществляется по трем регионам.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Литература по данной тематике&lt;/b&gt;&lt;br /&gt;Чтобы узнать больше о чудесах распределенных торговых систем, исследуйте ссылки [11] и [12] .&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Благодарности автора&lt;/b&gt;&lt;br /&gt;Я благодарю Michael Merold, Schalk Steyn, Alec Schmidt, Mark Reece, Wlodek Stankiewicz, Ewa Howorka, и всех, кто предоставили полезные комментарии по первоначальному проекту этого документа.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Ссылки&lt;/b&gt;&lt;br /&gt;1.	Mark Buchanan, &lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAADgk3YMGgCQUSUHCWOOs854Tyaa9YNjs6FNfqASvBnC6R4XL5rM8HynpP5aWGG9HUaNZG3K5T-R9B8zfgqJMUuNfs7CYmDwHNOYBHrE_cUUj9o2bluPWJgjLkT7gkFq45g" title="http://www.nature.com/news/physics-in-finance-trading-at-the-speed-of-light-1.16872"&gt;Physics in finance: Trading at the speed of light&lt;/a&gt;, Nature, Feb 11, 2015.&lt;br /&gt;2.	A. D. Wissner-Gross and C. E. Freer, &lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAAAFg05aiwKqtqzZYzcsemGL8GaI1yZ9IcdRRX-HjGcMjE90S4L2CviYtNLufzR58qBTbvYS4GkV5O7d678lJxwe" title="http://journals.aps.org/pre/abstract/10.1103/PhysRevE.82.056104"&gt;Relativistic statistical arbitrage&lt;/a&gt;, Physical Review E 82, Nov 5, 2010.&lt;br /&gt;3.	World Federation of Exchanges, &lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAAA3hNzFTmPZrbHeGgyjeL_KjhtISc48XgoyiQKRd35BC-G3TV716OoB_BitQa_b15Kohxnkq67spKMtb6Fs5gmW5fdc7uGCKJwwQDqdoV2_Fw" title="http://www.world-exchanges.org/files/statistics/pdf/2009_WFE_AR.pdf"&gt;WFE 2009 Annual report and statistics&lt;/a&gt;, Dec 2009.&lt;br /&gt;4.	&lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAAAF2TCseO95nB68uMwrCRB-7tG4XSvP5ApxGmeRt309bhe7rCekTS8n40lDq_JOpd2wezvoHpp8RJ_-8ifInejD" title="http://physicscentral.com/explore/action/stocktrade.cfm"&gt;Stock Trades at the Speed of Light&lt;/a&gt;, PhysicsCentral, Nov 11, 2010.&lt;br /&gt;5.	Eric Garcia, &lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAABPxtaAVPBSgpLK4qCGEflUJ6Un6lJGDXwbnXWrVOKzyzT3OTkELkglfUzCNA3q0AN_bz8oquskfrJV5ntE-Mt4UBRmE8fbQGcfp-hHbk03cT7HGChpIyGpqotSviJbJHfz7Sv0N5_Fmp_zKhBt0RRCIB_o3CBxF-RsblcdPyBRoQ" title="http://www.marketwatch.com/story/physicist-says-it-is-possible-to-use-ships-to-facilitate-high-frequency-trading-2015-02-18"&gt;Physicist says it is possible to use ships to facilitate high-frequency trading&lt;/a&gt;, MarketWatch, Feb 19, 2015.&lt;br /&gt;6.	M. Rohan, &lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAABfC-fRQzA80lMK_mCwgPGdMiQuPO9viE8C4aldYiK-BIydvgM1EbYJZ10U4aHI4qcIH2Nf4deZpSu9fTGvFNK3rAsZsszWljWkTMNNJIO8ysYz5B64mzGR53DD3rsXC4M" title="http://www.ibtimes.co.uk/dark-pool-hft-it-possible-use-ships-high-frequency-trading-1488663"&gt;Dark pool and HFT: It is possible to use ships for high-frequency trading&lt;/a&gt;, International Business Times, Feb 19, 2015.&lt;br /&gt;7.	Timothy B. Murray, HFT’s Oceanic Moment, WatersTechnology, Mar 11, 2015.&lt;br /&gt;8.	M. Rohan, &lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAABfC-fRQzA80lMK_mCwgPGdMiQuPO9viE8C4aldYiK-BAQb9q-3lTCBlu6pLyjP_eHcjKgeiNAYKTzNgVxFat5qcclpOmyUdHOBg_Mbrdx3OVSDLVL8ahaCRL2tVyU2sIE" title="http://www.ibtimes.co.uk/dark-pool-hft-boe-says-high-speed-trading-helps-markets-1489314"&gt;Dark pool and HFT: BoE says high-speed trading helps markets&lt;/a&gt;, International Business Times, Feb 24, 2015.&lt;br /&gt;9.	Scott Patterson, &lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAABvmUAFEq9Ua1bG47o8kcKyz3EtLIWAFzSvLOkRjO1L3LDfxfEOJiNlMw0NhmaUzpP82yx5nljnxLOqgVjusNM0LEvVA3DQ4QyiG0gPXfwHxQ" title="http://www.wsj.com/articles/SB10001424052702303947904579340711424615716"&gt;High-Speed Stock Traders Turn to Laser Beams&lt;/a&gt;, Wall Street Journal, Feb 11, 2014.&lt;br /&gt;10.	Michael Togher, Michael F. Dunne, Richard Hartheimer, &lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAACG1tIdcLLf4WCKlIxJbjy0TYrgYOCJj16kVqkORl6KjxEgi-iA8TfhbQ4zQ5KRyOY" title="https://www.google.com/patents/US5375055"&gt;Credit management for electronic brokerage system&lt;/a&gt;, U.S. Patent No. 5,375,055, issued Dec 20, 1994, assigned to &lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAACoH97WW-47CyU_WqkXz56Kx2CwGvoW82QEyFeLXf8tOg" title="http://www.ebs.com/"&gt;EBS&lt;/a&gt;.&lt;br /&gt;11.	Edward R. Howorka, Andrew P. Foray, &lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAABA1ktUvvYhiPW9ri-UpZhimt2sz4GIfYQfx3W8Hn61lDJWj1phtQ6BuCe2lFgQw5g" title="http://www.google.com/patents/US7184982"&gt;Architecture for anonymous trading system&lt;/a&gt;, U.S. Patent No. 7,184,982, issued Feb 27, 2007, assigned to &lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAACoH97WW-47CyU_WqkXz56Kx2CwGvoW82QEyFeLXf8tOg" title="http://www.ebs.com/"&gt;EBS&lt;/a&gt;.&lt;br /&gt;12.	Edward R. Howorka, &lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAABA1ktUvvYhiPW9ri-UpZhimt2sz4GIfYQfx3W8Hn61lJiqib-JCIm7gWZnPvu6VVQ" title="http://www.google.com/patents/US8296217"&gt;Method and apparatus for enhancing market data feed using proprietary order flow&lt;/a&gt;, U.S. Patent No. 8,296,217, issued Oct 23, 2012, assigned to &lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAABPxtaAVPBSgpLK4qCGEflUa6jGEm_pFcwIsF0MBOmfxQ" title="http://www.marketfactory.com/"&gt;MarketFactory&lt;/a&gt;.&lt;br /&gt;13.	Edward Howorka, &lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAABadEUWqzjmkp-54RCyFQK3rmtoO0LYEPGHO3dHrQ2elKu2ypZFAFLEsFJs_dURGyzaZ_mzT9znJsmR_1d7rN4a" title="http://www.thetradingmesh.com/pg/blog/ehoworka/read/621449"&gt;In brief, colocation beats the speed of light&lt;/a&gt;, The Trading Mesh, Apr 9, 2015.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAABfHDdm6VDp_MryS5CQmZ6EntFWoS8ZhZiWB15s8RruHMd361uQpMqTfVzCEZbGI84" title="http://edhoworka.com/colocation-beats-the-sol/"&gt;Ссылка на первоисточник данной статьи&lt;/a&gt;&lt;br /&gt;Перевод: &lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAAAi48_KzWju0atoYfAbY8taUx5Ci2WRSyUQE34o-ITFM6hSlklUd9E-16nKnrTl9FY" title="http://smart-lab.ru/my/MrFly/blog/all/"&gt;Николай Флёров&lt;/a&gt;</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/294/</id>
    <title type="text">Коннекторы StockSharp. Запись вебинара.</title>
    <published>2016-05-18T10:31:35Z</published>
    <updated>2016-05-18T10:31:35Z</updated>
    <author>
      <name>William B</name>
      <uri>https://stocksharp.ru/users/7/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="StockSharp" />
    <category term="Обучение" />
    <category term="Для начинающих" />
    <category term="Алготрейдинг" />
    <category term="Торговые роботы" />
    <category term="Quik" />
    <category term="SmartCom" />
    <category term="вебинар" />
    <category term="Статьи" />
    <content type="html">&lt;span style="font-size:120%"&gt;Друзья! Для тех кто по разным причинам не смог присутствовать на нашем вебинаре, сегодня мы выкладываем его запись.&lt;br /&gt;&lt;br /&gt;&lt;iframe width="640" height="390" src="//www.youtube.com/embed/gSuaGKvQgiA" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;В вебинаре рассказывается про наши коннекторы и базовые основы работы с ними. &lt;br /&gt;&lt;a href="http://stocksharp.com/file.aspx?t=forum&amp;amp;fid=2420" title="http://stocksharp.com/file.aspx?t=forum&amp;amp;fid=2420"&gt;&lt;br /&gt;&lt;span style="color:blue"&gt;Материалы для скачивания&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt;&lt;/span&gt;</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/310/</id>
    <title type="text">Рассказ нашего ученика 2</title>
    <published>2013-12-18T00:50:55Z</published>
    <updated>2013-12-18T00:50:55Z</updated>
    <author>
      <name>Валентин Мирошниченко</name>
      <uri>https://stocksharp.ru/users/6156/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Алготрейдинг" />
    <category term="Торговые роботы" />
    <category term="Статьи" />
    <content type="html">В прошлой &lt;a href="http://stocksharp.com/articles/10413-rasskaz-nashego-uchenika" title="http://stocksharp.com/articles/10413-rasskaz-nashego-uchenika"&gt;статье&lt;/a&gt; рассмотрели общую схему создания и проектирования системы для алгоритмической торговли на бирже. Рассмотрим более подробно работу каждого модуля.&lt;br /&gt; &lt;br /&gt;Как получить исторические данные для работы мы уже знаем. Сейчас рассмотрим необходимый минимальный функционал для своего терминала визуализации.&lt;br /&gt; &lt;br /&gt;Ниже буду приводить скриншоты моей последней версии &amp;#171;Анализатора&amp;#187;, более раннюю версию можно скачать с серверов S#. Просто опишем, что из себя представляет система визуализации стратегий.&lt;br /&gt;&lt;a href='https://stocksharp.ru/file/103035/1.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="https://stocksharp.ru/file/103035/1.png?size=800x800" alt=""/&gt;&lt;/a&gt;&lt;br /&gt;Задаем диапазон тестирования, таймфрейм и тестируемый инструмент. Как дополнительно, но не обязательно можно задать комиссию, начальный депозит и др. настраиваемые параметры.&lt;br /&gt; &lt;br /&gt;Строим свечной график, также выводим индикаторы. Снизу строим график Эквити. В данном примере для оценки стратегии я использую свой расчет Профита. В стандартной версии графика PnL от S# используется немного другой вариант, более приспособленный для торговли в реальном времени с расчетом вариационной маржи.&lt;br /&gt;&lt;br /&gt;Выводим сделки на график в виде стрелок. Зеленая стрелка покупка, красная продажа. Это стандартная функция. Прикрутить к коду не сложно, главное округлить время сделки до времени свечки, а то она может выставиться некорректно.&lt;br /&gt;&lt;a href='https://stocksharp.ru/file/103036/2.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="https://stocksharp.ru/file/103036/2.png?size=800x800" alt=""/&gt;&lt;/a&gt;&lt;br /&gt;Что нам еще нужно? Не плохо бы знать, что и в какой последовательности делала наша стратегия. Нам нужно Логирование! В стандартных версиях полно разных видов окон логирования, но я как всегда не ищу легких путей и сделал свое логирование на базе ListView из WPF C#.&lt;br /&gt;&lt;a href='https://stocksharp.ru/file/103037/3.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="https://stocksharp.ru/file/103037/3.png?size=800x800" alt=""/&gt;&lt;/a&gt;&lt;br /&gt;Для удобства вывел на экран кнопки для запуска результатов тестирования и таблицу с расчетом статистических данных стратегии.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Статистика&lt;/b&gt;&lt;br /&gt; &lt;br /&gt;Очень важно перед запуском стратегии для реальной торговли на бирже проверить ее на работоспособность – протестировать. Как нам узнать какая стратегия хорошая, а какая плохая? Оказывается итоговая прибыль в конце тестирования не единственно важный показатель нашего алгоритма. Для полной картины нам нужно изучить статистические показатели нашей стратегии.&lt;br /&gt; &lt;br /&gt;Основные формулы для расчета показателей стратегии:&lt;br /&gt;&lt;b&gt;1. Profit factor (PF)&lt;/b&gt;&lt;br /&gt;Рассчитывается как отношение за определённый период суммы всех прибыльных сделок к сумме всех убыточных с положительным знаком. Большее значение соответствует меньшей вероятности разорения.&lt;br /&gt;Profit Factor = [Сумма прибылей всех прибыльных сделок] / [Сумма прибылей всех убыточных сделок]&lt;br /&gt; &lt;br /&gt;&lt;b&gt;2. Maximum Intraday Drawdown (MIDD)&lt;/b&gt;&lt;br /&gt;Максимально Нарастающий Убыток (MIDD — Maximum Intraday Drawdown). Он обозначает самую большую финансовую яму, в которую попадала наша система.&lt;br /&gt;Максимальный нарастающий убыток – это глубина максимальной просадки за период.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;3. Вероятность выигрыша %W (P)&lt;/b&gt;&lt;br /&gt;%W(P) вероятность выигрыша (отношение количества выигрышных сделок к общему их количеству).&lt;br /&gt;* вероятность выигрыша &amp;gt; 0,5.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;4. Математическое ожидание M[X]&lt;/b&gt;&lt;br /&gt;Математическое ожидание — понятие среднего значения случайной величины в теории вероятностей. В зарубежной литературе обозначается через Е[X], в русской M[X]. В статистике часто используют обозначение μ.&lt;br /&gt;Наиболее распространенные варианты расчета:&lt;br /&gt;1) M[X] Математическое ожидание = вероятность выигрыша * средняя величина выигрыша + вероятность проигрыша * средняя величина проигрыша (в качестве результата прирост на 1 сделку в абсолютных величинах)&lt;br /&gt;2) M[X] Математическое ожидание (1+( средняя величина выигрыша / средняя величина проигрыша))* вероятность выигрыша -1 (в качестве результата вероятность в % получения прибыли за период)&lt;br /&gt;* M[X] &amp;gt; 0,6 верно для варианта 2.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;5. Фактор восстановления (RF)&lt;/b&gt;&lt;br /&gt;RF (фактор восстановления, restoration factor) = отношение прибыли за период (Profit) к максимально нарастающему убытку (MIDD) за тот же период.&lt;br /&gt;* при тестировании RF должен быть &amp;gt; 2&lt;br /&gt; &lt;br /&gt;&lt;b&gt;6. Стандартное отклонение (σ)&lt;/b&gt;&lt;br /&gt;Стандартное отклонение σ или SD (sigma) — это широко используемая мера разброса или вариабельности (изменчивости) данных. Стандартное отклонение популяции определяется формулой:&lt;br /&gt;SD= [S(xi-m)2/N]1/2, где m — среднее популяции, N — размер популяции.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;7. Z-счет&lt;/b&gt;&lt;br /&gt;Z-счет позволяет определить эффективность торговой системы одной цифрой, предоставляя более точные результаты при сравнении с другими ТС. Кроме того, положительный либо отрицательный результат Z-счета несет в себе дополнительную информацию об особенностях использования взятой торговой системы.&lt;br /&gt;Собственно, формула вычисления Z-счета имеет вид:&lt;br /&gt;Z-счет = (N*(R — 0.5) — X)/((X*(X — N))/(N -1))^(1/2)&lt;br /&gt;N – общее количество сделок;&lt;br /&gt;X – 2*количество прибыльных сделок*количество убыточных сделок;&lt;br /&gt;R – количество серий (сколько раз после прибыльной сделки шла убыточная и наоборот);&lt;br /&gt;^(1/2) – это квадратный корень.&lt;br /&gt;Для определения Z-счета необходимо иметь данные как минимум по 30 сделкам. Положительный либо отрицательный Z-счет несет в себе дополнительную информацию:&lt;br /&gt;1) Положительный Z-счет означает, что практически после каждой прибыльной сделки следует убыточная, т.е. торговая система склонна к чередованию. И, чем больше число Z-счета, тем чаще происходит чередование. Основываясь на этом, следует после каждой убыточной сделки увеличивать размер лота (т.к. следующая сделка будет прибыльной), а после прибыльной – уменьшать лот.&lt;br /&gt;2) Отрицательный Z-счет означает, что ТС имеет последовательные серии как прибыльных, так и убыточных сделок. Эти данные вырисовывают следующий сценарий – если система склонна к сериям, то после первой убыточной сделки следует прекратить торговлю и войти в рынок снова только после первой прибыльной сделки. Мы пропускаем одну прибыльную сделку, но, при этом, минуем серию убыточных.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Прочая статистическая информация:&lt;br /&gt;8. Общее число сделок.&lt;br /&gt;9. Число прибыльных сделок.&lt;br /&gt;10. Число убыточных сделок.&lt;br /&gt;11. Средняя прибыль от сделки.&lt;br /&gt;12. Средний убыток от сделки.&lt;br /&gt;13. Максимальная прибыль.&lt;br /&gt;14. Максимальный убыток.&lt;/b&gt;&lt;br /&gt; &lt;br /&gt;Есть, конечно, и другие показатели стратегии, но эти наиболее распространенные и информативные.&lt;br /&gt;Так выглядит статистика в сводной таблице стратегий:&lt;br /&gt;&lt;a href='https://stocksharp.ru/file/103038/4.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="https://stocksharp.ru/file/103038/4.png?size=800x800" alt=""/&gt;&lt;/a&gt;&lt;br /&gt;&lt;b&gt;Подробнее о тестировании и простой оптимизации&lt;/b&gt;&lt;br /&gt; &lt;br /&gt;Ранее мы рассмотрели на примерах как можно визуализировать свою стратегию:&lt;br /&gt;&lt;a href='https://stocksharp.ru/file/103039/5.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="https://stocksharp.ru/file/103039/5.png?size=800x800" alt=""/&gt;&lt;/a&gt;&lt;br /&gt;И рассчитать основные ее показатели:&lt;br /&gt;&lt;a href='https://stocksharp.ru/file/103040/6.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="https://stocksharp.ru/file/103040/6.png?size=800x800" alt=""/&gt;&lt;/a&gt;&lt;br /&gt;Но все эти приложения имеют графическую оболочку (англ. Graphical user interface, GUI), что сказывается на производительности таких приложений. Для того чтобы тестировать много стратегий и очень быстро нам нужно использовать более производительную архитектуру приложений.&lt;br /&gt; &lt;br /&gt;Например, консольные приложения, хотя некоторые профессионалы умудряются обходиться вообще без GUI.&lt;br /&gt; &lt;br /&gt;Рассмотрим простое консольное приложение для тестирования стратегий методом перебора.&lt;br /&gt;&lt;a href='https://stocksharp.ru/file/103041/7.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="https://stocksharp.ru/file/103041/7.png?size=800x800" alt=""/&gt;&lt;/a&gt;&lt;br /&gt;Для тестирования нам совсем не обязательно выводить графики, строить свечки, визуализировать таблицы. Все это можно оставить на заднем плане.&lt;br /&gt; &lt;br /&gt;На примере стратегии из двух пересекающихся SMA (Simple Moving Average, простое скользящее среднее) постараемся выбрать лучшие варианты из сочетания длин периодов &amp;#171;короткой&amp;#187; и &amp;#171;длинной&amp;#187; скользящих средних.&lt;br /&gt; &lt;br /&gt;Для этого создадим диапазон параметров &amp;#171;длинной&amp;#187; SMA от 20 до 120 и выберем шаг для этого диапазона равным 1. Итоговые данные сохраним в одномерном массиве {20, 21, 22, … ,120}. Аналогично для &amp;#171;короткой&amp;#187; SMA с диапазоном от 5 до 20 с тем же шагом 1 создадим одномерный массив {5, 6, 7, …, 20}.&lt;br /&gt; &lt;br /&gt;Теперь сформируем массив всех возможных вариантов стратегий сочетанием значений массива &amp;#171;длинной&amp;#187; и &amp;#171;короткой&amp;#187; SMA. Получим следующий массив всех вариантов параметров нашей стратегии: {{20, 5}, {20, 6}, …, {20, 20}, {21, 5}, …, {120, 19}, {120, 20}}. Итого 1500 вариантов нашей стратегии. Не мало. Поэтому нам так важна скорость тестирования.&lt;br /&gt; &lt;br /&gt;В S# есть простые примеры как провести такое тестирование. Я брал исходные параметры наших SMA из массива параметров стратегий и по очереди в цикле их тестировал. В итоге, после каждого теста получал массив []MyTrades в котором хранились данные времени совершения сделок, их направление (Покупка или Продажа), объем сделок (количество контрактов в сделке) и цены сделок за временной период тестирования.&lt;br /&gt; &lt;br /&gt;В конце мы получили число массивов с результатами тестирования равное числу всех возможных параметров нашей стратегии. Сохраняем (сериализуем в бинарный файл) все наши параметры и результаты тестирования. Открываем эти файлы в рассмотренном ранее &amp;#171;Анализаторе&amp;#187;, рассчитываем по этим данным статистику и получаем итоговую таблицу с результатами тестирования. Сортируем данные, например, по матожиданию и анализируем результаты. При этом можем сразу визуализировать заинтересовавшую нас стратегию.&lt;br /&gt;&lt;a href='https://stocksharp.ru/file/103042/8.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="https://stocksharp.ru/file/103042/8.png?size=800x800" alt=""/&gt;&lt;/a&gt;&lt;br /&gt;Примерно так проходит тестирование и оптимизация стратегий. Но оптимизация методом перебора зарекомендовала себя как неэффективная и ресурсоемкая при больших объемах данных. В следующей статье мы рассмотрим другие более производительные варианты оптимизации стратегий.&lt;br /&gt; &lt;br /&gt;Всем восходящего тренда! С уважением, Bond.&lt;br /&gt;&lt;a href="http://stocksharp.com/edu/" title="http://stocksharp.com/edu/"&gt;Бонд наш ученик!&lt;/a&gt;</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/311/</id>
    <title type="text">Рассказ нашего ученика</title>
    <published>2013-12-17T12:52:08Z</published>
    <updated>2013-12-17T12:52:08Z</updated>
    <author>
      <name>Валентин Мирошниченко</name>
      <uri>https://stocksharp.ru/users/6156/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Алготрейдинг" />
    <category term="Торговые роботы" />
    <category term="Статьи" />
    <content type="html">&lt;div align="center"&gt;&lt;a href='https://stocksharp.ru/file/103033/bond.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="https://stocksharp.ru/file/103033/bond.png?size=800x800" alt=""/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;b&gt;Как я стал алготрейдером&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Год назад в Вконтаке я увидел скриншоты из Квика одного своего знакомого. На них была прибыль от сделки в 34 тысячи рублей. Потом он еще парочку выложил с прибылью в несколько десятков тысяч рублей. Парень учился на экономическом - гуманитарий, а я закончил технический факультет на инженера. И вот сидя на заводе с зарплатой в 25 тысяч рублей, я задумался… &amp;#171;А какого собственно хрена, я 6 лет учил сопромат, теормех, высшую математику? Когда обычный студент с эконома за пару минут заработал больше, чем я за месяц въе**** на заводе???&amp;#187; Эти мысли не давали мне покоя, и я решил разобраться с этой несправедливостью) Нет, я не пошел и не набил ему морду))) А полез в гугл читать, что такое акции и как торгуют на бирже!&lt;br /&gt;&lt;br /&gt;После первых статей в интернете понял, что ничего сложно в этом нет. Ставишь Квик, регистрируешься у брокера и покупаешь и продаешь акции одним кликом мышки! Но тогда я еще не представлял на сколько глубока кроличья нора…&lt;br /&gt;После первых сделок на тестовом сервере, я понял, что с моими руками что-то не то))) Когда я видел, что график растет, я понимал, что нужно покупать, забивал настройки и периодически нажимал вместо &amp;#171;Покупать&amp;#187; на &amp;#171;Продавать&amp;#187;. Или не ту цифру в суматохе прописывал! Пока все переустановишь и проверишь, уже собственно график туда и обратно три раза обернется. Ужас в общем! И как люди так торгуют?&lt;br /&gt;&lt;br /&gt;Полез опять в интернет и нашел, что у Квика есть встроенный язык QPILE для совершения автоматических сделок по алгоритму. То, что мне нужно! Никакого бездумного клацанья по мышке, машина не ошибается! Полез в документы и руководства.&lt;br /&gt;Как же все сложно… Я в школе Паскаль с трудом сдавал на уроках информатики… И как это давно было…&lt;br /&gt;Но упорство сделало свое дело и через месяц не без помощи такой-то матери, смог запустить свой первый алгоритм! Радости моей не было предела!)&lt;br /&gt;&lt;div align="center"&gt;&lt;a href='https://stocksharp.ru/file/103034/Qpile.jpg' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="https://stocksharp.ru/file/103034/Qpile.jpg?size=800x800" alt=""/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Постепенно код усложнялся и вскоре перевалил за тысячу строк! Я использовал кучу индикаторов и однажды заметил, перематывая свою программу, что собственно забыл, чего искал в том месте программы, пока перематывал код. Так разросся код и стал сложным в восприятии. Потом осознал, что-то, что я писал вчера, сегодня уже не работает. Рынок другой. Индикаторы ведут себя по-другому.&lt;br /&gt;&lt;br /&gt;&amp;#171;Нужно сначала тестировать стратегии!&amp;#187; - подумал я. И опять начал гуглить. И чем больше я ковырялся в интернете, тем больше ухудшалось мое настроение. А в QPILE никаких тестеров то и нет. В Excele? Я еще не настолько отчаялся… Другие программы типа Wealth-Lab? Но там все на английском, платная, ничего не понятно и из него нельзя торговать… Как туда перевести стратегии? Опять по-новому переучиваться? Только не это…&lt;br /&gt;&lt;br /&gt;Предпринял последнюю попытку написать рекурсивный цикл в QPILE для тестирования! Та еще порнография! Сделал замкнутый цикл и в нем обращался к историческим свечкам и индикаторам, и тестировал свои алгоритмы. Вы не поверите! Работало! Выставлялись заявки, логировались сделки, ставились метки входа и выхода на графике! Но… Протестировать можно было не глубже чем на неделю, и тестирование стратегии за один торговый день на одних параметрах занимало 10-15 минут. И таймфрейм нельзя было сделать меньше минуты, и стратегии выполнялись по очереди, а не параллельно, если их было много, то до последней выполнение могло не дойти. Все сыпалось на глазах, ничего не хотело работать так как я хотел…&lt;br /&gt;Я зашел в тупик. Понял, что зря потратил время и ничего у меня с моими алгоритмами не получается. Потом я узнал, что тот самый знакомый слил всю свою прибыль на паре неудачных сделок (хоть как-то приподняло настроение). Дурацкий трейдинг!..&lt;br /&gt;&lt;div align="center"&gt;&lt;a href='https://stocksharp.ru/file/103031/____-____________.jpg' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="https://stocksharp.ru/file/103031/____-____________.jpg?size=800x800" alt=""/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Как я решил эти проблемы благодаря парням из S# и их платформе для алготрейдинга! &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;b&gt;С чего начать алготорговлю&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;В итоге я полностью разочаровался в QPILE, не хотел извращаться с Excel и собственно не знал, что мне делать дальше. В общем, решил пока приостановить все работы пока не соберусь с собственными мыслями. Но идея о торговле меня не оставляла, люди же как-то зарабатывают на этом хорошие деньги?&lt;br /&gt;В интернете наткнулся на S#, посмотрел, почитал и пришел к выводу, что мне нужно двигаться в этом направлении. Русскоязычная платформа, специально заточенная под алготрейдинг, есть обучение, форум, техподдержка. После головной боли от QPILE напрочь отмел все остальные скриптовые языки и криворукие оболочки. Только низкоуровневый код, только тру алготрейдинг!&lt;br /&gt;Но вот незадача… Я c QPILE еле совладал, а в С# вообще полный 0. Да, и цена на обучение кусается. Решил сначала немного подготовиться, купил Герберта Шилдта &amp;#171;Полное руководство C# 4.0&amp;#187; и почитывал на работе, когда выдавалось свободное время. Мой мозг разрывался на маленькие кусочки, полиморфизм, инкапсуляция, наследование… Пару раз бросал с мыслью: &amp;#171;Зачем я во все это ввязался!&amp;#187;. &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;обучающие курсы S#.&lt;br /&gt;&lt;br /&gt;Сначала прошел курс C#, если честно он был тяжелый. Насколько я знаю, они сейчас его переделали и выпустили новые более адекватные и понятные уроки. Разобрался с Visual Studio. И начал потихоньку изучать примеры из уроков. Собственно первые буковки и циферки кода я начал писать с этих примеров. Потому что если еще с Шилдта примеры пробовать писать так это точно на все про все одной жизни не хватит.&lt;br /&gt;Сначала все шло очень тяжело, нехватка знаний в C# и специфика работы API S# давали о себе знать. Но постепенно, при возникновении проблем, я все реже и реже стал обращался в техподдержку, и научился решать задачи самостоятельно. Отельное спасибо Бухарину Ивану из техподдержки S# за помощь в изучении!&lt;br /&gt;Так что все реально, нужно идти от простого к сложному и все получится!&lt;br /&gt;&lt;br /&gt;А теперь перейдем непосредственно к сути статьи. Что нам необходимо для алготорговли? Как вообще все это происходит? Какие модули и в какой очередности создавать?&lt;br /&gt;Оговорюсь сразу, в своих статьях я буду затрагивать чисто технические моменты алготорговли, супер профитных стратегий и граалей не будет. Ну, может если только в более поздних статьях.&lt;br /&gt;Ниже представлена общая комплексная схема работы моих приложений для анализа, тестирования и оптимизации стратегий:&lt;br /&gt;&lt;div align="center"&gt;&lt;a href='https://stocksharp.ru/file/103032/_____-______.jpg' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="https://stocksharp.ru/file/103032/_____-______.jpg?size=800x800" alt=""/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&amp;quot;АНАЛИЗАТОР&amp;quot; - приложение с графическим интерфейсом WPF и графиками Chart для визуализации и анализа стратегий, проверки на работоспособность стратегий.&lt;br /&gt;&amp;quot;ОПТИМИЗАТОР&amp;quot; - консольное &amp;quot;производительное&amp;quot; приложение для тестирования стратегий.&lt;br /&gt;&amp;#171;РОБОТ&amp;#187; – непосредственно торговый робот в который передается уже готовая стратегия для торговли на Бирже.&lt;br /&gt;&amp;#171;Исторические данные&amp;#187; – хранилище исторических данных.&lt;br /&gt;&amp;#171;Хранилище стратегий&amp;#187; – хранилище результатов тестирования &amp;#171;Оптимизатора&amp;#187; и &amp;#171;Анализатора&amp;#187;, готовых стратегий и других параметров.&lt;br /&gt;&lt;br /&gt;Исторические данные&lt;br /&gt;&lt;br /&gt;Алготрейдинг без бэктестинга не алготрейдинг! Прежде чем запускать алгоритм в работу его нужно проверить, протестировать. В этом огромное преимущество алгоритмической торговли!&lt;br /&gt;Что нужно для тестирования? Это, конечно, исторические данные. В S# есть готовое решение S#.Data. С ее помощью закачал с сайта Финама исторические данные в бинарном формате. Сейчас у меня в хранилище исторических данных лежит более 400 тысяч файлов по разным инструментам, в каждом файле хранится информация о тысячах сделок. И все это занимает не более 10-11Гб на жестком диске.&lt;br /&gt;Исторические данные заимели.&lt;br /&gt;Теперь нам нужно их как-то визуализировать, научиться строить по ним свечные графики разных таймфреймов, индикаторы, выводить сделки на график и т.д. &lt;br /&gt;Также нам нужно научиться тестировать стратегии, сохранять результаты тестирования и находить самую оптимальную стратегию.&lt;br /&gt;Обо всем этом и многом другом вы сможете прочитать в моих следующих статьях)&lt;br /&gt;&lt;br /&gt;Всем восходящего тренда! С уважением, Bond. &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>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/244/</id>
    <title type="text">Что такое алготрейдинг? (вебинар)</title>
    <published>2013-09-23T17:02:09Z</published>
    <updated>2013-09-23T17:02:09Z</updated>
    <author>
      <name>Самунджян Артем</name>
      <uri>https://stocksharp.ru/users/675/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Алготрейдинг" />
    <category term="вебинар" />
    <category term="бесплатно" />
    <category term="Статьи" />
    <content type="html">&lt;span style="color:green"&gt;&lt;span style="font-size:120%"&gt;Что такое алготрейдинг?&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Вопреки распространенным стереотипам, &lt;b&gt;робот — это вовсе не мифическая программа&lt;/b&gt;, которая черпает деньги с рынка, отправляя при этом свои сигналы настолько быстро, что обычному трейдеру никак с этим не совладать.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;iframe width="640" height="390" src="//www.youtube.com/embed/ADpXgCxjDPU" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;На вебинаре мы раскроем всю поднаготную алгоритмического трейдинга и обьясним, что такое алготрейдинг на самом деле и почему &lt;b&gt;им стоит заниматься&lt;/b&gt;. По окончании вебинара вы четко осознаете, почему алготрейдинг — это сочетание математики, системной торговли и автоматизации сигналов.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;План занятия:&lt;/b&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Теория системной торговли. Риски ручной торговли.&lt;br /&gt;&lt;li&gt;Почему стоит торговать системно.&lt;br /&gt;&lt;li&gt;Что такое алготрейдинг и какие бывают роботы.&lt;br /&gt;&lt;li&gt;Примеры торговых роботов на софте StockSharp (S#).&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;Для участия в вебинаре достаточно &lt;b&gt;26 сентября в 20:00&lt;/b&gt; перейти по &lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAABdLXP7Im-gMQu6DM3MLRKBVpQEIkmTHy9r2WFN7KiYCtYQEa9GxhFD3i9cYuaCmKM" title="http://meet29954100.adobeconnect.com/free/"&gt;ссылке&lt;/a&gt; и авторизоваться в роли гостя, указав свое имя.&lt;br /&gt;&lt;br /&gt;Хотите узнать всю правду об алготрейдинге? Тогда не пропустите трансляцию!</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/354/</id>
    <title type="text">Hunting high and low</title>
    <published>2012-04-01T13:29:42Z</published>
    <updated>2012-12-17T14:44:13Z</updated>
    <author>
      <name>vlad1024</name>
      <uri>https://stocksharp.ru/users/768/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Алготрейдинг" />
    <category term="Статьи" />
    <content type="html">В статье мы предлагаем Вам ознакомиться с исследованием фондового рынка, которое, возможно, даст Вам зацепку в поисках своей стратегии.&lt;br /&gt;&lt;br /&gt;Данные фьючерс РТС за 10-11 год (всего 477 точек), время в минутах (начиная с 10:00) дневного хая и лоя. &lt;br /&gt;(взаимная плотность, по x — время лоя, по y — время хая)&lt;br /&gt;&lt;div align="center"&gt;&lt;a href='https://stocksharp.ru/file/101819/img1.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="https://stocksharp.ru/file/101819/img1.png?size=800x800" alt="взаимная плотность, по x - время лоя, по y - время хая" title="взаимная плотность, по x - время лоя, по y - время хая" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Собственно, что мы видим: есть два типа дней. У одних наиболее вероятный хай в районе 11 часов, а лой - в 500 минут от 10:00 (то есть 18:20). Второй тип: наиболее вероятный лой в районе 11 часов, а хай в ~470 минут от 10:00 (то есть 17:50-18:00). Попытки войти со среднесрочным горизонтом и коротким стопом в другие промежутки времени резко увеличивает вероятность, что вы поймаете стоп.&lt;br /&gt;&lt;br /&gt;То же самое, но с разбивкой по дням недели:&lt;br /&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;b&gt;Понедельник, Вторник&lt;/b&gt;&lt;br /&gt;&lt;a href='https://stocksharp.ru/file/101820/img2_12.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="https://stocksharp.ru/file/101820/img2_12.png?size=800x800" alt=""/&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Среда, Четверг&lt;/b&gt;&lt;br /&gt;&lt;a href='https://stocksharp.ru/file/101821/img2_34.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="https://stocksharp.ru/file/101821/img2_34.png?size=800x800" alt=""/&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Пятница&lt;/b&gt;&lt;br /&gt;&lt;a href='https://stocksharp.ru/file/101822/img2_5.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="https://stocksharp.ru/file/101822/img2_5.png?size=800x800" alt=""/&gt;&lt;/a&gt;&lt;/div&gt;</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/353/</id>
    <title type="text">Неэффективные рынки. Теория Доу.</title>
    <published>2012-04-01T13:29:44Z</published>
    <updated>2012-12-17T14:43:22Z</updated>
    <author>
      <name>vlad1024</name>
      <uri>https://stocksharp.ru/users/768/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Алготрейдинг" />
    <category term="Статьи" />
    <content type="html">Если немного &amp;#171;перепеть&amp;#187; классика, то тренд характеризуется тем, что каждый лоу выше/ниже предыдущего при аптренде/доунтренде. Попытаемся проверить, насколько эти представления актуальны.&lt;br /&gt;Для этого возьмем дневки Ри за 2010-2011 год и посчитаем разницу между лоу текущего дня и предыдущего, то есть LowDelta = Low[Day] — Low[Day — 1]. Нас будет интересовать, насколько значения этого ряда автоскоррелированы; то есть при аптренде, если верить теории Доу, положительные значения LowDelta должны следовать за положительными, а отрицательные — за отрицательными. Соответственно, получим числовой ряд этих LowDelta, который выглядящий следующим образом:&lt;br /&gt;&lt;div align="center"&gt;&lt;a href='https://stocksharp.ru/file/101825/img1.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="https://stocksharp.ru/file/101825/img1.png?size=800x800" alt=""/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;На первый взгляд, это — просто шум, но мы немного углубимся в его анализ. Чтобы как-то выразить соотношения по теории Доу, о которых сказано выше, математически, введем второй фактор — значение LowDelta за предыдущий день. Обозначим его LagLowDelta = Lag(LowDelta, 1) = Low[Day — 1] — Low[Day — 2]. Теперь нарисуем пары значений (LowDelta по X, LagLowDelta по Y): &lt;br /&gt;&lt;div align="center"&gt;&lt;a href='https://stocksharp.ru/file/101826/img2.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="https://stocksharp.ru/file/101826/img2.png?size=800x800" alt=""/&gt;&lt;/a&gt; &lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Что мы здесь видим:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Плотность смещена в положительный квадрат (то есть LowDelta + и LagLowDelta +). То есть дней небольшого, но неотвратимого роста (когда лоу росли друг за другом), значительно больше.&lt;br /&gt;&lt;li&gt;В отрицательном квадрате больше выбросов быстрого падения.&lt;/ol&gt;&lt;br /&gt;Теперь самый интересный вопрос, ради чего все это и затевалось — &lt;b&gt;можно ли, смотря на приращения лоу, судить о тренде?&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Считаем:&lt;br /&gt;Корреляция (LowDelta, LagLowDelta) = 0.21 = 21%, но она может завышать степень зависимости из-за выбросов. Поэтому посчитаем еще ранковую корреляцию Кендалла (она устойчива к любым выбросам) = 0.11 = 11%. Получилось значение в два раза меньше, но все равно статистически значимое. &lt;br /&gt;&lt;br /&gt;Таким образом, мы приходим к выводу, что несмотря на свою 100-летнюю историю, пусть и достаточно маргинально (11% статистического перевеса не так много для дневных данных), Теория Доу продолжает работать.</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/352/</id>
    <title type="text">Curve fitter-ы из Сан-Франциского федерального резервного банка</title>
    <published>2012-04-01T20:26:25Z</published>
    <updated>2012-12-17T14:43:02Z</updated>
    <author>
      <name>vlad1024</name>
      <uri>https://stocksharp.ru/users/768/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Алготрейдинг" />
    <category term="клуб алготрейдеров" />
    <content type="html">В чем суть — два товарища из Сан-Франциского ФЕДа (Zheng Liu — a research advisor in the Economic Research Department of the Federal Reserve Bank of San Francisco и Mark M. Spiegel — a vice president in the Economic Research Department of the Federal Reserve Bank of San Francisco), решили провести исследование на тему того, как влияет отношение стареющего населения на P/E. Конкретно в качестве коэффициента старения они взяли логарифм отношения группы 40–49 лет к 60–69 далее M/O.&lt;br /&gt;&lt;br /&gt;Оригинальная статья авторов Zheng Liu и Mark M. Spiegel размещена &lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAABBJCrRl4redUqBmXIj3X3Ua5DN61d5j9fb3HT136O62n-iN-V9y0Wt_K2pF2LvqXI21j1xhhnlxc21ZZHoJiNGaOSRT1c0AOE9mJ0Hdi4deg" title="http://www.frbsf.org/publications/economics/letter/2011/el2011-26.html"&gt;здесь&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Перевод статьи от &lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAADl14BNdShJY8HTDzD8UMeT-kEJIq04-FwYbYUAJxgZMhCpK13WA5FzCGs979ivoc7b9bRukUqTjhuugzyoc8foYI6mNVcEVHxi_CYQDNTq9w" title="http://slon.ru/economics/eho_voyny_nakonec_dokatilos_do_birzhi-651960.xhtml"&gt;slon.ru&lt;/a&gt; размещен здесь.&lt;br /&gt;&lt;br /&gt;Ниже представлена оригинальная картинка из их расчета. Красным — PE, синим — этот коэффициент; слева — исторические данные, справа — предсказание модели.&lt;br /&gt;&lt;div align="center"&gt;&lt;a href='https://stocksharp.ru/file/101827/img1.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="https://stocksharp.ru/file/101827/img1.png?size=800x800" alt=""/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Теперь они нам утверждают: &lt;br /&gt;&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Цитата:&lt;/span&gt;&lt;div class="innerquote"&gt;&amp;#171;Statistical analysis confirms this correlation. In our model, we obtain a statistically and economically significant estimate of the relationship between the P/E and M/O ratios. We estimate that the M/O ratio explains about 61% of the movements in the P/E ratio during the sample period. In other words, the M/O ratio predicts long-run trends in the P/E ratio well. &amp;#187;&lt;br /&gt;&lt;br /&gt;&amp;#171;Статистический анализ подтвердил эти корреляции. В нашей модели мы получили статистические и экономически значимые оценки взаимосвязи между P/E и M/O(коэффициент старения). Мы оценили, что M/O отношения ОБЪЯСНЯЕТ БОЛЕЕ 61% ДВИЖЕНИЯ В P/E за заданныq период. Другими словами, M/O соотношение предсказывает долгосрочные тренды в P/E.&amp;#187;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Собственно, первая мысль, которая возникла и в дальнейшем нашла подтверждение — они опять прогуляли в институте курсы по эконометрике и посчитали корреляцию двух процессов. Чтобы подтвердить гипотезу, пришлось скачать их данные и воспроизвести коэффициенты (та же самая картинка что у них, с кружочками — P/E, без M/O):&lt;br /&gt;&lt;div align="center"&gt;&lt;a href='https://stocksharp.ru/file/101828/img2.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="https://stocksharp.ru/file/101828/img2.png?size=800x800" alt=""/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Теперь, добравшись до данных, считаем статистически корректно ранковую корреляцию приращений между двумя процессами. Получаем 0.15 (15%) при уровне статистической значимости 90% (то есть вероятность, что данная взаимосвязь получилась чисто случайно составляет ~10%, но это нормально, учитывая малый размер выборки). Прямой тест на коинтеграцию неприменим, так как процессы не unit root (то есть не интегралы белого шума), хотя и близки к нему. Но можно построить линейной регрессией спред, а дальше проверить, насколько статистически значима ECM (error-correction model) репрезентация. Результат получается схожий: значимость вклада спреда в приращения P/E выходит за границы статистической значимости (70%-ая вероятность того, что результат получен чисто случайно).&lt;br /&gt;&lt;br /&gt;На рисунке ниже по горизонтали изображены приращения P/E, по вертикали — приращения M/O.&lt;br /&gt;&lt;div align="center"&gt;&lt;a href='https://stocksharp.ru/file/101829/img3.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="https://stocksharp.ru/file/101829/img3.png?size=800x800" alt=""/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;В общем, не верьте глазам своим. Несмотря на то, что кажется будто взаимосвязь между ними значительная, если посчитать ее статистически корректно она будет в районе 15% при не высоком уровне статистической значимости. А товарищам из FRBSF должно быть стыдно за то, что они внесли очередной вклад в поток псевдо-экономического шлака, от которого и так уже некуда деваться.&lt;br /&gt;&lt;br /&gt;Данные и скрипты Вы можете &lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAABwqdrcBFGFGlRVeYyEx_QRK9Ky8rCqVblbGGT0FT7MxpVnmrh-_VWP5HAeMhmA9tLcQJ4Pck9_0C4czklSvU7_kiy867e9YfQxhLSeOWTxN-QuX3anFno-cwjVEuOdLjs" title="http://narod.ru/disk/44532460001.40bd889ca51a89f2243703e26f6b5758/agedata.zip.html"&gt;скачать здесь&lt;/a&gt;.</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/348/</id>
    <title type="text">Каким стереотипам о фондовом рынке стоит верить?</title>
    <published>2012-04-25T22:36:33Z</published>
    <updated>2012-12-17T14:41:37Z</updated>
    <author>
      <name>M.Kovaleva</name>
      <uri>https://stocksharp.ru/users/5979/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Для начинающих" />
    <category term="Алготрейдинг" />
    <category term="Статьи" />
    <content type="html">Результаты работы на фондовом рынке зачастую воспринимаются как результат игры случая, а движения биржевых котировок и фондовых показателей - не поддающимися научному анализу и прогнозу. Несмотря на это необходимо и желательно находить статистические закономерности для возможного последующего прогноза. В данной статье я постараюсь рассказать о некоторых из них, опровергая устоявшиеся заблуждения.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;div align="center"&gt;Закономерность 1. Самая надежная и успешная стратегия поведения на рынке – стратегия &amp;#171;купил и держи&amp;#187; (&amp;#171;bye and hold&amp;#187;)&lt;/div&gt;&lt;/b&gt;&lt;br /&gt;Существует  мнение о постоянном росте рынка. В доказательство обычно приводят пример индекса Доу-Джонса, выросшего за 20 век примерно в 1000 раз. &lt;br /&gt;&lt;div align="center"&gt;&lt;a href='https://stocksharp.ru/file/101859/002.JPG' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="https://stocksharp.ru/file/101859/002.JPG?size=800x800" alt="График индекс Доу-Джонса" title="График индекс Доу-Джонса" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Следовательно, чтобы успешно работать на бирже, нужно накупить акций и ждать; самое сложное – перетерпеть возможные коррекции рынка. Действительно, фондовый рынок обычно достаточно длительное время находится в фазах интенсивного роста, и чем дольше эта фаза длится, тем крепче укореняется мысль о стратегии &amp;#171;купил и держи&amp;#187;, и начинает казаться, что это самый удобный и простой способ обогащения. Однако опыт показывает, что следование этой стратегии всегда заканчивается жестокой расплатой. Периодичность таких событий обычно составляет 15-20 лет – именно столько составляет срок инвестиционной памяти участников рынка. Самый сокрушительный крах был в 1929-м году, когда биржевики выбрасывались из окон гостиниц Нью-Йорка. Самый недавний – мировой кризис 2008 года. И не всегда рынок восстанавливается быстро, как, например, после краха 1987 года. Бывают и длительные рецессии по 5-10 и более лет. Восстановление прежних позиций после краха 1929 года продолжалось около 20 лет, еще примерно столько же, в 60-80-е годы, рынок простоял на месте. В качестве еще одного примера можно привести Индекс Токийской фондовой биржи, движения которого также нестабильны и при этом динамика отрицательна.&lt;br /&gt;&lt;div align="center"&gt;&lt;a href='https://stocksharp.ru/file/101860/003.JPG' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="https://stocksharp.ru/file/101860/003.JPG?size=800x800" alt="График индекс Токийской фондовой биржы" title="График индекс Токийской фондовой биржы" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Отметим, что и рост Индекса Доу-Джонса на три порядка за 100 лет на самом деле не такой уж впечатляющий: если усреднить весь рост с 1933 года (дно краха 1929 года) по сегодняшний день и пересчитать в годовые приросты – получится рост всего 8 % годовых.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;div align="center"&gt;Закономерность 2. В летние месяцы наблюдается снижение активности фондового рынка&lt;/div&gt;&lt;/b&gt;&lt;br /&gt;С приближением лета в СМИ все чаще упоминается &amp;#171;летнее затишье&amp;#187;. Об этом пишут аналитики и говорят комментаторы на РБК. Согласно этим сообщениям получается, что у фондового рынка тоже есть своеобразный период отпусков.&lt;br /&gt;На самом деле, для того, чтобы доказать, что нет такого понятия как &amp;#171;отпуск рынка&amp;#187;, можно даже не использовать сложные алгоритмы вычислений. На примере изменений индекса РТС с 2000 по 2011 год была применена простая методика, которая позволяет определить удельный вес диапазона, пришедшегося на период отпусков с июня по август по отношению к диапазону всего года.&lt;br /&gt;&lt;div align="center"&gt;&lt;a href='https://stocksharp.ru/file/101861/3.PNG' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="https://stocksharp.ru/file/101861/3.PNG?size=800x800" alt="Расчет активности рынка в летние месяцы" title="Расчет активности рынка в летние месяцы" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Исходя из данных таблицы, делаем следующий вывод: в среднем почти половина годового диапазона (49%) приходится на 3 летних месяца. Это значит, что лето – самый динамичный период в году. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;div align="center"&gt;Закономерность 3. Пятница – день фиксации прибыли, рынок в пятницу падает&lt;/div&gt;&lt;/b&gt;&lt;br /&gt;К такому выводу пришли некоторые трейдеры и аналитики. Можно рассчитать, действительно ли для российского рынка характерно снижение котировок по пятницам. &lt;br /&gt;Рассчитаем, сколько было понедельников за последние 10 лет, когда торги закрывались в плюс, и сколько было понедельников, которые закрывались в минус; аналогично посмотреть статистику для каждого дня недели, для чего используем котировки индекса РТС с 2000 года по 2011 год.&lt;br /&gt;&lt;div align="center"&gt;&lt;a href='https://stocksharp.ru/file/101862/099.PNG' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="https://stocksharp.ru/file/101862/099.PNG?size=800x800" alt="Расчет активности рынка по дням недели" title="Расчет активности рынка по дням недели" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;В итоге приходим к следующему выводу: самым падающим днем является среда, именно в среду котировки росли всего лишь в 47% случаев, самыми растущими были понедельники и четверги. Цены повышались в эти дни соответственно в 56,8% и 55,4% случаев. &lt;br /&gt;Как видно, пятницу ни в коем случае нельзя назвать днем, когда надо открывать короткие позиции, только потому, что большинство будет фиксировать прибыль, иначе бы в 54,3% случаев рынок бы не закрывался в эти дни в плюс.</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/350/</id>
    <title type="text">Статистические модели трендов. Смещение среднего.</title>
    <published>2012-04-03T14:11:29Z</published>
    <updated>2012-12-17T14:41:07Z</updated>
    <author>
      <name>vlad1024</name>
      <uri>https://stocksharp.ru/users/768/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Алготрейдинг" />
    <category term="Статьи" />
    <content type="html">Попросили объяснить без специальных терминов, что такое персистентность и как она связана с трендовостью рынка. Совсем без терминов вряд ли получится, но если их минимизировать, то достаточно одного понятия — плотность вероятности.&lt;br /&gt;&lt;br /&gt;Плотность вероятности — это функция, интеграл интервала которой дает нам вероятность попадания в этот интервал. Или, в простейшем случае, если мы рассматриваем ее эмпирическую оценку в виде гистограммы распределения, это будет просто частота попадания в набор фиксированных интервалов. &lt;br /&gt;Для примера рассмотрим гистограмму нормального распределения.&lt;br /&gt;&lt;div align="center"&gt;&lt;a href='https://stocksharp.ru/file/101834/img1.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="https://stocksharp.ru/file/101834/img1.png?size=800x800" alt=""/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Собственно, что мы видим — это разбиение на набор фиксированных интервалов, затем подсчет попадания каждого значения в тот или иной интервал, который дает частоту. Если мы хотим посчитать частоту попадания в бОльший интервал (например от 0 до 2), то нам необходимо сложить(проинтегрировать) частоту попадания во все маленькие интервалы внутри этого отрезка [0, 2]. Таким образом плотность вероятности дает возможность, зная интервал, получить вероятность попадания в него. Или, если рассматривать на более &amp;#171;интуитивном&amp;#187; уровне, — показывает, какие значения выпадают более часто, а какие менее. В приведенном примере наиболее часто выпадают значения вокруг нуля распределения, а затем оно постепенно спадает. &lt;br /&gt;&lt;br /&gt;Если мы рассмотрим распределение как набор значений, расположенных во времени (привычные для трейдинга представления в виде графиков числовых рядов), то получим для все того же нормального (гауссового) распределения следующую картинку:&lt;br /&gt;&lt;div align="center"&gt;&lt;a href='https://stocksharp.ru/file/101835/img2.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="https://stocksharp.ru/file/101835/img2.png?size=800x800" alt=""/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Как и ожидалось из гистограммы распределения, 95% значений находятся внутри интервала от -2 до +2 с центром в 0. &lt;br /&gt;&lt;br /&gt;Каждый наверняка видел график случайного блуждания, а этот на него мало похож. Разница в том, что для того чтобы получить случайное блуждание, необходимо последовательно сложить эти значения. Или, наоборот, чтобы получить из случайного блуждания распределение приращений, необходимо взять разность соседних значений.&lt;br /&gt;&lt;br /&gt;Таким образом, мы подходим к первой простейшей модели тренда. Рассмотрим такое распределение приращений: &lt;br /&gt;&lt;div align="center"&gt;&lt;a href='https://stocksharp.ru/file/101836/img3.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="https://stocksharp.ru/file/101836/img3.png?size=800x800" alt=""/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;На глаз оно практически не отличается от предыдущего, но среднее (центр) значение сдвинуто на +0.1. Теперь просуммируем значения распределений для первого случая с нулевым и положительным (+0.1) смещением среднего. Так мы получим два графика случайных блужданий. &lt;br /&gt;&lt;br /&gt;Первый график (без смещения в мат. ожидании приращений):&lt;br /&gt;&lt;div align="center"&gt;&lt;a href='https://stocksharp.ru/file/101837/img4.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="https://stocksharp.ru/file/101837/img4.png?size=800x800" alt=""/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;И второй график (с &amp;#171;ничтожным&amp;#187;,ели различимым на графике распределения приращений, смещением +0.1):&lt;br /&gt;&lt;div align="center"&gt;&lt;a href='https://stocksharp.ru/file/101838/img5.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="https://stocksharp.ru/file/101838/img5.png?size=800x800" alt=""/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Разница разительная, но на первом графике заработать не возможно, а на втором — вполне. &lt;br /&gt;&lt;br /&gt;В данном случае мы рассматриваем зависимость (смещение в мат. ожидании), которая не изменяется во времени, то есть стационарна, и равняется 0 для всего графика, или +0.1 — другого. Теперь представим, что эти значения сами изменяются во времени и представляют, например, кусочно-постоянную функцию, т.е. набор констант, из которого мы выбираем значение, действующее на каком-то интервале. Соответственно, если это значение положительное, возникает &amp;#171;растущий кусок тренда&amp;#187;, если отрицательное — &amp;#171;падающий&amp;#187;. А сам график &amp;#171;сшит&amp;#187; из таких интервалов с постоянными значениями. Таким образом мы получим приближенную к реальности простейшую динамическую модель тренда, у которой стационарное среднее приращений равняется 0, но при этом существуют интервалы, на которых оно отклоняется от 0 как в положительную, так и отрицательную сторону. При этом в среднем количество таких участков &amp;#171;уравновешивается&amp;#187;, и мы получаем среднее всех приращений близким к 0.&lt;br /&gt;&lt;br /&gt;Или если мы будем рассматривать среднее как функцию времени, то для кусочно-постоянной модели получим следующую картинку:&lt;br /&gt;&lt;div align="center"&gt;&lt;a href='https://stocksharp.ru/file/101839/img6.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="https://stocksharp.ru/file/101839/img6.png?size=800x800" alt=""/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Или ввиде формулы: P_i+1 = P_i + A_k + N(0, 1) , где&lt;br /&gt;A_k — это значение среднего на данном временном интервале (t_k, t_k+1),&lt;br /&gt;N(0, 1) — стандартизированное нормальное распределение,&lt;br /&gt;Pi — это получившийся стохастический процесс. &lt;br /&gt;&lt;br /&gt;Для примера рассмотрим реализацию такого стохастического процесса, при t_k = (0, 100, 200, 400, 450, 600, 650) и A_k = (+0.1, -0.1, +0.05, +0.15, -0.2, -0.05), что примерно соответствует представленному выше графику зависимости от времени. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Первая реализация:&lt;/b&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;a href='https://stocksharp.ru/file/101840/img7.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="https://stocksharp.ru/file/101840/img7.png?size=800x800" alt=""/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Вторая реализация:&lt;/b&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;a href='https://stocksharp.ru/file/101841/img8.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="https://stocksharp.ru/file/101841/img8.png?size=800x800" alt=""/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Как видно, они мало похожи и в них гораздо менее очевидно наличие трендов по сравненинию с простейшим стационарным случаем, но, тем не менее, они там присутствуют, а значит на таком процессе возможно заработать.&lt;br /&gt;&lt;br /&gt;В следующей статье мы поговорим о еще одной модели тренда, которая связана с персистентностью. Точнее, мы будем понимать под персистентностью авто-регрессивность числового ряда.</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/349/</id>
    <title type="text">Статистические модели трендов. Авторегрессивность.</title>
    <published>2012-04-03T14:11:32Z</published>
    <updated>2012-12-17T14:41:04Z</updated>
    <author>
      <name>vlad1024</name>
      <uri>https://stocksharp.ru/users/768/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Алготрейдинг" />
    <category term="Статьи" />
    <content type="html">В чем состоит смысл понятия авторегрессивности / автокорреляции / персистентности? &lt;br /&gt;Расмотрим простейший процесс, в котором последующие приращения зависят от предыдущего. Обозначим приращение в момент времени t — X_t, в момент времени t + 1 — X_t+1. Соответственно, мы хотим, чтобы приращение в момент времени t+1 каким-то образом зависело от предыдущего t. Если выразить такую зависимость качественно, то у нас есть два варианта.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Первый вариант&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Мы предполагаем, что положительное приращение X_t должно увеличивать вероятность положительного приращения в следующий момент времени X_t+1 и аналогично для отрицательного. Проще говоря, Х_t и X_t+1 положительно скоррелированны. Такая модель является &amp;#171;трендовой, персистентной&amp;#187;, то есть покупая/продавая то, что растет/падает, мы смещаем вероятность выигрыша в свою сторону.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Второй вариант&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Мы предполагаем, что положительные приращения X_t должны увеличивать вероятность отрицательных в момент времени X_t+1, а отрицательные приращения — положительных. То есть X_t и X_t+1 отрицательно скоррелированны. Такая моделья является &amp;#171;контр трендовой, анти-персистентной&amp;#187;, то есть продавая то, что выросло и покупая то, что упало, мы получаем статистическое преимущество. &lt;br /&gt;&lt;br /&gt;Соответственно, если закодировать эти наблюдения в виде общей формулы мы получим:&lt;br /&gt;&lt;br /&gt;X_t+1 = C + A*X_t + W_t, где&lt;br /&gt;С — это смещение мат. ожидания,&lt;br /&gt;A — коэффициент авторегрессии,&lt;br /&gt;W — белый (к примеру, гаусовский) шум.&lt;br /&gt;&lt;br /&gt;Для простоты предположим, что C = 0; тогда при A &amp;gt; 0 получим первый вариант из расмотренных выше, а при A &amp;lt; 0 — второй. При A = 1 получаем случайное блуждание. Если A по модулю &amp;gt; 1, модель теряет устойчивость, что характеризуется взрывным (экспоненциальным) ростом/падением или расширяющимися колебаниями с экспоненциальным ростом амплитуды. &lt;br /&gt;Если еще больше расширить модель, то в общем случае она может зависеть от нескольких значений в предыдущей истории, то есть зависимость будет иметь вид:&lt;br /&gt;X_t+1 = C + A1*X_t + A2*X_t-1 + A3*X_t-2 +… + Ai*X_t-i-1,&lt;br /&gt;но мы ограничимся рассмотрением случая с единичным лагом и C=0 как наиболее характерного.&lt;br /&gt;&lt;br /&gt;Теперь рассмотрим, как этот простейший пример будет выглядеть. Для этого возьмем исходный гауссовский шум:&lt;br /&gt;&lt;div align="center"&gt;&lt;a href='https://stocksharp.ru/file/101842/img1.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="https://stocksharp.ru/file/101842/img1.png?size=800x800" alt=""/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt; &lt;br /&gt;И применим к нему нашу AR(1) (авторегрессивность с 1 лагом) модель с С=0 и с различными значениями A. При A=0.9 получим следующее (сверху — результат авторегрессивной модели приращений, снизу — интеграл этих приращений + аддативный шум, то есть приближение к случайному блужданию рыночной модели):&lt;br /&gt;&lt;div align="center"&gt;&lt;a href='https://stocksharp.ru/file/101843/img2.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="https://stocksharp.ru/file/101843/img2.png?size=800x800" alt=""/&gt;&lt;/a&gt; &lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Та же самая модель при A=0.15:&lt;br /&gt;&lt;div align="center"&gt;&lt;a href='https://stocksharp.ru/file/101844/img3.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="https://stocksharp.ru/file/101844/img3.png?size=800x800" alt=""/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Зависимость слабая, но несмотря на это, хорошо видно, как возникают локально-трендовые участки на графике.&lt;br /&gt;&lt;br /&gt;Так жеесли мы построим облако точек, где по оси X — приращение X_t, а по Y — приращение X_t-1, эта зависимость будет отчетливо видна:&lt;br /&gt;&lt;div align="center"&gt;&lt;a href='https://stocksharp.ru/file/101845/img4.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="https://stocksharp.ru/file/101845/img4.png?size=800x800" alt=""/&gt;&lt;/a&gt; &lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Теперь переходим к оставшейся части. Очевидно, что стационарных зависимостей на рынке нет, поэтому автокорреляционная функция приращений имеет тривиальный вид. Из этого следует, что такие зависимости могут быть описаны лишь, в лучшем случае, нестационарными моделями, то есть такими, в которых вид этой локальной зависимости не остается постоянным, а изменяется время от времени. Аналогично введенной в предыдущем посте &lt;a href="http://stocksharp.com/algo/article.aspx?aid=14" title="http://stocksharp.com/algo/article.aspx?aid=14"&gt;&amp;#171;Статистические модели трендов. Смещение среднего&amp;#187;&lt;/a&gt;, мы можем ввести кусочно-постоянную функцию, но на этот раз она будет описывать не смещение среднего, а значение коэффициента регрессии A. Таким образом можно получить участки, на которых авторегрессия носит локально-трендовый характер (A&amp;gt;0), на других — локально-контртрендовый (A&amp;lt;0), чтобы в конечном итоге удовлетворить наше условие тривиальности АКФ.</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/347/</id>
    <title type="text">Основы статистического арбитража. Коинтеграция.</title>
    <published>2012-04-25T22:36:43Z</published>
    <updated>2012-12-17T14:40:50Z</updated>
    <author>
      <name>vlad1024</name>
      <uri>https://stocksharp.ru/users/768/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Алготрейдинг" />
    <category term="Статьи" />
    <content type="html">Собственно, понятие коинтеграции лежало в основе статистического арбитража, который только начал появляться в конце 80-х и позволил первопроходцам из JP Morgan нарубить не мало денег, пока ... Но об этом в конце статьи. Поэтому в этот раз мы поговорим про коинтеграцию: что это такое, зачем и почему. Но начнем издалека и рассмотрим такие статистические понятия как порядок интеграции процесса и фиктивной (spurios) регрессии, которые и лежат в основе. &lt;br /&gt;&lt;br /&gt;Рассмотрим для начала простейший процесс - гауссовский шум:&lt;br /&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;a href='https://stocksharp.ru/file/101883/1.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="https://stocksharp.ru/file/101883/1.png?size=800x800" alt=""/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Теперь построим его кумулятивную сумму, то есть возьмем значения и последовательно их сложим. Таким образом получим, что Y_i = sum k = 0..i X_k, где X_k - это исходный гаусовский шум, Y_i - результирующий процесс. То есть в данном случае мы взяли шум и его проинтегрировали, получив случайное блуждание. Так же мы можем повторить данный процесс, но на этот раз, взяв в качестве исходных значений полученное нами на предыдущем шаге случайное блуждание. Результат представлен на рисунке (сверху - интеграл шума, случайное блуждание, снизу - повторная сумма, но на этот раз, взятая по случайному блужданию):&lt;br /&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;a href='https://stocksharp.ru/file/101884/2.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="https://stocksharp.ru/file/101884/2.png?size=800x800" alt=""/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Проще говоря, мы проделали следующее: мы взяли числовой ряд шума и применили к нему операцию кумулятивной суммы (интегрирования). После первого применения мы, очевидно, получили случайное блуждание, а после последующего применения получили еще один числовой ряд. Чтобы опять вернуться к шуму, нам так же дважды необходимо применить операцию конечной разности к этому числовому ряду (или один раз к случайному блужданию). Тогда количество раз применения операции кумулятивной суммы мы можем назвать порядком интеграции процесса (числового ряда). То есть порядок интеграции процесса - это то, сколько раз мы применили сумму к шуму или, наоборот, сколько раз необходимо применить конечную разность к  процессу, чтобы получить шум (гауссово распределенную случайную переменную). В общем случае, шум заменяется на требование получения стационарного процесса (то есть числового ряда у которого мат. ожидание и АКФ не изменяются во времени). Процесс с порядком интеграции k мы будем обозначать как I(k).&lt;br /&gt;&lt;br /&gt;К примеру, график цены можно отнести к I(1) процессу (случайному блужданию). Если мы возьмем приращение, то есть разницу Close-Open свечек, то получим процесс с порядком интеграции I(0). Если рассмотрим какие-то экономические индикаторы, к примеру, ВВП или объем различных агрегатов денежной массы, то получим процессы, близкие к I(2).&lt;br /&gt;&lt;br /&gt;Широко известны случаи, когда между абсолютно не связанными числовыми рядами находилась корреляция: к примеру, между уровнем цен и уровнем осадков в Великобритании, или поголовьем овец и GDP. Все это - примеры фиктивной регрессии (spurious regression). Рассмотрим для примера два независимых случайных блуждания:&lt;br /&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;a href='https://stocksharp.ru/file/101885/3.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="https://stocksharp.ru/file/101885/3.png?size=800x800" alt=""/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Коэффициент корреляции между ними равен 0.35, хотя они и не взаимосвязаны. Вспомним, что корреляция связана с линейной регрессией, и рассмотрим взаимный график первого и второго процесса (по оси x - отложен первый процесс, по оси y - второй):&lt;br /&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;a href='https://stocksharp.ru/file/101886/4.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="https://stocksharp.ru/file/101886/4.png?size=800x800" alt=""/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Фактически, расчет обычной корреляции сводится к следующему:&lt;/b&gt; мы считаем, какой процент времени два процесса находятся совместно по одну (или разную, если корреляция отрицательная) сторону от нуля. Но, как известно, для случайного блуждания вероятность нахождения по одну сторону от нуля подчиняется закону арксинуса, соответственно, когда мы пытаемся посчитать корреляцию между двумя случайными блужданиями, вероятность, что они чисто случайно ушли от нуля в одну сторону, значительно больше нуля. Таким образом, коэффициент корреляции начинает нам показывать невалидную взаимосвязь между двумя процессами, которой на самом деле нет.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Каким же образом нам посчитать взаимосвязь между двумя процессами?&lt;/b&gt; Для начала дадим простой ответ на этот вопрос. В общем случае, коэффициент корреляции валиден, если два числовых ряда, для которых он расчитывается, являются независимо распределенными случайными переменными (белым шумом, который мы рассматривали в начале статьи), или по крайней мере стационарными процессами. Таким образом, оба числовых ряда должны быть нулевого порядка интеграции (I(0) - белый шум/стационарный процесс). То есть чтобы, к примеру, посчитать взаимосвязь между двумя акциями(I(1) процессами), необходимо взять разность (Close - Open) и рассчитать корреляцию между ними. Если мы рассматриваем денежную массу/GDP или другие процессы, близкие к I(2), конечную разность необходимо брать два раза, чтобы привести их общему знаменателю I(0) процесса.&lt;br /&gt;&lt;br /&gt;Минусы данного подхода заключаются в том, что для коротких числовых рядов расчет корреляции после взятия конечных разностей может не давать достаточной статистической значимости, а так же в том, что сама выявляемая взаимосвязь между двумя процесса достаточно примитивна.&lt;br /&gt;&lt;br /&gt;Более сложный ответ на вопрос &amp;quot;&lt;b&gt;Как посчитать взаимосвязь между двумя процессами?&lt;/b&gt;&amp;quot;, привел Клайв Грэнджер и сотоварищи, который к Нобелевской премии революционизировал статистический анализ/эконометрику, и название этому - коинтеграция. &lt;br /&gt;&lt;br /&gt;Рассмотрим все те же два случайных блуждания Y1 и Y2 (I(1) процесса). Теперь подумаем над тем, как будет вести себя разность между ними S = Y1 - b*Y2 (где b - некий коэффициент; для простоты возьмем 1). Если процессы не взаимосвязаны, то эта разность S так же должна быть случайным блужданием, то есть I(1) процессом. Если же взаимосвязь есть, то S должна быть &amp;quot;чем-то меньшим&amp;quot; в статистическом смысле, чем случайное блуждание. К примеру, если мы представим два числовых ряда, которые недалеко отходят друг от друга, то разница между ними будет белым шумом. В этом и заключается смысл коинтеграции: если для какого-то коэффициента b спред S = Y1 - b*Y2 будет иметь меньший порядок интеграции, чем исходные процессы, то такие процессы коинтегрированы. В рассмотренном выше случае это будет обозначать, что для двух I(1) процессов, порядок интеграции спреда S должен быть I(0) (то есть белым шумом/стационарным) для какого-то значения коэффициента b. &lt;br /&gt;&lt;br /&gt;Рассмотрим также для примера разность двух случайных блужданий, для которых мы ранее насчитали корреляцию, равную 0.35. Получим такое же случайное блуждание:&lt;br /&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;a href='https://stocksharp.ru/file/101887/5.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="https://stocksharp.ru/file/101887/5.png?size=800x800" alt=""/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Теперь рассмотрим два случайных блуждания, но на этот раз взаимосвязанные, и разницу между ними, которая в данном случае, очевидно, является стационарным I(0) процессом (сверху - первое случайное блуждание, посередине - второе, снизу - разница/спред между ними):&lt;br /&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;a href='https://stocksharp.ru/file/101888/6.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="https://stocksharp.ru/file/101888/6.png?size=800x800" alt=""/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;То есть &lt;b&gt;логика коинтеграции&lt;/b&gt; сводится к тому, что необходимо найти какой-то коэффициент b и построить спред S = Y1 - b*Y2 такой, что порядок интеграции спреда меньше, чем у исходных процессов. Если мы рассматриваем два I(1) процесса, то спред должен быть стационарен.&lt;br /&gt;&lt;br /&gt;Также в качестве примера коинтеграции часто приводят такой жизненный пример: представим пьяницу (случайное блуждание) и собаку, которую он ведет по улице на поводке. Теперь представим их позицию как два числовых ряда. Получаем следующее: один процесс движется случайно (пьяница), а другой (собака), хотя и может убегать от него в ту или иную сторону, не может убегать от него далеко и всегда возвращается. Соответственно, если мы построим разницу между ними, она будет иметь меньший порядок интеграции, чем два совершенно несвязанных случайных блуждания (пьяницы, блуждающие независимо по городу).&lt;br /&gt;&lt;br /&gt;Хорошо. &lt;b&gt;Предположим, мы знаем, что два процесса коинтегрированы. Но что нам это дает, какую математическую модель можно использовать, чтобы отразить их динамику?&lt;/b&gt; Существует теорема о репрезентации коинтеграции, которая говорит нам, что для двух коинтегрированных числовых рядов существует ECM-модель (error correction model), а так же наоборот - если для двух рядов существует ECM-модель, то они коинтегрированы. Проще говоря, коинтеграция &amp;lt;-&amp;gt; ECM-модель, то есть существование коинтеграции влечет наличие ECM-модели, и наоборот. В простейшем случае, она описывает следующие соотношения: предположим, что мы построили спред S между двумя рядами. Тогда каждый процесс будет стараться вернуть спред к нулю, то есть приращения процессов должны быть скоррелированы с положением спреда. Таким образом, мы приходим к модели: для двух рядов Y1 и Y2 мы строим спред S = Y1 - b*Y2 и разности каждого из них - dY1, dY2. Чтобы спрэд не &amp;quot;уходил далеко&amp;quot;, разности процессов должны быть с ним скоррелированы. Необходимо постоянно подстраиваться, как в примере с пьяницей и собакой - там действует по сути один процесс - &amp;quot;пьяница&amp;quot;, а собака к нему привязана. В общем случае, мы рассматриваем двух пьяниц, но связанных резинкой. Когда спред расходится, начинают действовать силы, возвращающие его к равновесию. Таким образом, мы приходим к следующей модели корректирвки ошибок (ECM-модели):&lt;br /&gt;dY1 = -a1*S + lagged(dY1, dY2)&lt;br /&gt;dY2 = -a2*S + lagged(dY1, dY2)&lt;br /&gt;То есть наличие коинтеграции одназначно обозначает скоррелированность приращений процессов и спреда. Если спред расходится (например, становится положительным), то приращения одного процесса, обратно скоррелированного с ним, возвращают его к нулю, так же как и приращения другого. В этом заключается смысл ECM-модели и коинтеграции, поскольку наличие ECM-модели эквивалентно коинтеграции и наоборот. Коинтеграция показывает, что какая-то зависимость между числовыми рядами есть; ECМ-модель дает конкретное выражение этой зависимости в виде их динамики. &lt;br /&gt;&lt;br /&gt;В общем случае, коинтеграционной зависимостью могут быть связаны более двух переменных, при чем таких зависемостей между ними может быть несколько, что приводит нас к VECM-модели (vector error correction model) - тягловой лошадке современной эконометрики.&lt;br /&gt;&lt;br /&gt;Единственный вопрос, который мы пока не затронули, это - &lt;b&gt;каким образом строить спрэд (то есть числовой ряд S)?&lt;/b&gt; Если нам дан набор числовых рядов Y1..Yn, между которыми присутствует единственная коинтеграционая зависимость, то для оценки параметров b1-bn спреда вида S = Y1 - b1*Y1 - b2*Y2.. - bn*Yn достаточно построить линейную регрессию между Y1 ~ Y2..Yn, коэффициенты которой (как доказывается в мат. статистике) дадут консистентную оценку параметров b1..bn. Если процессов всего лишь два, необходимо той же простейшей линейной регрессией Y1 ~ b*Y2 определить значение коэффициента.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Почему коинтеграция так важна?&lt;/b&gt; Потому что подавляющее большинство макроэкономических переменных/индикаторов нестационарны и, следовательно, трудно поддаются анализу классическими статистическими методами, но в тоже время имеют очевидную схожесть между собой (не разбегаются далеко, как в примере с пьяницей и собакой) и поэтому могут быть валидно описаны при помощи коинтеграции и соответствующих моделей (VECM и т.п.). &lt;br /&gt;&lt;br /&gt;Но, применительно к рынку, наличие настоящей коинтеграции означает наличие абитража, что противоречит базовому постулату эффективных рынков - no arbitrage. Настоящий спред для коинтегрированных процессов всегда (!) сходится, так как является стационарным I(0) процессом. Также для двух коинтегрированных процессов всегда должна существовать ECM-модель(то есть приращения активов должны быть обратно скоррелированны со спредом, возвращая его к нулю). Для рыночных спредов не наблюдается ни того ни другого, поэтому, хотя они и ограничены и могут проходить тесты на коинтеграцию, у них есть главное отличие - рыночные спреды не стационарны.</content>
  </entry>
</feed>