API Reference

API Key

If a subscription has been purchased, please setup the API keys as follows. A free-trial API is installed by default

Setting the API Key

To set the api key. This only needs to be run one time. A free API is already installed and this step is only necessary if subscribed to extra market data.

import goldengoose
goldengoose.set_api_key("api_key")

Endpoints for connecting to all assets available from goldengoose-data.

get(stock)

Return a data object for a given symbol.

Parameters:
  • stock (str) –

    Ticker Symbol. E.g. "MSFT"

Returns:
  • ggStock

    goldengoose stock object

Source code in goldengoose/stocks.py
13
14
15
16
17
18
19
20
21
22
23
def get(stock):
    """
    Return a data object for a given symbol.

    :param stock: Ticker Symbol. E.g. "MSFT"
    :type stock: str
    :return: goldengoose stock object
    :rtype: ggStock
    """

    return stocks.get(stock)

list()

Return a list of all stock symbols available from goldengoose-data.

Returns:
  • list[str]

    List of strings

Source code in goldengoose/stocks.py
25
26
27
28
29
30
31
32
def list():
    """
    Return a list of all stock symbols available from goldengoose-data.
    :return: List of strings
    :rtype: list[str]
    """

    return stocks['asset-list'].dump()

ggCalendar

Bases: DDict

Source code in goldengoose/internal.py
48
49
50
51
52
53
54
55
56
57
58
class ggCalendar(pydaos.DDict):
    def dump(self, start: str = "", stop: str = "", resolution: str = ""):
        """
        Dump all data for this stock.

        :param start:
        :param stop:
        :resolution:
        """

        return super().dump(start=start, stop=stop, resolution=resolution)

dump(start='', stop='', resolution='')

Dump all data for this stock.

:resolution:

Parameters:
  • start (str, default: '' ) –
  • stop (str, default: '' ) –
Source code in goldengoose/internal.py
49
50
51
52
53
54
55
56
57
58
def dump(self, start: str = "", stop: str = "", resolution: str = ""):
    """
    Dump all data for this stock.

    :param start:
    :param stop:
    :resolution:
    """

    return super().dump(start=start, stop=stop, resolution=resolution)

ggNews

Bases: DCont

The global stocks database object. With this object you will be able to access all of goldengoose data's stock data.

Source code in goldengoose/internal.py
39
40
41
42
43
44
45
46
class ggNews(pydaos.DCont):
    """
    The global stocks database object. With this object you will be able to access all of
    goldengoose data's stock data.
    """

    def __init__(self):
        super().__init__("goldengoose", "news")

ggStock

Bases: DDict

Source code in goldengoose/internal.py
22
23
24
25
26
27
28
29
30
31
32
class ggStock(pydaos.DDict):
    def dump(self, start: str = "", stop: str = "", resolution: str = ""):
        """
        Dump all data for this stock.

        :param start:
        :param stop:
        :resolution:
        """

        return super().dump(start=start, stop=stop, resolution=resolution)

dump(start='', stop='', resolution='')

Dump all data for this stock.

:resolution:

Parameters:
  • start (str, default: '' ) –
  • stop (str, default: '' ) –
Source code in goldengoose/internal.py
23
24
25
26
27
28
29
30
31
32
def dump(self, start: str = "", stop: str = "", resolution: str = ""):
    """
    Dump all data for this stock.

    :param start:
    :param stop:
    :resolution:
    """

    return super().dump(start=start, stop=stop, resolution=resolution)

ggStocks

Bases: DCont

The global stocks database object. With this object you will be able to access all of goldengoose data's stock data.

Source code in goldengoose/internal.py
13
14
15
16
17
18
19
20
class ggStocks(pydaos.DCont):
    """
    The global stocks database object. With this object you will be able to access all of
    goldengoose data's stock data.
    """

    def __init__(self):
        super().__init__("goldengoose", "assets")

clock_forwarder(date, days, set_to_before_market=False, set_to_after_market=False)

Forward the given date by N market days.

Parameters:
  • date (date) –

    Starting date

  • days (int) –

    Days to forward

  • set_to_before_market (bool, default: False ) –

    Sets the datetime to 11:30:00 UTC

  • set_to_after_market (bool, default: False ) –

    Sets the datetime to 23:59:00

Source code in goldengoose/internal.py
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
def clock_forwarder(
    date: datetime.date,
    days: int,
    set_to_before_market: bool = False,
    set_to_after_market: bool = False
) -> datetime.date:
    """
    Forward the given date by N market days.

    :param date: Starting date
    :param days: Days to forward
    :param set_to_before_market: Sets the datetime to 11:30:00 UTC
    :param set_to_after_market: Sets the datetime to 23:59:00
    """

    if set_to_before_market:
        date = date.replace(hour=11, minute=30, second=0, microsecond=0)
    if set_to_after_market:
        date = date.replace(hour=23, minute=59, second=0, microsecond=0)

    if corporateHoliday(date):
        date = date + datetime.timedelta(days=1)
        date = clock_forwarder(date,days)
        return date

    weekday = date.strftime("%a")
    if weekday == "Sun":
        date = date + datetime.timedelta(days=1)
        date = clock_forwarder(date,days)
        return date
    if weekday == "Sat":
        date = date + datetime.timedelta(days=2)
        date = clock_forwarder(date,days)
        return date

    if days == 0:
        return date

    # Special case used to detect weekends and holidays as input
    if days == -1:
        return date

    date = date + datetime.timedelta(days=1)
    days = days - 1
    date = clock_forwarder(date, days)
    return date

corporateHoliday(today)

Lookup given date to see if it's a market holiday.

Parameters:
  • date

    date given to be check

Source code in goldengoose/internal.py
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
def corporateHoliday(today):
    """
    Lookup given date to see if it's a market holiday.

    :param date: date given to be check
    """

    strdate = today.strftime("%Y-%m-%d")
    today = today.strptime(strdate, "%Y-%m-%d")

    if today in news.calendar:
        print (news.calendar[today])
        return True

    return False