<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>min-gle.log</title>
        <link>https://velog.io/</link>
        <description></description>
        <lastBuildDate>Wed, 24 May 2023 09:28:07 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>min-gle.log</title>
            <url>https://velog.velcdn.com/images/min-gle/profile/44982249-24b9-48bf-a49a-c5750c5a2d71/social_profile.jpeg</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. min-gle.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/min-gle" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[[KRISS] Bollinger Band ]]></title>
            <link>https://velog.io/@min-gle/KRISS-Bollinger-Band</link>
            <guid>https://velog.io/@min-gle/KRISS-Bollinger-Band</guid>
            <pubDate>Wed, 24 May 2023 09:28:07 GMT</pubDate>
            <description><![CDATA[<p>퀀트 학회에서 진행했던 볼린저 밴드 관련 프로젝트에 대해 기록을 남겨보고자한다.
볼린저밴드는 가격이 이동평균선(Simple Moving Average)을 중심으로 상한선 및 하한선 이내에서 등락을 반복한다는 개념에 기반한 지표로, 상한선 및 하한선은 각각 중심선을 기준으로 +- 2std로 전제한다.</p>
<p><strong>Hypothesis</strong>
종목 : 셀트리온(068270), 맥쿼리인프라(088980)
셀트리온은 높은 변동성을 가진 종목, 맥쿼리는 낮은 변동성을 가진 종목으로 보고 테스팅
기간 : 2022.04.01 - 2022.06.30</p>
<ol>
<li><p>관련 패키지 및 라이브러리 import</p>
<pre><code>import pandas as pd
import FinanceDataReader as fdr
import matplotlib.pyplot as plt
import talib as ta</code></pre></li>
<li><p>종목 데이터 수집</p>
<pre><code>df_c = fdr.DataReader(symbol=&#39;068270&#39;, start=&#39;2021-03-04&#39;, end=&#39;2022-06-30&#39;)
df_m = fdr.DataReader(symbol=&#39;088980&#39;, start=&#39;2021-03-04&#39;, end=&#39;2022-06-30&#39;) # 처음 20일은 종가가 이동평균 산출에 쓰이므로 4월 1일부터의 데이터를 보고싶으면 20일 전인 3월 4일로 지정</code></pre></li>
<li><p>Bollinger Bands Data Calculation - MA20, std, upper, lower, %b</p>
<pre><code>df_c[&#39;MA20&#39;] = df_c[&#39;Close&#39;].rolling(window=20).mean()      # 20개 종가를 사용해 20일 이동평균 산출
df_c[&#39;std&#39;] = df_c[&#39;Close&#39;].rolling(window=20).std()     # 20개 종가를 이용해 20일 표준편차 산출
df_c[&#39;Upper&#39;] = df_c[&#39;MA20&#39;] + (df_c[&#39;std&#39;] * 2)           # 상단 볼린저 밴드
df_c[&#39;Lower&#39;] = df_c[&#39;MA20&#39;] - (df_c[&#39;std&#39;] * 2)           # 하단 볼린저 밴드
df_c[&#39;%b&#39;] = (df_c[&#39;Close&#39;] - df_c[&#39;Lower&#39;]) / (df_c[&#39;Upper&#39;] - df_c[&#39;Lower&#39;])  # %b 지표 -&gt; 현재 주가가 밴드를 기준으로 어디쯤에 있는지를 수치로 표현
df_c = df_c[19:]    # 19번째 행까지는 NaN이므로 값이 있는 20번째 행부터 사용
df_c</code></pre></li>
</ol>
<ol start="4">
<li>Plot Bollinger Chart with %b</li>
</ol>
<ul>
<li>%b : 주가가 볼린저밴드 위 어디에 위치해있는지 알려주는 지표 ( 하단밴드 : 0 , 상단밴드 : 1 )</li>
</ul>
<p><img src="https://velog.velcdn.com/images/min-gle/post/9a63a2c9-559b-4292-8284-e6e5d4f9c688/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/min-gle/post/ff543952-275e-4df5-b20c-8a70487a3d61/image.png" alt=""></p>
<ol start="5">
<li>Golden Cross &amp; Death Cross </li>
</ol>
<ul>
<li>장기 이동 평균선과 단기 이동 평균선이 교차하는 부분을 뜻한다
Golden Cross : 단기 이동 평균선이 중장기 이동 평균선을 아래에서 위로 뚫고 올라가는 현상으로, 강세신호로 받아들인다.
Death Cross : 단기 이동 평균선이 중장기 이동 평균선을 위에서 아래로 뚫고 내려가는 현상으로, 약세신호로 받아들인다.</li>
</ul>
<p><img src="https://velog.velcdn.com/images/min-gle/post/7a0e8298-ecb7-4eec-8c35-e52b2e07e152/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/min-gle/post/454ed335-9d79-41aa-9302-fba4c49adb45/image.png" alt=""></p>
<p>추가적으로 간단하게 골든크로스와 데스크로스를 사용한 투자기법을 통해 백테스팅 또한 진행해보았다. (관심이 있다면 첨부된 <a href="https://www.linkedin.com/feed/update/urn:li:activity:6997788669340237824/">링크</a>를 참고바란다) 결론적으로 말해보자면, 볼린저밴드의 가장 큰 문제점은 이 지표를 만든 존 볼린저가 언급하였던 듯이 후행성 지표라는 점이다. 백테스팅용으로는 용이하나, 실제 투자에 있어서 사용하기에는 time lagging 문제가 크다고 사려되므로 RSI같은 모멘텀 지표들과 함께 사용하는 것이 권장된다.</p>
]]></description>
        </item>
    </channel>
</rss>