Ticket #3621: sage-3621-trivial_referee_followup.patch

File sage-3621-trivial_referee_followup.patch, 11.9 KB (added by was, 13 years ago)
  • sage/finance/stock.py

    # HG changeset patch
    # User William Stein <wstein@gmail.com>
    # Date 1227843028 28800
    # Node ID c5b39e89c2f7ada81ac803a1e1f5688f64f37bf4
    # Parent  5418e6160905b7926c6259bdc6cb60bf87db7808
    trac #3621 -- trivial referee followup.
    
    diff -r 5418e6160905 -r c5b39e89c2f7 sage/finance/stock.py
    a b  
    8484
    8585        EXAMPLES:
    8686            sage: S = finance.Stock('ibm')
    87             sage: S        # optional -- requires internet, and random
     87            sage: S        # random; optional -- internet
    8888            IBM (127.48)           
    8989        """
    9090        self.symbol = symbol.upper()
     
    9595        Return string representation of this stock.
    9696
    9797        EXAMPLES:
    98             sage: finance.Stock('ibm').__repr__()     # optional -- requires internet, and random
     98            sage: finance.Stock('ibm').__repr__()     # random; optional -- internet
    9999            'IBM (127.47)'
    100100        """
    101101        return "%s (%s)"%(self.symbol, self.market_value())
     
    108108            Python float
    109109
    110110        EXAMPLES:
    111             sage: finance.Stock('goog').market_value()   # optional and random
     111            sage: finance.Stock('goog').market_value()   # random; optional - internet
    112112            575.83000000000004
    113113        """
    114114        return float(self.yahoo()['price'])
     
    121121            dict
    122122
    123123        EXAMPLES:
    124             sage: finance.Stock('GOOG').yahoo()          # random and optional (requires internet)
     124            sage: finance.Stock('GOOG').yahoo()          # random; optional -- internet
    125125            {'stock_exchange': '"NasdaqNM"', 'market_cap': '181.1B', '200day_moving_avg': '564.569', '52_week_high': '747.24', 'price_earnings_growth_ratio': '1.04', 'price_sales_ratio': '10.16', 'price': '576.48', 'earnings_per_share': '14.463', '50day_moving_avg': '549.293', 'avg_daily_volume': '6292480', 'volume': '1613507', '52_week_low': '412.11', 'short_ratio': '1.00', 'price_earnings_ratio': '40.50', 'dividend_yield': 'N/A', 'dividend_per_share': '0.00', 'price_book_ratio': '7.55', 'ebitda': '6.513B', 'change': '-9.32', 'book_value': '77.576'}
    126126        """
    127127        url = 'http://finance.yahoo.com/d/quotes.csv?s=%s&f=%s' % (self.symbol, 'l1c1va2xj1b4j4dyekjm3m4rr5p5p6s7')
     
    177177
    178178        EXAMPLES:
    179179        We get the first five days of VMware's stock history:
    180             sage: finance.Stock('vmw').google()[:5]   # optional -- requires internet
     180            sage: finance.Stock('vmw').google()[:5]   # optional -- internet
    181181            [
    182              15-Aug-07 52.11 59.87 51.50 57.71   10678500,
    183              16-Aug-07 60.99 61.49 52.71 56.99    6919500,
    184              17-Aug-07 59.00 59.00 54.45 55.55    3086100,
    185              20-Aug-07 56.05 57.50 55.61 57.33    2140900,
    186              21-Aug-07 57.25 66.59 56.50 65.99    7369700
     182             28-Nov-07 80.57 88.49 80.57 87.69    7496000,
     183             29-Nov-07 90.91 93.20 89.50 90.85    5497600,
     184             30-Nov-07 95.39 95.60 89.85 91.37    4750200,
     185              3-Dec-07 89.87 96.00 88.70 94.97    4401100,
     186              4-Dec-07 92.26 97.10 92.05 95.08    2896600
    187187            ]
    188188           
    189             sage: finance.Stock('F').google('Jan+3,+1978', 'Jul+7,+2008')[:5] # optional -- requires internet
     189            sage: finance.Stock('F').google('Jan+3,+1978', 'Jul+7,+2008')[:5] # optional -- internet
    190190            [
    191               3-Jan-78 2.90 2.90 2.84 2.85    1074495,
    192               4-Jan-78 2.84 2.84 2.81 2.83    1648713,
    193               5-Jan-78 2.83 2.84 2.77 2.77    1988524,
    194               6-Jan-78 2.77 2.77 2.74 2.76    2019988,
    195               9-Jan-78 2.73 2.73 2.69 2.73    2600499
     191              3-Jan-78 0.00 1.93 1.89 1.89    1618200,
     192              4-Jan-78 0.00 1.89 1.87 1.88    2482700,
     193              5-Jan-78 0.00 1.89 1.84 1.84    2994900,
     194              6-Jan-78 0.00 1.84 1.82 1.83    3042500,
     195              9-Jan-78 0.00 1.81 1.79 1.81    3916400
    196196            ]
    197197           
    198198        Note that when startdate is too far prior to a stock's actual start
     
    200200        leading up to the specified enddate.  For example, Apple's (AAPL) stock
    201201        history only dates back to September 7, 1984
    202202           
    203             sage: finance.Stock('AAPL').google('Sep+1,+1900', 'Jan+1,+2000')[0:5] # optional -- requires internet
     203            sage: finance.Stock('AAPL').google('Sep+1,+1900', 'Jan+1,+2000')[0:5] # optional -- internet
    204204            [
    205               4-Jan-99 10.53 10.56 10.00 10.31   34031600,
    206               5-Jan-99 10.48 10.98 10.38 10.83   50361200,
    207               6-Jan-99 11.03 11.03 10.25 10.44   48163200,
    208               7-Jan-99 10.56 11.27 10.53 11.25   51036400,
    209               8-Jan-99 11.64 11.72 11.00 11.25   24244000
     205              4-Jan-99 0.00 10.56 10.00 10.31   34031600,
     206              5-Jan-99 0.00 10.98 10.38 10.83   50360400,
     207              6-Jan-99 0.00 11.03 10.25 10.44   48160800,
     208              7-Jan-99 0.00 11.27 10.53 11.25   51036400,
     209              8-Jan-99 0.00 11.72 11.00 11.25   24240000
    210210            ]
    211211           
    212212        Here is an example where we create and get the history of a stock
    213213        that is not in NASDAQ or NYSE
    214214               
    215             sage: finance.Stock("OTC:NTDOY").google(startdate="Jan+1,+2007", enddate="Jan+1,+2008")[:5]
     215            sage: finance.Stock("OTC:NTDOY").google(startdate="Jan+1,+2007", enddate="Jan+1,+2008")[:5]  # optional -- internet
    216216            [
    217               3-Jan-07 32.44 32.75 32.30 32.44     156300,
    218               4-Jan-07 31.70 32.40 31.20 31.70     222700,
    219               5-Jan-07 30.15 30.50 30.15 30.15      65700,
    220               8-Jan-07 30.10 30.50 30.00 30.10     130800,
    221               9-Jan-07 29.90 30.05 29.60 29.90     103400
     217              3-Jan-07 32.44 32.75 32.30 32.44     156283,
     218              4-Jan-07 31.70 32.40 31.20 31.70     222643,
     219              5-Jan-07 30.15 30.50 30.15 30.15      65670,
     220              8-Jan-07 30.10 30.50 30.00 30.10     130765,
     221              9-Jan-07 29.90 30.05 29.60 29.90     103338
    222222            ]
    223223
    224224       
     
    228228        the symbol and cid do not match, the history based on the
    229229        contract id will be returned.
    230230       
    231             sage: sage.finance.stock.Stock("AAPL", 22144).google(startdate='Jan+1,+1990')[:5] #optional -- requires internet
     231            sage: sage.finance.stock.Stock("AAPL", 22144).google(startdate='Jan+1,+1990')[:5] #optional -- internet
    232232            [
    233               2-Jan-90 8.81 9.38 8.75 9.31    6542800,
    234               3-Jan-90 9.50 9.50 9.38 9.38    7428400,
    235               4-Jan-90 9.56 9.69 9.31 9.41    7911200,
    236               5-Jan-90 9.44 9.56 9.25 9.44    4404000,
    237               8-Jan-90 9.38 9.50 9.25 9.50    3627600
     233              2-Jan-90 0.00 9.38 8.75 9.31    6542800,
     234              3-Jan-90 0.00 9.50 9.38 9.38    7428400,
     235              4-Jan-90 0.00 9.69 9.31 9.41    7911200,
     236              5-Jan-90 0.00 9.56 9.25 9.44    4404000,
     237              8-Jan-90 0.00 9.50 9.25 9.50    3627600
    238238            ]
    239 
    240239        """
    241240        cid = self.cid
    242241        symbol = self.symbol
     
    272271
    273272        EXAMPLES:
    274273        You can directly obtain Open data as so:
    275             sage: finance.Stock('vmw').open(startdate='Jan+1,+2008', enddate='Feb+1,+2008')                 # optional -- requires internet
    276             [83.0500, 85.4900, 84.9000, 82.0000, 81.2500 ... 82.0000, 58.0500, 54.4900, 55.6000, 56.9800]
     274            sage: finance.Stock('vmw').open(startdate='Jan+1,+2008', enddate='Feb+1,+2008')                 # optional -- internet
     275            [83.0500, 85.4900, 84.9000, 82.0000, 81.2500 ... 82.0000, 58.2700, 54.4900, 55.6000, 56.9800]
    277276
    278277        Or, you can initialize stock data first and then extract the Open
    279278        data:
    280279            sage: c = finance.Stock('vmw')
    281             sage: c.google(startdate='Feb+1,+2008', enddate='Mar+1,+2008')[:5]    # optional -- requires internet
     280            sage: c.google(startdate='Feb+1,+2008', enddate='Mar+1,+2008')[:5]    # optional -- internet
    282281            [
    283              31-Jan-08 55.60 57.35 55.52 56.67    2607800,
    284               1-Feb-08 56.98 58.14 55.06 57.85    2489400,
    285               4-Feb-08 58.00 60.47 56.91 58.05    1840300,
    286               5-Feb-08 57.60 59.30 57.17 59.30    1711700,
    287               6-Feb-08 60.32 62.00 59.50 61.52    2209700
     282             31-Jan-08 55.60 57.35 55.52 56.67    2591100,
     283              1-Feb-08 56.98 58.14 55.06 57.85    2473000,
     284              4-Feb-08 58.00 60.47 56.91 58.05    1816500,
     285              5-Feb-08 57.60 59.30 57.17 59.30    1709000,
     286              6-Feb-08 60.32 62.00 59.50 61.52    2191100
    288287            ]
    289             sage: c.open()    # optional -- requires internet
     288            sage: c.open()    # optional -- internet
    290289            [55.6000, 56.9800, 58.0000, 57.6000, 60.3200 ... 56.5500, 59.3000, 60.0000, 59.7900, 59.2600]
    291290
    292291        Otherwise, \code{self.google()} will be called with the default
    293292        arguements returning a year's worth of data:
    294             sage: finance.Stock('vmw').open()   # optional and random -- requires internet and depends on day
     293            sage: finance.Stock('vmw').open()   # random; optional -- internet
    295294            [52.1100, 60.9900, 59.0000, 56.0500, 57.2500 ... 83.0500, 85.4900, 84.9000, 82.0000, 81.2500]
    296295
    297296        """
     
    324323
    325324        EXAMPLES:
    326325        You can directly obtain close data as so:
    327             sage: finance.Stock('vmw').close(startdate='Jan+1,+2008', enddate='Feb+1,+2008')                 # optional -- requires internet
     326            sage: finance.Stock('vmw').close(startdate='Jan+1,+2008', enddate='Feb+1,+2008')                 # optional -- internet
    328327            [84.9900, 84.6000, 83.9500, 80.4900, 72.9900 ... 83.0000, 54.8700, 56.4200, 56.6700, 57.8500]
    329328
    330329        Or, you can initialize stock data first and then extract the Close
    331330        data:
    332331            sage: c = finance.Stock('vmw')
    333             sage: c.google(startdate='Feb+1,+2008', enddate='Mar+1,+2008')[:5]    # optional -- requires internet
     332            sage: c.google(startdate='Feb+1,+2008', enddate='Mar+1,+2008')[:5]    # optional -- internet
    334333            [
    335              31-Jan-08 55.60 57.35 55.52 56.67    2607800,
    336               1-Feb-08 56.98 58.14 55.06 57.85    2489400,
    337               4-Feb-08 58.00 60.47 56.91 58.05    1840300,
    338               5-Feb-08 57.60 59.30 57.17 59.30    1711700,
    339               6-Feb-08 60.32 62.00 59.50 61.52    2209700
     334             31-Jan-08 55.60 57.35 55.52 56.67    2591100,
     335              1-Feb-08 56.98 58.14 55.06 57.85    2473000,
     336              4-Feb-08 58.00 60.47 56.91 58.05    1816500,
     337              5-Feb-08 57.60 59.30 57.17 59.30    1709000,
     338              6-Feb-08 60.32 62.00 59.50 61.52    2191100
    340339            ]
    341             sage: c.close()    # optional -- requires internet
     340            sage: c.close()    # optional -- internet
    342341            [56.6700, 57.8500, 58.0500, 59.3000, 61.5200 ... 58.2900, 60.1800, 59.8600, 59.9500, 58.6700]
    343342
    344343
    345344
    346345        Otherwise, \code{self.google()} will be called with the default
    347346        arguements returning a year's worh of data:
    348             sage: finance.Stock('vmw').close()   # optional and random -- requires internet and depends on day
     347            sage: finance.Stock('vmw').close()   # random; optional -- internet
    349348            [57.7100, 56.9900, 55.5500, 57.3300, 65.9900 ... 84.9900, 84.6000, 83.9500, 80.4900, 72.9900]
    350349        """
    351350               
     
    453452
    454453        EXAMPLES:
    455454        This indirectly tests the use of get_data.
    456             sage: finance.Stock('aapl').google(startdate='Jan+1,+1990')[:2]    # optional -- requires internet
     455            sage: finance.Stock('aapl').google(startdate='Jan+1,+1990')[:2]    # optional -- internet
    457456            [
    458               2-Jan-90 8.81 9.38 8.75 9.31    6542800,
    459               3-Jan-90 9.50 9.50 9.38 9.38    7428400
     457              2-Jan-90 0.00 9.38 8.75 9.31    6542800,
     458              3-Jan-90 0.00 9.50 9.38 9.38    7428400
    460459            ]
    461460        """
    462461        symbol = self.symbol