<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>문송한투자자</title>
    <link>https://moonsong-investor.tistory.com/</link>
    <description></description>
    <language>ko</language>
    <pubDate>Wed, 22 Apr 2026 16:09:44 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>문송한투자자</managingEditor>
    <image>
      <title>문송한투자자</title>
      <url>https://tistory1.daumcdn.net/tistory/4027896/attach/a6660654345d405295641c036c75dc6c</url>
      <link>https://moonsong-investor.tistory.com</link>
    </image>
    <item>
      <title>기술적지표 기초: RSI의(Relative Strength Index) 개념과 활용</title>
      <link>https://moonsong-investor.tistory.com/263</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #f89009;&quot;&gt;&lt;b&gt;RSI(상대강도지수)의 개념&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;RSI는 일정 기간 동안 상승폭과 하락폭을 비교해서 현재 시장이 과매수인지 과매도인지 판단하는 지표이다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;680&quot; data-origin-height=&quot;432&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/7Pjl9/dJMcabcDx1J/eKQJ5sThgusKcmNix7MCt1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/7Pjl9/dJMcabcDx1J/eKQJ5sThgusKcmNix7MCt1/img.png&quot; data-alt=&quot;그림1: RSI 그래프&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/7Pjl9/dJMcabcDx1J/eKQJ5sThgusKcmNix7MCt1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F7Pjl9%2FdJMcabcDx1J%2FeKQJ5sThgusKcmNix7MCt1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;680&quot; height=&quot;432&quot; data-origin-width=&quot;680&quot; data-origin-height=&quot;432&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;그림1: RSI 그래프&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;RSI 계산은 보통 14일(기본기간)의 평균상승폭과 평균하락폭을 이용해서 RS를 구하고, 이 값을 바탕으로 아래 식과 같이 index 값을 계산하는 과정을 거친다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;433&quot; data-origin-height=&quot;163&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qCuoC/dJMcacQaXkx/aRr5MZpzjI11im9UHOgUW1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qCuoC/dJMcacQaXkx/aRr5MZpzjI11im9UHOgUW1/img.png&quot; data-alt=&quot;식1: RSI 계산식&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qCuoC/dJMcacQaXkx/aRr5MZpzjI11im9UHOgUW1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqCuoC%2FdJMcacQaXkx%2FaRr5MZpzjI11im9UHOgUW1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;433&quot; height=&quot;163&quot; data-origin-width=&quot;433&quot; data-origin-height=&quot;163&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;식1: RSI 계산식&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;코스피종가를 정리한 아래 표에서 알 수 있듯이 주가가 상승한 날은 종가의 차이가 상승폭이 되고, 하락폭은 0이 되며, 주가가 하락한 날은 종가의 차이가 하락폭이 되고, 상승폭은 0이 된다.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 259px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style1&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;width: 25%; height: 21px; text-align: center;&quot;&gt;&lt;b&gt;일자&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 25%; height: 21px; text-align: center;&quot;&gt;&lt;b&gt;코스피종가&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 25%; height: 21px; text-align: center;&quot;&gt;&lt;b&gt;상승폭&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 25%; height: 21px; text-align: center;&quot;&gt;&lt;b&gt;하락폭&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 25%; height: 17px; text-align: center;&quot;&gt;2026-04-01&lt;/td&gt;
&lt;td style=&quot;width: 25%; height: 17px; text-align: center;&quot;&gt;5,478.70&lt;/td&gt;
&lt;td style=&quot;width: 25%; height: 17px; text-align: center;&quot;&gt;426.24&lt;/td&gt;
&lt;td style=&quot;width: 25%; height: 17px; text-align: center;&quot;&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 25%; height: 17px; text-align: center;&quot;&gt;2026-03-31&lt;/td&gt;
&lt;td style=&quot;width: 25%; height: 17px; text-align: center;&quot;&gt;5,052.46&lt;/td&gt;
&lt;td style=&quot;width: 25%; height: 17px; text-align: center;&quot;&gt;0&lt;/td&gt;
&lt;td style=&quot;width: 25%; height: 17px; text-align: center;&quot;&gt;224.84&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 25%; height: 17px; text-align: center;&quot;&gt;2026-03-30&lt;/td&gt;
&lt;td style=&quot;width: 25%; height: 17px; text-align: center;&quot;&gt;5,277.30&lt;/td&gt;
&lt;td style=&quot;width: 25%; height: 17px; text-align: center;&quot;&gt;0&lt;/td&gt;
&lt;td style=&quot;width: 25%; height: 17px; text-align: center;&quot;&gt;161.57&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 25%; height: 17px; text-align: center;&quot;&gt;2026-03-27&lt;/td&gt;
&lt;td style=&quot;width: 25%; height: 17px; text-align: center;&quot;&gt;5,438.87&lt;/td&gt;
&lt;td style=&quot;width: 25%; height: 17px; text-align: center;&quot;&gt;0&lt;/td&gt;
&lt;td style=&quot;width: 25%; height: 17px; text-align: center;&quot;&gt;21.59&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 25%; height: 17px; text-align: center;&quot;&gt;2026-03-26&lt;/td&gt;
&lt;td style=&quot;width: 25%; height: 17px; text-align: center;&quot;&gt;5,460.46&lt;/td&gt;
&lt;td style=&quot;width: 25%; height: 17px; text-align: center;&quot;&gt;0&lt;/td&gt;
&lt;td style=&quot;width: 25%; height: 17px; text-align: center;&quot;&gt;181.75&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 25%; height: 17px; text-align: center;&quot;&gt;2026-03-25&lt;/td&gt;
&lt;td style=&quot;width: 25%; height: 17px; text-align: center;&quot;&gt;5,642.21&lt;/td&gt;
&lt;td style=&quot;width: 25%; height: 17px; text-align: center;&quot;&gt;88.29&lt;/td&gt;
&lt;td style=&quot;width: 25%; height: 17px; text-align: center;&quot;&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 25%; height: 17px; text-align: center;&quot;&gt;2026-03-24&lt;/td&gt;
&lt;td style=&quot;width: 25%; height: 17px; text-align: center;&quot;&gt;5,553.92&lt;/td&gt;
&lt;td style=&quot;width: 25%; height: 17px; text-align: center;&quot;&gt;148.17&lt;/td&gt;
&lt;td style=&quot;width: 25%; height: 17px; text-align: center;&quot;&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 25%; height: 17px; text-align: center;&quot;&gt;2026-03-23&lt;/td&gt;
&lt;td style=&quot;width: 25%; height: 17px; text-align: center;&quot;&gt;5,405.75&lt;/td&gt;
&lt;td style=&quot;width: 25%; height: 17px; text-align: center;&quot;&gt;0&lt;/td&gt;
&lt;td style=&quot;width: 25%; height: 17px; text-align: center;&quot;&gt;375.45&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 25%; height: 17px; text-align: center;&quot;&gt;2026-03-20&lt;/td&gt;
&lt;td style=&quot;width: 25%; height: 17px; text-align: center;&quot;&gt;5,781.20&lt;/td&gt;
&lt;td style=&quot;width: 25%; height: 17px; text-align: center;&quot;&gt;17.98&lt;/td&gt;
&lt;td style=&quot;width: 25%; height: 17px; text-align: center;&quot;&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 25%; height: 17px; text-align: center;&quot;&gt;2026-03-19&lt;/td&gt;
&lt;td style=&quot;width: 25%; height: 17px; text-align: center;&quot;&gt;5,763.22&lt;/td&gt;
&lt;td style=&quot;width: 25%; height: 17px; text-align: center;&quot;&gt;0&lt;/td&gt;
&lt;td style=&quot;width: 25%; height: 17px; text-align: center;&quot;&gt;161.81&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 25%; height: 17px; text-align: center;&quot;&gt;2026-03-18&lt;/td&gt;
&lt;td style=&quot;width: 25%; height: 17px; text-align: center;&quot;&gt;5,925.03&lt;/td&gt;
&lt;td style=&quot;width: 25%; height: 17px; text-align: center;&quot;&gt;284.55&lt;/td&gt;
&lt;td style=&quot;width: 25%; height: 17px; text-align: center;&quot;&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 25%; height: 17px; text-align: center;&quot;&gt;2026-03-17&lt;/td&gt;
&lt;td style=&quot;width: 25%; height: 17px; text-align: center;&quot;&gt;5,640.48&lt;/td&gt;
&lt;td style=&quot;width: 25%; height: 17px; text-align: center;&quot;&gt;90.63&lt;/td&gt;
&lt;td style=&quot;width: 25%; height: 17px; text-align: center;&quot;&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 25%; height: 17px; text-align: center;&quot;&gt;2026-03-16&lt;/td&gt;
&lt;td style=&quot;width: 25%; height: 17px; text-align: center;&quot;&gt;5,549.85&lt;/td&gt;
&lt;td style=&quot;width: 25%; height: 17px; text-align: center;&quot;&gt;62.61&lt;/td&gt;
&lt;td style=&quot;width: 25%; height: 17px; text-align: center;&quot;&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 25%; height: 17px; text-align: center;&quot;&gt;2026-03-13&lt;/td&gt;
&lt;td style=&quot;width: 25%; height: 17px; text-align: center;&quot;&gt;5,487.24&lt;/td&gt;
&lt;td style=&quot;width: 25%; height: 17px; text-align: center;&quot;&gt;0&lt;/td&gt;
&lt;td style=&quot;width: 25%; height: 17px; text-align: center;&quot;&gt;96.01&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;보통 RSI 계산은 14일을 기준으로 하므로 14일의 상승폭과 하락폭의 평균을 아래와 같이 각각 구해보면 평균상승폭은 79.89, 평균하락폭은 87.36 이 나온다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;866&quot; data-origin-height=&quot;237&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/pbsd1/dJMcaf7bDhl/tts0yugud1wpUktXuQkOhk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/pbsd1/dJMcaf7bDhl/tts0yugud1wpUktXuQkOhk/img.png&quot; data-alt=&quot;식2: 평균상승폭과 평균하락폭의 계산&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/pbsd1/dJMcaf7bDhl/tts0yugud1wpUktXuQkOhk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fpbsd1%2FdJMcaf7bDhl%2Ftts0yugud1wpUktXuQkOhk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;866&quot; height=&quot;237&quot; data-origin-width=&quot;866&quot; data-origin-height=&quot;237&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;식2: 평균상승폭과 평균하락폭의 계산&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;평균상승폭과 평균하락폭을 이용해서 계산하면, RS는 0.9145 가 나오고 RSI는 47.7675로 계산할 수 있다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #f89009;&quot;&gt;&lt;b&gt;RSI의 활용&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;RSI는 과매수/과매도 상황인 것만 판단 가능하기 때문에 실제 매수/매도를 판단하는데 충분한 근거를 제공하지 못한다. 따라서 RSI는 보통 MACD, 볼린저 밴드, 거래량 지표와 함께 쓰인다.&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;u&gt;&lt;b&gt;MACD와 RSI 활용&lt;/b&gt;&lt;/u&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;MACD는 이동평균선 간의 차이를 이용한 추세분석방법이다. 이 과정에서 MACD Line과 Signal Line을 구할 수 있는데, MACD Line 이 Signal Line 위로 갈 때 골든크로스라고 하고, 그 반대의 경우 데드크로스라고 한다. 보통 골든크로스가 발생하면 상승 모멘텀이 강화된다고 해석하고, 데드크로스가 발생하면 하락모멘텀이 강화된다고 해석한다. RSI에 MACD를 통한 모멘텀 분석을 붙이면 매수/매도 판단에 사용이 가능하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;RSI &amp;lt; 30 으로 과매도가 이루어졌다고 판단하는 상황에서 MACD 분석에서 골든크로스가 발행하면 매수, RSI &amp;gt; 70으로 과매수가 이루어졌다고 판단하는 상황에서 MACD 분석에서 데드크로스가 발생하면&amp;nbsp; 매도 대응으로 활용할 수 있다.&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;u&gt;&lt;b&gt;볼린저 밴드와 RSI 활용&lt;/b&gt;&lt;/u&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;볼린저 밴드를 그려서 변동성을 분석하는 방법과( &lt;a href=&quot;https://moonsong-investor.tistory.com/261&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;기술적지표 기초: 볼린저 밴드의(Bollinger Bands) 개념과 활용&lt;/a&gt;&lt;br /&gt;) RSI를 조합해서 활용할 수도 있다. 가격이 볼린저 밴드 하단을 터치하면 가격이 다시 상승할 확률이 높은데 거기에 RSI &amp;lt; 30으로 과매도가 형성되어 있으면 반등 확률이 매우 높으니 매수 대응을 할 수 있다. 반대로 가격이 볼린저 밴드 상단을 터치했는데 RSI &amp;gt; 70 이면 매도 대응을 할 수 있다.&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;u&gt;&lt;b&gt;거래량 지표와 RSI 활용&lt;/b&gt;&lt;/u&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;RSI &amp;lt; 30 인 과매도 구간에서 거래량이 급격이 증가하면 큰 손들의 저점 매수가 들어온다는 해석도 가능하다. 반대로 RSI &amp;gt; 70인 상황에서 거래량이 증가하면 과매수 구간에서 물량 털어내는 매도가 급증한다는 해석이 가능하다. 과매도/과매수 구간에서 별다른 거래량의 변화가 크게 없으면 RSI 신호가 큰 의미가 없을 수 있다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;RSI와 함께 거래량, 볼린저 밴드, MACD 중 무엇을 볼지는 시장의 상태가 어떤지를 생각해서 판단해야 한다. 보통 밴드 안에서 상승/하락을 반복하는 횡보장에서는 RSI + 볼린저 밴드, 꾸준히 상승/하락하는 추세장에서는 RSI + MACD, 변화가 급격한 급등락 장에서는 RSI + 거래량을 보는 것이 좋다.&lt;/p&gt;</description>
      <category>금융정보/01.유가증권(주식 채권 등)</category>
      <author>문송한투자자</author>
      <guid isPermaLink="true">https://moonsong-investor.tistory.com/263</guid>
      <comments>https://moonsong-investor.tistory.com/263#entry263comment</comments>
      <pubDate>Sun, 5 Apr 2026 10:19:21 +0900</pubDate>
    </item>
    <item>
      <title>채권 수익률(YTM)의 이해와 활용</title>
      <link>https://moonsong-investor.tistory.com/262</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #f89009;&quot;&gt;&lt;b&gt;채권의 수익률(YTM)&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;주식과 다르게 채권은 만기가 있다. 채권 발행자가 망하지 않는 원금 + 채권이자(쿠폰)을 받아서 수익을 얻는 구조이다. 원금 + 채권이자를 고정적으로 받는 채권의 구조상 (보통 고정금리 채권 가정) 채권 매입가만 결정되면 채권을 만기까지 보유했을 때 수익률이 확정된다. 아래 식 1에서 C(쿠폰), F(액면가)가 고정되어 있으니 P(매입가)만 확정이 되면 채권이 얼마의 수익률(ytm)을 가지는지 확정이 되는 것이다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;306&quot; data-origin-height=&quot;97&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cKaUv9/dJMcagkDtgV/g8ULo4tEC3pWjHDtJp61r1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cKaUv9/dJMcagkDtgV/g8ULo4tEC3pWjHDtJp61r1/img.png&quot; data-alt=&quot;식1: 채권 가격 계산식&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cKaUv9/dJMcagkDtgV/g8ULo4tEC3pWjHDtJp61r1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcKaUv9%2FdJMcagkDtgV%2Fg8ULo4tEC3pWjHDtJp61r1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;306&quot; height=&quot;97&quot; data-origin-width=&quot;306&quot; data-origin-height=&quot;97&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;식1: 채권 가격 계산식&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;채권의 수익률은 채권의 현금흐름을 위 식 1에 대입하면 쉽게 계산할 수 있다. 2026.03월 현재 국고채3년 지표물인 국고02750-2812(25-10)의 현재 수익률을 계산해 보자.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;573&quot; data-origin-height=&quot;515&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cQ87fx/dJMcabXW4Yv/oLKPTpf7AmCMYEYhE7kXX1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cQ87fx/dJMcabXW4Yv/oLKPTpf7AmCMYEYhE7kXX1/img.png&quot; data-alt=&quot;그림1: 국고02750-2812(25-10) 종목 발행정보&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cQ87fx/dJMcabXW4Yv/oLKPTpf7AmCMYEYhE7kXX1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcQ87fx%2FdJMcabXW4Yv%2FoLKPTpf7AmCMYEYhE7kXX1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;573&quot; height=&quot;515&quot; data-origin-width=&quot;573&quot; data-origin-height=&quot;515&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;그림1: 국고02750-2812(25-10) 종목 발행정보&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #f89009;&quot;&gt;&lt;b&gt;채권 매입가격에 따른 수익률 계산&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그림 1에 나와있는 국고02750-2812(25-10)의 요건을 바탕으로 현금흐름을 그려보면 아래와 같다.&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;680&quot; data-origin-height=&quot;232&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mDXbS/dJMcadg9BRg/IleIKuo10vBtgOtDXJ8ok1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mDXbS/dJMcadg9BRg/IleIKuo10vBtgOtDXJ8ok1/img.png&quot; data-alt=&quot;그림2: 국고02750-2812(25-10) 현금흐름(2026-03-27 기준)&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mDXbS/dJMcadg9BRg/IleIKuo10vBtgOtDXJ8ok1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmDXbS%2FdJMcadg9BRg%2FIleIKuo10vBtgOtDXJ8ok1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;680&quot; height=&quot;232&quot; data-origin-width=&quot;680&quot; data-origin-height=&quot;232&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;그림2: 국고02750-2812(25-10) 현금흐름(2026-03-27 기준)&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2026-03-27 기준으로 6번의 쿠폰이 남아있고 2.75% 의 표면금리로 6개월마다 쿠폰이 지급되므로 6개월마다 지급되는 이자는 &quot;액면가 &amp;times; 표면금리 &amp;divide; 2&quot;가 된다. 만들어진 현금흐름에 YTM을 통해서 만든 각각의 할인계수(DF: Discount Factor)를 곱해주면 현금흐름의 현재가치가 나온다. 현금흐름의 현재가치의 합 = P(매입가)이므로 아래 그림 3과 같이 목표값 찾기를 통해서 YTM을 계산해 볼 수 있다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;950&quot; data-origin-height=&quot;272&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/MxKSa/dJMcafTAB9e/r53i1Kk8wRBz8OkDk5PkZK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/MxKSa/dJMcafTAB9e/r53i1Kk8wRBz8OkDk5PkZK/img.png&quot; data-alt=&quot;그림3: 목표값 찾기를 활용한 채권 YTM 계산 예시&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/MxKSa/dJMcafTAB9e/r53i1Kk8wRBz8OkDk5PkZK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FMxKSa%2FdJMcafTAB9e%2Fr53i1Kk8wRBz8OkDk5PkZK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;950&quot; height=&quot;272&quot; data-origin-width=&quot;950&quot; data-origin-height=&quot;272&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;그림3: 목표값 찾기를 활용한 채권 YTM 계산 예시&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;실제로 채권 시장에서 거래를 할 때 매입가격만 보면 쿠폰까지 포함해서 싸게 거래한 건지 비싸게 한 건지 바로 알 수가 없기 때문에 YTM을 기반으로 호가가 형성된다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;fileblock&quot; data-ke-align=&quot;alignCenter&quot;&gt;&lt;a href=&quot;https://blog.kakaocdn.net/dn/mM31Z/dJMcafMQlfq/7weJTEkpcEvFMkF5kpvY7K/260321_%EC%B1%84%EA%B6%8C%EC%88%98%EC%9D%B5%EB%A5%A0_%EA%B3%84%EC%82%B0.xlsx?attach=1&amp;amp;knm=tfile.xlsx&quot; class=&quot;&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;desc&quot;&gt;&lt;div class=&quot;filename&quot;&gt;&lt;span class=&quot;name&quot;&gt;260321_채권수익률_계산.xlsx&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;size&quot;&gt;0.01MB&lt;/div&gt;
&lt;/div&gt;
  &lt;/a&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #f89009;&quot;&gt;&lt;b&gt;금리의 움직임과 채권의 수익률&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;채권 매입가격에 따른 수익률 계산 과정에서 알 수 있는 것처럼 채권 매입 시에 수익률은 확정된다. 따라서 채권을 만기까지 들고 갈 계획이라면, 금리의 움직임에 상관없이 무조건 YTM만큼 수익이 확정된다.(채권 발행자가 망하지만 않는다면 말이다.) 그런데 1년 단위로 생각하면 이야기가 조금 달라진다. 10년 만기 미국채권을 수익률 4.0%에 매입했다고 가정하자. 이 경우 금리가 4.4%로 상승하는 경우 평가손실이 발생한다. 시장금리가 상승해서 10년 만기 미국채권을 더 싸게 살 수 있게 되었기 때문이다. 채권을 10년 만기까지 들고 있을 경우 10년 수익률은 반드시 4.0%가 되지만 어떤 해에는 평가손실이 커서 평가금액 기준으로는 손실이 발생하는 경우도 발생할 수 있다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우리가 채권형 ETF에 가입하는 경우도 마찬가지다. iShares7-10 Tear Treasury Bond ETF(IEF)에 투자하는 경우를 생각해 보자. ETF는 7 ~ 10년 만기를 유지하기 위해 만기가 긴 채권을 지속적으로 매입한다. 기존에 사놓은 채권이 만기에 가까워지면서 YTM만큼 수익률에 수렴되는 경우도 있지만 만기가 오래 남은 채권들은 금리 상승할 경우 평가손실이 크게 쌓일 수 있다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;797&quot; data-origin-height=&quot;372&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/0B9ku/dJMcajazepw/PlQNbh4eJjO2EukzK6GiM0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/0B9ku/dJMcajazepw/PlQNbh4eJjO2EukzK6GiM0/img.png&quot; data-alt=&quot;그림4: 2025~ 2026년 IEF 가격 추이&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/0B9ku/dJMcajazepw/PlQNbh4eJjO2EukzK6GiM0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F0B9ku%2FdJMcajazepw%2FPlQNbh4eJjO2EukzK6GiM0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;797&quot; height=&quot;372&quot; data-origin-width=&quot;797&quot; data-origin-height=&quot;372&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;그림4: 2025~ 2026년 IEF 가격 추이&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;미국-이란 전쟁으로 각국의 시장금리가 상승하는 지금 같은 경우 포트폴리오에 만기가 많이 남은 채권이 많다면 IEF 가격 차트처럼 기중 손실은 (-)가 될 수 있다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>금융정보/01.유가증권(주식 채권 등)</category>
      <author>문송한투자자</author>
      <guid isPermaLink="true">https://moonsong-investor.tistory.com/262</guid>
      <comments>https://moonsong-investor.tistory.com/262#entry262comment</comments>
      <pubDate>Sun, 29 Mar 2026 19:53:10 +0900</pubDate>
    </item>
    <item>
      <title>기술적지표 기초: 볼린저 밴드의(Bollinger Bands) 개념과 활용</title>
      <link>https://moonsong-investor.tistory.com/261</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #f89009;&quot;&gt;&lt;b&gt;주가의 움직임&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;주가는 무작위로 움직이는 것처럼 보이지만 확률적으로 보면, 과거 가격들의 평균을 기준으로 일정한 범위 내에서 움직인다. 이 때 과거 가격들의 평균은 이동평균으로 일정한 범위는 표준편차로 계산한다. 주가는 이동평균선 &amp;plusmn; 표준편차 범위 안에서 확률적으로 움직인다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;772&quot; data-origin-height=&quot;492&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bj6dhW/dJMcaibzMeU/D7jSR5381TyWleBo1zAwgk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bj6dhW/dJMcaibzMeU/D7jSR5381TyWleBo1zAwgk/img.png&quot; data-alt=&quot;그림1: 코스피 볼린저 밴드 예시&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bj6dhW/dJMcaibzMeU/D7jSR5381TyWleBo1zAwgk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbj6dhW%2FdJMcaibzMeU%2FD7jSR5381TyWleBo1zAwgk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;772&quot; height=&quot;492&quot; data-origin-width=&quot;772&quot; data-origin-height=&quot;492&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;그림1: 코스피 볼린저 밴드 예시&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위와 같이 이동평균선 &amp;plusmn; 표준편차 범위를 시각화한 지표가 바로 볼린저 밴드이다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #f89009;&quot;&gt;&lt;b&gt;볼린저 밴드의 개념&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;볼린저 밴드는 이동평균을 나타내는 중심선을 중심으로 &amp;plusmn; ( 표준편차 &amp;times; k )를 해서 밴드를 그려준 것이다. 확률적으로 보면, 아래 그림 2와 같이 평균을 중심으로 값이 &amp;plusmn; ( 표준편차 ) 에 있을 확률은 68.2%, &amp;plusmn; ( 표준편차 &amp;times; 2 ) 에 있을 확률은 95.4%, &amp;plusmn; ( 표준편차 &amp;times; 3 ) 에 있을 확률은 99.7% 이다. &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;주가의 분포가 정규분포라면, 주가는 평균&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&amp;plusmn; ( 표준편차 &amp;times; 2 ) 밴드 안에 있을 확률이 95.4% 가 되는 것이다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;688&quot; data-origin-height=&quot;452&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cRFkkc/dJMcajaqeuK/i8iMGqGad2EiuaA71PLkP0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cRFkkc/dJMcajaqeuK/i8iMGqGad2EiuaA71PLkP0/img.png&quot; data-alt=&quot;그림2: 정규분포에서 표준편차에 따른 누적확률&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cRFkkc/dJMcajaqeuK/i8iMGqGad2EiuaA71PLkP0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcRFkkc%2FdJMcajaqeuK%2Fi8iMGqGad2EiuaA71PLkP0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;688&quot; height=&quot;452&quot; data-origin-width=&quot;688&quot; data-origin-height=&quot;452&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;그림2: 정규분포에서 표준편차에 따른 누적확률&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;보통 주가는 정규분포를 따르지 않지만 대체적으로 밴드에서 크게 벗어나지 않을 것이라는 가정을 바탕으로 차트분석을 수행한다. 볼린저 밴드를 그릴 때는 대부분 중심선으로는 20일 이동평균선을 사용하고 평균선 &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;plusmn; ( 표준편차 &amp;times; 2 ) 로 상단선과 하단선을 그려준다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;793&quot; data-origin-height=&quot;500&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bwpoSe/dJMcahqbWaB/a3ghuQYYZ4F2qs2kTQBGtK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bwpoSe/dJMcahqbWaB/a3ghuQYYZ4F2qs2kTQBGtK/img.png&quot; data-alt=&quot;그림3: 일반적인 볼린저 밴드 형태&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bwpoSe/dJMcahqbWaB/a3ghuQYYZ4F2qs2kTQBGtK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbwpoSe%2FdJMcahqbWaB%2Fa3ghuQYYZ4F2qs2kTQBGtK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;793&quot; height=&quot;500&quot; data-origin-width=&quot;793&quot; data-origin-height=&quot;500&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;그림3: 일반적인 볼린저 밴드 형태&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #f89009;&quot;&gt;&lt;b&gt;볼린저 밴드로 매수 종목 골라내기&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;u&gt;&lt;b&gt;평균회귀전략&lt;/b&gt;&lt;/u&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;볼린저 밴드 분석의 가정에 따르면 주가는 평균선&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&amp;plusmn; ( 표준편차 &amp;times; 2 ) 에서 움직일 확률이 95%나 된다. 따라서 밴드 상단선을 터치하는 경우는 다시 밴드 안쪽으로 들어와야 하기 때문에 매도 시그널이 되고 밴드 하단선을 터치하는 경우는 매수 시그널이 된다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;825&quot; data-origin-height=&quot;535&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cbCygY/dJMcaadxnqa/fjOLO6LdicAMGhufUkLzyK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cbCygY/dJMcaadxnqa/fjOLO6LdicAMGhufUkLzyK/img.png&quot; data-alt=&quot;그림4: 볼린저 밴드를 활용한 평균회귀 전략&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cbCygY/dJMcaadxnqa/fjOLO6LdicAMGhufUkLzyK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcbCygY%2FdJMcaadxnqa%2FfjOLO6LdicAMGhufUkLzyK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;825&quot; height=&quot;535&quot; data-origin-width=&quot;825&quot; data-origin-height=&quot;535&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;그림4: 볼린저 밴드를 활용한 평균회귀 전략&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;중요한 점은 볼린저 밴드는 주가가 정규분포를 따를 때 유효하다는 것을 잊지 않는 것이다. 시장의 변동성이 큰 상황, 대세 상승 또는 하락이 오는 등 극단값이 많이 발생하는 경우(fat tail)는 평균회귀전략이 맞지 않을 확률이 매우 높다.&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;u&gt;&lt;b&gt;추세추종&lt;/b&gt;&lt;/u&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;볼린저 밴드의 폭이 넓어진다는 의미는 주가의 표준편차가 커졌다는 의미이다. 극단적인 값이 상승하는 방향으로 많이 나온다면, 밴드 상단선 터치는 강한 추세를 나타내는 것일 수 있다. 반대로 극단적인 값이 하락하는 방향으로 많이 나온다면, 하단선 터치는 강한 하락추세를 나타낼 것이다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;850&quot; data-origin-height=&quot;508&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/QtOFd/dJMcac3rZTN/k14wRSXFrXTpYlnFpb1biK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/QtOFd/dJMcac3rZTN/k14wRSXFrXTpYlnFpb1biK/img.png&quot; data-alt=&quot;그림5: 볼린저 밴드 폭의 변화&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/QtOFd/dJMcac3rZTN/k14wRSXFrXTpYlnFpb1biK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FQtOFd%2FdJMcac3rZTN%2Fk14wRSXFrXTpYlnFpb1biK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;850&quot; height=&quot;508&quot; data-origin-width=&quot;850&quot; data-origin-height=&quot;508&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;그림5: 볼린저 밴드 폭의 변화&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;밴드의 폭이 좁을 때는 평균회귀전략이 잘 맞고, 밴드의 폭이 넓을 때는 추세추종 전략이 유효할 수 있다. 하지만 실제로 밴드의 폭이 좁아지는지 넓어지는지는 사후적으로 알 수 있는 부분이 많기 때문에 다른 지표와 함께 사용하는 것이 중요할 것 같다.&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>금융정보/01.유가증권(주식 채권 등)</category>
      <author>문송한투자자</author>
      <guid isPermaLink="true">https://moonsong-investor.tistory.com/261</guid>
      <comments>https://moonsong-investor.tistory.com/261#entry261comment</comments>
      <pubDate>Thu, 19 Mar 2026 01:32:55 +0900</pubDate>
    </item>
    <item>
      <title>국채선물 이론가 산출하기: python(2)</title>
      <link>https://moonsong-investor.tistory.com/260</link>
      <description>&lt;h2 style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #f89009;&quot;&gt;&lt;b&gt;채권 선도가격 계산하기&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;「파생상품시장 업무규정 시행세칙」 별표 9에 따르면 채권 선도가격은 &lt;a href=&quot;https://moonsong-investor.tistory.com/259&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;국채선물 이론가 산출하기: python(1)&lt;/a&gt;에서 계산한 채권시장가격을 바탕으로 계산한다. 결제월 세 번째 화요일인 선물 결제일 전에 쿠폰 지급이 있으면 이자락을 반영해 준 뒤 선물 결제일 기준일만큼 수익률을 반영한 선도가격을 만든다. 이때의 수익률은 call 금리, CD금리, 통안채 1년 금리를 선형 보간해서 만들어 준다.&lt;/p&gt;
&lt;pre id=&quot;code_1771418594295&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;tdate = date(2026, 2, 13)
fut_mat_date = date(2026, 3, 17)
ratedata = [
    ['call',1,0.02559],
    ['cd',91, 0.0278],
    ['msb1y',365, 0.0259]
]

rates = pd.DataFrame(data=ratedata, columns=['ratename', 'nodes','rates'])

def cal_fwd_price(basket, val_date, fut_mat_date):
    prices = []
    for b in basket:
        price = round(cal_bond_price(b, tdate),4)
        d2 = (b.coupon_dates[0] - val_date).days
        t = (fut_mat_date - val_date).days
        r2 = cal_ref_rate(d2, rates)
        r_star = cal_ref_rate(t, rates)
        if b.coupon_dates[0] &amp;lt; fut_mat_date:
            I = (b.coupon_rate / 2 * b.face_value) / (1+r2*d2/365)
            fwd_price = round(( price-I ) * (1+r_star*t/365),4)
        else:
            I = 0
            fwd_price = round(price * (1+r_star*t/365),4)

        prices.append({'spot':price, 'fwd':fwd_price})&lt;/code&gt;&lt;/pre&gt;
&lt;h4 style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;u&gt;&lt;b&gt;선형보간 계산하기: perform_lininterp&lt;/b&gt;&lt;/u&gt;&lt;/h4&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;ratedata에서 얻을 수 있는 데이터는 1일 call 금리, 91일 CD금리, 365일 1년 통안채 금리 이다. 이 경우 60일 금리, 300일 금리 같은 경우는 선형보간을 사용해서 구해야 한다. &lt;a href=&quot;https://moonsong-investor.tistory.com/40&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;선형보간법 연습&lt;/a&gt;에도 소개한 것처럼 60일 금리의 경우 call 금리 ~ CD금리 사이, 300일 금리의 경우 CD금리 ~ 1년 통안채 금리 사이에 직선을 그려서 비례식으로 금리를 구해낼 수 있다.&lt;/p&gt;
&lt;pre id=&quot;code_1771418859418&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;def perform_lininterp(x, x0, y0, x1, y1):
    if x1 == x0:
        return y0
    return y0 + (x - x0) / (x1 - x0) * (y1 - y0)&lt;/code&gt;&lt;/pre&gt;
&lt;h4 style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;u&gt;&lt;b&gt;참조금리 계산하기: cal_ref_rate&lt;/b&gt;&lt;/u&gt;&lt;/h4&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;perform_lininterp 함수를 활용한다면, rates라는 데이터프레임에서 60일 금리, 300일 금리와 같은 대상 일수에 해당되는 구간을 찾아서 금리를 계산하는 함수를 만들 수 있다.&lt;/p&gt;
&lt;pre id=&quot;code_1771419159396&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;def cal_ref_rate(days, rates: pd.DataFrame):
    df = rates.sort_values('nodes').reset_index(drop=True)

    if days &amp;lt;= df.loc[0, 'nodes']:
        return float(df.loc[0, 'rates'])

    for i in range(len(df) - 1):
        d0 = df.loc[i, 'nodes']
        d1 = df.loc[i + 1, 'nodes']
        r0 = df.loc[i, 'rates']
        r1 = df.loc[i + 1, 'rates']
        
        if d0 &amp;lt; days &amp;lt;= d1:
            return perform_lininterp(days, d0, r0, d1, r1)

    return float(df.loc[len(df) - 1, 'rates'])&lt;/code&gt;&lt;/pre&gt;
&lt;h2 style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #f89009;&quot;&gt;&lt;b&gt;채권 선도수익률 계산하기: cal_fwd_yield&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;선도수익률은 국채선물 결제일에 선도가격을 만들어내는 금리이다. &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;「파생상품시장 업무규정 시행세칙」 별표 9의 시장가격을 구하는 식을 활용해서 선도수익률을 구하면 되는데, 아래 식 1에서 r1을 찾는 과정이다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;590&quot; data-origin-height=&quot;342&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/brWFVK/dJMcabJ3yje/6APGTIsR1hLTm0fJMzE6PK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/brWFVK/dJMcabJ3yje/6APGTIsR1hLTm0fJMzE6PK/img.png&quot; data-alt=&quot;식1: 선도가격을 이용해서 채권 선도 수익률 계산하는 식&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/brWFVK/dJMcabJ3yje/6APGTIsR1hLTm0fJMzE6PK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbrWFVK%2FdJMcabJ3yje%2F6APGTIsR1hLTm0fJMzE6PK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;590&quot; height=&quot;342&quot; data-origin-width=&quot;590&quot; data-origin-height=&quot;342&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;식1: 선도가격을 이용해서 채권 선도 수익률 계산하는 식&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;잔여 이자지급회수(n)이 채권마다 다르므로 식 1을 r1에 대해서 정리해서 r1을 구해내는 것은 불가능하다. 따라서 r1을 조금씩 조정하면서 이미 구한 선도가격을 만들어내는 수익률을 찾는 방식을 사용하면 된다. 아래 코드에서는 -1% ~ 20% 수익률 구간을 잡고 선도가격이 나올 때까지 조정해 주는 방식을 사용했다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1771885986382&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;def cal_fwd_yield(prices: pd.DataFrame, fut_mat_date, bonds: pd.DataFrame):
    b = config_bond_basket(fut_mat_date, bonds)
    lo = -0.01
    hi = 0.2
    results = []
    for i, row in prices.iterrows():
        fwd = row['fwd']
        basketbond = b[i]
        lo_, hi_ = lo, hi
        for _ in range(200):
            mid = (lo_ + hi_) / 2
            b[i].yield_to_mat = mid
            price_mid = cal_bond_price(basketbond, fut_mat_date)
            if abs(price_mid - fwd) &amp;lt; 1e-10:
                break
            elif price_mid &amp;gt; fwd:
                lo_ = mid
            else:
                hi_ = mid
        fwd_rate = (lo_ + hi_) / 2
        results.append(fwd_rate)
        
    results = pd.DataFrame(data=results, columns=['fwdrate'])
    df = pd.merge(prices, results, left_index=True, right_index=True, how='inner')
    return df&lt;/code&gt;&lt;/pre&gt;
&lt;h2 style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #f89009;&quot;&gt;&lt;b&gt;선물가격 계산하기: cal_fut_price&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;「파생상품시장 업무규정 시행세칙」 별표 9에는 계산한 선도금리를 활용해서 국채선물의 이론가격을 어떻게 계산하는지 식2와 같이 제시하고 있다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;648&quot; data-origin-height=&quot;484&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/yjXQz/dJMcaf6IZKN/3A49bJxIAX9Lqv1DmFWdgK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/yjXQz/dJMcaf6IZKN/3A49bJxIAX9Lqv1DmFWdgK/img.png&quot; data-alt=&quot;식2: 선도금리를 활용해서 선물가격 계산하는 식&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/yjXQz/dJMcaf6IZKN/3A49bJxIAX9Lqv1DmFWdgK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FyjXQz%2FdJMcaf6IZKN%2F3A49bJxIAX9Lqv1DmFWdgK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;648&quot; height=&quot;484&quot; data-origin-width=&quot;648&quot; data-origin-height=&quot;484&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;식2: 선도금리를 활용해서 선물가격 계산하는 식&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;식 2는 결국 쿠폰이 5%, 액면가 100, 반기마다 쿠폰을 지급하는 표준채권을 가정하고 있기 때문에 3년 국채선물인지, 5년 국채선물인지 등에 따라서 아래와 같이 선물데이터 데이터프레임을 정의할 수 있다.&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1771944015182&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;futdata = [['3y',3, 0.05, 100], ['5y',5, 0.05, 100]]
futdata = pd.DataFrame(data=futdata, columns=['futnm','years','coupon','facevalue'])&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정의한 선물데이터에 더해서 몇 년 국채선물인지, 선도금리가 얼마인지를 변수로 받아서 선물가격을 계산해 주는 함수를 아래와 같이 만들 수 있다.&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1771944170102&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;def cal_fut_price(futdata: pd.DataFrame, futnm: str, y: int):
    futdf = futdata.loc[futdata['futnm']==futnm]
    if futdf.empty:
        raise ValueError(f&quot;futnm='{futnm}'을 찾을 수 없습니다.&quot;)
    futrow = futdf.iloc[0]
    years = futrow['years']
    coupon_rate = futrow['coupon']
    facevalue = futrow['facevalue']
    n_periods = int(years * 2)
    coupon = coupon_rate * facevalue / 2
    c = 0
    for i in range(1, n_periods + 1):
        c += coupon / ((1 + y/2) ** i)
    n = facevalue / ((1 + y/2) ** n_periods)
    p_fin = c + n
    return p_fin&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;지금까지 만든 코드를 요약하면 아래와 같이 정리할 수 있다.&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1771944527980&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import pandas as pd
import numpy as np
from datetime import date
from dateutil.relativedelta import relativedelta
from dataclasses import dataclass
from typing import List
# 선물가격산출 기준일
tdate = date(2026, 1, 30)
# 산출하고자하는 선물상품의 만기일
fut_mat_date = date(2026, 3, 17)
# 선물가격 산출 기준일의 기초금리 데이터
ratedata = [
    ['call', 1,0.02546],
    ['cd',91, 0.0273],
    ['msb1y',365, 0.0263]
]
# 산출하고자하는 선물상품을 구성하는 채권 바스킷
bonddata = [
    ['국고채권 02875-2712(24-12)', date(2024,12,10), date(2027,12,10), 0.02875, 100,  0.02998],
    ['국고채권 02250-2806(25-4)', date(2025,6,10), date(2028,6,10), 0.0225, 100,  0.03111],
    ['국고채권 02500-3009(25-8)', date(2025,9,10), date(2030,9,10), 0.0250, 100,  0.03441]
]
# 최종 선물 이론가 산출을 위한 상품 기본정의
futdata = [['3y',3, 0.05, 100], ['5y',5, 0.05, 100]]
# 데이터프레임으로 재정의
bonds = pd.DataFrame(data=bonddata, columns=['bondname','issuedate','matdate','couponrate','facevalue','yieldtomat'])
rates = pd.DataFrame(data=ratedata, columns=['ratename', 'nodes','rates'])
futdata = pd.DataFrame(data=futdata, columns=['futnm','years','coupon','facevalue'])
# 데이터클래스로 정의
@dataclass
class basketBond:
    bond_name: str
    issue_date: date
    mat_date: date
    coupon_rate: float
    coupon_dates: List[date]
    face_value: float
    yield_to_mat: float

class refRate:
    call: List[float]
    cd: List[float]
    msb1y: List[float]

# 쿠폰스케줄 만드는 함수
def gen_coupon_schedule(st_date, ed_date):
...(중략)...
# 채권바스켓 클래스 만드는 함수
def config_bond_basket(tdate, bonds):
...(중략)...
# 채권금리로 시장가격 계산하는 함수
def cal_bond_price(b, val_date):
...(중략)...
# 선형보간 계산하는 함수
def perform_lininterp(x, x0, y0, x1, y1):
...(중략)...
# 채권선도가격 계산하는 함수
def cal_fwd_price(basket, val_date, fut_mat_date):
...(중략)...
# 채권선도금리 계산하는 함수
def cal_fwd_yield(prices: pd.DataFrame, fut_mat_date, bonds: pd.DataFrame):
...(중략)...
# 선물가격 계산하는 함수
def cal_fut_price(futdata: pd.DataFrame, futnm: str, y: int):
...(중략)...

basket = config_bond_basket(tdate, bonds)
p = cal_fwd_price(basket, tdate, fut_mat_date)
r = cal_fwd_yield(p, fut_mat_date, bonds)
r_avg = float(np.mean(r['fwdrate']))
fut_price = cal_fut_price(futdata, '3y', r_avg)
print(fut_price)&lt;/code&gt;&lt;/pre&gt;</description>
      <category>알고리즘트레이딩/자산평가&amp;amp;프로그램매매</category>
      <author>문송한투자자</author>
      <guid isPermaLink="true">https://moonsong-investor.tistory.com/260</guid>
      <comments>https://moonsong-investor.tistory.com/260#entry260comment</comments>
      <pubDate>Tue, 24 Feb 2026 23:51:19 +0900</pubDate>
    </item>
    <item>
      <title>국채선물 이론가 산출하기: python(1)</title>
      <link>https://moonsong-investor.tistory.com/259</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #f89009;&quot;&gt;&lt;b&gt;국채선물 이론가 산출 방법&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;국채선물 이론가를 산출 식은 「파생상품시장 업무규정 시행세칙」 별표 9에 자세하게 나와있다.(&lt;a style=&quot;color: #0070d1; text-align: start;&quot; href=&quot;https://rule.krx.co.kr/out/index.do&quot;&gt;KRX법무포털&lt;/a&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;참조)&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;fileblock&quot; data-ke-align=&quot;alignCenter&quot;&gt;&lt;a href=&quot;https://blog.kakaocdn.net/dn/cVhiuE/dJMcafyLMyY/MVV8fbkbzcenjn5zlnhJIK/%EA%B5%AD%EC%B1%84%EC%84%A0%EB%AC%BC%EC%9D%B4%EB%A1%A0%EA%B0%80%EA%B2%A9.hwp?attach=1&amp;amp;knm=tfile.hwp&quot; class=&quot;&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;desc&quot;&gt;&lt;div class=&quot;filename&quot;&gt;&lt;span class=&quot;name&quot;&gt;국채선물이론가격.hwp&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;size&quot;&gt;0.05MB&lt;/div&gt;
&lt;/div&gt;
  &lt;/a&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;시행세칙에 나와있는 계산과정을 요약하면 KRX에서 해당 국채선물의 채권 바스켓을 찾기 -&amp;gt; 바스켓에 있는 채권의 정보파악하기 ( 유통수익률, 만기, 쿠폰금리) -&amp;gt; 채권 시장가격 계산하기 -&amp;gt;&amp;nbsp; 채권 선도가격 계산하기 -&amp;gt; 채권 선도수익률을 계산하기 -&amp;gt; 선물가격 계산하기의 순서를 가진다. &lt;a href=&quot;https://moonsong-investor.tistory.com/257&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;선물거래: 국채선물 이론가 산출하기(1)&lt;/a&gt; ~ &lt;a href=&quot;https://moonsong-investor.tistory.com/258&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;(2)&lt;/a&gt; 에서 실습한 것처럼 엑셀로 이론가를 산출할 수 있지만 python으로 이론가 계산하는 코드를 만들어 두면 간편하게 이론가를 계산해 볼 수 있다.&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #f89009;&quot;&gt;&lt;b&gt;채권 객체 만들기: basketBond&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;국채선물 바스켓에 있는 채권의 주요 속성을 basket Bond 라는 틀에 저장해 두면 정보를 불러오기 편리해진다. 채권선물 이론가 계산에서 주로 필요한 속성으로는 채권의 발행일, 만기일, 표면금리, 이자지급스케줄, 액면가, 현재 유통수익률이다. python Class 형태로 나타내면 아래와 같다.&lt;/p&gt;
&lt;pre id=&quot;code_1771372393825&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;@dataclass
class basketBond:
    bond_name: str
    issue_date: date
    mat_date: date
    coupon_rate: float
    coupon_dates: List[date]
    face: float
    ytm: float&lt;/code&gt;&lt;/pre&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #f89009;&quot;&gt;&lt;b&gt;이자지급스케줄 계산하기: get_coupon_schedule&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;국채선물 바스켓에 들어가있는 국채는 기본적으로 반기(6개월) 고정금리 채권을 기반으로 하고 있다. 따라서 시작일을 기준으로 만기일 전까지 6개월씩 더해주는 스케줄을 만들면 이자지급스케줄이 완성된다.&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1771377451161&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;def gen_coupon_schedule(st_date, ed_date):
    dates = []
    d = ed_date
    while d &amp;gt; st_date:
        dates.append(d)
        d -= relativedelta(months=6)
    return sorted(dates)&lt;/code&gt;&lt;/pre&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #f89009;&quot;&gt;&lt;b&gt;채권 객체 완성하기&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2026.03월 만기 국고채 3년 선물의 이론가를 2026-02-13 기준으로 계산하는 상황이라면, 금융투자협회 채권정보센터(&lt;a href=&quot;https://www.kofiabond.or.kr/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://www.kofiabond.or.kr/&lt;/a&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;) 에서 채권 기본정보를 구한 뒤 gen_coupon_shcedule 함수를 활용해서 이자지급스케줄을 채워주면 선물 basket 리스트를 만들 수 있다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1771377749433&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;tdate = date(2026, 2, 13)

basket = []

for _, row in bonds.iterrows():
    coupon_dates = gen_coupon_schedule(tdate, row['matdate'])

    basket.append(
        basketBond(
            bond_name=row['bondname'],
            issue_date=row['issuedate'],
            mat_date=row['matdate'],
            coupon_rate=row['couponrate'],
            coupon_dates=coupon_dates,
            face_value=row['facevalue'],
            yield_to_mat=row['yieldtomat']
        )
    )&lt;/code&gt;&lt;/pre&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #f89009;&quot;&gt;&lt;b&gt;채권 시장가격 계산하기: cal_bond_price&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;채권 basket을 구성했으면, basket의 각 채권을 「파생상품시장 업무규정 시행세칙」 별표 9에 나와있는 식에 따라 계산해서 채권 시장가격을 계산해 주면 1단계가 끝난다. 채권 시장가격을 구하는 방식은 &lt;a href=&quot;https://moonsong-investor.tistory.com/257&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;선물거래: 국채선물 이론가 산출하기(1)&lt;/a&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt; 에서 설명한 대로 다음 이자지급일 기준으로 계산한 Clean Price를 평가기준일자로 할인하는 방식이다. 이자지급 스케줄의 쿠폰을 계산하고, 마지막일자에는 액면가를 반영해 주는 함수는 아래와 같이 만들 수 있다.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1771380276622&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;from dateutil.relativedelta import relativedelta

def cal_bond_price(b, val_date):
    r1 = b.yield_to_mat
    pre_coupon_date = b.coupon_dates[0] - relativedelta(months=6)
    d1 = b.coupon_dates[0] - val_date
    t1 = b.coupon_dates[0] - pre_coupon_date

    part_a = 1/(1+(r1/2*d1/t1))
    
    part_b = 0.0
    n = len(b.coupon_dates) - 1
    for i, dates in enumerate(b.coupon_dates, start = 0):
        df = 1/((1+r1/2)**i)
        coupon = ( b.coupon_rate * b.face_value / 2 ) * df
        part_b += coupon
        if i == n:
            part_b += b.face_value * df
    price = part_a * part_b
    return price&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;세 개의 채권이 바스켓을 구성하고 있으므로 basket을 활용한 for 문을 아래와 같이 만들어주면, 바스켓을 구성하고 있는 채권의 시장가격 리스트를 계산할 수 있다.&lt;/p&gt;
&lt;pre id=&quot;code_1771380569161&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;prices = []
for i in basket:
    price = cal_bond_price(i, tdate)
    prices.append(price)&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;564&quot; data-origin-height=&quot;30&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bUVE3x/dJMcacPCLr1/HkgKcsekTN4PseQlOwBdC1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bUVE3x/dJMcacPCLr1/HkgKcsekTN4PseQlOwBdC1/img.png&quot; data-alt=&quot;그림1: 채권가격 계산 결과&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bUVE3x/dJMcacPCLr1/HkgKcsekTN4PseQlOwBdC1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbUVE3x%2FdJMcacPCLr1%2FHkgKcsekTN4PseQlOwBdC1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;564&quot; height=&quot;30&quot; data-origin-width=&quot;564&quot; data-origin-height=&quot;30&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;그림1: 채권가격 계산 결과&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>알고리즘트레이딩/자산평가&amp;amp;프로그램매매</category>
      <author>문송한투자자</author>
      <guid isPermaLink="true">https://moonsong-investor.tistory.com/259</guid>
      <comments>https://moonsong-investor.tistory.com/259#entry259comment</comments>
      <pubDate>Wed, 18 Feb 2026 11:11:55 +0900</pubDate>
    </item>
    <item>
      <title>선물거래: 국채선물 이론가 산출하기(2)</title>
      <link>https://moonsong-investor.tistory.com/258</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #f89009;&quot;&gt;&lt;b&gt;국채선물 최종결제기준채권 바스켓을 찾기&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;국채선물은 3, 6, 9, 12 월물이 각각 있고, 각 월물을 구성하는 채권이 모두 다르다.( &lt;a href=&quot;https://open.krx.co.kr/contents/OPN/01/01040501/OPN01040501.jsp&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;KRX홈페이지 참조&lt;/a&gt; ) 예를 들면 2026년 3월물을 국고00250-2806, 국고02875-2712, 국고02500-3009 라는 채권으로 이루어져 있고, 2026년 6월물은 국고02750-2812, 국고02250-2806, 국고02500-3009 라는 채권으로 이루어져 있다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;791&quot; data-origin-height=&quot;427&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/pc3XH/dJMcagqSdNN/mgtTQMGAT2EZKiKZSNmH71/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/pc3XH/dJMcagqSdNN/mgtTQMGAT2EZKiKZSNmH71/img.png&quot; data-alt=&quot;그림1: 2026년 3월물 3년 국채선물 바스킷&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/pc3XH/dJMcagqSdNN/mgtTQMGAT2EZKiKZSNmH71/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fpc3XH%2FdJMcagqSdNN%2FmgtTQMGAT2EZKiKZSNmH71%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;791&quot; height=&quot;427&quot; data-origin-width=&quot;791&quot; data-origin-height=&quot;427&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;그림1: 2026년 3월물 3년 국채선물 바스킷&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2026년 3월물 이론 가격을 구하고 싶다면 국고00250-2806, 국고02875-2712, 국고02500-3009 라는 채권을 인지하고 이 채권들의 유통수익률을 파악해야 한다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #f89009;&quot;&gt;&lt;b&gt;채권별 유통수익률 파악하기&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;국채선물 바스킷에 들어있는 채권의 유통수익률은 금융투자협회 채권정보센터(&lt;a href=&quot;https://www.kofiabond.or.kr/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.kofiabond.or.kr/&lt;/a&gt;) 에서 채권금리 -&amp;gt; 국채선물수익률 메뉴에서 확인할 수 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;761&quot; data-origin-height=&quot;500&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/E5zg7/dJMcaiba5Jb/AiwkPoB7nCdjCk0uyqRH81/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/E5zg7/dJMcaiba5Jb/AiwkPoB7nCdjCk0uyqRH81/img.png&quot; data-alt=&quot;그림2: 국채3년 선물 국채바스킷 채권별 종가&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/E5zg7/dJMcaiba5Jb/AiwkPoB7nCdjCk0uyqRH81/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FE5zg7%2FdJMcaiba5Jb%2FAiwkPoB7nCdjCk0uyqRH81%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;761&quot; height=&quot;500&quot; data-origin-width=&quot;761&quot; data-origin-height=&quot;500&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;그림2: 국채3년 선물 국채바스킷 채권별 종가&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2026-01-30 을 기준으로 각각의 수익률을 정리하면 아래 표와 같이 정리할 수 있다.&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style1&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;채권명&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;수익률&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;국고02875-2712(24-12)&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;2.998%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;국고02250-2806(25-4)&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;3.111%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;국고02500-3009(25-8)&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;3.441%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #f89009;&quot;&gt;&lt;b&gt;채권 시장가격 계산하기&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;채권의 시장가격은 「파생상품시장 업무규정 시행세칙」별표 9(&lt;a style=&quot;color: #0070d1; text-align: start;&quot; href=&quot;https://rule.krx.co.kr/out/index.do&quot;&gt;KRX법무포털&lt;/a&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;참조)를 따라서 계산하면 된다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;607&quot; data-origin-height=&quot;407&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bmgPcq/dJMcahceY8Q/v6q0SjcTPxzLShG3QFFbk1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bmgPcq/dJMcahceY8Q/v6q0SjcTPxzLShG3QFFbk1/img.png&quot; data-alt=&quot;식1: 채권 시장가격 계산식&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bmgPcq/dJMcahceY8Q/v6q0SjcTPxzLShG3QFFbk1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbmgPcq%2FdJMcahceY8Q%2Fv6q0SjcTPxzLShG3QFFbk1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;607&quot; height=&quot;407&quot; data-origin-width=&quot;607&quot; data-origin-height=&quot;407&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;식1: 채권 시장가격 계산식&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;미래 이자와 원금을 기준일자 이후에 도래하는 첫번째 이자일자로 할인하는 것이 위 식 1의 B파트이고 그것을 다시 한 번 평가 기준일자로 할인하는 것이 식 1의 A파트이다. 결과적으로 첫번째 이자일자 기준으로 현금흐름을 계산했기 때문에 수익률로부터 계산된 채권 시장가격은 Clean Price가 된다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;662&quot; data-origin-height=&quot;331&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/drmAUv/dJMcacINFp6/OhXxdFu52lAE3PJpxyFgh1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/drmAUv/dJMcacINFp6/OhXxdFu52lAE3PJpxyFgh1/img.png&quot; data-alt=&quot;그림3: 채권 시장가격 계산식 구조도&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/drmAUv/dJMcacINFp6/OhXxdFu52lAE3PJpxyFgh1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdrmAUv%2FdJMcacINFp6%2FOhXxdFu52lAE3PJpxyFgh1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;662&quot; height=&quot;331&quot; data-origin-width=&quot;662&quot; data-origin-height=&quot;331&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;그림3: 채권 시장가격 계산식 구조도&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;채권별로 시장가격을 계산하면 아래 그림과 같이 정리할 수 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;897&quot; data-origin-height=&quot;451&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qYaQw/dJMcabwkiyc/kN87ZvifU3c9f2kF20S7W1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qYaQw/dJMcabwkiyc/kN87ZvifU3c9f2kF20S7W1/img.png&quot; data-alt=&quot;그림4: 채권 시장가격 계산 예시&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qYaQw/dJMcabwkiyc/kN87ZvifU3c9f2kF20S7W1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqYaQw%2FdJMcabwkiyc%2FkN87ZvifU3c9f2kF20S7W1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;897&quot; height=&quot;451&quot; data-origin-width=&quot;897&quot; data-origin-height=&quot;451&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;그림4: 채권 시장가격 계산 예시&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #f89009;&quot;&gt;&lt;b&gt;채권 선도가격 계산하기&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;계산한 개별 채권의 시장가격에서 이자락금액의 현재가치를 차감한 뒤에 최종거래일까지의 금리를 붙여주면 채권의 선도가격을 계산할 수 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;897&quot; data-origin-height=&quot;417&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b4ToXw/dJMcac9NCMw/OwcuOUqOker7HCdBOVC0sK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b4ToXw/dJMcac9NCMw/OwcuOUqOker7HCdBOVC0sK/img.png&quot; data-alt=&quot;식2: 채권 선도가격 계산식&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b4ToXw/dJMcac9NCMw/OwcuOUqOker7HCdBOVC0sK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb4ToXw%2FdJMcac9NCMw%2FOwcuOUqOker7HCdBOVC0sK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;897&quot; height=&quot;417&quot; data-origin-width=&quot;897&quot; data-origin-height=&quot;417&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;식2: 채권 선도가격 계산식&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이자락금액은 계산기준일 ~ 선물만기일까지 쿠폰금액만큼 지급이 있으면 발생하는 금액이다. 여기서 쿠폰금액은 표면금리(연율) / 2 ( = 6개월간 이자지급액) 이 된다. 계산기준일에서 몇 일 뒤에 쿠폰이 지급되는지 계산하고(d_2) 계산된 기간에 대한 할인율(r_2)을 계산하여 쿠폰금액을 할인하면 I 라는 이자락금액을 구할 수 있다. 이렇게 계산한 금액에 선물만기일까지 이자를 붙여주면 채권의 선도가격이 나온다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;865&quot; data-origin-height=&quot;428&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Jqod0/dJMcaf6zFdg/SXrrhgt8OVuo7XU4hyxPo1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Jqod0/dJMcaf6zFdg/SXrrhgt8OVuo7XU4hyxPo1/img.png&quot; data-alt=&quot;그림5: 선도가격 계산 예시&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Jqod0/dJMcaf6zFdg/SXrrhgt8OVuo7XU4hyxPo1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FJqod0%2FdJMcaf6zFdg%2FSXrrhgt8OVuo7XU4hyxPo1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;865&quot; height=&quot;428&quot; data-origin-width=&quot;865&quot; data-origin-height=&quot;428&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;그림5: 선도가격 계산 예시&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #f89009;&quot;&gt;&lt;b&gt;선도금리 계산하기&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;선도금리는 채권 시장가격 계산하기에서 사용했던 식을 다시 사용하면 된다. 여기서 선도금리를 계산하는 것이기 때문에 기준일은 선물의 만기일이 되어야 한다는 점만 주의하면 된다. 예를 들어 2026년 3월 3년 국채선물의 경우 기준일은 2026-03-17 이 된다. 따라서 현금흐름은 2026-03-17 이후의 날짜를 기준으로 만들어야 한다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;902&quot; data-origin-height=&quot;395&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vq3jW/dJMcaaYuxZk/iIBEFzrO1vzd5huQStD5rk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vq3jW/dJMcaaYuxZk/iIBEFzrO1vzd5huQStD5rk/img.png&quot; data-alt=&quot;그림6: 선도금리 계산하기&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vq3jW/dJMcaaYuxZk/iIBEFzrO1vzd5huQStD5rk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fvq3jW%2FdJMcaaYuxZk%2FiIBEFzrO1vzd5huQStD5rk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;902&quot; height=&quot;395&quot; data-origin-width=&quot;902&quot; data-origin-height=&quot;395&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;그림6: 선도금리 계산하기&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기준일과 선도가격을 알더라도 선도금리 계산하기가 쉽지 않은데, 이 때 엑셀의 목표값 찾기 기능을 활용하면 선도금리를 계산할 수 있다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;943&quot; data-origin-height=&quot;511&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bn36Xq/dJMcafS2Z8b/SXwyLBgu3BSBRFEVnw2DO1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bn36Xq/dJMcafS2Z8b/SXwyLBgu3BSBRFEVnw2DO1/img.png&quot; data-alt=&quot;그림7: 목표값 찾기 사용 예시&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bn36Xq/dJMcafS2Z8b/SXwyLBgu3BSBRFEVnw2DO1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbn36Xq%2FdJMcafS2Z8b%2FSXwyLBgu3BSBRFEVnw2DO1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;943&quot; height=&quot;511&quot; data-origin-width=&quot;943&quot; data-origin-height=&quot;511&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;그림7: 목표값 찾기 사용 예시&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 그림과 같이 선도가격을 구하는 셀에 수식을 걸어두고, 찾을 목표값으로는 계산한 채권선도가격을 입력한 뒤, 선도금리를 찾아주면 된다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #f89009;&quot;&gt;&lt;b&gt;선물가격 계산하기&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;국채선물 바스킷에서 채권별로 계산한 평균선도금리를 아래 식에 대입해주면, 선물의 이론가를 산출할 수 있다. 아래 식에서 r은 지금까지 계산한 평균선도금리가 된다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;795&quot; data-origin-height=&quot;240&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/p7JdW/dJMcagErbgr/q73veLmCl5DjvgTVWczfB1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/p7JdW/dJMcagErbgr/q73veLmCl5DjvgTVWczfB1/img.png&quot; data-alt=&quot;식3: 3년국채선물 이론가격 최종 계산식&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/p7JdW/dJMcagErbgr/q73veLmCl5DjvgTVWczfB1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fp7JdW%2FdJMcagErbgr%2Fq73veLmCl5DjvgTVWczfB1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;795&quot; height=&quot;240&quot; data-origin-width=&quot;795&quot; data-origin-height=&quot;240&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;식3: 3년국채선물 이론가격 최종 계산식&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;계산과정을 엑셀로 풀어서 나타내면 아래 그림과 같다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;647&quot; data-origin-height=&quot;262&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bvc9Xd/dJMcacWiy2D/qLeFb9xPIn3zFOekK2DvG1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bvc9Xd/dJMcacWiy2D/qLeFb9xPIn3zFOekK2DvG1/img.png&quot; data-alt=&quot;그림8: 선물이론가 최종 계산 예시&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bvc9Xd/dJMcacWiy2D/qLeFb9xPIn3zFOekK2DvG1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbvc9Xd%2FdJMcacWiy2D%2FqLeFb9xPIn3zFOekK2DvG1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;647&quot; height=&quot;262&quot; data-origin-width=&quot;647&quot; data-origin-height=&quot;262&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;그림8: 선물이론가 최종 계산 예시&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;지금까지의 2026년 3월 3년 국채선물 이론가 계산 전 과정을 엑셀에 정리했으니 참고하면 될 것 같다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;fileblock&quot; data-ke-align=&quot;alignCenter&quot;&gt;&lt;a href=&quot;https://blog.kakaocdn.net/dn/cyMPrV/dJMcagqSdNe/LLvzwyCj6Mq3waJcilcxb1/260205_%EC%B1%84%EA%B6%8C%EC%84%A0%EB%AC%BC%EC%9D%B4%EB%A1%A0%EA%B0%80.xlsx?attach=1&amp;amp;knm=tfile.xlsx&quot; class=&quot;&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;desc&quot;&gt;&lt;div class=&quot;filename&quot;&gt;&lt;span class=&quot;name&quot;&gt;260205_채권선물이론가.xlsx&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;size&quot;&gt;0.02MB&lt;/div&gt;
&lt;/div&gt;
  &lt;/a&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>금융정보/02.파생상품</category>
      <author>문송한투자자</author>
      <guid isPermaLink="true">https://moonsong-investor.tistory.com/258</guid>
      <comments>https://moonsong-investor.tistory.com/258#entry258comment</comments>
      <pubDate>Tue, 10 Feb 2026 00:36:02 +0900</pubDate>
    </item>
    <item>
      <title>선물거래: 국채선물 이론가 산출하기(1)</title>
      <link>https://moonsong-investor.tistory.com/257</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #f89009;&quot;&gt;&lt;b&gt;국채선물 거래&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;국채선물은 만기일 기준으로 잔존기간 n 년의 국고채를 대상으로 하는 선물거래를 말한다. 잔존기간 몇 년짜리 국고채를 대상으로 하는지에 따라서 3년, 5년, 10년, 30년 국채선물 시장이 있다. 국가에서 채권을 매달 발행하기 때문에 만기별 국고채 선물의 기준이 되는 채권을 정해야 한다. 3년 국고채 선물을 중심으로 생각해 보면, 3/6/9/12 결제월마다 기준이 되는 채권 바스켓을 정해야 하는 것이다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;621&quot; data-origin-height=&quot;526&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cIDAtA/dJMcaa5dgZw/cEifuFBkeIPnQz7Js9U5Q1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cIDAtA/dJMcaa5dgZw/cEifuFBkeIPnQz7Js9U5Q1/img.png&quot; data-alt=&quot;그림1: 국채3년선물 계약명세(KRX홈페이지)&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cIDAtA/dJMcaa5dgZw/cEifuFBkeIPnQz7Js9U5Q1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcIDAtA%2FdJMcaa5dgZw%2FcEifuFBkeIPnQz7Js9U5Q1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;621&quot; height=&quot;526&quot; data-origin-width=&quot;621&quot; data-origin-height=&quot;526&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;그림1: 국채3년선물 계약명세(KRX홈페이지)&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;선물거래소인 &lt;a href=&quot;https://open.krx.co.kr/contents/OPN/01/01040503/OPN01040503.jsp&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;KRX는(https://open.krx.co.kr/contents/OPN/01/01040503/OPN01040503.jsp)&lt;/a&gt; 각 결제월 마다 기준이 되는 국채 바스켓을 공시해 놓았다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;766&quot; data-origin-height=&quot;407&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/LXdFk/dJMcafSZIKq/YYn7SK4hhWYLFnwAMCzwd0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/LXdFk/dJMcafSZIKq/YYn7SK4hhWYLFnwAMCzwd0/img.png&quot; data-alt=&quot;그림2: 국채선물 바스켓(KRX 홈페이지)&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/LXdFk/dJMcafSZIKq/YYn7SK4hhWYLFnwAMCzwd0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FLXdFk%2FdJMcafSZIKq%2FYYn7SK4hhWYLFnwAMCzwd0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;766&quot; height=&quot;407&quot; data-origin-width=&quot;766&quot; data-origin-height=&quot;407&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;그림2: 국채선물 바스켓(KRX 홈페이지)&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;국채선물 거래는 결국 아래와 같은 구조를 갖게 된다. 현재 국채 3년 선물가격이 100이라면 결제일 선물가격인 105와 차액을 정산하게 된다. 여기에서 결제일 선물가격인 105는 결제일 채권 바스켓의 현물가격에 수렴한 가격이다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;741&quot; data-origin-height=&quot;417&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bEViyc/dJMcabXlKec/791C0kGRpAMDzqZ3GSTjx1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bEViyc/dJMcabXlKec/791C0kGRpAMDzqZ3GSTjx1/img.png&quot; data-alt=&quot;그림3: 국채선물 거래구조&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bEViyc/dJMcabXlKec/791C0kGRpAMDzqZ3GSTjx1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbEViyc%2FdJMcabXlKec%2F791C0kGRpAMDzqZ3GSTjx1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;741&quot; height=&quot;417&quot; data-origin-width=&quot;741&quot; data-origin-height=&quot;417&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;그림3: 국채선물 거래구조&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #f89009;&quot;&gt;&lt;b&gt;국채선물거래 포지션 분석&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;국채선물거래는 돈을 빌려서 바스켓에 해당하는 채권을 사는 것과 같은 의미를 가진다. 손익이 대상이 되는 채권의 가격변동에 연동되지만 채권현물을 사는 것만큼 돈을 거래상대방에 줄 필요는 없다는 것을 생각하면 쉽게 이해가 된다. 그런데 여기에서 차익거래(Arbitrage)가 일어날 수 있는 여지가 생긴다. 트레이더들은 돈을 빌려서(차입비용 발생) 바스켓에 해당하는 채권을 살 때의 가치와 국채선물의 가격을 비교하는 것이다. 차입해서 채권을 샀을 때를 가정한 이론가격과 실제 국채선물가격의 차이를 비교해서, 국채선물 가격이 고평가 되어 있으면 국채선물을 팔고 바스켓에 해당하는 채권을 사고, 국채선물 가격이 저평가되어 있으면 트레이더들은 국채선물을 사고 바스켓에 해당하는 채권을 판다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서 국채선물의 가격은 국채선물 시세가 어떻게 움직일지에 따른 예상에 의존하는 것이 아니라 현재 조달비용과 바스켓에 들어있는 채권의 시세에 전적으로 의존한다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #f89009;&quot;&gt;&lt;b&gt;국채선물 이론가 산출방법(3년 선물)&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;국채선물거래 포지션 분석에서도 언급했듯이 국채선물의 이론가는 돈을 빌려서(차입비용 발생) 바스켓에 해당하는 채권을 살 때의 가치를 의미한다. 구체적인 산출식은 「파생상품시장 업무규정 시행세칙」별표 9에 자세하게 나와있다.(&lt;a href=&quot;https://rule.krx.co.kr/out/index.do&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;KRX법무포털&lt;/a&gt; 참조)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;fileblock&quot; data-ke-align=&quot;alignCenter&quot;&gt;&lt;a href=&quot;https://blog.kakaocdn.net/dn/clNRem/dJMcahiZeUG/oDKSELhlMOr9mqzPkkGCqK/%EA%B5%AD%EC%B1%84%EC%84%A0%EB%AC%BC%EC%9D%B4%EB%A1%A0%EA%B0%80%EA%B2%A9.hwp?attach=1&amp;amp;knm=tfile.hwp&quot; class=&quot;&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;desc&quot;&gt;&lt;div class=&quot;filename&quot;&gt;&lt;span class=&quot;name&quot;&gt;국채선물이론가격.hwp&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;size&quot;&gt;0.05MB&lt;/div&gt;
&lt;/div&gt;
  &lt;/a&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;별표 9의 계산구조를 나타내면 아래 그림 4와 같은데, 만약 2026년 3월에 결제되는 국고채 3년 선물가격을 구하려면 KRX에서 2026년 3월 물 최종결제기준채권 바스켓을 찾기 -&amp;gt; 채권별 유통수익률 파악하기 -&amp;gt; 주어진 계산식으로 채권 시장가격 계산하기 -&amp;gt; 주어진 계산식으로 채권 선도가격 계산하기 -&amp;gt; 선도가격을 이용해서 각 채권의 선도수익률을 계산해서 평균하기 -&amp;gt; 계산한 평균선도수익률로 선물가격 계산하기의 순서로 진행해 나가면 된다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1127&quot; data-origin-height=&quot;552&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/6stg9/dJMcaaxn9UB/uU5bVYVGvlXxrovcIAbw6k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/6stg9/dJMcaaxn9UB/uU5bVYVGvlXxrovcIAbw6k/img.png&quot; data-alt=&quot;그림4: 채권선물 이론가격 계산 과정&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/6stg9/dJMcaaxn9UB/uU5bVYVGvlXxrovcIAbw6k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F6stg9%2FdJMcaaxn9UB%2FuU5bVYVGvlXxrovcIAbw6k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1127&quot; height=&quot;552&quot; data-origin-width=&quot;1127&quot; data-origin-height=&quot;552&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;그림4: 채권선물 이론가격 계산 과정&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음에는 위 계산구조를 따라서 2026년 3월에 결제되는 국고채 3년 선물가격을 직접 계산해 보겠다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>금융정보/02.파생상품</category>
      <author>문송한투자자</author>
      <guid isPermaLink="true">https://moonsong-investor.tistory.com/257</guid>
      <comments>https://moonsong-investor.tistory.com/257#entry257comment</comments>
      <pubDate>Sun, 1 Feb 2026 18:09:57 +0900</pubDate>
    </item>
    <item>
      <title>(API)NOTION 캘린더 API로 관리하기(2)</title>
      <link>https://moonsong-investor.tistory.com/256</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #f89009;&quot;&gt;&lt;b&gt;금융통화위원회 및 FOMC 일정 정리&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;연초에 금융통화위원회 및 FOMC 일정 등을 엑셀로 작업해서 Notion 캘린더에 한 번에 올리는 작업을 해보자. &lt;a href=&quot;https://moonsong-investor.tistory.com/255&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;(API)NOTION 캘린더 API로 관리하기(1)&lt;/a&gt; 에서 &quot;날짜&quot;, &quot;이름&quot;, &quot;내용&quot;, &quot;비고&quot; 컬럼으로 구성된 달력을 만들었기 때문에 엑셀 작업할 때도 컬럼을 맞춰서 작업해 주면 된다. 다만 FOMC 일정 등록할 때는 시간도 중요한데, 엑셀 작업할 때 같은 셀에 날짜와 시간을 넣으면 작업이 번거롭기 때문에 &quot;날짜&quot;, &quot;시간&quot; 컬럼을 구분해서 작업해 주면 좋다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;861&quot; data-origin-height=&quot;423&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Imvqe/dJMcaaqyGdi/aBmEEEJkobXlRlV0QBmmYk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Imvqe/dJMcaaqyGdi/aBmEEEJkobXlRlV0QBmmYk/img.png&quot; data-alt=&quot;그림1: 엑셀작업 예시&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Imvqe/dJMcaaqyGdi/aBmEEEJkobXlRlV0QBmmYk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FImvqe%2FdJMcaaqyGdi%2FaBmEEEJkobXlRlV0QBmmYk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;861&quot; height=&quot;423&quot; data-origin-width=&quot;861&quot; data-origin-height=&quot;423&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;그림1: 엑셀작업 예시&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;fileblock&quot; data-ke-align=&quot;alignCenter&quot;&gt;&lt;a href=&quot;https://blog.kakaocdn.net/dn/cPY2qK/dJMcadnegGq/7KZT11a6ilpsZoiV7Bi020/%EC%A3%BC%EC%9A%94%EA%B2%BD%EC%A0%9C%EC%9D%BC%EC%A0%95.xlsx?attach=1&amp;amp;knm=tfile.xlsx&quot; class=&quot;&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;desc&quot;&gt;&lt;div class=&quot;filename&quot;&gt;&lt;span class=&quot;name&quot;&gt;주요경제일정.xlsx&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;size&quot;&gt;0.01MB&lt;/div&gt;
&lt;/div&gt;
  &lt;/a&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #f89009;&quot;&gt;&lt;b&gt;Notion API로 내 달력정보 업데이트 하기&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;작업한 엑셀을 Notion 캘린더 DB에 입력하기 위해서는 python 에서 엑셀 데이터 불러오기 -&amp;gt; 노션 캘린더에 입력할 수 있도록 데이터 형식 맞추기 -&amp;gt; 노션에 데이터 입력 순서로 작업을 하면 된다.&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;u&gt;&lt;b&gt;엑셀데이터 불러와서 Dataframe 만들기: configdf 함수만들기&lt;/b&gt;&lt;/u&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;엑셀 데이터 불러오기는 pandas의 read_excel 함수를 쓰면 쉽게 구현된다. 엑셀의 &quot;날짜&quot;, &quot;시간&quot; 컬럼은 합쳐서 &quot;년-월-일T시간:분:초&quot;로 표시하되 한국시간 기준으로 맞춰주면 데이터 전처리는 끝이 난다. 전처리 한 데이터는 pandas 데이터프레임 형태로 return 해준다.&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1769300199992&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 노션 및 판다스 라이브러리 가져오기
from notion_client import Client
import pandas as pd

...(중략)...
# 달력 데이터 경로
datapath = &quot;엑셀파일 경로&quot;
...(중략)...
def configdf(datapath: str):
    df = pd.read_excel(datapath)
    df[&quot;날짜&quot;] = pd.to_datetime(df[&quot;날짜&quot;])
    df[&quot;시간&quot;] = pd.to_timedelta(df[&quot;시간&quot;].astype(str))
    df[&quot;날짜&quot;] = df[&quot;날짜&quot;] + df[&quot;시간&quot;]
    df[&quot;날짜&quot;] = (
        df[&quot;날짜&quot;]
        .dt.tz_localize(&quot;Asia/Seoul&quot;)
        .dt.strftime(&quot;%Y-%m-%dT%H:%M:%S.000%z&quot;)
        )
    df = pd.DataFrame(df, columns=[&quot;날짜&quot;, &quot;이름&quot;, &quot;내용&quot;, &quot;비고&quot;])
    return df&lt;/code&gt;&lt;/pre&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;u&gt;&lt;b&gt;노션에 데이터 입력: update_notion_page 함수 만들기&lt;/b&gt;&lt;/u&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://moonsong-investor.tistory.com/255&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;(API)NOTION 캘린더 API로 관리하기(1)&lt;/a&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;에서 확인한 것처럼 Notion의 DB구조는 database_id라는(url에 표시) 틀 아래에 ROW마다 page_id를 갖고 있는 구조이다. 따라서 일정 하나마다 page_id를 갖는 구조이다. 결국 불러온 데이터 row 별로 notion API의 pages.create 함수를 사용해서 일정을 생성하면 된다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1769300487731&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 노션 및 판다스 라이브러리 가져오기
from notion_client import Client
import pandas as pd

...(중략)...

def update_notion_page(db_id, row):
    notion.pages.create(
        parent={&quot;database_id&quot;: db_id},
        properties={
            &quot;날짜&quot;: {&quot;date&quot;: {&quot;start&quot;: row[&quot;날짜&quot;]}},
            &quot;이름&quot;: {&quot;title&quot;: [{&quot;text&quot;: {&quot;content&quot;: row[&quot;이름&quot;]}}]},
            &quot;내용&quot;: {&quot;rich_text&quot;: [{&quot;text&quot;: {&quot;content&quot;: row[&quot;내용&quot;]}}]},
            &quot;비고&quot;: {&quot;rich_text&quot;: [{&quot;text&quot;: {&quot;content&quot;: row[&quot;비고&quot;]}}]},
        }
    )&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;종합해서 아래 코드에서 나의 API키와 database id 만 제대로 넣어주면, 엑셀파일에서 작업한 주요 경제일정을 노션 캘린더에 입력할 수 있다.&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1769300783299&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 노션 및 판다스 라이브러리 가져오기
from notion_client import Client
import pandas as pd

# Notion API 키 변수 생성
NOTION_API_KEY = '나의 API키'

# Notion 클라이언트 객체만들기
notion = Client(auth=NOTION_API_KEY)
db_id = '나의 db 아이디'

# 달력 데이터 경로
datapath = '엑셀파일 경로'

def configdf(datapath: str):
    df = pd.read_excel(datapath)
    df[&quot;날짜&quot;] = pd.to_datetime(df[&quot;날짜&quot;])
    df[&quot;시간&quot;] = pd.to_timedelta(df[&quot;시간&quot;].astype(str))
    df[&quot;날짜&quot;] = df[&quot;날짜&quot;] + df[&quot;시간&quot;]
    df[&quot;날짜&quot;] = (
        df[&quot;날짜&quot;]
        .dt.tz_localize(&quot;Asia/Seoul&quot;)
        .dt.strftime(&quot;%Y-%m-%dT%H:%M:%S.000%z&quot;)
        )
    df = pd.DataFrame(df, columns=[&quot;날짜&quot;, &quot;이름&quot;, &quot;내용&quot;, &quot;비고&quot;])
    return df

def update_notion_page(db_id, row):
    notion.pages.create(
        parent={&quot;database_id&quot;: db_id},
        properties={
            &quot;날짜&quot;: {&quot;date&quot;: {&quot;start&quot;: row[&quot;날짜&quot;]}},
            &quot;이름&quot;: {&quot;title&quot;: [{&quot;text&quot;: {&quot;content&quot;: row[&quot;이름&quot;]}}]},
            &quot;내용&quot;: {&quot;rich_text&quot;: [{&quot;text&quot;: {&quot;content&quot;: row[&quot;내용&quot;]}}]},
            &quot;비고&quot;: {&quot;rich_text&quot;: [{&quot;text&quot;: {&quot;content&quot;: row[&quot;비고&quot;]}}]},
        }
    )

df = configdf(datapath=datapath)

for _, row in df.iterrows():
    update_notion_page(db_id=db_id, row=row)&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1002&quot; data-origin-height=&quot;512&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lOZFc/dJMcabJM8pK/AyDNBanoTqFFD6GyNoD7m0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lOZFc/dJMcabJM8pK/AyDNBanoTqFFD6GyNoD7m0/img.png&quot; data-alt=&quot;그림2: Notion 캘린더 일정 업데이트 결과&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lOZFc/dJMcabJM8pK/AyDNBanoTqFFD6GyNoD7m0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlOZFc%2FdJMcabJM8pK%2FAyDNBanoTqFFD6GyNoD7m0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1002&quot; height=&quot;512&quot; data-origin-width=&quot;1002&quot; data-origin-height=&quot;512&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;그림2: Notion 캘린더 일정 업데이트 결과&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>알고리즘트레이딩/프로그램기초</category>
      <author>문송한투자자</author>
      <guid isPermaLink="true">https://moonsong-investor.tistory.com/256</guid>
      <comments>https://moonsong-investor.tistory.com/256#entry256comment</comments>
      <pubDate>Sun, 25 Jan 2026 09:42:06 +0900</pubDate>
    </item>
    <item>
      <title>(API)NOTION 캘린더 API로 관리하기(1)</title>
      <link>https://moonsong-investor.tistory.com/255</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #f89009;&quot;&gt;&lt;b&gt;Notion API 활용 준비하기&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://moonsong-investor.tistory.com/254&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;NOTION 캘린더 활용하기 - 경제일정 관리&lt;/a&gt; 에서 살펴본 것처럼 Notion 캘린더는 사용자가 DB형태로 일정을 관리할 수 있기 때문에 일정 입력 및 삭제가 편하다. 그런데 실제로 경제일정 정보는 여기저기 흩어져 있다. 금통위 일정은 한국은행에 있고, 미국 CPI 발표 일정은 미국 노동통계국에 있는 식이다. 이런 정보를 엑셀에 전부 취합한 뒤 Notion에서 제공하는 API를 사용하면 한 번에 나의 캘랜더에 정보를 집어넣을 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Notion API를 사용하기 위해서는 &lt;a href=&quot;https://moonsong-investor.tistory.com/168&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;(OpenAPI)Notion API 사용: 인증키 발급&lt;/a&gt; 을 참조해서 먼저 API 키를 받아야 한다. API 키는 일종의 API에 접근하기 위한 비밀번호라고 생각하면 된다. API 키가 발급되면, &lt;a href=&quot;https://developers.notion.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://developers.notion.com/&lt;/a&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;에 접속해서 아래 그림 1의 우측 상단의 &quot;View My Integrations&quot;를 눌러서 들어가면 아래와 같이 API 키를 확인할 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1063&quot; data-origin-height=&quot;497&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/UaVW4/dJMcadU1G2c/7FJZiMPMKQXGCKRKHrGJNK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/UaVW4/dJMcadU1G2c/7FJZiMPMKQXGCKRKHrGJNK/img.png&quot; data-alt=&quot;그림1: API 키 확인하기&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/UaVW4/dJMcadU1G2c/7FJZiMPMKQXGCKRKHrGJNK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FUaVW4%2FdJMcadU1G2c%2F7FJZiMPMKQXGCKRKHrGJNK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1063&quot; height=&quot;497&quot; data-origin-width=&quot;1063&quot; data-origin-height=&quot;497&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;그림1: API 키 확인하기&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Notion 캘린더를 나의 API와 연결하는 작업이 필요한데, Notion에서 내가 만든 달력으로 들어온 뒤에 우측 상단의 &quot;...&quot;를 클릭하고 연결 부분에 내 API 아이디를 넣어주면 된다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;957&quot; data-origin-height=&quot;507&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bAtEmC/dJMcaiIN7kP/ANJon9bq2AxOCnCuO2lSq1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bAtEmC/dJMcaiIN7kP/ANJon9bq2AxOCnCuO2lSq1/img.png&quot; data-alt=&quot;그림2: DB 연결 확인하기&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bAtEmC/dJMcaiIN7kP/ANJon9bq2AxOCnCuO2lSq1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbAtEmC%2FdJMcaiIN7kP%2FANJon9bq2AxOCnCuO2lSq1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;957&quot; height=&quot;507&quot; data-origin-width=&quot;957&quot; data-origin-height=&quot;507&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;그림2: DB 연결 확인하기&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #f89009;&quot;&gt;&lt;b&gt;Notion&amp;nbsp; API로 내 달력정보 불러오기&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;먼저 샘플 데이터를 몇 개 넣어주고, Notion에 어떻게 저장되는지 API로 데이터를 입수하는 작업을 해보자. Notion은 url 에url에 DB 아이디가 있는데, 이 아이디를 알아야 데이터를 불러올 수 있다. 보통 아래 그림과 같은 url에서 so/ 뒤 &quot;6&quot; ~ ?v 전인 &quot;1&quot; 까지가 DB 아이디가 된다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1057&quot; data-origin-height=&quot;53&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/beCF2r/dJMcac2TWbd/ua7FhmiOa9Mv61blacFwAk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/beCF2r/dJMcac2TWbd/ua7FhmiOa9Mv61blacFwAk/img.png&quot; data-alt=&quot;그림3: Notion url 샘플&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/beCF2r/dJMcac2TWbd/ua7FhmiOa9Mv61blacFwAk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbeCF2r%2FdJMcac2TWbd%2Fua7FhmiOa9Mv61blacFwAk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1057&quot; height=&quot;53&quot; data-origin-width=&quot;1057&quot; data-origin-height=&quot;53&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;그림3: Notion url 샘플&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;API 키, db 아이디 정보까지 모두 파악했으면 아래 코드로 예시 데이터를 받아볼 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1768706945400&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 노션 및 판다스 라이브러리 가져오기
from notion_client import Client

# Notion API 키 변수 생성
NOTION_API_KEY = '나의 API 키'

# Notion 클라이언트 객체만들기
notion = Client(auth=NOTION_API_KEY)
db_id = '나의 db 아이디'

# 데이터베이스에서 데이터 가져오기 함수
def getNotionData(db_id):
    try:
        # API 결과값을 response 변수에 담기
        res = notion.databases.query(database_id=db_id)
		return res
        
    except Exception as e:
        print(f&quot;데이터 불러오기 에러 발생: {e}&quot;)

result = getNotionData(db_id)
print(result)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 코드를 실행해서 입수된 데이터를 보면, results 속에 달력 정보가 모두 들어있고, 일정 하나하나가 page id를 부여받은 상태로 데이터를 구성하고 있다는 것을 파악할 수 있다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1031&quot; data-origin-height=&quot;455&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cDdH29/dJMcafFmnLB/B7eLdIHPBCiwkYsfPniJG1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cDdH29/dJMcafFmnLB/B7eLdIHPBCiwkYsfPniJG1/img.png&quot; data-alt=&quot;그림4: 입수된 데이터 구조&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cDdH29/dJMcafFmnLB/B7eLdIHPBCiwkYsfPniJG1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcDdH29%2FdJMcafFmnLB%2FB7eLdIHPBCiwkYsfPniJG1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1031&quot; height=&quot;455&quot; data-origin-width=&quot;1031&quot; data-origin-height=&quot;455&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;그림4: 입수된 데이터 구조&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;데이터 구조를 화면에서 보면 표 전체가 results가 되고, 각각의 행이&amp;nbsp;page id를 갖게 된다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;801&quot; data-origin-height=&quot;346&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/MNP5P/dJMcafyAs9N/sRKjEFiwur1QTEENLbC0d1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/MNP5P/dJMcafyAs9N/sRKjEFiwur1QTEENLbC0d1/img.png&quot; data-alt=&quot;그림5: 화면상 데이터 구조&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/MNP5P/dJMcafyAs9N/sRKjEFiwur1QTEENLbC0d1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FMNP5P%2FdJMcafyAs9N%2FsRKjEFiwur1QTEENLbC0d1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;801&quot; height=&quot;346&quot; data-origin-width=&quot;801&quot; data-origin-height=&quot;346&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;그림5: 화면상 데이터 구조&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;구조가 파악되었다면 받은 데이터를 다시 pandas 의 DataFrame 형태로 재구성할 수 있다. results 항목을 page 변수에 넣어서 for 문을 통해 작업하는 구조를 만들면 간단하게 Notion에 입력한 sample 데이터를 DataFrame으로 재구성할 수 있다.&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1768708311967&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 노션 및 판다스 라이브러리 가져오기
from notion_client import Client
import pandas as pd

# Notion API 키 변수 생성
NOTION_API_KEY = '나의 API 키'

# Notion 클라이언트 객체만들기
notion = Client(auth=NOTION_API_KEY)
db_id = '나의 page id'

# 데이터베이스에서 데이터 가져오기 함수
def getNotionData(db_id):
    try:
        # API 결과값을 response 변수에 담기
        res = notion.databases.query(database_id=db_id)
        data = []
        # results 항목을 page 변수에 넣어서 for 문 실행
        for page in res['results']:
            props = page['properties']
            date = props[&quot;날짜&quot;][&quot;date&quot;][&quot;start&quot;] 
            title = props[&quot;이름&quot;][&quot;title&quot;][0][&quot;plain_text&quot;] 
            richtext = props[&quot;내용&quot;][&quot;rich_text&quot;][0][&quot;plain_text&quot;] 
            richtext2 = props[&quot;비고&quot;][&quot;rich_text&quot;][0][&quot;plain_text&quot;] 
            data.append([date, title, richtext, richtext2 ])
        df = pd.DataFrame(data, columns=['날짜', '이름', '내용', '비고'])
        return df

    except Exception as e:
        print(f&quot;데이터 불러오기 에러 발생: {e}&quot;)

result = getNotionData(db_id)
print(result)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;print 결과는 아래와 같다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;910&quot; data-origin-height=&quot;200&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/pAtRZ/dJMcajgDWIM/OGDreUo2cNn94AEssdKKkk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/pAtRZ/dJMcajgDWIM/OGDreUo2cNn94AEssdKKkk/img.png&quot; data-alt=&quot;그림6: 입수된 데이터 구조&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/pAtRZ/dJMcajgDWIM/OGDreUo2cNn94AEssdKKkk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FpAtRZ%2FdJMcajgDWIM%2FOGDreUo2cNn94AEssdKKkk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;910&quot; height=&quot;200&quot; data-origin-width=&quot;910&quot; data-origin-height=&quot;200&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;그림6: 입수된 데이터 구조&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>알고리즘트레이딩/프로그램기초</category>
      <author>문송한투자자</author>
      <guid isPermaLink="true">https://moonsong-investor.tistory.com/255</guid>
      <comments>https://moonsong-investor.tistory.com/255#entry255comment</comments>
      <pubDate>Sun, 18 Jan 2026 13:10:21 +0900</pubDate>
    </item>
    <item>
      <title>NOTION 캘린더 활용하기 - 경제일정 관리</title>
      <link>https://moonsong-investor.tistory.com/254</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #f89009;&quot;&gt;&lt;b&gt;Notion 캘린더&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;경제 일정을 달력에서 관리하는 경우 많은 일정을 달력에 일일이 등록하는 작업은 상당히 번거롭다. 2026년 FOMC 일정을 네이버 달력, 카카오톡 달력에 등록하는 작업만 생각해 봐도 상당히 손이 많이 가는 것을 알 수 있다.&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 207px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style1&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 43px;&quot;&gt;
&lt;td style=&quot;width: 16.0853%; height: 43px;&quot;&gt;FOMC&amp;nbsp; 회의 일정(미국 시간)&lt;/td&gt;
&lt;td style=&quot;width: 16.5504%; height: 43px;&quot;&gt;기준 금리 발표일(한국 시간)&lt;/td&gt;
&lt;td style=&quot;width: 32.5969%; height: 43px;&quot;&gt;주요 내용 요약&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;width: 16.0853%; height: 21px;&quot;&gt;1월 27 ~ 28일&lt;/td&gt;
&lt;td style=&quot;width: 16.5504%; height: 21px;&quot;&gt;1월 29일(새벽 4시)&lt;/td&gt;
&lt;td style=&quot;width: 32.5969%; height: 21px;&quot;&gt;투표 위원 교체&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;width: 16.0853%; height: 21px;&quot;&gt;3월 17 ~ 18일&lt;/td&gt;
&lt;td style=&quot;width: 16.5504%; height: 21px;&quot;&gt;3월 19일(새벽 3시)&lt;/td&gt;
&lt;td style=&quot;width: 32.5969%; height: 21px;&quot;&gt;첫 경제전망 발표, 금리 논쟁 재점화 가능&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;width: 16.0853%; height: 21px;&quot;&gt;4월 28 ~ 29일&lt;/td&gt;
&lt;td style=&quot;width: 16.5504%; height: 21px;&quot;&gt;4월 30일(새벽 3시)&lt;/td&gt;
&lt;td style=&quot;width: 32.5969%; height: 21px;&quot;&gt;중간점검 성격, 정책 조정 검토&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;width: 16.0853%; height: 21px;&quot;&gt;6월 16 ~ 17일&lt;/td&gt;
&lt;td style=&quot;width: 16.5504%; height: 21px;&quot;&gt;6월 18일(새벽 3시)&lt;/td&gt;
&lt;td style=&quot;width: 32.5969%; height: 21px;&quot;&gt;연중 SEP, 금리 인하 속대에 대한 가늠자&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;width: 16.0853%; height: 21px;&quot;&gt;7월 28 ~ 29일&lt;/td&gt;
&lt;td style=&quot;width: 16.5504%; height: 21px;&quot;&gt;7월 30일(새벽 3시)&lt;/td&gt;
&lt;td style=&quot;width: 32.5969%; height: 21px;&quot;&gt;주로 유지 관리 목적의 회의&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;width: 16.0853%; height: 21px;&quot;&gt;9월 15 ~ 16일&lt;/td&gt;
&lt;td style=&quot;width: 16.5504%; height: 21px;&quot;&gt;9월 17일(새벽 3시)&lt;/td&gt;
&lt;td style=&quot;width: 32.5969%; height: 21px;&quot;&gt;연말 전망 수정 및 마지막 정책 조정&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;width: 16.0853%; height: 21px;&quot;&gt;10월 27 ~ 28일&lt;/td&gt;
&lt;td style=&quot;width: 16.5504%; height: 21px;&quot;&gt;10월 29일(새벽3시)&lt;/td&gt;
&lt;td style=&quot;width: 32.5969%; height: 21px;&quot;&gt;연내 마지막 비SEP회의&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 16.0853%; height: 17px;&quot;&gt;12월 8 ~ 9일&lt;/td&gt;
&lt;td style=&quot;width: 16.5504%; height: 17px;&quot;&gt;12월 10일(새벽4시)&lt;/td&gt;
&lt;td style=&quot;width: 32.5969%; height: 17px;&quot;&gt;내년도 정책 방향성 확정 및 점도표 발표&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Notion 캘린더는 캘린더 DB에 데이터를 바로 집어넣을 수 있기 때문에 주요 경제일정 등록 작업의 수고로움을 줄일 수 있다. 아래 그림 1과 같이 캘린더 DB에 엑셀작업 하듯이 데이터를 추가해 주면 되기 때문이다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;712&quot; data-origin-height=&quot;355&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Waa5k/dJMcagdb5eA/PQfvibJ6d4GkeXrgxQ9LA0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Waa5k/dJMcagdb5eA/PQfvibJ6d4GkeXrgxQ9LA0/img.png&quot; data-alt=&quot;그림1: Notion 캘린더(예시)&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Waa5k/dJMcagdb5eA/PQfvibJ6d4GkeXrgxQ9LA0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FWaa5k%2FdJMcagdb5eA%2FPQfvibJ6d4GkeXrgxQ9LA0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;712&quot; height=&quot;355&quot; data-origin-width=&quot;712&quot; data-origin-height=&quot;355&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;그림1: Notion 캘린더(예시)&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #f89009;&quot;&gt;&lt;b&gt;Notion 캘린더 활용하기&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Notion을 시작해서 좌측하단에 Notion 캘린더를 클릭하면 달력 관리 화면으로 넘어간다. 달력관리 화면의 좌측하단에 누구의 Notion ID와 연결되었는지 나오는데 거기에 &quot;+&quot; 버튼을 누르면 달력 DB를 추가할 수 있다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;983&quot; data-origin-height=&quot;537&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/crghup/dJMcajnoRJD/880jcruYCqMgNzNBlMM4jK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/crghup/dJMcajnoRJD/880jcruYCqMgNzNBlMM4jK/img.png&quot; data-alt=&quot;그림2: Notion 달력 DB 만들기&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/crghup/dJMcajnoRJD/880jcruYCqMgNzNBlMM4jK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcrghup%2FdJMcajnoRJD%2F880jcruYCqMgNzNBlMM4jK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;983&quot; height=&quot;537&quot; data-origin-width=&quot;983&quot; data-origin-height=&quot;537&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;그림2: Notion 달력 DB 만들기&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Notion 캘랜더 화면에서 만들어진 달력 목록에 마우스를 갖다 대면 &quot;...&quot; 버튼이 활성화되고, &quot;Notion에서 관리하기&quot; 버튼을 누르면 Notion 앱과 연결된다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;788&quot; data-origin-height=&quot;510&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/E2gT2/dJMcaiow8Vg/LGKBPUVIB5qGKgk2TJKDyK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/E2gT2/dJMcaiow8Vg/LGKBPUVIB5qGKgk2TJKDyK/img.png&quot; data-alt=&quot;그림3: Notion 에서 달력 DB 관리하기&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/E2gT2/dJMcaiow8Vg/LGKBPUVIB5qGKgk2TJKDyK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FE2gT2%2FdJMcaiow8Vg%2FLGKBPUVIB5qGKgk2TJKDyK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;788&quot; height=&quot;510&quot; data-origin-width=&quot;788&quot; data-origin-height=&quot;510&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;그림3: Notion 에서 달력 DB 관리하기&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Notion 앱에서 &quot;모두보기&quot;를 누르면 엑셀처럼 데이터 관리가 가능한 것을 확인할 수 있다. 컬럼 맨 오른쪽에 &quot;+&quot; 버튼을 누르면 컬럼을 추가하거나 삭제할 수도 있다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;951&quot; data-origin-height=&quot;387&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/daclsg/dJMcabiE6sT/RKIQ5Qz3Urm7gMyKx9EIEk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/daclsg/dJMcabiE6sT/RKIQ5Qz3Urm7gMyKx9EIEk/img.png&quot; data-alt=&quot;그림4: Notion 달력 DB 관리화면 상세&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/daclsg/dJMcabiE6sT/RKIQ5Qz3Urm7gMyKx9EIEk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdaclsg%2FdJMcabiE6sT%2FRKIQ5Qz3Urm7gMyKx9EIEk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;951&quot; height=&quot;387&quot; data-origin-width=&quot;951&quot; data-origin-height=&quot;387&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;그림4: Notion 달력 DB 관리화면 상세&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;관리한 일정은 핸드폰의 Notion 캘린더 앱을 통해서 확인 가능하다. Notion 캘린더 앱 자체는 가독성이 떨어지고 아래 그림과 같이 핸드폰의 Notion 캘린더 앱의 위젯을 설치해서 사용하면 다가오는 일정을 미리 체크할 수 있다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;563&quot; data-origin-height=&quot;500&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Sh51B/dJMcafeikCZ/qFa1KPuAap6DBuv7n5sFWk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Sh51B/dJMcafeikCZ/qFa1KPuAap6DBuv7n5sFWk/img.png&quot; data-alt=&quot;그림5: Notion 위젯 활용(핸드폰)&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Sh51B/dJMcafeikCZ/qFa1KPuAap6DBuv7n5sFWk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FSh51B%2FdJMcafeikCZ%2FqFa1KPuAap6DBuv7n5sFWk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;563&quot; height=&quot;500&quot; data-origin-width=&quot;563&quot; data-origin-height=&quot;500&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;그림5: Notion 위젯 활용(핸드폰)&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>알고리즘트레이딩/프로그램기초</category>
      <author>문송한투자자</author>
      <guid isPermaLink="true">https://moonsong-investor.tistory.com/254</guid>
      <comments>https://moonsong-investor.tistory.com/254#entry254comment</comments>
      <pubDate>Sun, 18 Jan 2026 11:48:09 +0900</pubDate>
    </item>
  </channel>
</rss>