<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic how to compute RSI monthly based in SAS Procedures</title>
    <link>https://communities.sas.com/t5/SAS-Procedures/how-to-compute-RSI-monthly-based/m-p/450919#M69729</link>
    <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am trying to compute the Relative Strengh Index (RSI) of 500 stocks but on a monthly basis. I wrote the following code based on a paper found online, however, there are some mistakes but I do not know how to fix them. Moreover, there are some statements that I do not understand what "%do i=16 %to 7570;" stand for in the code.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;data Project.MonthlyPrice;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; set RSI;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; by PERMNO;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; lprc = lag(prc);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if prc&amp;gt;lprc then gain = prc-lprc;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if prc&amp;lt;lprc then loss = lprc-prc;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if first.PERMNO then do;&lt;BR /&gt;&amp;nbsp; gain = .;&lt;BR /&gt;&amp;nbsp; loss = .;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; retain months 0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; months+1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if first.PERMNO then months = 1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if gain = . then gain = 0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if loss = . then loss = 0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; retain sumgain 0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sumgain = sumgain + gain;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; retain sumloss 0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sumloss = sumloss + loss;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if months=15 then do;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AveGain = (sumgain-gain) / 14;&lt;BR /&gt;&amp;nbsp;AveLoss = (sumloss-loss) / 14; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;RS =&amp;nbsp; AveGain / AveLoss;&lt;BR /&gt;&amp;nbsp;RSI = 100-100/(1+RS);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; drop sumgain sumloss;&lt;BR /&gt;run;&lt;BR /&gt;%macro calRSI();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; %do i=16 %to 7570;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; data Project.MonthlyPrice;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set RSI;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lAveGain = lag1(AveGain);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lAveLoss = lag1(AveLoss);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if months = &amp;amp;i then do;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AveGain = (lAveGain*13+gain)/14;&lt;BR /&gt;&amp;nbsp; AveLoss = (lAveLoss*13+loss)/14;&lt;BR /&gt;&amp;nbsp; RS =&amp;nbsp; AveGain / AveLoss;&lt;BR /&gt;&amp;nbsp; RSI = 100-100/(1+RS);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; %end;&lt;BR /&gt;%mend;&lt;BR /&gt;data Project.MonthlyPrice;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; set RSI;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank in advance&lt;/P&gt;</description>
    <pubDate>Wed, 04 Apr 2018 00:18:34 GMT</pubDate>
    <dc:creator>ArthMizz</dc:creator>
    <dc:date>2018-04-04T00:18:34Z</dc:date>
    <item>
      <title>how to compute RSI monthly based</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/how-to-compute-RSI-monthly-based/m-p/450919#M69729</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am trying to compute the Relative Strengh Index (RSI) of 500 stocks but on a monthly basis. I wrote the following code based on a paper found online, however, there are some mistakes but I do not know how to fix them. Moreover, there are some statements that I do not understand what "%do i=16 %to 7570;" stand for in the code.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;data Project.MonthlyPrice;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; set RSI;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; by PERMNO;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; lprc = lag(prc);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if prc&amp;gt;lprc then gain = prc-lprc;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if prc&amp;lt;lprc then loss = lprc-prc;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if first.PERMNO then do;&lt;BR /&gt;&amp;nbsp; gain = .;&lt;BR /&gt;&amp;nbsp; loss = .;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; retain months 0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; months+1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if first.PERMNO then months = 1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if gain = . then gain = 0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if loss = . then loss = 0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; retain sumgain 0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sumgain = sumgain + gain;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; retain sumloss 0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sumloss = sumloss + loss;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if months=15 then do;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AveGain = (sumgain-gain) / 14;&lt;BR /&gt;&amp;nbsp;AveLoss = (sumloss-loss) / 14; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;RS =&amp;nbsp; AveGain / AveLoss;&lt;BR /&gt;&amp;nbsp;RSI = 100-100/(1+RS);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; drop sumgain sumloss;&lt;BR /&gt;run;&lt;BR /&gt;%macro calRSI();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; %do i=16 %to 7570;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; data Project.MonthlyPrice;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set RSI;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lAveGain = lag1(AveGain);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lAveLoss = lag1(AveLoss);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if months = &amp;amp;i then do;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AveGain = (lAveGain*13+gain)/14;&lt;BR /&gt;&amp;nbsp; AveLoss = (lAveLoss*13+loss)/14;&lt;BR /&gt;&amp;nbsp; RS =&amp;nbsp; AveGain / AveLoss;&lt;BR /&gt;&amp;nbsp; RSI = 100-100/(1+RS);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; %end;&lt;BR /&gt;%mend;&lt;BR /&gt;data Project.MonthlyPrice;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; set RSI;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank in advance&lt;/P&gt;</description>
      <pubDate>Wed, 04 Apr 2018 00:18:34 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/how-to-compute-RSI-monthly-based/m-p/450919#M69729</guid>
      <dc:creator>ArthMizz</dc:creator>
      <dc:date>2018-04-04T00:18:34Z</dc:date>
    </item>
    <item>
      <title>Re: how to compute RSI monthly based</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/how-to-compute-RSI-monthly-based/m-p/450983#M69730</link>
      <description>&lt;P&gt;Please provide a link to the paper and some example data. Makes it a lot easier to help you.&lt;/P&gt;</description>
      <pubDate>Wed, 04 Apr 2018 09:34:16 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/how-to-compute-RSI-monthly-based/m-p/450983#M69730</guid>
      <dc:creator>PeterClemmensen</dc:creator>
      <dc:date>2018-04-04T09:34:16Z</dc:date>
    </item>
    <item>
      <title>Re: how to compute RSI monthly based</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/how-to-compute-RSI-monthly-based/m-p/451123#M69737</link>
      <description>&lt;P&gt;here's the link to the paper: &lt;A href="http://support.sas.com/resources/papers/proceedings12/163-2012.pdf" target="_blank"&gt;http://support.sas.com/resources/papers/proceedings12/163-2012.pdf&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am using CRSP from WRDS Monthly stock return and S&amp;amp;P500 returns in my dataset. I used the past 10 years of data (from December 2007 to December 2017) and the entire database (almost 7200 stocks).&lt;/P&gt;</description>
      <pubDate>Wed, 04 Apr 2018 14:48:24 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/how-to-compute-RSI-monthly-based/m-p/451123#M69737</guid>
      <dc:creator>ArthMizz</dc:creator>
      <dc:date>2018-04-04T14:48:24Z</dc:date>
    </item>
  </channel>
</rss>

