Created
September 28, 2018 05:17
-
-
Save nagishin/a1d7d7e6ed1bcf7f74eadcb77e9ded17 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"#### 約定履歴取得" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 301, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stderr", | |
"output_type": "stream", | |
"text": [ | |
"/usr/local/lib/python3.6/site-packages/bravado_core/spec.py:271: Warning: guid format is not registered with bravado-core!\n", | |
" category=Warning,\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>foreignNotional</th>\n", | |
" <th>grossValue</th>\n", | |
" <th>homeNotional</th>\n", | |
" <th>price</th>\n", | |
" <th>side</th>\n", | |
" <th>size</th>\n", | |
" <th>symbol</th>\n", | |
" <th>tickDirection</th>\n", | |
" <th>timestamp</th>\n", | |
" <th>trdMatchID</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td>1819.0</td>\n", | |
" <td>27312285</td>\n", | |
" <td>0.273123</td>\n", | |
" <td>6660.0</td>\n", | |
" <td>Buy</td>\n", | |
" <td>1819</td>\n", | |
" <td>XBTUSD</td>\n", | |
" <td>ZeroPlusTick</td>\n", | |
" <td>2018-09-27 21:06:34.013000+00:00</td>\n", | |
" <td>027f613a-4364-3ae2-d2c9-b88a299915e5</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1</th>\n", | |
" <td>27.0</td>\n", | |
" <td>405405</td>\n", | |
" <td>0.004054</td>\n", | |
" <td>6660.0</td>\n", | |
" <td>Buy</td>\n", | |
" <td>27</td>\n", | |
" <td>XBTUSD</td>\n", | |
" <td>ZeroPlusTick</td>\n", | |
" <td>2018-09-27 21:06:35.200000+00:00</td>\n", | |
" <td>3070a09b-d840-c050-5072-8a76cfaa276c</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2</th>\n", | |
" <td>17.0</td>\n", | |
" <td>255272</td>\n", | |
" <td>0.002553</td>\n", | |
" <td>6659.5</td>\n", | |
" <td>Sell</td>\n", | |
" <td>17</td>\n", | |
" <td>XBTUSD</td>\n", | |
" <td>MinusTick</td>\n", | |
" <td>2018-09-27 21:06:36.064000+00:00</td>\n", | |
" <td>f02930cf-ccd7-15fc-4443-7ca985d80fd2</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>3</th>\n", | |
" <td>10.0</td>\n", | |
" <td>150170</td>\n", | |
" <td>0.001502</td>\n", | |
" <td>6659.0</td>\n", | |
" <td>Sell</td>\n", | |
" <td>10</td>\n", | |
" <td>XBTUSD</td>\n", | |
" <td>MinusTick</td>\n", | |
" <td>2018-09-27 21:06:36.064000+00:00</td>\n", | |
" <td>091ac2f7-48d4-1035-a60d-534f2ee2fa56</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>4</th>\n", | |
" <td>25.0</td>\n", | |
" <td>375400</td>\n", | |
" <td>0.003754</td>\n", | |
" <td>6659.5</td>\n", | |
" <td>Buy</td>\n", | |
" <td>25</td>\n", | |
" <td>XBTUSD</td>\n", | |
" <td>PlusTick</td>\n", | |
" <td>2018-09-27 21:06:36.564000+00:00</td>\n", | |
" <td>ece94782-16ad-5fc8-1f5b-74e83a239b08</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" foreignNotional grossValue homeNotional price side size symbol \\\n", | |
"0 1819.0 27312285 0.273123 6660.0 Buy 1819 XBTUSD \n", | |
"1 27.0 405405 0.004054 6660.0 Buy 27 XBTUSD \n", | |
"2 17.0 255272 0.002553 6659.5 Sell 17 XBTUSD \n", | |
"3 10.0 150170 0.001502 6659.0 Sell 10 XBTUSD \n", | |
"4 25.0 375400 0.003754 6659.5 Buy 25 XBTUSD \n", | |
"\n", | |
" tickDirection timestamp \\\n", | |
"0 ZeroPlusTick 2018-09-27 21:06:34.013000+00:00 \n", | |
"1 ZeroPlusTick 2018-09-27 21:06:35.200000+00:00 \n", | |
"2 MinusTick 2018-09-27 21:06:36.064000+00:00 \n", | |
"3 MinusTick 2018-09-27 21:06:36.064000+00:00 \n", | |
"4 PlusTick 2018-09-27 21:06:36.564000+00:00 \n", | |
"\n", | |
" trdMatchID \n", | |
"0 027f613a-4364-3ae2-d2c9-b88a299915e5 \n", | |
"1 3070a09b-d840-c050-5072-8a76cfaa276c \n", | |
"2 f02930cf-ccd7-15fc-4443-7ca985d80fd2 \n", | |
"3 091ac2f7-48d4-1035-a60d-534f2ee2fa56 \n", | |
"4 ece94782-16ad-5fc8-1f5b-74e83a239b08 " | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"# coding: utf-8\n", | |
"from datetime import datetime, timedelta\n", | |
"import pytz, bitmex\n", | |
"import pandas as pd\n", | |
"import numpy as np\n", | |
"\n", | |
"# 取得開始時刻を1時間前に設定\n", | |
"start = datetime.now(pytz.utc) - timedelta(hours=1)\n", | |
"# BitMEX約定履歴取得(REST API)\n", | |
"api = bitmex.bitmex()\n", | |
"trades = api.Trade.Trade_get(symbol=\"XBTUSD\", count=500, startTime=start).result()[0]\n", | |
"# 約定履歴DataFrame生成\n", | |
"df_trades = pd.DataFrame(trades)\n", | |
"display(df_trades.head())" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"#### DataFrameをcsv出力" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 302, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"# DataFrameをcsv保存\n", | |
"df_trades.to_csv(\"trades.csv\")\n", | |
"\n", | |
"# 行・列見出し出力指定(行:OFF, 列:ON) ※未指定:いずれもTrue\n", | |
"df_trades.to_csv(\"trades1.csv\", header=True, index=False)\n", | |
"\n", | |
"# 出力列を指定\n", | |
"df_trades.to_csv(\"trades2.csv\", columns=[\"timestamp\", \"price\", \"side\", \"size\"])\n", | |
"\n", | |
"# データ区切り文字指定(タブ区切り) ※未指定:\\n\n", | |
"df_trades.to_csv(\"trades3.csv\", sep=\"\\t\")\n", | |
"\n", | |
"# 書き込みモード(上書き:\"w\", 追記:\"a\") ※未指定:\"w\"\n", | |
"df_trades.to_csv(\"trades4.csv\", mode=\"a\", header=False)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"#### csvをDataFrameに読み込み" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 303, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"csvをDataFrameに読み込み\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>foreignNotional</th>\n", | |
" <th>grossValue</th>\n", | |
" <th>homeNotional</th>\n", | |
" <th>price</th>\n", | |
" <th>side</th>\n", | |
" <th>size</th>\n", | |
" <th>symbol</th>\n", | |
" <th>tickDirection</th>\n", | |
" <th>timestamp</th>\n", | |
" <th>trdMatchID</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td>1819.0</td>\n", | |
" <td>27312285</td>\n", | |
" <td>0.273123</td>\n", | |
" <td>6660.0</td>\n", | |
" <td>Buy</td>\n", | |
" <td>1819</td>\n", | |
" <td>XBTUSD</td>\n", | |
" <td>ZeroPlusTick</td>\n", | |
" <td>2018-09-27 21:06:34.013000+00:00</td>\n", | |
" <td>027f613a-4364-3ae2-d2c9-b88a299915e5</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1</th>\n", | |
" <td>27.0</td>\n", | |
" <td>405405</td>\n", | |
" <td>0.004054</td>\n", | |
" <td>6660.0</td>\n", | |
" <td>Buy</td>\n", | |
" <td>27</td>\n", | |
" <td>XBTUSD</td>\n", | |
" <td>ZeroPlusTick</td>\n", | |
" <td>2018-09-27 21:06:35.200000+00:00</td>\n", | |
" <td>3070a09b-d840-c050-5072-8a76cfaa276c</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2</th>\n", | |
" <td>17.0</td>\n", | |
" <td>255272</td>\n", | |
" <td>0.002553</td>\n", | |
" <td>6659.5</td>\n", | |
" <td>Sell</td>\n", | |
" <td>17</td>\n", | |
" <td>XBTUSD</td>\n", | |
" <td>MinusTick</td>\n", | |
" <td>2018-09-27 21:06:36.064000+00:00</td>\n", | |
" <td>f02930cf-ccd7-15fc-4443-7ca985d80fd2</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>3</th>\n", | |
" <td>10.0</td>\n", | |
" <td>150170</td>\n", | |
" <td>0.001502</td>\n", | |
" <td>6659.0</td>\n", | |
" <td>Sell</td>\n", | |
" <td>10</td>\n", | |
" <td>XBTUSD</td>\n", | |
" <td>MinusTick</td>\n", | |
" <td>2018-09-27 21:06:36.064000+00:00</td>\n", | |
" <td>091ac2f7-48d4-1035-a60d-534f2ee2fa56</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>4</th>\n", | |
" <td>25.0</td>\n", | |
" <td>375400</td>\n", | |
" <td>0.003754</td>\n", | |
" <td>6659.5</td>\n", | |
" <td>Buy</td>\n", | |
" <td>25</td>\n", | |
" <td>XBTUSD</td>\n", | |
" <td>PlusTick</td>\n", | |
" <td>2018-09-27 21:06:36.564000+00:00</td>\n", | |
" <td>ece94782-16ad-5fc8-1f5b-74e83a239b08</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" foreignNotional grossValue homeNotional price side size symbol \\\n", | |
"0 1819.0 27312285 0.273123 6660.0 Buy 1819 XBTUSD \n", | |
"1 27.0 405405 0.004054 6660.0 Buy 27 XBTUSD \n", | |
"2 17.0 255272 0.002553 6659.5 Sell 17 XBTUSD \n", | |
"3 10.0 150170 0.001502 6659.0 Sell 10 XBTUSD \n", | |
"4 25.0 375400 0.003754 6659.5 Buy 25 XBTUSD \n", | |
"\n", | |
" tickDirection timestamp \\\n", | |
"0 ZeroPlusTick 2018-09-27 21:06:34.013000+00:00 \n", | |
"1 ZeroPlusTick 2018-09-27 21:06:35.200000+00:00 \n", | |
"2 MinusTick 2018-09-27 21:06:36.064000+00:00 \n", | |
"3 MinusTick 2018-09-27 21:06:36.064000+00:00 \n", | |
"4 PlusTick 2018-09-27 21:06:36.564000+00:00 \n", | |
"\n", | |
" trdMatchID \n", | |
"0 027f613a-4364-3ae2-d2c9-b88a299915e5 \n", | |
"1 3070a09b-d840-c050-5072-8a76cfaa276c \n", | |
"2 f02930cf-ccd7-15fc-4443-7ca985d80fd2 \n", | |
"3 091ac2f7-48d4-1035-a60d-534f2ee2fa56 \n", | |
"4 ece94782-16ad-5fc8-1f5b-74e83a239b08 " | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
}, | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"ヘッダ行指定(ヘッダなしは連番列名自動設定) ※未指定:0(先頭行がヘッダ)\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>0</th>\n", | |
" <th>1</th>\n", | |
" <th>2</th>\n", | |
" <th>3</th>\n", | |
" <th>4</th>\n", | |
" <th>5</th>\n", | |
" <th>6</th>\n", | |
" <th>7</th>\n", | |
" <th>8</th>\n", | |
" <th>9</th>\n", | |
" <th>10</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td>0</td>\n", | |
" <td>1819.0</td>\n", | |
" <td>27312285</td>\n", | |
" <td>0.273123</td>\n", | |
" <td>6660.0</td>\n", | |
" <td>Buy</td>\n", | |
" <td>1819</td>\n", | |
" <td>XBTUSD</td>\n", | |
" <td>ZeroPlusTick</td>\n", | |
" <td>2018-09-27 21:06:34.013000+00:00</td>\n", | |
" <td>027f613a-4364-3ae2-d2c9-b88a299915e5</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1</th>\n", | |
" <td>1</td>\n", | |
" <td>27.0</td>\n", | |
" <td>405405</td>\n", | |
" <td>0.004054</td>\n", | |
" <td>6660.0</td>\n", | |
" <td>Buy</td>\n", | |
" <td>27</td>\n", | |
" <td>XBTUSD</td>\n", | |
" <td>ZeroPlusTick</td>\n", | |
" <td>2018-09-27 21:06:35.200000+00:00</td>\n", | |
" <td>3070a09b-d840-c050-5072-8a76cfaa276c</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2</th>\n", | |
" <td>2</td>\n", | |
" <td>17.0</td>\n", | |
" <td>255272</td>\n", | |
" <td>0.002553</td>\n", | |
" <td>6659.5</td>\n", | |
" <td>Sell</td>\n", | |
" <td>17</td>\n", | |
" <td>XBTUSD</td>\n", | |
" <td>MinusTick</td>\n", | |
" <td>2018-09-27 21:06:36.064000+00:00</td>\n", | |
" <td>f02930cf-ccd7-15fc-4443-7ca985d80fd2</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>3</th>\n", | |
" <td>3</td>\n", | |
" <td>10.0</td>\n", | |
" <td>150170</td>\n", | |
" <td>0.001502</td>\n", | |
" <td>6659.0</td>\n", | |
" <td>Sell</td>\n", | |
" <td>10</td>\n", | |
" <td>XBTUSD</td>\n", | |
" <td>MinusTick</td>\n", | |
" <td>2018-09-27 21:06:36.064000+00:00</td>\n", | |
" <td>091ac2f7-48d4-1035-a60d-534f2ee2fa56</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>4</th>\n", | |
" <td>4</td>\n", | |
" <td>25.0</td>\n", | |
" <td>375400</td>\n", | |
" <td>0.003754</td>\n", | |
" <td>6659.5</td>\n", | |
" <td>Buy</td>\n", | |
" <td>25</td>\n", | |
" <td>XBTUSD</td>\n", | |
" <td>PlusTick</td>\n", | |
" <td>2018-09-27 21:06:36.564000+00:00</td>\n", | |
" <td>ece94782-16ad-5fc8-1f5b-74e83a239b08</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" 0 1 2 3 4 5 6 7 8 \\\n", | |
"0 0 1819.0 27312285 0.273123 6660.0 Buy 1819 XBTUSD ZeroPlusTick \n", | |
"1 1 27.0 405405 0.004054 6660.0 Buy 27 XBTUSD ZeroPlusTick \n", | |
"2 2 17.0 255272 0.002553 6659.5 Sell 17 XBTUSD MinusTick \n", | |
"3 3 10.0 150170 0.001502 6659.0 Sell 10 XBTUSD MinusTick \n", | |
"4 4 25.0 375400 0.003754 6659.5 Buy 25 XBTUSD PlusTick \n", | |
"\n", | |
" 9 10 \n", | |
"0 2018-09-27 21:06:34.013000+00:00 027f613a-4364-3ae2-d2c9-b88a299915e5 \n", | |
"1 2018-09-27 21:06:35.200000+00:00 3070a09b-d840-c050-5072-8a76cfaa276c \n", | |
"2 2018-09-27 21:06:36.064000+00:00 f02930cf-ccd7-15fc-4443-7ca985d80fd2 \n", | |
"3 2018-09-27 21:06:36.064000+00:00 091ac2f7-48d4-1035-a60d-534f2ee2fa56 \n", | |
"4 2018-09-27 21:06:36.564000+00:00 ece94782-16ad-5fc8-1f5b-74e83a239b08 " | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
}, | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"index列設定 ※未指定:indexは連番自動設定\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>foreignNotional</th>\n", | |
" <th>grossValue</th>\n", | |
" <th>homeNotional</th>\n", | |
" <th>price</th>\n", | |
" <th>side</th>\n", | |
" <th>size</th>\n", | |
" <th>symbol</th>\n", | |
" <th>tickDirection</th>\n", | |
" <th>timestamp</th>\n", | |
" <th>trdMatchID</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td>1819.0</td>\n", | |
" <td>27312285</td>\n", | |
" <td>0.273123</td>\n", | |
" <td>6660.0</td>\n", | |
" <td>Buy</td>\n", | |
" <td>1819</td>\n", | |
" <td>XBTUSD</td>\n", | |
" <td>ZeroPlusTick</td>\n", | |
" <td>2018-09-27 21:06:34.013000+00:00</td>\n", | |
" <td>027f613a-4364-3ae2-d2c9-b88a299915e5</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1</th>\n", | |
" <td>27.0</td>\n", | |
" <td>405405</td>\n", | |
" <td>0.004054</td>\n", | |
" <td>6660.0</td>\n", | |
" <td>Buy</td>\n", | |
" <td>27</td>\n", | |
" <td>XBTUSD</td>\n", | |
" <td>ZeroPlusTick</td>\n", | |
" <td>2018-09-27 21:06:35.200000+00:00</td>\n", | |
" <td>3070a09b-d840-c050-5072-8a76cfaa276c</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2</th>\n", | |
" <td>17.0</td>\n", | |
" <td>255272</td>\n", | |
" <td>0.002553</td>\n", | |
" <td>6659.5</td>\n", | |
" <td>Sell</td>\n", | |
" <td>17</td>\n", | |
" <td>XBTUSD</td>\n", | |
" <td>MinusTick</td>\n", | |
" <td>2018-09-27 21:06:36.064000+00:00</td>\n", | |
" <td>f02930cf-ccd7-15fc-4443-7ca985d80fd2</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>3</th>\n", | |
" <td>10.0</td>\n", | |
" <td>150170</td>\n", | |
" <td>0.001502</td>\n", | |
" <td>6659.0</td>\n", | |
" <td>Sell</td>\n", | |
" <td>10</td>\n", | |
" <td>XBTUSD</td>\n", | |
" <td>MinusTick</td>\n", | |
" <td>2018-09-27 21:06:36.064000+00:00</td>\n", | |
" <td>091ac2f7-48d4-1035-a60d-534f2ee2fa56</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>4</th>\n", | |
" <td>25.0</td>\n", | |
" <td>375400</td>\n", | |
" <td>0.003754</td>\n", | |
" <td>6659.5</td>\n", | |
" <td>Buy</td>\n", | |
" <td>25</td>\n", | |
" <td>XBTUSD</td>\n", | |
" <td>PlusTick</td>\n", | |
" <td>2018-09-27 21:06:36.564000+00:00</td>\n", | |
" <td>ece94782-16ad-5fc8-1f5b-74e83a239b08</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" foreignNotional grossValue homeNotional price side size symbol \\\n", | |
"0 1819.0 27312285 0.273123 6660.0 Buy 1819 XBTUSD \n", | |
"1 27.0 405405 0.004054 6660.0 Buy 27 XBTUSD \n", | |
"2 17.0 255272 0.002553 6659.5 Sell 17 XBTUSD \n", | |
"3 10.0 150170 0.001502 6659.0 Sell 10 XBTUSD \n", | |
"4 25.0 375400 0.003754 6659.5 Buy 25 XBTUSD \n", | |
"\n", | |
" tickDirection timestamp \\\n", | |
"0 ZeroPlusTick 2018-09-27 21:06:34.013000+00:00 \n", | |
"1 ZeroPlusTick 2018-09-27 21:06:35.200000+00:00 \n", | |
"2 MinusTick 2018-09-27 21:06:36.064000+00:00 \n", | |
"3 MinusTick 2018-09-27 21:06:36.064000+00:00 \n", | |
"4 PlusTick 2018-09-27 21:06:36.564000+00:00 \n", | |
"\n", | |
" trdMatchID \n", | |
"0 027f613a-4364-3ae2-d2c9-b88a299915e5 \n", | |
"1 3070a09b-d840-c050-5072-8a76cfaa276c \n", | |
"2 f02930cf-ccd7-15fc-4443-7ca985d80fd2 \n", | |
"3 091ac2f7-48d4-1035-a60d-534f2ee2fa56 \n", | |
"4 ece94782-16ad-5fc8-1f5b-74e83a239b08 " | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
}, | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"読み込む列を指定\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>price</th>\n", | |
" <th>side</th>\n", | |
" <th>size</th>\n", | |
" <th>timestamp</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td>6660.0</td>\n", | |
" <td>Buy</td>\n", | |
" <td>1819</td>\n", | |
" <td>2018-09-27 21:06:34.013000+00:00</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1</th>\n", | |
" <td>6660.0</td>\n", | |
" <td>Buy</td>\n", | |
" <td>27</td>\n", | |
" <td>2018-09-27 21:06:35.200000+00:00</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2</th>\n", | |
" <td>6659.5</td>\n", | |
" <td>Sell</td>\n", | |
" <td>17</td>\n", | |
" <td>2018-09-27 21:06:36.064000+00:00</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>3</th>\n", | |
" <td>6659.0</td>\n", | |
" <td>Sell</td>\n", | |
" <td>10</td>\n", | |
" <td>2018-09-27 21:06:36.064000+00:00</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>4</th>\n", | |
" <td>6659.5</td>\n", | |
" <td>Buy</td>\n", | |
" <td>25</td>\n", | |
" <td>2018-09-27 21:06:36.564000+00:00</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" price side size timestamp\n", | |
"0 6660.0 Buy 1819 2018-09-27 21:06:34.013000+00:00\n", | |
"1 6660.0 Buy 27 2018-09-27 21:06:35.200000+00:00\n", | |
"2 6659.5 Sell 17 2018-09-27 21:06:36.064000+00:00\n", | |
"3 6659.0 Sell 10 2018-09-27 21:06:36.064000+00:00\n", | |
"4 6659.5 Buy 25 2018-09-27 21:06:36.564000+00:00" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
}, | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"型を指定\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/plain": [ | |
"Unnamed: 0 int64\n", | |
"foreignNotional float64\n", | |
"grossValue int64\n", | |
"homeNotional float64\n", | |
"price float64\n", | |
"side object\n", | |
"size int64\n", | |
"symbol object\n", | |
"tickDirection object\n", | |
"timestamp object\n", | |
"trdMatchID object\n", | |
"dtype: object" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
}, | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"日付文字列をdatetime型変換\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/plain": [ | |
"Unnamed: 0 int64\n", | |
"foreignNotional float64\n", | |
"grossValue int64\n", | |
"homeNotional float64\n", | |
"price float64\n", | |
"side object\n", | |
"size int64\n", | |
"symbol object\n", | |
"tickDirection object\n", | |
"timestamp datetime64[ns]\n", | |
"trdMatchID object\n", | |
"dtype: object" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
}, | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"日付文字列をdatetimeindexにして必要な列を型指定して読み込み\n", | |
"(dtypeのint, floatのbit数は扱う値範囲、計算精度に適したサイズを設定)\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>price</th>\n", | |
" <th>side</th>\n", | |
" <th>size</th>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>timestamp</th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>2018-09-27 21:06:34.013</th>\n", | |
" <td>6660.0</td>\n", | |
" <td>Buy</td>\n", | |
" <td>1819</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2018-09-27 21:06:35.200</th>\n", | |
" <td>6660.0</td>\n", | |
" <td>Buy</td>\n", | |
" <td>27</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2018-09-27 21:06:36.064</th>\n", | |
" <td>6659.5</td>\n", | |
" <td>Sell</td>\n", | |
" <td>17</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2018-09-27 21:06:36.064</th>\n", | |
" <td>6659.0</td>\n", | |
" <td>Sell</td>\n", | |
" <td>10</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2018-09-27 21:06:36.564</th>\n", | |
" <td>6659.5</td>\n", | |
" <td>Buy</td>\n", | |
" <td>25</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" price side size\n", | |
"timestamp \n", | |
"2018-09-27 21:06:34.013 6660.0 Buy 1819\n", | |
"2018-09-27 21:06:35.200 6660.0 Buy 27\n", | |
"2018-09-27 21:06:36.064 6659.5 Sell 17\n", | |
"2018-09-27 21:06:36.064 6659.0 Sell 10\n", | |
"2018-09-27 21:06:36.564 6659.5 Buy 25" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
}, | |
{ | |
"data": { | |
"text/plain": [ | |
"price float32\n", | |
"side object\n", | |
"size int32\n", | |
"dtype: object" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"print(\"csvをDataFrameに読み込み\")\n", | |
"df = pd.read_csv(\"trades1.csv\")\n", | |
"display(df.head())\n", | |
"\n", | |
"print(\"ヘッダ行指定(ヘッダなしは連番列名自動設定) ※未指定:0(先頭行がヘッダ)\")\n", | |
"df = pd.read_csv(\"trades4.csv\", header=None)\n", | |
"display(df.head())\n", | |
"\n", | |
"print(\"index列設定 ※未指定:indexは連番自動設定\")\n", | |
"df = pd.read_csv(\"trades.csv\", index_col=0)\n", | |
"display(df.head())\n", | |
"\n", | |
"print(\"読み込む列を指定\")\n", | |
"df = pd.read_csv(\"trades.csv\", usecols=[4, 5, 6, 9])\n", | |
"df = pd.read_csv(\"trades.csv\", usecols=[\"price\", \"side\", \"size\", \"timestamp\"])\n", | |
"display(df.head())\n", | |
"\n", | |
"print(\"型を指定\")\n", | |
"df = pd.read_csv(\"trades.csv\", dtype={\"price\":float, \"side\":str, \"size\":int})\n", | |
"display(df.dtypes)\n", | |
"\n", | |
"print(\"日付文字列をdatetime型変換\")\n", | |
"df = pd.read_csv(\"trades.csv\", parse_dates=[9])\n", | |
"display(df.dtypes)\n", | |
"\n", | |
"print(\"日付文字列をdatetimeindexにして必要な列を型指定して読み込み\\n\" + \\\n", | |
"\"(dtypeのint, floatのbit数は扱う値範囲、計算精度に適したサイズを設定)\")\n", | |
"df = pd.read_csv(\"trades.csv\", usecols=[\"price\", \"side\", \"size\", \"timestamp\"],\n", | |
" dtype={\"price\":\"float32\", \"side\":\"str\", \"size\":\"int32\"},\n", | |
" index_col=3, parse_dates=[\"timestamp\"])\n", | |
"display(df.head())\n", | |
"display(df.dtypes)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"#### 日付型編集" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 304, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"datetimeindexにタイムゾーン設定(UTC)\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>price</th>\n", | |
" <th>side</th>\n", | |
" <th>size</th>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>timestamp</th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>2018-09-27 21:06:34.013000+00:00</th>\n", | |
" <td>6660.0</td>\n", | |
" <td>Buy</td>\n", | |
" <td>1819</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2018-09-27 21:06:35.200000+00:00</th>\n", | |
" <td>6660.0</td>\n", | |
" <td>Buy</td>\n", | |
" <td>27</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2018-09-27 21:06:36.064000+00:00</th>\n", | |
" <td>6659.5</td>\n", | |
" <td>Sell</td>\n", | |
" <td>17</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2018-09-27 21:06:36.064000+00:00</th>\n", | |
" <td>6659.0</td>\n", | |
" <td>Sell</td>\n", | |
" <td>10</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2018-09-27 21:06:36.564000+00:00</th>\n", | |
" <td>6659.5</td>\n", | |
" <td>Buy</td>\n", | |
" <td>25</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" price side size\n", | |
"timestamp \n", | |
"2018-09-27 21:06:34.013000+00:00 6660.0 Buy 1819\n", | |
"2018-09-27 21:06:35.200000+00:00 6660.0 Buy 27\n", | |
"2018-09-27 21:06:36.064000+00:00 6659.5 Sell 17\n", | |
"2018-09-27 21:06:36.064000+00:00 6659.0 Sell 10\n", | |
"2018-09-27 21:06:36.564000+00:00 6659.5 Buy 25" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
}, | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"datetimeindexにタイムゾーン変換(JST)\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>price</th>\n", | |
" <th>side</th>\n", | |
" <th>size</th>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>timestamp</th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>2018-09-28 06:06:34.013000+09:00</th>\n", | |
" <td>6660.0</td>\n", | |
" <td>Buy</td>\n", | |
" <td>1819</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2018-09-28 06:06:35.200000+09:00</th>\n", | |
" <td>6660.0</td>\n", | |
" <td>Buy</td>\n", | |
" <td>27</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2018-09-28 06:06:36.064000+09:00</th>\n", | |
" <td>6659.5</td>\n", | |
" <td>Sell</td>\n", | |
" <td>17</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2018-09-28 06:06:36.064000+09:00</th>\n", | |
" <td>6659.0</td>\n", | |
" <td>Sell</td>\n", | |
" <td>10</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2018-09-28 06:06:36.564000+09:00</th>\n", | |
" <td>6659.5</td>\n", | |
" <td>Buy</td>\n", | |
" <td>25</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" price side size\n", | |
"timestamp \n", | |
"2018-09-28 06:06:34.013000+09:00 6660.0 Buy 1819\n", | |
"2018-09-28 06:06:35.200000+09:00 6660.0 Buy 27\n", | |
"2018-09-28 06:06:36.064000+09:00 6659.5 Sell 17\n", | |
"2018-09-28 06:06:36.064000+09:00 6659.0 Sell 10\n", | |
"2018-09-28 06:06:36.564000+09:00 6659.5 Buy 25" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
}, | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"datetimeからunixtime変換\n", | |
"ミリ秒\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>price</th>\n", | |
" <th>side</th>\n", | |
" <th>size</th>\n", | |
" <th>msec_unixtime</th>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>timestamp</th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>2018-09-28 06:06:34.013000+09:00</th>\n", | |
" <td>6660.0</td>\n", | |
" <td>Buy</td>\n", | |
" <td>1819</td>\n", | |
" <td>1538082394013</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2018-09-28 06:06:35.200000+09:00</th>\n", | |
" <td>6660.0</td>\n", | |
" <td>Buy</td>\n", | |
" <td>27</td>\n", | |
" <td>1538082395200</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2018-09-28 06:06:36.064000+09:00</th>\n", | |
" <td>6659.5</td>\n", | |
" <td>Sell</td>\n", | |
" <td>17</td>\n", | |
" <td>1538082396064</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2018-09-28 06:06:36.064000+09:00</th>\n", | |
" <td>6659.0</td>\n", | |
" <td>Sell</td>\n", | |
" <td>10</td>\n", | |
" <td>1538082396064</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2018-09-28 06:06:36.564000+09:00</th>\n", | |
" <td>6659.5</td>\n", | |
" <td>Buy</td>\n", | |
" <td>25</td>\n", | |
" <td>1538082396564</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" price side size msec_unixtime\n", | |
"timestamp \n", | |
"2018-09-28 06:06:34.013000+09:00 6660.0 Buy 1819 1538082394013\n", | |
"2018-09-28 06:06:35.200000+09:00 6660.0 Buy 27 1538082395200\n", | |
"2018-09-28 06:06:36.064000+09:00 6659.5 Sell 17 1538082396064\n", | |
"2018-09-28 06:06:36.064000+09:00 6659.0 Sell 10 1538082396064\n", | |
"2018-09-28 06:06:36.564000+09:00 6659.5 Buy 25 1538082396564" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
}, | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"秒\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>price</th>\n", | |
" <th>side</th>\n", | |
" <th>size</th>\n", | |
" <th>msec_unixtime</th>\n", | |
" <th>unixtime</th>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>timestamp</th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>2018-09-28 06:06:34.013000+09:00</th>\n", | |
" <td>6660.0</td>\n", | |
" <td>Buy</td>\n", | |
" <td>1819</td>\n", | |
" <td>1538082394013</td>\n", | |
" <td>1538082394</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2018-09-28 06:06:35.200000+09:00</th>\n", | |
" <td>6660.0</td>\n", | |
" <td>Buy</td>\n", | |
" <td>27</td>\n", | |
" <td>1538082395200</td>\n", | |
" <td>1538082395</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2018-09-28 06:06:36.064000+09:00</th>\n", | |
" <td>6659.5</td>\n", | |
" <td>Sell</td>\n", | |
" <td>17</td>\n", | |
" <td>1538082396064</td>\n", | |
" <td>1538082396</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2018-09-28 06:06:36.064000+09:00</th>\n", | |
" <td>6659.0</td>\n", | |
" <td>Sell</td>\n", | |
" <td>10</td>\n", | |
" <td>1538082396064</td>\n", | |
" <td>1538082396</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2018-09-28 06:06:36.564000+09:00</th>\n", | |
" <td>6659.5</td>\n", | |
" <td>Buy</td>\n", | |
" <td>25</td>\n", | |
" <td>1538082396564</td>\n", | |
" <td>1538082396</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" price side size msec_unixtime \\\n", | |
"timestamp \n", | |
"2018-09-28 06:06:34.013000+09:00 6660.0 Buy 1819 1538082394013 \n", | |
"2018-09-28 06:06:35.200000+09:00 6660.0 Buy 27 1538082395200 \n", | |
"2018-09-28 06:06:36.064000+09:00 6659.5 Sell 17 1538082396064 \n", | |
"2018-09-28 06:06:36.064000+09:00 6659.0 Sell 10 1538082396064 \n", | |
"2018-09-28 06:06:36.564000+09:00 6659.5 Buy 25 1538082396564 \n", | |
"\n", | |
" unixtime \n", | |
"timestamp \n", | |
"2018-09-28 06:06:34.013000+09:00 1538082394 \n", | |
"2018-09-28 06:06:35.200000+09:00 1538082395 \n", | |
"2018-09-28 06:06:36.064000+09:00 1538082396 \n", | |
"2018-09-28 06:06:36.064000+09:00 1538082396 \n", | |
"2018-09-28 06:06:36.564000+09:00 1538082396 " | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"print(\"datetimeindexにタイムゾーン設定(UTC)\")\n", | |
"df.index = df.index.tz_localize(\"UTC\")\n", | |
"display(df.head())\n", | |
"\n", | |
"print(\"datetimeindexにタイムゾーン変換(JST)\")\n", | |
"df.index = df.index.tz_convert(\"Asia/Tokyo\")\n", | |
"display(df.head())\n", | |
"\n", | |
"print(\"datetimeからunixtime変換\")\n", | |
"print(\"ミリ秒\")\n", | |
"df[\"msec_unixtime\"] = df.index.astype(np.int64) // 10**6\n", | |
"display(df.head())\n", | |
"print(\"秒\")\n", | |
"df[\"unixtime\"] = df.index.astype(np.int64) // 10**9\n", | |
"display(df.head())" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"#### 列の追加・削除" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 305, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"UNIX TIME列を削除\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>price</th>\n", | |
" <th>side</th>\n", | |
" <th>size</th>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>timestamp</th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>2018-09-28 06:06:34.013000+09:00</th>\n", | |
" <td>6660.0</td>\n", | |
" <td>Buy</td>\n", | |
" <td>1819</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2018-09-28 06:06:35.200000+09:00</th>\n", | |
" <td>6660.0</td>\n", | |
" <td>Buy</td>\n", | |
" <td>27</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2018-09-28 06:06:36.064000+09:00</th>\n", | |
" <td>6659.5</td>\n", | |
" <td>Sell</td>\n", | |
" <td>17</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2018-09-28 06:06:36.064000+09:00</th>\n", | |
" <td>6659.0</td>\n", | |
" <td>Sell</td>\n", | |
" <td>10</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2018-09-28 06:06:36.564000+09:00</th>\n", | |
" <td>6659.5</td>\n", | |
" <td>Buy</td>\n", | |
" <td>25</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" price side size\n", | |
"timestamp \n", | |
"2018-09-28 06:06:34.013000+09:00 6660.0 Buy 1819\n", | |
"2018-09-28 06:06:35.200000+09:00 6660.0 Buy 27\n", | |
"2018-09-28 06:06:36.064000+09:00 6659.5 Sell 17\n", | |
"2018-09-28 06:06:36.064000+09:00 6659.0 Sell 10\n", | |
"2018-09-28 06:06:36.564000+09:00 6659.5 Buy 25" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
}, | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"出来高(size)をBuy/Sellに分ける\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>price</th>\n", | |
" <th>side</th>\n", | |
" <th>size</th>\n", | |
" <th>buy_size</th>\n", | |
" <th>buy_flag</th>\n", | |
" <th>sell_size</th>\n", | |
" <th>sell_flag</th>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>timestamp</th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>2018-09-28 06:06:34.013000+09:00</th>\n", | |
" <td>6660.0</td>\n", | |
" <td>Buy</td>\n", | |
" <td>1819</td>\n", | |
" <td>1819</td>\n", | |
" <td>True</td>\n", | |
" <td>0</td>\n", | |
" <td>False</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2018-09-28 06:06:35.200000+09:00</th>\n", | |
" <td>6660.0</td>\n", | |
" <td>Buy</td>\n", | |
" <td>27</td>\n", | |
" <td>27</td>\n", | |
" <td>True</td>\n", | |
" <td>0</td>\n", | |
" <td>False</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2018-09-28 06:06:36.064000+09:00</th>\n", | |
" <td>6659.5</td>\n", | |
" <td>Sell</td>\n", | |
" <td>17</td>\n", | |
" <td>0</td>\n", | |
" <td>False</td>\n", | |
" <td>17</td>\n", | |
" <td>True</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2018-09-28 06:06:36.064000+09:00</th>\n", | |
" <td>6659.0</td>\n", | |
" <td>Sell</td>\n", | |
" <td>10</td>\n", | |
" <td>0</td>\n", | |
" <td>False</td>\n", | |
" <td>10</td>\n", | |
" <td>True</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2018-09-28 06:06:36.564000+09:00</th>\n", | |
" <td>6659.5</td>\n", | |
" <td>Buy</td>\n", | |
" <td>25</td>\n", | |
" <td>25</td>\n", | |
" <td>True</td>\n", | |
" <td>0</td>\n", | |
" <td>False</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" price side size buy_size buy_flag \\\n", | |
"timestamp \n", | |
"2018-09-28 06:06:34.013000+09:00 6660.0 Buy 1819 1819 True \n", | |
"2018-09-28 06:06:35.200000+09:00 6660.0 Buy 27 27 True \n", | |
"2018-09-28 06:06:36.064000+09:00 6659.5 Sell 17 0 False \n", | |
"2018-09-28 06:06:36.064000+09:00 6659.0 Sell 10 0 False \n", | |
"2018-09-28 06:06:36.564000+09:00 6659.5 Buy 25 25 True \n", | |
"\n", | |
" sell_size sell_flag \n", | |
"timestamp \n", | |
"2018-09-28 06:06:34.013000+09:00 0 False \n", | |
"2018-09-28 06:06:35.200000+09:00 0 False \n", | |
"2018-09-28 06:06:36.064000+09:00 17 True \n", | |
"2018-09-28 06:06:36.064000+09:00 10 True \n", | |
"2018-09-28 06:06:36.564000+09:00 0 False " | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"print(\"UNIX TIME列を削除\")\n", | |
"df.drop(\"msec_unixtime\", axis=1, inplace=True)\n", | |
"df.drop(\"unixtime\", axis=1, inplace=True)\n", | |
"display(df.head())\n", | |
"\n", | |
"print(\"出来高(size)をBuy/Sellに分ける\")\n", | |
"df[\"buy_size\"] = df[\"size\"].where(df[\"side\"] == \"Buy\", 0)\n", | |
"df[\"buy_flag\"] = df[\"side\"] == \"Buy\"\n", | |
"df[\"sell_size\"] = df[\"size\"].where(df[\"side\"] == \"Sell\", 0)\n", | |
"df[\"sell_flag\"] = df[\"side\"] == \"Sell\"\n", | |
"display(df.head())" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"#### リサンプリング(集計)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 308, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"1秒足(1S)OHLCVリサンプリング\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>open</th>\n", | |
" <th>high</th>\n", | |
" <th>low</th>\n", | |
" <th>close</th>\n", | |
" <th>volume</th>\n", | |
" <th>buy_vol</th>\n", | |
" <th>buy_num</th>\n", | |
" <th>sell_vol</th>\n", | |
" <th>sell_num</th>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>timestamp</th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>2018-09-28 06:06:34+09:00</th>\n", | |
" <td>6660.0</td>\n", | |
" <td>6660.0</td>\n", | |
" <td>6660.0</td>\n", | |
" <td>6660.0</td>\n", | |
" <td>1819</td>\n", | |
" <td>1819</td>\n", | |
" <td>1.0</td>\n", | |
" <td>0</td>\n", | |
" <td>0.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2018-09-28 06:06:35+09:00</th>\n", | |
" <td>6660.0</td>\n", | |
" <td>6660.0</td>\n", | |
" <td>6660.0</td>\n", | |
" <td>6660.0</td>\n", | |
" <td>27</td>\n", | |
" <td>27</td>\n", | |
" <td>1.0</td>\n", | |
" <td>0</td>\n", | |
" <td>0.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2018-09-28 06:06:36+09:00</th>\n", | |
" <td>6659.5</td>\n", | |
" <td>6660.0</td>\n", | |
" <td>6659.0</td>\n", | |
" <td>6660.0</td>\n", | |
" <td>204443</td>\n", | |
" <td>204416</td>\n", | |
" <td>8.0</td>\n", | |
" <td>27</td>\n", | |
" <td>2.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2018-09-28 06:06:37+09:00</th>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0</td>\n", | |
" <td>0.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2018-09-28 06:06:38+09:00</th>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0</td>\n", | |
" <td>0.0</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" open high low close volume buy_vol \\\n", | |
"timestamp \n", | |
"2018-09-28 06:06:34+09:00 6660.0 6660.0 6660.0 6660.0 1819 1819 \n", | |
"2018-09-28 06:06:35+09:00 6660.0 6660.0 6660.0 6660.0 27 27 \n", | |
"2018-09-28 06:06:36+09:00 6659.5 6660.0 6659.0 6660.0 204443 204416 \n", | |
"2018-09-28 06:06:37+09:00 NaN NaN NaN NaN 0 0 \n", | |
"2018-09-28 06:06:38+09:00 NaN NaN NaN NaN 0 0 \n", | |
"\n", | |
" buy_num sell_vol sell_num \n", | |
"timestamp \n", | |
"2018-09-28 06:06:34+09:00 1.0 0 0.0 \n", | |
"2018-09-28 06:06:35+09:00 1.0 0 0.0 \n", | |
"2018-09-28 06:06:36+09:00 8.0 27 2.0 \n", | |
"2018-09-28 06:06:37+09:00 0.0 0 0.0 \n", | |
"2018-09-28 06:06:38+09:00 0.0 0 0.0 " | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
}, | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"集計した件数をintに変換\n", | |
"データ欠損を直前価格で補間\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>open</th>\n", | |
" <th>high</th>\n", | |
" <th>low</th>\n", | |
" <th>close</th>\n", | |
" <th>volume</th>\n", | |
" <th>buy_vol</th>\n", | |
" <th>buy_num</th>\n", | |
" <th>sell_vol</th>\n", | |
" <th>sell_num</th>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>timestamp</th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>2018-09-28 06:06:34+09:00</th>\n", | |
" <td>6660.0</td>\n", | |
" <td>6660.0</td>\n", | |
" <td>6660.0</td>\n", | |
" <td>6660.0</td>\n", | |
" <td>1819</td>\n", | |
" <td>1819</td>\n", | |
" <td>1</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2018-09-28 06:06:35+09:00</th>\n", | |
" <td>6660.0</td>\n", | |
" <td>6660.0</td>\n", | |
" <td>6660.0</td>\n", | |
" <td>6660.0</td>\n", | |
" <td>27</td>\n", | |
" <td>27</td>\n", | |
" <td>1</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2018-09-28 06:06:36+09:00</th>\n", | |
" <td>6659.5</td>\n", | |
" <td>6660.0</td>\n", | |
" <td>6659.0</td>\n", | |
" <td>6660.0</td>\n", | |
" <td>204443</td>\n", | |
" <td>204416</td>\n", | |
" <td>8</td>\n", | |
" <td>27</td>\n", | |
" <td>2</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2018-09-28 06:06:37+09:00</th>\n", | |
" <td>6659.5</td>\n", | |
" <td>6660.0</td>\n", | |
" <td>6659.0</td>\n", | |
" <td>6660.0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2018-09-28 06:06:38+09:00</th>\n", | |
" <td>6659.5</td>\n", | |
" <td>6660.0</td>\n", | |
" <td>6659.0</td>\n", | |
" <td>6660.0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" open high low close volume buy_vol \\\n", | |
"timestamp \n", | |
"2018-09-28 06:06:34+09:00 6660.0 6660.0 6660.0 6660.0 1819 1819 \n", | |
"2018-09-28 06:06:35+09:00 6660.0 6660.0 6660.0 6660.0 27 27 \n", | |
"2018-09-28 06:06:36+09:00 6659.5 6660.0 6659.0 6660.0 204443 204416 \n", | |
"2018-09-28 06:06:37+09:00 6659.5 6660.0 6659.0 6660.0 0 0 \n", | |
"2018-09-28 06:06:38+09:00 6659.5 6660.0 6659.0 6660.0 0 0 \n", | |
"\n", | |
" buy_num sell_vol sell_num \n", | |
"timestamp \n", | |
"2018-09-28 06:06:34+09:00 1 0 0 \n", | |
"2018-09-28 06:06:35+09:00 1 0 0 \n", | |
"2018-09-28 06:06:36+09:00 8 27 2 \n", | |
"2018-09-28 06:06:37+09:00 0 0 0 \n", | |
"2018-09-28 06:06:38+09:00 0 0 0 " | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"print(\"1秒足(1S)OHLCVリサンプリング\")\n", | |
"df_ohlcv = df.resample(\"1S\").agg({\n", | |
" \"price\" : \"ohlc\",\n", | |
" \"size\" : \"sum\",\n", | |
" \"buy_size\" : \"sum\",\n", | |
" \"buy_flag\" : \"sum\",\n", | |
" \"sell_size\" : \"sum\",\n", | |
" \"sell_flag\" : \"sum\",})\n", | |
"df_ohlcv.columns = \\\n", | |
" [\"open\", \"high\", \"low\", \"close\", \"volume\", \"buy_vol\", \"buy_num\", \"sell_vol\", \"sell_num\"]\n", | |
"display(df_ohlcv.head())\n", | |
"\n", | |
"print(\"集計した件数をintに変換\")\n", | |
"df_ohlcv[\"buy_num\"] = df_ohlcv[\"buy_num\"].astype(int)\n", | |
"df_ohlcv[\"sell_num\"] = df_ohlcv[\"sell_num\"].astype(int)\n", | |
"\n", | |
"print(\"データ欠損を直前価格で補間\")\n", | |
"df_ohlcv.ffill(inplace=True)\n", | |
"display(df_ohlcv.head())" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"#### 集計結果加工&レイアウト調整" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 309, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"集計したBuy / Sell出来高、約定履歴件数から1件あたりの平均出来高を算出\n", | |
"列並び替え\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>open</th>\n", | |
" <th>high</th>\n", | |
" <th>low</th>\n", | |
" <th>close</th>\n", | |
" <th>volume</th>\n", | |
" <th>buy_num</th>\n", | |
" <th>buy_vol</th>\n", | |
" <th>buy_avr</th>\n", | |
" <th>sell_num</th>\n", | |
" <th>sell_vol</th>\n", | |
" <th>sell_avr</th>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>timestamp</th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>2018-09-28 06:06:34+09:00</th>\n", | |
" <td>6660.0</td>\n", | |
" <td>6660.0</td>\n", | |
" <td>6660.0</td>\n", | |
" <td>6660.0</td>\n", | |
" <td>1819</td>\n", | |
" <td>1</td>\n", | |
" <td>1819</td>\n", | |
" <td>1819.0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2018-09-28 06:06:35+09:00</th>\n", | |
" <td>6660.0</td>\n", | |
" <td>6660.0</td>\n", | |
" <td>6660.0</td>\n", | |
" <td>6660.0</td>\n", | |
" <td>27</td>\n", | |
" <td>1</td>\n", | |
" <td>27</td>\n", | |
" <td>27.0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2018-09-28 06:06:36+09:00</th>\n", | |
" <td>6659.5</td>\n", | |
" <td>6660.0</td>\n", | |
" <td>6659.0</td>\n", | |
" <td>6660.0</td>\n", | |
" <td>204443</td>\n", | |
" <td>8</td>\n", | |
" <td>204416</td>\n", | |
" <td>25552.0</td>\n", | |
" <td>2</td>\n", | |
" <td>27</td>\n", | |
" <td>13.5</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2018-09-28 06:06:37+09:00</th>\n", | |
" <td>6659.5</td>\n", | |
" <td>6660.0</td>\n", | |
" <td>6659.0</td>\n", | |
" <td>6660.0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2018-09-28 06:06:38+09:00</th>\n", | |
" <td>6659.5</td>\n", | |
" <td>6660.0</td>\n", | |
" <td>6659.0</td>\n", | |
" <td>6660.0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0.0</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" open high low close volume buy_num \\\n", | |
"timestamp \n", | |
"2018-09-28 06:06:34+09:00 6660.0 6660.0 6660.0 6660.0 1819 1 \n", | |
"2018-09-28 06:06:35+09:00 6660.0 6660.0 6660.0 6660.0 27 1 \n", | |
"2018-09-28 06:06:36+09:00 6659.5 6660.0 6659.0 6660.0 204443 8 \n", | |
"2018-09-28 06:06:37+09:00 6659.5 6660.0 6659.0 6660.0 0 0 \n", | |
"2018-09-28 06:06:38+09:00 6659.5 6660.0 6659.0 6660.0 0 0 \n", | |
"\n", | |
" buy_vol buy_avr sell_num sell_vol sell_avr \n", | |
"timestamp \n", | |
"2018-09-28 06:06:34+09:00 1819 1819.0 0 0 0.0 \n", | |
"2018-09-28 06:06:35+09:00 27 27.0 0 0 0.0 \n", | |
"2018-09-28 06:06:36+09:00 204416 25552.0 2 27 13.5 \n", | |
"2018-09-28 06:06:37+09:00 0 0.0 0 0 0.0 \n", | |
"2018-09-28 06:06:38+09:00 0 0.0 0 0 0.0 " | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"print(\"集計したBuy / Sell出来高、約定履歴件数から1件あたりの平均出来高を算出\")\n", | |
"df_ohlcv[\"buy_avr\"] = np.where(df_ohlcv[\"buy_num\"] == 0, \\\n", | |
" df_ohlcv[\"buy_vol\"], df_ohlcv[\"buy_vol\"] / df_ohlcv[\"buy_num\"])\n", | |
"df_ohlcv[\"sell_avr\"] = np.where(df_ohlcv[\"sell_num\"] == 0, \\\n", | |
" df_ohlcv[\"sell_vol\"], df_ohlcv[\"sell_vol\"] / df_ohlcv[\"sell_num\"])\n", | |
"\n", | |
"print(\"列並び替え\")\n", | |
"df_ohlcv = df_ohlcv[[\"open\", \"high\", \"low\", \"close\", \"volume\", \\\n", | |
" \"buy_num\", \"buy_vol\", \"buy_avr\", \"sell_num\", \"sell_vol\", \"sell_avr\"]]\n", | |
"display(df_ohlcv.head())" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 310, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"列名変更\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>始値</th>\n", | |
" <th>高値</th>\n", | |
" <th>安値</th>\n", | |
" <th>終値</th>\n", | |
" <th>出来高</th>\n", | |
" <th>[買]約定数</th>\n", | |
" <th>[買]出来高</th>\n", | |
" <th>[買]平均約定出来高</th>\n", | |
" <th>[売]約定数</th>\n", | |
" <th>[売]出来高</th>\n", | |
" <th>[売]平均約定出来高</th>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>timestamp</th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>2018-09-28 06:06:34+09:00</th>\n", | |
" <td>6660.0</td>\n", | |
" <td>6660.0</td>\n", | |
" <td>6660.0</td>\n", | |
" <td>6660.0</td>\n", | |
" <td>1819</td>\n", | |
" <td>1</td>\n", | |
" <td>1819</td>\n", | |
" <td>1819.0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2018-09-28 06:06:35+09:00</th>\n", | |
" <td>6660.0</td>\n", | |
" <td>6660.0</td>\n", | |
" <td>6660.0</td>\n", | |
" <td>6660.0</td>\n", | |
" <td>27</td>\n", | |
" <td>1</td>\n", | |
" <td>27</td>\n", | |
" <td>27.0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2018-09-28 06:06:36+09:00</th>\n", | |
" <td>6659.5</td>\n", | |
" <td>6660.0</td>\n", | |
" <td>6659.0</td>\n", | |
" <td>6660.0</td>\n", | |
" <td>204443</td>\n", | |
" <td>8</td>\n", | |
" <td>204416</td>\n", | |
" <td>25552.0</td>\n", | |
" <td>2</td>\n", | |
" <td>27</td>\n", | |
" <td>13.5</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2018-09-28 06:06:37+09:00</th>\n", | |
" <td>6659.5</td>\n", | |
" <td>6660.0</td>\n", | |
" <td>6659.0</td>\n", | |
" <td>6660.0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2018-09-28 06:06:38+09:00</th>\n", | |
" <td>6659.5</td>\n", | |
" <td>6660.0</td>\n", | |
" <td>6659.0</td>\n", | |
" <td>6660.0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0.0</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" 始値 高値 安値 終値 出来高 [買]約定数 \\\n", | |
"timestamp \n", | |
"2018-09-28 06:06:34+09:00 6660.0 6660.0 6660.0 6660.0 1819 1 \n", | |
"2018-09-28 06:06:35+09:00 6660.0 6660.0 6660.0 6660.0 27 1 \n", | |
"2018-09-28 06:06:36+09:00 6659.5 6660.0 6659.0 6660.0 204443 8 \n", | |
"2018-09-28 06:06:37+09:00 6659.5 6660.0 6659.0 6660.0 0 0 \n", | |
"2018-09-28 06:06:38+09:00 6659.5 6660.0 6659.0 6660.0 0 0 \n", | |
"\n", | |
" [買]出来高 [買]平均約定出来高 [売]約定数 [売]出来高 [売]平均約定出来高 \n", | |
"timestamp \n", | |
"2018-09-28 06:06:34+09:00 1819 1819.0 0 0 0.0 \n", | |
"2018-09-28 06:06:35+09:00 27 27.0 0 0 0.0 \n", | |
"2018-09-28 06:06:36+09:00 204416 25552.0 2 27 13.5 \n", | |
"2018-09-28 06:06:37+09:00 0 0.0 0 0 0.0 \n", | |
"2018-09-28 06:06:38+09:00 0 0.0 0 0 0.0 " | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"print(\"列名変更\")\n", | |
"df_ohlcv = df_ohlcv.rename(columns={\n", | |
" \"open\": \"始値\", \"high\": \"高値\", \"low\": \"安値\", \"close\": \"終値\", \"volume\": \"出来高\",\n", | |
" \"buy_num\": \"[買]約定数\", \"buy_vol\": \"[買]出来高\", \"buy_avr\": \"[買]平均約定出来高\",\n", | |
" \"sell_num\": \"[売]約定数\", \"sell_vol\": \"[売]出来高\", \"sell_avr\": \"[売]平均約定出来高\"})\n", | |
"display(df_ohlcv.head())" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": {}, | |
"outputs": [], | |
"source": [] | |
} | |
], | |
"metadata": { | |
"kernelspec": { | |
"display_name": "Python 3", | |
"language": "python", | |
"name": "python3" | |
}, | |
"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.6.2" | |
}, | |
"toc": { | |
"nav_menu": {}, | |
"number_sections": true, | |
"sideBar": true, | |
"skip_h1_title": false, | |
"title_cell": "Table of Contents", | |
"title_sidebar": "Contents", | |
"toc_cell": false, | |
"toc_position": {}, | |
"toc_section_display": true, | |
"toc_window_display": false | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 2 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment