python-pour-finance/10-Plateforme-Quantopian/01-Bases-Quantopian-Researc...

397 lines
60 KiB
Plaintext
Raw Permalink Normal View History

2023-08-21 15:12:19 +00:00
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# 01-Les bases de Research avec Quantopian\n",
"\n",
"**N'oubliez pas que ce notebook ne fonctionnera que sur Quantopian ! Créez un compte et téléversez (upload) le fichier de ce notebook. Ces commandes et fonctions ne fonctionneront que sur la plateforme de trading Quantopian !**\n",
"\n",
"Notez qu'une grande partie du texte écrit dans ce notebook en Markdown provient directement des documents et tutoriels Quantopian, regardez les bien aussi, ils sont bien faits !\n",
"\n",
"## Research\n",
"\n",
"Le format notebook nous permet de rassembler facilement les informations sur les différents titres au sein de la plateforme Quantopian. Il faut garder à l'esprit que cela est différent de la plateforme de codage de base de Quantopian, qui se concentre sur la mise en œuvre effective et le backtesting des stratégies de trading."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import pandas as pd\n",
"import matplotlib.pyplot as plt\n",
"# PAS BESOIN D'UTILISER LA COMMANDE MAGIQUE SUR QUANTOPIAN !"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": true
},
"source": [
"## Obtenir des informations\n",
"\n",
"Passons en revue quelques fonctions clés :\n",
"\n",
"* get_pricing()\n",
"* symbols()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## get_pricing()\n",
"\n",
"La fonction `get_pricing` permet d'accéder à 12 ans de données sur le prix des actions américaines : les mêmes données que celles utilisées par le backtester Quantopian.\n",
"\n",
"`get_pricing` retourne un <b>objet Pandas</b>. Il peut s'agir d'un dataframe ou d'une série, selon les valeurs d'entrée. "
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"mcdon = get_pricing('MCD',\n",
" start_date='2017-01-01', \n",
" end_date = '2017-02-01', \n",
" frequency='minute')"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>open_price</th>\n",
" <th>high</th>\n",
" <th>low</th>\n",
" <th>close_price</th>\n",
" <th>volume</th>\n",
" <th>price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>2017-01-03 14:31:00+00:00</th>\n",
" <td>121.86</td>\n",
" <td>121.86</td>\n",
" <td>121.57</td>\n",
" <td>121.63</td>\n",
" <td>123665.0</td>\n",
" <td>121.63</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2017-01-03 14:32:00+00:00</th>\n",
" <td>121.73</td>\n",
" <td>121.92</td>\n",
" <td>121.41</td>\n",
" <td>121.45</td>\n",
" <td>13536.0</td>\n",
" <td>121.45</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2017-01-03 14:33:00+00:00</th>\n",
" <td>121.45</td>\n",
" <td>121.79</td>\n",
" <td>121.45</td>\n",
" <td>121.52</td>\n",
" <td>17562.0</td>\n",
" <td>121.52</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2017-01-03 14:34:00+00:00</th>\n",
" <td>121.45</td>\n",
" <td>121.80</td>\n",
" <td>121.44</td>\n",
" <td>121.75</td>\n",
" <td>12072.0</td>\n",
" <td>121.75</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2017-01-03 14:35:00+00:00</th>\n",
" <td>121.74</td>\n",
" <td>122.00</td>\n",
" <td>121.66</td>\n",
" <td>121.99</td>\n",
" <td>8100.0</td>\n",
" <td>121.99</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" open_price high low close_price volume \\\n",
"2017-01-03 14:31:00+00:00 121.86 121.86 121.57 121.63 123665.0 \n",
"2017-01-03 14:32:00+00:00 121.73 121.92 121.41 121.45 13536.0 \n",
"2017-01-03 14:33:00+00:00 121.45 121.79 121.45 121.52 17562.0 \n",
"2017-01-03 14:34:00+00:00 121.45 121.80 121.44 121.75 12072.0 \n",
"2017-01-03 14:35:00+00:00 121.74 122.00 121.66 121.99 8100.0 \n",
"\n",
" price \n",
"2017-01-03 14:31:00+00:00 121.63 \n",
"2017-01-03 14:32:00+00:00 121.45 \n",
"2017-01-03 14:33:00+00:00 121.52 \n",
"2017-01-03 14:34:00+00:00 121.75 \n",
"2017-01-03 14:35:00+00:00 121.99 "
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"mcdon.head()"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"<class 'pandas.core.frame.DataFrame'>\n",
"DatetimeIndex: 8190 entries, 2017-01-03 14:31:00+00:00 to 2017-02-01 21:00:00+00:00\n",
"Data columns (total 6 columns):\n",
"open_price 8188 non-null float64\n",
"high 8188 non-null float64\n",
"low 8188 non-null float64\n",
"close_price 8188 non-null float64\n",
"volume 8190 non-null float64\n",
"price 8190 non-null float64\n",
"dtypes: float64(6)\n",
"memory usage: 447.9 KB\n"
]
}
],
"source": [
"mcdon.info()"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"# On ne peut revenir que 12 ans en arrière\n",
"# ce qui est vraiment tout ce dont vous avez besoin pour l'algo de trading', \n",
"# remonter plus loin est probablement plus du bruit que du signal.\n",
"\n",
"mcdon = get_pricing('MCD',\n",
" start_date='2005-01-01', \n",
" end_date = '2017-01-01', \n",
" frequency='daily')"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7ff17a410d30>"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\nezXMjIiIiIiIOl+T2p6
"text/plain": [
"<matplotlib.figure.Figure at 0x7ff17a250e80>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"mcdon['close_price'].plot()"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7ff17fc5c550>"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\nblVdXZ3i4+NVUVGhZ59
"text/plain": [
"<matplotlib.figure.Figure at 0x7ff1832db978>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"mcdon['close_price'].pct_change(1).hist(bins=100,figsize=(6,4))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## symbols()\n",
"\n",
"By default `symbols` returns the security object for a ticker symbol. Specify a ticker symbol, or list of symbols, as a string and get a list of security objects back. \n",
"\n",
"- Use `symbol_reference_date` to identify which date you want the symbol back for a particular ticker symbol. \n",
"- Specify how you would like missing results to be handled with `handle_missing`\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
"mcdon_eq_info = symbols('MCD')"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<class 'zipline.assets._assets.Equity'>"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"type(mcdon_eq_info)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"auto_close_date\n",
"2020-01-30 00:00:00+00:00\n",
"\n",
"\n",
"asset_name\n",
"MCDONALDS CORP\n",
"\n",
"\n",
"tick_size\n",
"0.01\n",
"\n",
"\n",
"exchange_info\n",
"ExchangeInfo('NEW YORK STOCK EXCHANGE', 'NYSE', 'US')\n",
"\n",
"\n",
"exchange_full\n",
"NEW YORK STOCK EXCHANGE\n",
"\n",
"\n",
"exchange\n",
"NYSE\n",
"\n",
"\n",
"symbol\n",
"MCD\n",
"\n",
"\n",
"start_date\n",
"2002-01-01 00:00:00+00:00\n",
"\n",
"\n",
"multiplier\n",
"1.0\n",
"\n",
"\n",
"sid\n",
"4707\n",
"\n",
"\n",
"first_traded\n",
"None\n",
"\n",
"\n",
"end_date\n",
"2020-01-27 00:00:00+00:00\n",
"\n",
"\n"
]
}
],
"source": [
"for key in mcdon_eq_info.to_dict():\n",
" print(key)\n",
" print(mcdon_eq_info.to_dict()[key])\n",
" print('\\n')"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3.5",
"language": "python",
"name": "py35"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.5.9"
}
},
"nbformat": 4,
"nbformat_minor": 2
}