Forex
Read this page to know everything you need to know about using the various Forex HTTP endpoints.
See Async Support for REST endpoints for asynchronous use cases.
Docs below assume you have already read getting started page and know how to create the client. If you do not know how to create the client, first see General guide for clients and create client as below. As always you can have all 5 different clients together.
import polygon
forex_client = polygon.ForexClient('KEY') # for usual sync client
async_forex_client = polygon.ForexClient('KEY', True) # for an async client
Note that most endpoints require you to specify the currency pairs as separate symbols (a from_symbol
and a to_symbol
).
however a few endpoints require you to supply them as one combined symbol. An example would be the get_aggregates_bars
method.
In those methods, the symbol is expected to have a prefix C:
before the currency symbol names. but the library allows you to specify the symbol with or without the prefix.
See the relevant method’s docs for more information on what the parameters expect.
Get Historic forex ticks
- ForexClient.get_historic_forex_ticks(from_symbol: str, to_symbol: str, date, offset: Optional[Union[str, int]] = None, limit: int = 500, raw_response: bool = False) Union[requests.models.Response, dict]
Get historic trade ticks for a forex currency pair. Official Docs
- Parameters
from_symbol – The “from” symbol of the forex currency pair.
to_symbol – The “to” symbol of the forex currency pair.
date – The date/day of the historic ticks to retrieve. Could be
datetime
,date
or stringYYYY-MM-DD
offset – The timestamp offset, used for pagination. This is the offset at which to start the results. Using the timestamp of the last result as the offset will give you the next page of results. I’m thinking about a good way to implement this type of pagination in the lib which doesn’t have a
next_url
in the response attributes.limit – Limit the size of the response, max 10000. Default 500
raw_response – Whether or not to return the
Response
Object. Useful for when you need to say check the status code or inspect the headers. Defaults to False which returns the json decoded dictionary.
- Returns
A JSON decoded Dictionary by default. Make
raw_response=True
to get underlying response object
Get Last Quote
- ForexClient.get_last_quote(from_symbol: str, to_symbol: str, raw_response: bool = False) Union[requests.models.Response, dict]
Get the last trade tick for a forex currency pair. Official Docs
- Parameters
from_symbol – The “from” symbol of the forex currency pair.
to_symbol – The “to” symbol of the forex currency pair.
raw_response – Whether or not to return the
Response
Object. Useful for when you need to say check the status code or inspect the headers. Defaults to False which returns the json decoded dictionary.
- Returns
A JSON decoded Dictionary by default. Make
raw_response=True
to get underlying response object
Get Aggregate Bars (Candles)
- ForexClient.get_aggregate_bars(symbol: str, from_date, to_date, multiplier: int = 1, timespan='day', adjusted: bool = True, sort='asc', limit: int = 5000, raw_response: bool = False) Union[requests.models.Response, dict]
Get aggregate bars for a forex pair over a given date range in custom time window sizes. For example, if
timespan = ‘minute’
andmultiplier = ‘5’
then5-minute
bars will be returned. Official Docs- Parameters
symbol – The ticker symbol of the forex pair. eg:
C:EURUSD
. You can supply with or without prefixC:
from_date – The start of the aggregate time window. Could be
datetime
,date
or stringYYYY-MM-DD
to_date – The end of the aggregate time window. Could be
datetime
,date
or stringYYYY-MM-DD
multiplier – The size of the timespan multiplier
timespan – The size of the time window. Defaults to day candles. see
polygon.enums.Timespan
for choicesadjusted – Whether or not the results are adjusted for splits. By default, results are adjusted. Set this to False to get results that are NOT adjusted for splits.
sort – Sort the results by timestamp. see
polygon.enums.SortOrder
for available choices. Defaults toasc
which is oldest at the top.limit – Limits the number of base aggregates queried to create the aggregate results. Max 50000 and Default 5000.
raw_response – Whether or not to return the
Response
Object. Useful for when you need to say check the status code or inspect the headers. Defaults to False which returns the json decoded dictionary.
- Returns
A JSON decoded Dictionary by default. Make
raw_response=True
to get underlying response object
Get Grouped Daily Bars (Candles)
- ForexClient.get_grouped_daily_bars(date, adjusted: bool = True, raw_response: bool = False) Union[requests.models.Response, dict]
Get the daily open, high, low, and close (OHLC) for the entire forex markets. Official Docs
- Parameters
date – The date for the aggregate window. Could be
datetime
,date
or stringYYYY-MM-DD
adjusted – Whether or not the results are adjusted for splits. By default, results are adjusted. Set this to False to get results that are NOT adjusted for splits.
raw_response – Whether or not to return the
Response
Object. Useful for when you need to say check the status code or inspect the headers. Defaults to False which returns the json decoded dictionary.
- Returns
A JSON decoded Dictionary by default. Make
raw_response=True
to get underlying response object
Get Previous Close
- ForexClient.get_previous_close(symbol: str, adjusted: bool = True, raw_response: bool = False) Union[requests.models.Response, dict]
Get the previous day’s open, high, low, and close (OHLC) for the specified forex pair. Official Docs
- Parameters
symbol – The ticker symbol of the forex pair.
adjusted – Whether or not the results are adjusted for splits. By default, results are adjusted. Set this to False to get results that are NOT adjusted for splits.
raw_response – Whether or not to return the
Response
Object. Useful for when you need to say check the status code or inspect the headers. Defaults to False which returns the json decoded dictionary.
- Returns
A JSON decoded Dictionary by default. Make
raw_response=True
to get underlying response object
Get Gainers & Losers
- ForexClient.get_gainers_and_losers(direction='gainers', raw_response: bool = False) Union[requests.models.Response, dict]
Get the current top 20 gainers or losers of the day in forex markets. Official docs
- Parameters
direction – The direction of the snapshot results to return. See
polygon.enums.SnapshotDirection
for available choices. Defaults to Gainers.raw_response – Whether or not to return the
Response
Object. Useful for when you need to say check the status code or inspect the headers. Defaults to False which returns the json decoded dictionary.
- Returns
A JSON decoded Dictionary by default. Make
raw_response=True
to get underlying response object
Real Time currency conversion
- ForexClient.real_time_currency_conversion(from_symbol: str, to_symbol: str, amount: float, precision: int = 2, raw_response: bool = False) Union[requests.models.Response, dict]
Get currency conversions using the latest market conversion rates. Note than you can convert in both directions. For example USD to CAD or CAD to USD. Official Docs
- Parameters
from_symbol – The “from” symbol of the pair.
to_symbol – The “to” symbol of the pair.
amount – The amount to convert,
precision – The decimal precision of the conversion. Defaults to 2 which is 2 decimal places accuracy.
raw_response – Whether or not to return the
Response
Object. Useful for when you need to say check the status code or inspect the headers. Defaults to False which returns the json decoded dictionary.
- Returns
A JSON decoded Dictionary by default. Make
raw_response=True
to get underlying response object