<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:yandex="http://news.yandex.ru" xmlns:media="http://search.yahoo.com/mrss/" xmlns:turbo="http://turbo.yandex.ru" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:georss="http://www.georss.org/georss" >
  <channel>
    <title>Jupyter on b4tman.ru</title>
    <link>https://blog.b4tman.ru/tags/jupyter/</link>
    <guid>https://blog.b4tman.ru/tags/jupyter/</guid>
    <description>Recent content in Jupyter on b4tman.ru</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>ru</language>
    <turbo:analytics type="Yandex" id="48214757"></turbo:analytics>
	<managingEditor>mail@b4tman.ru (Dmitry Belyaev)</managingEditor>
    <webMaster>mail@b4tman.ru (Dmitry Belyaev)</webMaster>
    <lastBuildDate>Thu, 12 Nov 2020 00:00:00 +0000</lastBuildDate>
    
	<atom:link href="https://blog.b4tman.ru/tags/jupyter/index.xml" rel="self" type="application/rss+xml" />
    
    
    <item turbo="true">
      <title>Анализ корреляций биржевых колебаний</title>
      <link>https://blog.b4tman.ru/post/2020-11-13-pandas-stoks/</link>
      <category>native-yes</category>
      <pubDate>Thu, 12 Nov 2020 00:00:00 +0000</pubDate>
      <author>mail@b4tman.ru</author>
      <guid>https://blog.b4tman.ru/post/2020-11-13-pandas-stoks/</guid>
      <description>&lt;p&gt;Поэкспирементировал в Jupyter Lab и нарисовал несколько графиков на тему корреляции колебаний курса ETF и акций.&lt;/p&gt;</description>
	  <turbo:source>https://blog.b4tman.ru/post/2020-11-13-pandas-stoks/</turbo:source>
      <turbo:topic>Анализ корреляций биржевых колебаний</turbo:topic>
	  <turbo:content><![CDATA[
            <header><h1>Анализ корреляций биржевых колебаний</h1></header>
			<p>Поэкспирементировал в Jupyter Lab и нарисовал несколько графиков на тему корреляции колебаний курса ETF и акций.</p>
<p>Ставим зависимости, если надо.</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="c1"># !conda install snappy python-snappy pyarrow fastparquet </span>
</span></span><span class="line"><span class="cl"><span class="c1"># !pip install pandas_datareader</span>
</span></span></code></pre></div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"></code></pre></div><p>Настраиваем графики и импортируем библиотеки.</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="o">%</span><span class="n">matplotlib</span> <span class="n">inline</span> 
</span></span><span class="line"><span class="cl"><span class="o">%</span><span class="n">config</span> <span class="n">InlineBackend</span><span class="o">.</span><span class="n">figure_format</span> <span class="o">=</span> <span class="s1">&#39;svg&#39;</span> <span class="c1">#векторный формат</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="kn">from</span> <span class="nn">matplotlib</span> <span class="kn">import</span> <span class="n">pyplot</span> <span class="k">as</span> <span class="n">plt</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="n">plt</span><span class="o">.</span><span class="n">style</span><span class="o">.</span><span class="n">use</span><span class="p">(</span><span class="s1">&#39;ggplot&#39;</span><span class="p">)</span>  <span class="c1"># Красивые графики</span>
</span></span><span class="line"><span class="cl"><span class="n">plt</span><span class="o">.</span><span class="n">rcParams</span><span class="p">[</span><span class="s1">&#39;figure.figsize&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="p">(</span><span class="mi">12</span><span class="p">,</span> <span class="mi">5</span><span class="p">)</span>  <span class="c1"># Размер картинок</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">pandas</span> <span class="k">as</span> <span class="nn">pd</span>
</span></span><span class="line"><span class="cl"><span class="kn">from</span> <span class="nn">datetime</span> <span class="kn">import</span> <span class="n">timedelta</span>
</span></span><span class="line"><span class="cl"><span class="kn">from</span> <span class="nn">datetime</span> <span class="kn">import</span> <span class="n">datetime</span>
</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">math</span>
</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">os</span>
</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">pandas_datareader.data</span> <span class="k">as</span> <span class="nn">web</span>
</span></span></code></pre></div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"></code></pre></div><p>Скачиваем информацию через API биржи в локальный каталог.</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="n">tikers</span> <span class="o">=</span> <span class="s1">&#39;SBER,AFKS,GAZP,MAIL,YNDX,FXUS,FXIT,FXCN,FXDE,FXWO,FXRW&#39;</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;,&#39;</span><span class="p">)</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="k">def</span> <span class="nf">download_data</span><span class="p">(</span><span class="n">tiker</span><span class="p">,</span> <span class="n">path</span><span class="p">):</span>
</span></span><span class="line"><span class="cl">    <span class="n">filepath</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="sa">f</span><span class="s1">&#39;</span><span class="si">{</span><span class="n">tiker</span><span class="si">}</span><span class="s1">_2020.parquet&#39;</span><span class="p">)</span>
</span></span><span class="line"><span class="cl">    <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">filepath</span><span class="p">):</span>
</span></span><span class="line"><span class="cl">        <span class="k">return</span>
</span></span><span class="line"><span class="cl">    <span class="n">df</span> <span class="o">=</span> <span class="n">web</span><span class="o">.</span><span class="n">DataReader</span><span class="p">(</span><span class="n">tiker</span><span class="p">,</span> <span class="s1">&#39;moex&#39;</span><span class="p">,</span> <span class="n">start</span><span class="o">=</span><span class="s1">&#39;2020-01-01&#39;</span><span class="p">,</span> <span class="n">end</span><span class="o">=</span><span class="s1">&#39;2020-11-12&#39;</span><span class="p">)</span>
</span></span><span class="line"><span class="cl">    <span class="n">df</span><span class="o">.</span><span class="n">to_parquet</span><span class="p">(</span><span class="n">filepath</span><span class="p">,</span> <span class="n">engine</span><span class="o">=</span><span class="s1">&#39;fastparquet&#39;</span><span class="p">)</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="k">for</span> <span class="n">tiker</span> <span class="ow">in</span> <span class="n">tikers</span><span class="p">:</span>
</span></span><span class="line"><span class="cl">    <span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s1">&#39;downloading: </span><span class="si">{</span><span class="n">tiker</span><span class="si">}</span><span class="s1">&#39;</span><span class="p">)</span>
</span></span><span class="line"><span class="cl">    <span class="n">download_data</span><span class="p">(</span><span class="n">tiker</span><span class="p">,</span> <span class="s2">&#34;D:</span><span class="se">\\</span><span class="s2">data2</span><span class="se">\\</span><span class="s2">Documents</span><span class="se">\\</span><span class="s2">notebooks&#34;</span><span class="p">)</span>
</span></span></code></pre></div><pre><code>downloading: SBER
downloading: AFKS
downloading: GAZP
downloading: MAIL
downloading: YNDX
downloading: FXUS
downloading: FXIT
downloading: FXCN
downloading: FXDE
downloading: FXWO
downloading: FXRW
</code></pre>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"></code></pre></div><p>Загружаем кешированные на диске данные.</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="k">def</span> <span class="nf">load_data</span><span class="p">(</span><span class="n">tiker</span><span class="p">,</span> <span class="n">path</span><span class="p">):</span>
</span></span><span class="line"><span class="cl">    <span class="n">result</span> <span class="o">=</span> <span class="kc">None</span>
</span></span><span class="line"><span class="cl">    <span class="n">filepath</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="sa">f</span><span class="s1">&#39;</span><span class="si">{</span><span class="n">tiker</span><span class="si">}</span><span class="s1">_2020.parquet&#39;</span><span class="p">)</span>
</span></span><span class="line"><span class="cl">    <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">filepath</span><span class="p">):</span>
</span></span><span class="line"><span class="cl">        <span class="n">result</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">read_parquet</span><span class="p">(</span><span class="n">filepath</span><span class="p">)</span>
</span></span><span class="line"><span class="cl">    <span class="k">return</span> <span class="n">result</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="n">dfs</span> <span class="o">=</span> <span class="p">{}</span>
</span></span><span class="line"><span class="cl"><span class="k">for</span> <span class="n">tiker</span> <span class="ow">in</span> <span class="n">tikers</span><span class="p">:</span>
</span></span><span class="line"><span class="cl">    <span class="n">dfs</span><span class="p">[</span><span class="n">tiker</span><span class="p">]</span> <span class="o">=</span> <span class="n">load_data</span><span class="p">(</span><span class="n">tiker</span><span class="p">,</span> <span class="s2">&#34;D:</span><span class="se">\\</span><span class="s2">data2</span><span class="se">\\</span><span class="s2">Documents</span><span class="se">\\</span><span class="s2">notebooks&#34;</span><span class="p">)</span>
</span></span></code></pre></div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"></code></pre></div><p>Значения полей <code>BOARDID</code> (режимы торгов) у акций и ETF разные. Для акций берём <code>TQBR</code> а для фондов <code>TQTF</code>.</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="n">dfs</span><span class="p">[</span><span class="s1">&#39;FXIT&#39;</span><span class="p">][</span><span class="s1">&#39;BOARDID&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">unique</span><span class="p">(),</span> <span class="n">dfs</span><span class="p">[</span><span class="s1">&#39;YNDX&#39;</span><span class="p">][</span><span class="s1">&#39;BOARDID&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">unique</span><span class="p">()</span>
</span></span></code></pre></div><pre><code>(array(['TQTD', 'TQTF', 'SOTC', 'RPMO', 'PSRP', 'PSTF', 'PTTF'],
       dtype=object),
 array(['TQBR', 'SPEQ', 'SOTC', 'RPMO', 'RPEU', 'RPEO', 'MXBD', 'EQRP',
        'PSRP', 'EQRD', 'LIQR', 'PSRD', 'PSRE', 'PTEQ', 'PSEQ'],
       dtype=object))
</code></pre>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"></code></pre></div><p>Обрабатываем данные, чтобы убрать всё кроме нужного режима торгов, и интерполируем цену.</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="k">def</span> <span class="nf">price_data</span><span class="p">(</span><span class="n">x_df</span><span class="p">,</span> <span class="n">boardid</span><span class="o">=</span><span class="s1">&#39;TQBR&#39;</span><span class="p">):</span>   
</span></span><span class="line"><span class="cl">    <span class="n">xdf</span> <span class="o">=</span> <span class="n">x_df</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
</span></span><span class="line"><span class="cl">    <span class="n">xdf</span> <span class="o">=</span> <span class="n">xdf</span><span class="o">.</span><span class="n">where</span><span class="p">(</span><span class="n">xdf</span><span class="p">[</span><span class="s1">&#39;BOARDID&#39;</span><span class="p">]</span> <span class="o">==</span> <span class="n">boardid</span><span class="p">)</span>
</span></span><span class="line"><span class="cl">    <span class="n">xdf</span><span class="o">.</span><span class="n">dropna</span><span class="p">(</span><span class="n">axis</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">how</span><span class="o">=</span><span class="s1">&#39;all&#39;</span><span class="p">,</span> <span class="n">inplace</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
</span></span><span class="line"><span class="cl">    <span class="n">xdf</span><span class="o">.</span><span class="n">dropna</span><span class="p">(</span><span class="n">axis</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">how</span><span class="o">=</span><span class="s1">&#39;all&#39;</span><span class="p">,</span> <span class="n">inplace</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
</span></span><span class="line"><span class="cl">    <span class="k">if</span> <span class="mi">0</span> <span class="o">==</span> <span class="n">xdf</span><span class="o">.</span><span class="n">size</span><span class="p">:</span>
</span></span><span class="line"><span class="cl">        <span class="k">return</span> <span class="n">xdf</span>
</span></span><span class="line"><span class="cl">    <span class="n">xdf</span><span class="p">[</span><span class="s1">&#39;OPEN&#39;</span><span class="p">]</span>    <span class="o">=</span> <span class="n">xdf</span><span class="p">[</span><span class="s1">&#39;OPEN&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">interpolate</span><span class="p">(</span><span class="n">method</span><span class="o">=</span><span class="s1">&#39;polynomial&#39;</span><span class="p">,</span> <span class="n">order</span><span class="o">=</span><span class="mi">2</span><span class="p">);</span>
</span></span><span class="line"><span class="cl">    <span class="n">xdf</span><span class="p">[</span><span class="s1">&#39;CLOSE&#39;</span><span class="p">]</span>   <span class="o">=</span> <span class="n">xdf</span><span class="p">[</span><span class="s1">&#39;CLOSE&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">interpolate</span><span class="p">(</span><span class="n">method</span><span class="o">=</span><span class="s1">&#39;polynomial&#39;</span><span class="p">,</span> <span class="n">order</span><span class="o">=</span><span class="mi">2</span><span class="p">);</span>
</span></span><span class="line"><span class="cl">    <span class="n">xdf</span><span class="p">[</span><span class="s1">&#39;WAPRICE&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">xdf</span><span class="p">[</span><span class="s1">&#39;WAPRICE&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">interpolate</span><span class="p">(</span><span class="n">method</span><span class="o">=</span><span class="s1">&#39;polynomial&#39;</span><span class="p">,</span> <span class="n">order</span><span class="o">=</span><span class="mi">2</span><span class="p">);</span>
</span></span><span class="line"><span class="cl">    <span class="k">return</span> <span class="n">xdf</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># для простоты, считаем что если имя начинается на FX то это ETF</span>
</span></span><span class="line"><span class="cl"><span class="k">for</span> <span class="n">tiker</span> <span class="ow">in</span> <span class="n">tikers</span><span class="p">:</span>
</span></span><span class="line"><span class="cl">    <span class="n">dfs</span><span class="p">[</span><span class="n">tiker</span><span class="p">]</span> <span class="o">=</span> <span class="n">price_data</span><span class="p">(</span><span class="n">dfs</span><span class="p">[</span><span class="n">tiker</span><span class="p">],</span> <span class="n">boardid</span><span class="o">=</span><span class="s1">&#39;TQTF&#39;</span> <span class="k">if</span> <span class="s1">&#39;FX&#39;</span> <span class="ow">in</span> <span class="n">tiker</span> <span class="k">else</span> <span class="s1">&#39;TQBR&#39;</span><span class="p">)</span>
</span></span></code></pre></div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"></code></pre></div><p>Нормализуем графики с помомщью отношения средневзвешеной (по объёму торгов) цены <code>WAPRICE</code> и медианой этого показателя.
Затем соединяем таблицы и строим графики.</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="c1"># WAPRICE/median</span>
</span></span><span class="line"><span class="cl"><span class="k">def</span> <span class="nf">calc_wdm</span><span class="p">(</span><span class="n">df</span><span class="p">):</span>
</span></span><span class="line"><span class="cl">    <span class="k">return</span> <span class="n">df</span><span class="p">[</span><span class="s1">&#39;WAPRICE&#39;</span><span class="p">]</span> <span class="o">/</span> <span class="n">df</span><span class="p">[</span><span class="s1">&#39;WAPRICE&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">median</span><span class="p">()</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="k">for</span> <span class="n">tiker</span> <span class="ow">in</span> <span class="n">tikers</span><span class="p">:</span>
</span></span><span class="line"><span class="cl">    <span class="n">dfs</span><span class="p">[</span><span class="n">tiker</span><span class="p">][</span><span class="n">tiker</span><span class="p">]</span> <span class="o">=</span> <span class="n">calc_wdm</span><span class="p">(</span><span class="n">dfs</span><span class="p">[</span><span class="n">tiker</span><span class="p">])</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="n">df_base</span> <span class="o">=</span> <span class="n">dfs</span><span class="p">[</span><span class="s1">&#39;FXIT&#39;</span><span class="p">][[]]</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="k">def</span> <span class="nf">merge_dfs</span><span class="p">(</span><span class="n">base</span><span class="p">):</span>
</span></span><span class="line"><span class="cl">    <span class="n">result</span> <span class="o">=</span> <span class="n">base</span>
</span></span><span class="line"><span class="cl">    <span class="k">for</span> <span class="n">tiker</span> <span class="ow">in</span> <span class="n">tikers</span><span class="p">:</span>
</span></span><span class="line"><span class="cl">        <span class="n">result</span> <span class="o">=</span> <span class="n">result</span><span class="o">.</span><span class="n">merge</span><span class="p">(</span><span class="n">dfs</span><span class="p">[</span><span class="n">tiker</span><span class="p">][[</span><span class="n">tiker</span><span class="p">]],</span> <span class="n">how</span><span class="o">=</span><span class="s1">&#39;outer&#39;</span><span class="p">,</span> <span class="n">on</span><span class="o">=</span><span class="s1">&#39;TRADEDATE&#39;</span><span class="p">)</span>
</span></span><span class="line"><span class="cl">    <span class="k">return</span> <span class="n">result</span>
</span></span><span class="line"><span class="cl">        
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="n">xxdf</span> <span class="o">=</span> <span class="n">merge_dfs</span><span class="p">(</span><span class="n">df_base</span><span class="p">)</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="n">xxdf</span><span class="p">[</span><span class="s1">&#39;diff_us&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">xxdf</span><span class="p">[</span><span class="s1">&#39;FXUS&#39;</span><span class="p">]</span> <span class="o">-</span> <span class="n">xxdf</span><span class="p">[</span><span class="s1">&#39;FXIT&#39;</span><span class="p">]</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># рисуем графики</span>
</span></span><span class="line"><span class="cl"><span class="n">xxdf</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">y</span><span class="o">=</span><span class="s1">&#39;FXUS,FXIT,FXCN,FXDE,FXWO,FXRW&#39;</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;,&#39;</span><span class="p">),</span> <span class="n">kind</span><span class="o">=</span><span class="s1">&#39;line&#39;</span><span class="p">,</span> <span class="n">title</span><span class="o">=</span><span class="s1">&#39;ETF: WAPRICE / median&#39;</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="n">xxdf</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">y</span><span class="o">=</span><span class="s1">&#39;SBER,AFKS,GAZP,MAIL,YNDX&#39;</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;,&#39;</span><span class="p">),</span> <span class="n">kind</span><span class="o">=</span><span class="s1">&#39;line&#39;</span><span class="p">,</span> <span class="n">title</span><span class="o">=</span><span class="s1">&#39;RU: WAPRICE / median&#39;</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="n">xxdf</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">y</span><span class="o">=</span><span class="s1">&#39;diff_us&#39;</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;,&#39;</span><span class="p">),</span> <span class="n">kind</span><span class="o">=</span><span class="s1">&#39;line&#39;</span><span class="p">,</span> <span class="n">title</span><span class="o">=</span><span class="s1">&#39;FXUS - FXIT&#39;</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="n">xxdf</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">y</span><span class="o">=</span><span class="s1">&#39;FXIT,YNDX&#39;</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;,&#39;</span><span class="p">),</span> <span class="n">kind</span><span class="o">=</span><span class="s1">&#39;line&#39;</span><span class="p">,</span> <span class="n">title</span><span class="o">=</span><span class="s1">&#39;FXIT &amp; YNDX&#39;</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="n">xxdf</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">y</span><span class="o">=</span><span class="s1">&#39;FXWO,FXRW,FXUS&#39;</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;,&#39;</span><span class="p">),</span> <span class="n">kind</span><span class="o">=</span><span class="s1">&#39;line&#39;</span><span class="p">,</span> <span class="n">title</span><span class="o">=</span><span class="s1">&#39;FXUS &amp; FXWO &amp; FXRW&#39;</span><span class="p">);</span>
</span></span></code></pre></div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"></code></pre></div><p>Все ETF Finex достаточно сильно коррелируют, за исключением FXRW конечно.
<img src="/img/pstoks-201113/output_8_1.svg" alt="svg"></p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"></code></pre></div><p>На российском рынке по произвольно выбранным акциям корреляция слабая.
<img src="/img/pstoks-201113/output_8_2.svg" alt="svg"></p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"></code></pre></div><p>Разница в колебаниях FXUS и FXIT.
<img src="/img/pstoks-201113/output_8_3.svg" alt="svg"></p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"></code></pre></div><p>Между Яндексом и FXIT некоторая корреляция есть. <br>
<img src="/img/pstoks-201113/output_8_4.svg" alt="svg"></p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"></code></pre></div><p>Между FXWO и FXUS корреляция очень сильная.
<img src="/img/pstoks-201113/output_8_5.svg" alt="svg"></p>]]> 
      </turbo:content>
      <content:encoded><![CDATA[
              <p>Поэкспирементировал в Jupyter Lab и нарисовал несколько графиков на тему корреляции колебаний курса ETF и акций.</p>
<p>Ставим зависимости, если надо.</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="c1"># !conda install snappy python-snappy pyarrow fastparquet </span>
</span></span><span class="line"><span class="cl"><span class="c1"># !pip install pandas_datareader</span>
</span></span></code></pre></div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"></code></pre></div><p>Настраиваем графики и импортируем библиотеки.</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="o">%</span><span class="n">matplotlib</span> <span class="n">inline</span> 
</span></span><span class="line"><span class="cl"><span class="o">%</span><span class="n">config</span> <span class="n">InlineBackend</span><span class="o">.</span><span class="n">figure_format</span> <span class="o">=</span> <span class="s1">&#39;svg&#39;</span> <span class="c1">#векторный формат</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="kn">from</span> <span class="nn">matplotlib</span> <span class="kn">import</span> <span class="n">pyplot</span> <span class="k">as</span> <span class="n">plt</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="n">plt</span><span class="o">.</span><span class="n">style</span><span class="o">.</span><span class="n">use</span><span class="p">(</span><span class="s1">&#39;ggplot&#39;</span><span class="p">)</span>  <span class="c1"># Красивые графики</span>
</span></span><span class="line"><span class="cl"><span class="n">plt</span><span class="o">.</span><span class="n">rcParams</span><span class="p">[</span><span class="s1">&#39;figure.figsize&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="p">(</span><span class="mi">12</span><span class="p">,</span> <span class="mi">5</span><span class="p">)</span>  <span class="c1"># Размер картинок</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">pandas</span> <span class="k">as</span> <span class="nn">pd</span>
</span></span><span class="line"><span class="cl"><span class="kn">from</span> <span class="nn">datetime</span> <span class="kn">import</span> <span class="n">timedelta</span>
</span></span><span class="line"><span class="cl"><span class="kn">from</span> <span class="nn">datetime</span> <span class="kn">import</span> <span class="n">datetime</span>
</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">math</span>
</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">os</span>
</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">pandas_datareader.data</span> <span class="k">as</span> <span class="nn">web</span>
</span></span></code></pre></div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"></code></pre></div><p>Скачиваем информацию через API биржи в локальный каталог.</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="n">tikers</span> <span class="o">=</span> <span class="s1">&#39;SBER,AFKS,GAZP,MAIL,YNDX,FXUS,FXIT,FXCN,FXDE,FXWO,FXRW&#39;</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;,&#39;</span><span class="p">)</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="k">def</span> <span class="nf">download_data</span><span class="p">(</span><span class="n">tiker</span><span class="p">,</span> <span class="n">path</span><span class="p">):</span>
</span></span><span class="line"><span class="cl">    <span class="n">filepath</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="sa">f</span><span class="s1">&#39;</span><span class="si">{</span><span class="n">tiker</span><span class="si">}</span><span class="s1">_2020.parquet&#39;</span><span class="p">)</span>
</span></span><span class="line"><span class="cl">    <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">filepath</span><span class="p">):</span>
</span></span><span class="line"><span class="cl">        <span class="k">return</span>
</span></span><span class="line"><span class="cl">    <span class="n">df</span> <span class="o">=</span> <span class="n">web</span><span class="o">.</span><span class="n">DataReader</span><span class="p">(</span><span class="n">tiker</span><span class="p">,</span> <span class="s1">&#39;moex&#39;</span><span class="p">,</span> <span class="n">start</span><span class="o">=</span><span class="s1">&#39;2020-01-01&#39;</span><span class="p">,</span> <span class="n">end</span><span class="o">=</span><span class="s1">&#39;2020-11-12&#39;</span><span class="p">)</span>
</span></span><span class="line"><span class="cl">    <span class="n">df</span><span class="o">.</span><span class="n">to_parquet</span><span class="p">(</span><span class="n">filepath</span><span class="p">,</span> <span class="n">engine</span><span class="o">=</span><span class="s1">&#39;fastparquet&#39;</span><span class="p">)</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="k">for</span> <span class="n">tiker</span> <span class="ow">in</span> <span class="n">tikers</span><span class="p">:</span>
</span></span><span class="line"><span class="cl">    <span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s1">&#39;downloading: </span><span class="si">{</span><span class="n">tiker</span><span class="si">}</span><span class="s1">&#39;</span><span class="p">)</span>
</span></span><span class="line"><span class="cl">    <span class="n">download_data</span><span class="p">(</span><span class="n">tiker</span><span class="p">,</span> <span class="s2">&#34;D:</span><span class="se">\\</span><span class="s2">data2</span><span class="se">\\</span><span class="s2">Documents</span><span class="se">\\</span><span class="s2">notebooks&#34;</span><span class="p">)</span>
</span></span></code></pre></div><pre><code>downloading: SBER
downloading: AFKS
downloading: GAZP
downloading: MAIL
downloading: YNDX
downloading: FXUS
downloading: FXIT
downloading: FXCN
downloading: FXDE
downloading: FXWO
downloading: FXRW
</code></pre>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"></code></pre></div><p>Загружаем кешированные на диске данные.</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="k">def</span> <span class="nf">load_data</span><span class="p">(</span><span class="n">tiker</span><span class="p">,</span> <span class="n">path</span><span class="p">):</span>
</span></span><span class="line"><span class="cl">    <span class="n">result</span> <span class="o">=</span> <span class="kc">None</span>
</span></span><span class="line"><span class="cl">    <span class="n">filepath</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="sa">f</span><span class="s1">&#39;</span><span class="si">{</span><span class="n">tiker</span><span class="si">}</span><span class="s1">_2020.parquet&#39;</span><span class="p">)</span>
</span></span><span class="line"><span class="cl">    <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">filepath</span><span class="p">):</span>
</span></span><span class="line"><span class="cl">        <span class="n">result</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">read_parquet</span><span class="p">(</span><span class="n">filepath</span><span class="p">)</span>
</span></span><span class="line"><span class="cl">    <span class="k">return</span> <span class="n">result</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="n">dfs</span> <span class="o">=</span> <span class="p">{}</span>
</span></span><span class="line"><span class="cl"><span class="k">for</span> <span class="n">tiker</span> <span class="ow">in</span> <span class="n">tikers</span><span class="p">:</span>
</span></span><span class="line"><span class="cl">    <span class="n">dfs</span><span class="p">[</span><span class="n">tiker</span><span class="p">]</span> <span class="o">=</span> <span class="n">load_data</span><span class="p">(</span><span class="n">tiker</span><span class="p">,</span> <span class="s2">&#34;D:</span><span class="se">\\</span><span class="s2">data2</span><span class="se">\\</span><span class="s2">Documents</span><span class="se">\\</span><span class="s2">notebooks&#34;</span><span class="p">)</span>
</span></span></code></pre></div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"></code></pre></div><p>Значения полей <code>BOARDID</code> (режимы торгов) у акций и ETF разные. Для акций берём <code>TQBR</code> а для фондов <code>TQTF</code>.</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="n">dfs</span><span class="p">[</span><span class="s1">&#39;FXIT&#39;</span><span class="p">][</span><span class="s1">&#39;BOARDID&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">unique</span><span class="p">(),</span> <span class="n">dfs</span><span class="p">[</span><span class="s1">&#39;YNDX&#39;</span><span class="p">][</span><span class="s1">&#39;BOARDID&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">unique</span><span class="p">()</span>
</span></span></code></pre></div><pre><code>(array(['TQTD', 'TQTF', 'SOTC', 'RPMO', 'PSRP', 'PSTF', 'PTTF'],
       dtype=object),
 array(['TQBR', 'SPEQ', 'SOTC', 'RPMO', 'RPEU', 'RPEO', 'MXBD', 'EQRP',
        'PSRP', 'EQRD', 'LIQR', 'PSRD', 'PSRE', 'PTEQ', 'PSEQ'],
       dtype=object))
</code></pre>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"></code></pre></div><p>Обрабатываем данные, чтобы убрать всё кроме нужного режима торгов, и интерполируем цену.</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="k">def</span> <span class="nf">price_data</span><span class="p">(</span><span class="n">x_df</span><span class="p">,</span> <span class="n">boardid</span><span class="o">=</span><span class="s1">&#39;TQBR&#39;</span><span class="p">):</span>   
</span></span><span class="line"><span class="cl">    <span class="n">xdf</span> <span class="o">=</span> <span class="n">x_df</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
</span></span><span class="line"><span class="cl">    <span class="n">xdf</span> <span class="o">=</span> <span class="n">xdf</span><span class="o">.</span><span class="n">where</span><span class="p">(</span><span class="n">xdf</span><span class="p">[</span><span class="s1">&#39;BOARDID&#39;</span><span class="p">]</span> <span class="o">==</span> <span class="n">boardid</span><span class="p">)</span>
</span></span><span class="line"><span class="cl">    <span class="n">xdf</span><span class="o">.</span><span class="n">dropna</span><span class="p">(</span><span class="n">axis</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">how</span><span class="o">=</span><span class="s1">&#39;all&#39;</span><span class="p">,</span> <span class="n">inplace</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
</span></span><span class="line"><span class="cl">    <span class="n">xdf</span><span class="o">.</span><span class="n">dropna</span><span class="p">(</span><span class="n">axis</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">how</span><span class="o">=</span><span class="s1">&#39;all&#39;</span><span class="p">,</span> <span class="n">inplace</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
</span></span><span class="line"><span class="cl">    <span class="k">if</span> <span class="mi">0</span> <span class="o">==</span> <span class="n">xdf</span><span class="o">.</span><span class="n">size</span><span class="p">:</span>
</span></span><span class="line"><span class="cl">        <span class="k">return</span> <span class="n">xdf</span>
</span></span><span class="line"><span class="cl">    <span class="n">xdf</span><span class="p">[</span><span class="s1">&#39;OPEN&#39;</span><span class="p">]</span>    <span class="o">=</span> <span class="n">xdf</span><span class="p">[</span><span class="s1">&#39;OPEN&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">interpolate</span><span class="p">(</span><span class="n">method</span><span class="o">=</span><span class="s1">&#39;polynomial&#39;</span><span class="p">,</span> <span class="n">order</span><span class="o">=</span><span class="mi">2</span><span class="p">);</span>
</span></span><span class="line"><span class="cl">    <span class="n">xdf</span><span class="p">[</span><span class="s1">&#39;CLOSE&#39;</span><span class="p">]</span>   <span class="o">=</span> <span class="n">xdf</span><span class="p">[</span><span class="s1">&#39;CLOSE&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">interpolate</span><span class="p">(</span><span class="n">method</span><span class="o">=</span><span class="s1">&#39;polynomial&#39;</span><span class="p">,</span> <span class="n">order</span><span class="o">=</span><span class="mi">2</span><span class="p">);</span>
</span></span><span class="line"><span class="cl">    <span class="n">xdf</span><span class="p">[</span><span class="s1">&#39;WAPRICE&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">xdf</span><span class="p">[</span><span class="s1">&#39;WAPRICE&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">interpolate</span><span class="p">(</span><span class="n">method</span><span class="o">=</span><span class="s1">&#39;polynomial&#39;</span><span class="p">,</span> <span class="n">order</span><span class="o">=</span><span class="mi">2</span><span class="p">);</span>
</span></span><span class="line"><span class="cl">    <span class="k">return</span> <span class="n">xdf</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># для простоты, считаем что если имя начинается на FX то это ETF</span>
</span></span><span class="line"><span class="cl"><span class="k">for</span> <span class="n">tiker</span> <span class="ow">in</span> <span class="n">tikers</span><span class="p">:</span>
</span></span><span class="line"><span class="cl">    <span class="n">dfs</span><span class="p">[</span><span class="n">tiker</span><span class="p">]</span> <span class="o">=</span> <span class="n">price_data</span><span class="p">(</span><span class="n">dfs</span><span class="p">[</span><span class="n">tiker</span><span class="p">],</span> <span class="n">boardid</span><span class="o">=</span><span class="s1">&#39;TQTF&#39;</span> <span class="k">if</span> <span class="s1">&#39;FX&#39;</span> <span class="ow">in</span> <span class="n">tiker</span> <span class="k">else</span> <span class="s1">&#39;TQBR&#39;</span><span class="p">)</span>
</span></span></code></pre></div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"></code></pre></div><p>Нормализуем графики с помомщью отношения средневзвешеной (по объёму торгов) цены <code>WAPRICE</code> и медианой этого показателя.
Затем соединяем таблицы и строим графики.</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="c1"># WAPRICE/median</span>
</span></span><span class="line"><span class="cl"><span class="k">def</span> <span class="nf">calc_wdm</span><span class="p">(</span><span class="n">df</span><span class="p">):</span>
</span></span><span class="line"><span class="cl">    <span class="k">return</span> <span class="n">df</span><span class="p">[</span><span class="s1">&#39;WAPRICE&#39;</span><span class="p">]</span> <span class="o">/</span> <span class="n">df</span><span class="p">[</span><span class="s1">&#39;WAPRICE&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">median</span><span class="p">()</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="k">for</span> <span class="n">tiker</span> <span class="ow">in</span> <span class="n">tikers</span><span class="p">:</span>
</span></span><span class="line"><span class="cl">    <span class="n">dfs</span><span class="p">[</span><span class="n">tiker</span><span class="p">][</span><span class="n">tiker</span><span class="p">]</span> <span class="o">=</span> <span class="n">calc_wdm</span><span class="p">(</span><span class="n">dfs</span><span class="p">[</span><span class="n">tiker</span><span class="p">])</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="n">df_base</span> <span class="o">=</span> <span class="n">dfs</span><span class="p">[</span><span class="s1">&#39;FXIT&#39;</span><span class="p">][[]]</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="k">def</span> <span class="nf">merge_dfs</span><span class="p">(</span><span class="n">base</span><span class="p">):</span>
</span></span><span class="line"><span class="cl">    <span class="n">result</span> <span class="o">=</span> <span class="n">base</span>
</span></span><span class="line"><span class="cl">    <span class="k">for</span> <span class="n">tiker</span> <span class="ow">in</span> <span class="n">tikers</span><span class="p">:</span>
</span></span><span class="line"><span class="cl">        <span class="n">result</span> <span class="o">=</span> <span class="n">result</span><span class="o">.</span><span class="n">merge</span><span class="p">(</span><span class="n">dfs</span><span class="p">[</span><span class="n">tiker</span><span class="p">][[</span><span class="n">tiker</span><span class="p">]],</span> <span class="n">how</span><span class="o">=</span><span class="s1">&#39;outer&#39;</span><span class="p">,</span> <span class="n">on</span><span class="o">=</span><span class="s1">&#39;TRADEDATE&#39;</span><span class="p">)</span>
</span></span><span class="line"><span class="cl">    <span class="k">return</span> <span class="n">result</span>
</span></span><span class="line"><span class="cl">        
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="n">xxdf</span> <span class="o">=</span> <span class="n">merge_dfs</span><span class="p">(</span><span class="n">df_base</span><span class="p">)</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="n">xxdf</span><span class="p">[</span><span class="s1">&#39;diff_us&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">xxdf</span><span class="p">[</span><span class="s1">&#39;FXUS&#39;</span><span class="p">]</span> <span class="o">-</span> <span class="n">xxdf</span><span class="p">[</span><span class="s1">&#39;FXIT&#39;</span><span class="p">]</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># рисуем графики</span>
</span></span><span class="line"><span class="cl"><span class="n">xxdf</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">y</span><span class="o">=</span><span class="s1">&#39;FXUS,FXIT,FXCN,FXDE,FXWO,FXRW&#39;</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;,&#39;</span><span class="p">),</span> <span class="n">kind</span><span class="o">=</span><span class="s1">&#39;line&#39;</span><span class="p">,</span> <span class="n">title</span><span class="o">=</span><span class="s1">&#39;ETF: WAPRICE / median&#39;</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="n">xxdf</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">y</span><span class="o">=</span><span class="s1">&#39;SBER,AFKS,GAZP,MAIL,YNDX&#39;</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;,&#39;</span><span class="p">),</span> <span class="n">kind</span><span class="o">=</span><span class="s1">&#39;line&#39;</span><span class="p">,</span> <span class="n">title</span><span class="o">=</span><span class="s1">&#39;RU: WAPRICE / median&#39;</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="n">xxdf</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">y</span><span class="o">=</span><span class="s1">&#39;diff_us&#39;</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;,&#39;</span><span class="p">),</span> <span class="n">kind</span><span class="o">=</span><span class="s1">&#39;line&#39;</span><span class="p">,</span> <span class="n">title</span><span class="o">=</span><span class="s1">&#39;FXUS - FXIT&#39;</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="n">xxdf</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">y</span><span class="o">=</span><span class="s1">&#39;FXIT,YNDX&#39;</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;,&#39;</span><span class="p">),</span> <span class="n">kind</span><span class="o">=</span><span class="s1">&#39;line&#39;</span><span class="p">,</span> <span class="n">title</span><span class="o">=</span><span class="s1">&#39;FXIT &amp; YNDX&#39;</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="n">xxdf</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">y</span><span class="o">=</span><span class="s1">&#39;FXWO,FXRW,FXUS&#39;</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;,&#39;</span><span class="p">),</span> <span class="n">kind</span><span class="o">=</span><span class="s1">&#39;line&#39;</span><span class="p">,</span> <span class="n">title</span><span class="o">=</span><span class="s1">&#39;FXUS &amp; FXWO &amp; FXRW&#39;</span><span class="p">);</span>
</span></span></code></pre></div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"></code></pre></div><p>Все ETF Finex достаточно сильно коррелируют, за исключением FXRW конечно.
<img src="/img/pstoks-201113/output_8_1.svg" alt="svg"></p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"></code></pre></div><p>На российском рынке по произвольно выбранным акциям корреляция слабая.
<img src="/img/pstoks-201113/output_8_2.svg" alt="svg"></p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"></code></pre></div><p>Разница в колебаниях FXUS и FXIT.
<img src="/img/pstoks-201113/output_8_3.svg" alt="svg"></p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"></code></pre></div><p>Между Яндексом и FXIT некоторая корреляция есть. <br>
<img src="/img/pstoks-201113/output_8_4.svg" alt="svg"></p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"></code></pre></div><p>Между FXWO и FXUS корреляция очень сильная.
<img src="/img/pstoks-201113/output_8_5.svg" alt="svg"></p>]]> 
      </content:encoded>
    </item>
    
  </channel>
</rss>
