Announcement

Collapse
No announcement yet.
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Stock volatility

    Hi,

    I need to calculate stock volatility using CRSP daily stock returns. According to the article, it is calculated using the square root of the sum of squared daily returns over the year. To adjust for differences in the number of trading days, the raw sum is multiplied by 252 and divided by the number of trading days. I have the variable "returns". Does anyone which code to use for this?

    Another thing: the CRSP data was too big to download at once, so I need to merge. However, when I try to merge, it gives the error: factor-variable and time-series operators not allowed. What should I do?

    Thanks in advance!
    Last edited by Mila Huisman; 29 Jan 2022, 16:09.

  • #2
    I need to calculate stock volatility using CRSP daily stock returns. According to the article, it is calculated using the square root of the sum of squared daily returns over the year. To adjust for differences in the number of trading days, the raw sum is multiplied by 252 and divided by the number of trading days. I have the variable "returns".
    Assuming this variable "returns" contains the daily return, and that you also have a variable, stock_id, that identifies each stock, and another variable, date, that gives the date of the observation, you can do this with:
    Code:
    gen year = year(date)
    by stock_id (year), sort: egen volatility = total(returns^2)
    by stock_id (year): replace volatility = sqrt(volatility*252/_N)
    Another thing: the CRSP data was too big to download at once, so I need to merge. However, when I try to merge, it gives the error: factor-variable and time-series operators not allowed. What should I do?
    Without seeing example data from the two data sets you are trying to merge and the exact code that you used to attempt that, it is impossible to give advice.

    Moreover, it would be best to make a separate thread for this question. While from your perspective, this is all part of one project, Statalist is regularly read or searched by a large community of users who come looking for answers to specific questions. So that they can efficiently find what is relevant, it is important that threads be informatively titled, and stay on topic. So please begin a New Topic with a new title reflecting the nature of the problem, and repost this merge question, showing example data and the code you tried.

    To show the example data, be sure to use the -dataex- command. If you are running version 17, 16 or a fully updated version 15.1 or 14.2, -dataex- is already part of your official Stata installation. If not, run -ssc install dataex- to get it. Either way, run -help dataex- to read the simple instructions for using it. -dataex- will save you time; it is easier and quicker than typing out tables. It includes complete information about aspects of the data that are often critical to answering your question but cannot be seen from tabular displays or screenshots. It also makes it possible for those who want to help you to create a faithful representation of your example to try out their code, which in turn makes it more likely that their answer will actually work in your data.

    When asking for help with code, always show example data. When showing example data, always use -dataex-.

    Comment


    • #3
      I'm additionally confused about what's meant by
      the CRSP data was too big to download at once, so I need to merge
      I don't follow how the size of a dataset precludes it from being downloaded and why that would justify merging it. I think this problem (the first query, anyways) has an easy answer, but the second one requires way more context.

      Comment


      • #4
        I'm sorry, I'm very bad with Stata and this is the first time posting here for me. I'll start a new topic for the merge error!

        For my first question, here's an example of the data:

        * Example generated by -dataex-. For more info, type help dataex
        clear
        input double permno long date str8 TICKER str36 COMNAM str8 cusip double(DLSTCD PRC RET)
        10000 9502 "" "" "68391610" . . .
        10000 9503 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -2.5625 .c
        10000 9504 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -2.5 -.024390242993831635
        10000 9505 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -2.5 0
        10000 9506 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -2.5 0
        10000 9509 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -2.625 .05000000074505806
        10000 9510 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -2.75 .0476190485060215
        10000 9511 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -2.875 .04545454680919647
        10000 9512 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -3 .043478261679410934
        10000 9513 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -3 0
        10000 9516 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -3 0
        10000 9517 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -3 0
        10000 9518 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -3 0
        10000 9519 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -3.75 .25
        10000 9520 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -4.1875 .11666666716337204
        10000 9523 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -4.4375 .05970149114727974
        10000 9524 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -4.4375 0
        10000 9525 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -4.3125 -.028169013559818268
        10000 9526 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -4.4375 .028985507786273956
        10000 9527 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -4.375 -.014084506779909134
        10000 9530 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -4.375 0
        10000 9531 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -4.375 0
        10000 9532 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -4.375 0
        10000 9533 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -4.1875 -.04285714402794838
        10000 9534 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -4.375 .04477611929178238
        10000 9537 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -4.3125 -.014285714365541935
        10000 9538 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -4.3125 0
        10000 9539 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -4.21875 -.021739130839705467
        10000 9540 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -4.21875 0
        10000 9541 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -4.28125 .014814814552664757
        10000 9545 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -4 -.0656934306025505
        10000 9546 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -3.9375 -.015625
        10000 9547 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -3.6875 -.0634920671582222
        10000 9548 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -3.6875 0
        10000 9551 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -3.625 -.016949152573943138
        10000 9552 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -3.5625 -.017241379246115685
        10000 9553 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -3.25 -.08771929889917374
        10000 9554 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -3.25 0
        10000 9555 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -3.25 0
        10000 9558 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -3.25 0
        10000 9559 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -3.4375 .057692307978868485
        10000 9560 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -3.46875 .00909090880304575
        10000 9561 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -3.875 .11711711436510086
        10000 9562 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -4.4375 .14516128599643707
        10000 9565 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -4.1875 -.056338027119636536
        10000 9566 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -4.3125 .02985074557363987
        10000 9567 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -4.3125 0
        10000 9568 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -4.4375 .028985507786273956
        10000 9569 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -4.4375 0
        10000 9572 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -4.4375 0
        10000 9573 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -4.4375 0
        10000 9574 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -4.4375 0
        10000 9575 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -4.4375 0
        10000 9576 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -4.4375 0
        10000 9579 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -4.4375 0
        10000 9580 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -4.4375 0
        10000 9581 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -4.4375 0
        10000 9582 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -4.40625 -.007042253389954567
        10000 9586 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -4.4375 .007092198356986046
        10000 9587 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -4.3125 -.028169013559818268
        10000 9588 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -4.3125 0
        10000 9589 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -4.3125 0
        10000 9590 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -4.3125 0
        10000 9593 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -4.25 -.014492753893136978
        10000 9594 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -4.125 -.029411764815449715
        10000 9595 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -4.21875 .022727273404598236
        10000 9596 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -4.15625 -.014814814552664757
        10000 9597 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -4.125 -.007518797181546688
        10000 9600 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -4.09375 -.007575757801532745
        10000 9601 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -4.09375 0
        10000 9602 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -4.09375 0
        10000 9603 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -4.0625 -.007633587811142206
        10000 9604 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -4.0625 0
        10000 9607 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -4.0625 0
        10000 9608 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -4.0625 0
        10000 9609 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -4.0625 0
        10000 9610 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -4.0625 0
        10000 9611 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -4.0625 0
        10000 9614 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -4.09375 .007692307699471712
        10000 9615 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -4.0625 -.007633587811142206
        10000 9616 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -4 -.015384615398943424
        10000 9617 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -4 0
        10000 9618 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -3.96875 -.0078125
        10000 9621 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -3.890625 -.019685039296746254
        10000 9622 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -3.8125 -.0200803205370903
        10000 9623 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -3.75 -.016393441706895828
        10000 9624 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -3.75 0
        10000 9625 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -3.78125 .008333333767950535
        10000 9628 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -4.21875 .11570248007774353
        10000 9629 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -4.09375 -.029629629105329514
        10000 9630 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -4.15625 .015267175622284412
        10000 9631 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -4.03125 -.030075188726186752
        10000 9632 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -3.96875 -.01550387591123581
        10000 9635 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -3.875 -.023622047156095505
        10000 9636 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -3.875 0
        10000 9637 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -3.65625 -.05645161122083664
        10000 9638 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -3.4375 -.05982905998826027
        10000 9639 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -3.46875 .00909090880304575
        10000 9643 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -3.46875 0
        10000 9644 "OMFGA" "OPTIMUM MANUFACTURING INC" "68391610" . -3.34375 -.036036036908626556
        end
        format %td date

        I have the following variables: permno, date, ticker, company name, cusip, delisting code, price or bid/ask average, returns.

        Comment


        • #5
          Adapting the code in #2 to your actual data set's variable names:
          Code:
          gen year = year(date)
          by permno (year), sort: egen volatility = total(RET^2)
          by permno (year): replace volatility = sqrt(volatility*252/_N)

          Comment

          Working...
          X