{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Historical Data"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This section illustrates how to retrieve **historical data** for different instruments.\n",
"\n",
"First, the API connection."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import fxcmpy\n",
"import pandas as pd\n",
"import datetime as dt\n",
"con = fxcmpy.fxcmpy(config_file='fxcm.cfg')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Available Instruments"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"A list of **instruments** for which historical data is available is returned by `con. get_instruments_for_candles()`."
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"['EUR/USD', 'USD/JPY', 'GBP/USD', 'USD/CHF']\n",
"['EUR/CHF', 'AUD/USD', 'USD/CAD', 'NZD/USD']\n",
"['EUR/GBP', 'EUR/JPY', 'GBP/JPY', 'AUD/JPY']\n",
"['GBP/AUD', 'USD/CNH', 'FRA40', 'GER30']\n",
"['UK100', 'US30', 'USDOLLAR', 'XAU/USD']\n",
"['XAG/USD']\n"
]
}
],
"source": [
"instruments = con.get_instruments_for_candles()\n",
"for i in range(int(len(instruments)/4)):\n",
" print(instruments[i*4:(i+1)*4])\n",
"print(instruments[(i+1)*4:])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Fetching the Data"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In a simple case, the `con.get_candles()` method returns the most recent data points available for a specified `instrument` and `period` value."
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" bidopen | \n",
" bidclose | \n",
" bidhigh | \n",
" bidlow | \n",
" askopen | \n",
" askclose | \n",
" askhigh | \n",
" asklow | \n",
" tickqty | \n",
"
\n",
" \n",
" date | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" 2018-05-24 21:00:00 | \n",
" 110.069 | \n",
" 109.228 | \n",
" 110.085 | \n",
" 108.945 | \n",
" 110.096 | \n",
" 109.275 | \n",
" 110.132 | \n",
" 108.965 | \n",
" 454210 | \n",
"
\n",
" \n",
" 2018-05-25 21:00:00 | \n",
" 109.228 | \n",
" 109.352 | \n",
" 109.734 | \n",
" 109.112 | \n",
" 109.275 | \n",
" 109.419 | \n",
" 109.755 | \n",
" 109.131 | \n",
" 394943 | \n",
"
\n",
" \n",
" 2018-05-27 21:00:00 | \n",
" 109.504 | \n",
" 109.736 | \n",
" 109.806 | \n",
" 109.500 | \n",
" 109.563 | \n",
" 109.796 | \n",
" 109.848 | \n",
" 109.563 | \n",
" 733 | \n",
"
\n",
" \n",
" 2018-05-28 21:00:00 | \n",
" 109.736 | \n",
" 109.394 | \n",
" 109.820 | \n",
" 109.222 | \n",
" 109.796 | \n",
" 109.442 | \n",
" 109.847 | \n",
" 109.245 | \n",
" 301699 | \n",
"
\n",
" \n",
" 2018-05-29 21:00:00 | \n",
" 109.394 | \n",
" 108.744 | \n",
" 109.459 | \n",
" 108.102 | \n",
" 109.442 | \n",
" 108.790 | \n",
" 109.481 | \n",
" 108.123 | \n",
" 574325 | \n",
"
\n",
" \n",
" 2018-05-30 21:00:00 | \n",
" 108.744 | \n",
" 108.895 | \n",
" 109.065 | \n",
" 108.341 | \n",
" 108.790 | \n",
" 108.921 | \n",
" 109.086 | \n",
" 108.363 | \n",
" 498453 | \n",
"
\n",
" \n",
" 2018-05-31 21:00:00 | \n",
" 108.895 | \n",
" 108.793 | \n",
" 108.995 | \n",
" 108.376 | \n",
" 108.921 | \n",
" 108.846 | \n",
" 109.015 | \n",
" 108.397 | \n",
" 452231 | \n",
"
\n",
" \n",
" 2018-06-01 21:00:00 | \n",
" 108.793 | \n",
" 109.478 | \n",
" 109.723 | \n",
" 108.712 | \n",
" 108.846 | \n",
" 109.545 | \n",
" 109.752 | \n",
" 108.733 | \n",
" 368094 | \n",
"
\n",
" \n",
" 2018-06-04 21:00:00 | \n",
" 109.552 | \n",
" 109.803 | \n",
" 109.845 | \n",
" 109.548 | \n",
" 109.572 | \n",
" 109.827 | \n",
" 109.865 | \n",
" 109.569 | \n",
" 57968 | \n",
"
\n",
" \n",
" 2018-06-05 21:00:00 | \n",
" 109.803 | \n",
" 109.761 | \n",
" 109.995 | \n",
" 109.462 | \n",
" 109.827 | \n",
" 109.814 | \n",
" 110.016 | \n",
" 109.484 | \n",
" 374545 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" bidopen bidclose bidhigh bidlow askopen askclose \\\n",
"date \n",
"2018-05-24 21:00:00 110.069 109.228 110.085 108.945 110.096 109.275 \n",
"2018-05-25 21:00:00 109.228 109.352 109.734 109.112 109.275 109.419 \n",
"2018-05-27 21:00:00 109.504 109.736 109.806 109.500 109.563 109.796 \n",
"2018-05-28 21:00:00 109.736 109.394 109.820 109.222 109.796 109.442 \n",
"2018-05-29 21:00:00 109.394 108.744 109.459 108.102 109.442 108.790 \n",
"2018-05-30 21:00:00 108.744 108.895 109.065 108.341 108.790 108.921 \n",
"2018-05-31 21:00:00 108.895 108.793 108.995 108.376 108.921 108.846 \n",
"2018-06-01 21:00:00 108.793 109.478 109.723 108.712 108.846 109.545 \n",
"2018-06-04 21:00:00 109.552 109.803 109.845 109.548 109.572 109.827 \n",
"2018-06-05 21:00:00 109.803 109.761 109.995 109.462 109.827 109.814 \n",
"\n",
" askhigh asklow tickqty \n",
"date \n",
"2018-05-24 21:00:00 110.132 108.965 454210 \n",
"2018-05-25 21:00:00 109.755 109.131 394943 \n",
"2018-05-27 21:00:00 109.848 109.563 733 \n",
"2018-05-28 21:00:00 109.847 109.245 301699 \n",
"2018-05-29 21:00:00 109.481 108.123 574325 \n",
"2018-05-30 21:00:00 109.086 108.363 498453 \n",
"2018-05-31 21:00:00 109.015 108.397 452231 \n",
"2018-06-01 21:00:00 109.752 108.733 368094 \n",
"2018-06-04 21:00:00 109.865 109.569 57968 \n",
"2018-06-05 21:00:00 110.016 109.484 374545 "
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"con.get_candles('USD/JPY', period='D1') # daily data"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"By default, the method returns a `pandas` `DataFrame` object which simplifies the majority of typical analytics and visualizations tasks significantly (see http://pandas.pydata.org)."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Data Frequency"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The parameter `period` defines the frequency of the data to be retrieved. Below is a list of all currently available frequencies.\n",
"\n",
"* minutes: `m1`, `m5`, `m15` and `m30`,\n",
"* hours: `H1`, `H2`, `H3`, `H4`, `H6` and `H8`,\n",
"* one day: `D1`,\n",
"* one week: `W1`,\n",
"* one month: `M1`."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"By default, `con.get_candles()` returns data for the last 10 available periods, depending on the parameter value for `period`."
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" bidopen | \n",
" bidclose | \n",
" bidhigh | \n",
" bidlow | \n",
" askopen | \n",
" askclose | \n",
" askhigh | \n",
" asklow | \n",
" tickqty | \n",
"
\n",
" \n",
" date | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" 2017-07-31 21:00:00 | \n",
" 1.18403 | \n",
" 1.19081 | \n",
" 1.20693 | \n",
" 1.16610 | \n",
" 1.18428 | \n",
" 1.19110 | \n",
" 1.20716 | \n",
" 1.16634 | \n",
" 6893224 | \n",
"
\n",
" \n",
" 2017-08-31 21:00:00 | \n",
" 1.19081 | \n",
" 1.18108 | \n",
" 1.20913 | \n",
" 1.17160 | \n",
" 1.19110 | \n",
" 1.18197 | \n",
" 1.20937 | \n",
" 1.17181 | \n",
" 6183348 | \n",
"
\n",
" \n",
" 2017-09-30 21:00:00 | \n",
" 1.18108 | \n",
" 1.16450 | \n",
" 1.18792 | \n",
" 1.15731 | \n",
" 1.18197 | \n",
" 1.16476 | \n",
" 1.18810 | \n",
" 1.15750 | \n",
" 4598301 | \n",
"
\n",
" \n",
" 2017-10-31 21:00:00 | \n",
" 1.16450 | \n",
" 1.19026 | \n",
" 1.19601 | \n",
" 1.15528 | \n",
" 1.16476 | \n",
" 1.19051 | \n",
" 1.19624 | \n",
" 1.15549 | \n",
" 4392023 | \n",
"
\n",
" \n",
" 2017-11-30 22:00:00 | \n",
" 1.19026 | \n",
" 1.20038 | \n",
" 1.20244 | \n",
" 1.17165 | \n",
" 1.19051 | \n",
" 1.20103 | \n",
" 1.20267 | \n",
" 1.17187 | \n",
" 3678417 | \n",
"
\n",
" \n",
" 2017-12-31 22:00:00 | \n",
" 1.20038 | \n",
" 1.24122 | \n",
" 1.25369 | \n",
" 1.19144 | \n",
" 1.20103 | \n",
" 1.24148 | \n",
" 1.25392 | \n",
" 1.19166 | \n",
" 6771090 | \n",
"
\n",
" \n",
" 2018-01-31 22:00:00 | \n",
" 1.24122 | \n",
" 1.21922 | \n",
" 1.25547 | \n",
" 1.21867 | \n",
" 1.24148 | \n",
" 1.21962 | \n",
" 1.25566 | \n",
" 1.21890 | \n",
" 6552190 | \n",
"
\n",
" \n",
" 2018-04-01 20:00:00 | \n",
" 1.23228 | \n",
" 1.23191 | \n",
" 1.23290 | \n",
" 1.23191 | \n",
" 1.23306 | \n",
" 1.23252 | \n",
" 1.23330 | \n",
" 1.23252 | \n",
" 39 | \n",
"
\n",
" \n",
" 2018-05-01 20:00:00 | \n",
" 1.21214 | \n",
" 1.19907 | \n",
" 1.21377 | \n",
" 1.19801 | \n",
" 1.21291 | \n",
" 1.19948 | \n",
" 1.21400 | \n",
" 1.19822 | \n",
" 477918 | \n",
"
\n",
" \n",
" 2018-06-01 20:00:00 | \n",
" 1.16534 | \n",
" 1.16561 | \n",
" 1.17273 | \n",
" 1.15091 | \n",
" 1.16596 | \n",
" 1.16624 | \n",
" 1.17297 | \n",
" 1.15112 | \n",
" 1806820 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" bidopen bidclose bidhigh bidlow askopen askclose \\\n",
"date \n",
"2017-07-31 21:00:00 1.18403 1.19081 1.20693 1.16610 1.18428 1.19110 \n",
"2017-08-31 21:00:00 1.19081 1.18108 1.20913 1.17160 1.19110 1.18197 \n",
"2017-09-30 21:00:00 1.18108 1.16450 1.18792 1.15731 1.18197 1.16476 \n",
"2017-10-31 21:00:00 1.16450 1.19026 1.19601 1.15528 1.16476 1.19051 \n",
"2017-11-30 22:00:00 1.19026 1.20038 1.20244 1.17165 1.19051 1.20103 \n",
"2017-12-31 22:00:00 1.20038 1.24122 1.25369 1.19144 1.20103 1.24148 \n",
"2018-01-31 22:00:00 1.24122 1.21922 1.25547 1.21867 1.24148 1.21962 \n",
"2018-04-01 20:00:00 1.23228 1.23191 1.23290 1.23191 1.23306 1.23252 \n",
"2018-05-01 20:00:00 1.21214 1.19907 1.21377 1.19801 1.21291 1.19948 \n",
"2018-06-01 20:00:00 1.16534 1.16561 1.17273 1.15091 1.16596 1.16624 \n",
"\n",
" askhigh asklow tickqty \n",
"date \n",
"2017-07-31 21:00:00 1.20716 1.16634 6893224 \n",
"2017-08-31 21:00:00 1.20937 1.17181 6183348 \n",
"2017-09-30 21:00:00 1.18810 1.15750 4598301 \n",
"2017-10-31 21:00:00 1.19624 1.15549 4392023 \n",
"2017-11-30 22:00:00 1.20267 1.17187 3678417 \n",
"2017-12-31 22:00:00 1.25392 1.19166 6771090 \n",
"2018-01-31 22:00:00 1.25566 1.21890 6552190 \n",
"2018-04-01 20:00:00 1.23330 1.23252 39 \n",
"2018-05-01 20:00:00 1.21400 1.19822 477918 \n",
"2018-06-01 20:00:00 1.17297 1.15112 1806820 "
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"con.get_candles('EUR/USD', period='M1') # monthly data"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"A number different from 10 can also be defined via the `number` parameter."
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" bidopen | \n",
" bidclose | \n",
" bidhigh | \n",
" bidlow | \n",
" askopen | \n",
" askclose | \n",
" askhigh | \n",
" asklow | \n",
" tickqty | \n",
"
\n",
" \n",
" date | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" 2018-06-06 08:52:00 | \n",
" 1.17460 | \n",
" 1.17442 | \n",
" 1.17461 | \n",
" 1.17429 | \n",
" 1.17484 | \n",
" 1.17464 | \n",
" 1.17484 | \n",
" 1.17453 | \n",
" 213 | \n",
"
\n",
" \n",
" 2018-06-06 08:53:00 | \n",
" 1.17442 | \n",
" 1.17430 | \n",
" 1.17442 | \n",
" 1.17420 | \n",
" 1.17465 | \n",
" 1.17453 | \n",
" 1.17466 | \n",
" 1.17445 | \n",
" 241 | \n",
"
\n",
" \n",
" 2018-06-06 08:54:00 | \n",
" 1.17429 | \n",
" 1.17436 | \n",
" 1.17440 | \n",
" 1.17425 | \n",
" 1.17453 | \n",
" 1.17460 | \n",
" 1.17463 | \n",
" 1.17449 | \n",
" 223 | \n",
"
\n",
" \n",
" 2018-06-06 08:55:00 | \n",
" 1.17437 | \n",
" 1.17448 | \n",
" 1.17457 | \n",
" 1.17437 | \n",
" 1.17460 | \n",
" 1.17470 | \n",
" 1.17480 | \n",
" 1.17460 | \n",
" 351 | \n",
"
\n",
" \n",
" 2018-06-06 08:56:00 | \n",
" 1.17448 | \n",
" 1.17479 | \n",
" 1.17487 | \n",
" 1.17448 | \n",
" 1.17470 | \n",
" 1.17502 | \n",
" 1.17510 | \n",
" 1.17469 | \n",
" 292 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" bidopen bidclose bidhigh bidlow askopen askclose \\\n",
"date \n",
"2018-06-06 08:52:00 1.17460 1.17442 1.17461 1.17429 1.17484 1.17464 \n",
"2018-06-06 08:53:00 1.17442 1.17430 1.17442 1.17420 1.17465 1.17453 \n",
"2018-06-06 08:54:00 1.17429 1.17436 1.17440 1.17425 1.17453 1.17460 \n",
"2018-06-06 08:55:00 1.17437 1.17448 1.17457 1.17437 1.17460 1.17470 \n",
"2018-06-06 08:56:00 1.17448 1.17479 1.17487 1.17448 1.17470 1.17502 \n",
"\n",
" askhigh asklow tickqty \n",
"date \n",
"2018-06-06 08:52:00 1.17484 1.17453 213 \n",
"2018-06-06 08:53:00 1.17466 1.17445 241 \n",
"2018-06-06 08:54:00 1.17463 1.17449 223 \n",
"2018-06-06 08:55:00 1.17480 1.17460 351 \n",
"2018-06-06 08:56:00 1.17510 1.17469 292 "
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"con.get_candles('EUR/USD', period='m1', number=5) # five one-minute bars"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": true
},
"source": [
"## Time Windows"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Alternatively, one can specifiy `start` and `stop` values to specifiy the time window for data retrieval."
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" bidopen | \n",
" bidclose | \n",
" bidhigh | \n",
" bidlow | \n",
" askopen | \n",
" askclose | \n",
" askhigh | \n",
" asklow | \n",
" tickqty | \n",
"
\n",
" \n",
" date | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" 2018-05-16 21:00:00 | \n",
" 1.18366 | \n",
" 1.18052 | \n",
" 1.18530 | \n",
" 1.17620 | \n",
" 1.18389 | \n",
" 1.18092 | \n",
" 1.18553 | \n",
" 1.17644 | \n",
" 398818 | \n",
"
\n",
" \n",
" 2018-05-17 21:00:00 | \n",
" 1.18052 | \n",
" 1.17920 | \n",
" 1.18363 | \n",
" 1.17752 | \n",
" 1.18092 | \n",
" 1.17964 | \n",
" 1.18388 | \n",
" 1.17776 | \n",
" 308010 | \n",
"
\n",
" \n",
" 2018-05-18 21:00:00 | \n",
" 1.17920 | \n",
" 1.17673 | \n",
" 1.18209 | \n",
" 1.17486 | \n",
" 1.17964 | \n",
" 1.17754 | \n",
" 1.18233 | \n",
" 1.17508 | \n",
" 212112 | \n",
"
\n",
" \n",
" 2018-05-20 21:00:00 | \n",
" 1.17630 | \n",
" 1.17667 | \n",
" 1.17785 | \n",
" 1.17623 | \n",
" 1.17698 | \n",
" 1.17745 | \n",
" 1.17810 | \n",
" 1.17698 | \n",
" 168 | \n",
"
\n",
" \n",
" 2018-05-21 21:00:00 | \n",
" 1.17667 | \n",
" 1.17900 | \n",
" 1.17945 | \n",
" 1.17155 | \n",
" 1.17745 | \n",
" 1.17930 | \n",
" 1.17968 | \n",
" 1.17179 | \n",
" 194031 | \n",
"
\n",
" \n",
" 2018-05-22 21:00:00 | \n",
" 1.17900 | \n",
" 1.17765 | \n",
" 1.18287 | \n",
" 1.17553 | \n",
" 1.17930 | \n",
" 1.17810 | \n",
" 1.18310 | \n",
" 1.17578 | \n",
" 276164 | \n",
"
\n",
" \n",
" 2018-05-23 21:00:00 | \n",
" 1.17765 | \n",
" 1.16944 | \n",
" 1.17886 | \n",
" 1.16747 | \n",
" 1.17810 | \n",
" 1.16980 | \n",
" 1.17909 | \n",
" 1.16770 | \n",
" 381970 | \n",
"
\n",
" \n",
" 2018-05-24 21:00:00 | \n",
" 1.16944 | \n",
" 1.17182 | \n",
" 1.17494 | \n",
" 1.16897 | \n",
" 1.16979 | \n",
" 1.17212 | \n",
" 1.17515 | \n",
" 1.16921 | \n",
" 320736 | \n",
"
\n",
" \n",
" 2018-05-25 21:00:00 | \n",
" 1.17182 | \n",
" 1.16469 | \n",
" 1.17325 | \n",
" 1.16447 | \n",
" 1.17212 | \n",
" 1.16529 | \n",
" 1.17349 | \n",
" 1.16473 | \n",
" 317164 | \n",
"
\n",
" \n",
" 2018-05-27 21:00:00 | \n",
" 1.16534 | \n",
" 1.16849 | \n",
" 1.16868 | \n",
" 1.16534 | \n",
" 1.16596 | \n",
" 1.16885 | \n",
" 1.16907 | \n",
" 1.16596 | \n",
" 947 | \n",
"
\n",
" \n",
" 2018-05-28 21:00:00 | \n",
" 1.16849 | \n",
" 1.16231 | \n",
" 1.17273 | \n",
" 1.16063 | \n",
" 1.16885 | \n",
" 1.16260 | \n",
" 1.17297 | \n",
" 1.16084 | \n",
" 244898 | \n",
"
\n",
" \n",
" 2018-05-29 21:00:00 | \n",
" 1.16231 | \n",
" 1.15382 | \n",
" 1.16385 | \n",
" 1.15091 | \n",
" 1.16260 | \n",
" 1.15407 | \n",
" 1.16409 | \n",
" 1.15112 | \n",
" 421212 | \n",
"
\n",
" \n",
" 2018-05-30 21:00:00 | \n",
" 1.15383 | \n",
" 1.16599 | \n",
" 1.16753 | \n",
" 1.15176 | \n",
" 1.15408 | \n",
" 1.16673 | \n",
" 1.16774 | \n",
" 1.15199 | \n",
" 441679 | \n",
"
\n",
" \n",
" 2018-05-31 21:00:00 | \n",
" 1.16599 | \n",
" 1.16890 | \n",
" 1.17233 | \n",
" 1.16400 | \n",
" 1.16673 | \n",
" 1.16963 | \n",
" 1.17254 | \n",
" 1.16423 | \n",
" 384090 | \n",
"
\n",
" \n",
" 2018-06-01 21:00:00 | \n",
" 1.16890 | \n",
" 1.16561 | \n",
" 1.17168 | \n",
" 1.16158 | \n",
" 1.16962 | \n",
" 1.16624 | \n",
" 1.17193 | \n",
" 1.16180 | \n",
" 314941 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" bidopen bidclose bidhigh bidlow askopen askclose \\\n",
"date \n",
"2018-05-16 21:00:00 1.18366 1.18052 1.18530 1.17620 1.18389 1.18092 \n",
"2018-05-17 21:00:00 1.18052 1.17920 1.18363 1.17752 1.18092 1.17964 \n",
"2018-05-18 21:00:00 1.17920 1.17673 1.18209 1.17486 1.17964 1.17754 \n",
"2018-05-20 21:00:00 1.17630 1.17667 1.17785 1.17623 1.17698 1.17745 \n",
"2018-05-21 21:00:00 1.17667 1.17900 1.17945 1.17155 1.17745 1.17930 \n",
"2018-05-22 21:00:00 1.17900 1.17765 1.18287 1.17553 1.17930 1.17810 \n",
"2018-05-23 21:00:00 1.17765 1.16944 1.17886 1.16747 1.17810 1.16980 \n",
"2018-05-24 21:00:00 1.16944 1.17182 1.17494 1.16897 1.16979 1.17212 \n",
"2018-05-25 21:00:00 1.17182 1.16469 1.17325 1.16447 1.17212 1.16529 \n",
"2018-05-27 21:00:00 1.16534 1.16849 1.16868 1.16534 1.16596 1.16885 \n",
"2018-05-28 21:00:00 1.16849 1.16231 1.17273 1.16063 1.16885 1.16260 \n",
"2018-05-29 21:00:00 1.16231 1.15382 1.16385 1.15091 1.16260 1.15407 \n",
"2018-05-30 21:00:00 1.15383 1.16599 1.16753 1.15176 1.15408 1.16673 \n",
"2018-05-31 21:00:00 1.16599 1.16890 1.17233 1.16400 1.16673 1.16963 \n",
"2018-06-01 21:00:00 1.16890 1.16561 1.17168 1.16158 1.16962 1.16624 \n",
"\n",
" askhigh asklow tickqty \n",
"date \n",
"2018-05-16 21:00:00 1.18553 1.17644 398818 \n",
"2018-05-17 21:00:00 1.18388 1.17776 308010 \n",
"2018-05-18 21:00:00 1.18233 1.17508 212112 \n",
"2018-05-20 21:00:00 1.17810 1.17698 168 \n",
"2018-05-21 21:00:00 1.17968 1.17179 194031 \n",
"2018-05-22 21:00:00 1.18310 1.17578 276164 \n",
"2018-05-23 21:00:00 1.17909 1.16770 381970 \n",
"2018-05-24 21:00:00 1.17515 1.16921 320736 \n",
"2018-05-25 21:00:00 1.17349 1.16473 317164 \n",
"2018-05-27 21:00:00 1.16907 1.16596 947 \n",
"2018-05-28 21:00:00 1.17297 1.16084 244898 \n",
"2018-05-29 21:00:00 1.16409 1.15112 421212 \n",
"2018-05-30 21:00:00 1.16774 1.15199 441679 \n",
"2018-05-31 21:00:00 1.17254 1.16423 384090 \n",
"2018-06-01 21:00:00 1.17193 1.16180 314941 "
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"start = dt.datetime(2018, 5, 15)\n",
"end = dt.datetime(2018, 6, 1)\n",
"con.get_candles('EUR/USD', period='D1',\n",
" start=start, end=end)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Data Visualization"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The Python ecosystem provides a number of alternatives to **visualize financial time series data**. The standard plotting library is `matplotlib` (see http://matplotlib.org) which is tighly integrated with `pandas` `DataFrame` objects, allowing for efficient visualizations."
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"from pylab import plt\n",
"plt.style.use('seaborn')\n",
"%matplotlib inline"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Using the `columns` parameter, one can specifiy which data columns are returned. Here, just one column is specified."
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"data = con.get_candles('EUR/USD', period='m1',\n",
" columns=['askopen'], number=500)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The following code visualizes the only financial time series in the `DataFrame` object."
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\nQmCC\n",
"text/plain": [
"