Skip to content

Instantly share code, notes, and snippets.

@va2577
Created September 16, 2018 06:50
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save va2577/8ff0b471b843b144d0be45ddbc2c7571 to your computer and use it in GitHub Desktop.
Save va2577/8ff0b471b843b144d0be45ddbc2c7571 to your computer and use it in GitHub Desktop.
TDW(トレーディングデイ・オブ・ザ・ウィーク)(曜日限定)
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# TDW(トレーディングデイ・オブ・ザ・ウィーク)(曜日限定)\n",
"\n",
"> 私が検証したのは、①値幅の大きさは曜日によって違うのか、②始値から終値までの値幅は曜日によって違うのか、③日々の値動きの絶対値は曜日によって違うのか--の3点である。\n",
"> クートナーのランダムウォーク理論が正しいとするならば、これらの質問に対する答えはすべて同じで、曜日による違いはない、となるはずである。\n",
">\n",
"> <cite>ラリー・ウィリアムズの短期売買法【改定第2版】 第6章 真理の探究</cite>"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"%matplotlib inline\n",
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"import pandas as pd"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"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",
" </tr>\n",
" <tr>\n",
" <th>time</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>2003-05-05</th>\n",
" <td>118.940</td>\n",
" <td>119.046</td>\n",
" <td>118.461</td>\n",
" <td>118.603</td>\n",
" <td>592866.9</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2003-05-06</th>\n",
" <td>118.591</td>\n",
" <td>118.751</td>\n",
" <td>117.290</td>\n",
" <td>117.500</td>\n",
" <td>581707.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2003-05-07</th>\n",
" <td>117.456</td>\n",
" <td>117.830</td>\n",
" <td>116.052</td>\n",
" <td>116.303</td>\n",
" <td>584496.2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2003-05-08</th>\n",
" <td>116.311</td>\n",
" <td>116.969</td>\n",
" <td>115.940</td>\n",
" <td>116.823</td>\n",
" <td>588236.7</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2003-05-09</th>\n",
" <td>116.835</td>\n",
" <td>117.612</td>\n",
" <td>116.794</td>\n",
" <td>117.151</td>\n",
" <td>583132.9</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" open high low close volume\n",
"time \n",
"2003-05-05 118.940 119.046 118.461 118.603 592866.9\n",
"2003-05-06 118.591 118.751 117.290 117.500 581707.0\n",
"2003-05-07 117.456 117.830 116.052 116.303 584496.2\n",
"2003-05-08 116.311 116.969 115.940 116.823 588236.7\n",
"2003-05-09 116.835 117.612 116.794 117.151 583132.9"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"dtype = { 'time': str, 'open': float, 'high': float, 'low': float, 'close': float, 'volume': float }\n",
"names = ['time', 'open', 'high', 'low', 'close', 'volume']\n",
"df = pd.read_csv('~/Documents/data/d/USDJPY_D.csv', dtype=dtype, header=0, index_col='time', names=names, parse_dates=['time'])\n",
"df.head()"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"columns = ['月', '火', '水', '木', '金']"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"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",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>USDJPY</th>\n",
" <td>88.980157</td>\n",
" <td>95.799739</td>\n",
" <td>100.217124</td>\n",
" <td>100.605098</td>\n",
" <td>103.96</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" 月 火 水 木 金\n",
"USDJPY 88.980157 95.799739 100.217124 100.605098 103.96"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# 高値-安値\n",
"s = df['high'] - df['low']\n",
"pd.DataFrame([[s[s.index.dayofweek == i].mean() / 0.01 for i in range(0, 4 + 1)]], index=['USDJPY'], columns=columns)"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [
{
"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",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>USDJPY</th>\n",
" <td>0.080026</td>\n",
" <td>-0.363446</td>\n",
" <td>1.093072</td>\n",
" <td>0.71634</td>\n",
" <td>-0.821569</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" 月 火 水 木 金\n",
"USDJPY 0.080026 -0.363446 1.093072 0.71634 -0.821569"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# 終値-始値\n",
"s = df['close'] - df['open']\n",
"pd.DataFrame([[s[s.index.dayofweek == i].mean() / 0.01 for i in range(0, 4 + 1)]], index=['USDJPY'], columns=columns)"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [
{
"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",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>USDJPY</th>\n",
" <td>42.119974</td>\n",
" <td>47.362663</td>\n",
" <td>48.748235</td>\n",
" <td>48.547974</td>\n",
" <td>50.565359</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" 月 火 水 木 金\n",
"USDJPY 42.119974 47.362663 48.748235 48.547974 50.565359"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# 日々の値動きの絶対値\n",
"s = (df['close'] - df['open']).abs()\n",
"pd.DataFrame([[s[s.index.dayofweek == i].mean() / 0.01 for i in range(0, 4 + 1)]], index=['USDJPY'], columns=columns)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
"# 21通貨ペア\n",
"\n",
"data = [\n",
" 'AUDJPY',\n",
" 'AUDNZD',\n",
" 'AUDUSD',\n",
" 'CADJPY',\n",
" 'CHFJPY',\n",
" 'EURAUD',\n",
" 'EURGBP',\n",
" 'EURJPY',\n",
" 'EURUSD',\n",
" 'GBPAUD',\n",
" 'GBPJPY',\n",
" 'GBPUSD',\n",
" 'HKDJPY',\n",
" 'NZDJPY',\n",
" 'NZDUSD',\n",
" 'SGDJPY',\n",
" 'USDCAD',\n",
" 'USDCHF',\n",
" 'USDHKD',\n",
" 'USDJPY',\n",
" 'USDSGD',\n",
"]\n",
"\n",
"def read(filepath):\n",
" dtype = { 'time': str, 'open': float, 'high': float, 'low': float, 'close': float, 'volume': float }\n",
" names = ['time', 'open', 'high', 'low', 'close', 'volume']\n",
" df = pd.read_csv(filepath, dtype=dtype, header=0, index_col='time', names=names, parse_dates=['time'])\n",
" return df\n",
"\n",
"d = { i: read(f'~/Documents/data/d/{i}_D.csv') for i in data }"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"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",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>AUDJPY</th>\n",
" <td>107.546467</td>\n",
" <td>116.696603</td>\n",
" <td>117.276327</td>\n",
" <td>120.326122</td>\n",
" <td>114.688707</td>\n",
" </tr>\n",
" <tr>\n",
" <th>AUDNZD</th>\n",
" <td>89.070191</td>\n",
" <td>94.894810</td>\n",
" <td>99.403293</td>\n",
" <td>103.600867</td>\n",
" <td>92.399480</td>\n",
" </tr>\n",
" <tr>\n",
" <th>AUDUSD</th>\n",
" <td>88.692961</td>\n",
" <td>100.785657</td>\n",
" <td>101.610638</td>\n",
" <td>101.824601</td>\n",
" <td>94.512899</td>\n",
" </tr>\n",
" <tr>\n",
" <th>CADJPY</th>\n",
" <td>114.457620</td>\n",
" <td>112.262990</td>\n",
" <td>113.848837</td>\n",
" <td>113.794913</td>\n",
" <td>115.084884</td>\n",
" </tr>\n",
" <tr>\n",
" <th>CHFJPY</th>\n",
" <td>97.760956</td>\n",
" <td>101.373307</td>\n",
" <td>99.153191</td>\n",
" <td>110.840027</td>\n",
" <td>105.415691</td>\n",
" </tr>\n",
" <tr>\n",
" <th>EURAUD</th>\n",
" <td>143.233959</td>\n",
" <td>153.820970</td>\n",
" <td>156.589498</td>\n",
" <td>166.694671</td>\n",
" <td>154.694836</td>\n",
" </tr>\n",
" <tr>\n",
" <th>EURGBP</th>\n",
" <td>58.054316</td>\n",
" <td>61.246746</td>\n",
" <td>62.686702</td>\n",
" <td>65.023404</td>\n",
" <td>63.141755</td>\n",
" </tr>\n",
" <tr>\n",
" <th>EURJPY</th>\n",
" <td>136.035591</td>\n",
" <td>139.516866</td>\n",
" <td>136.570346</td>\n",
" <td>148.466090</td>\n",
" <td>143.915027</td>\n",
" </tr>\n",
" <tr>\n",
" <th>EURUSD</th>\n",
" <td>106.003655</td>\n",
" <td>115.228590</td>\n",
" <td>117.535686</td>\n",
" <td>122.863529</td>\n",
" <td>122.604183</td>\n",
" </tr>\n",
" <tr>\n",
" <th>GBPAUD</th>\n",
" <td>190.858537</td>\n",
" <td>207.555935</td>\n",
" <td>215.427805</td>\n",
" <td>216.060813</td>\n",
" <td>207.137886</td>\n",
" </tr>\n",
" <tr>\n",
" <th>GBPJPY</th>\n",
" <td>180.487782</td>\n",
" <td>191.079814</td>\n",
" <td>190.097207</td>\n",
" <td>190.742952</td>\n",
" <td>194.137500</td>\n",
" </tr>\n",
" <tr>\n",
" <th>GBPUSD</th>\n",
" <td>132.102742</td>\n",
" <td>144.177023</td>\n",
" <td>146.250719</td>\n",
" <td>143.514641</td>\n",
" <td>148.871895</td>\n",
" </tr>\n",
" <tr>\n",
" <th>HKDJPY</th>\n",
" <td>11.694858</td>\n",
" <td>12.624956</td>\n",
" <td>13.273759</td>\n",
" <td>13.625532</td>\n",
" <td>13.695213</td>\n",
" </tr>\n",
" <tr>\n",
" <th>NZDJPY</th>\n",
" <td>102.839936</td>\n",
" <td>109.092982</td>\n",
" <td>109.386741</td>\n",
" <td>113.215974</td>\n",
" <td>106.517252</td>\n",
" </tr>\n",
" <tr>\n",
" <th>NZDUSD</th>\n",
" <td>82.048606</td>\n",
" <td>91.131341</td>\n",
" <td>95.319016</td>\n",
" <td>94.534043</td>\n",
" <td>89.060505</td>\n",
" </tr>\n",
" <tr>\n",
" <th>SGDJPY</th>\n",
" <td>72.327128</td>\n",
" <td>75.507611</td>\n",
" <td>75.473759</td>\n",
" <td>79.387411</td>\n",
" <td>79.252128</td>\n",
" </tr>\n",
" <tr>\n",
" <th>USDCAD</th>\n",
" <td>94.394688</td>\n",
" <td>103.626162</td>\n",
" <td>109.140293</td>\n",
" <td>102.709309</td>\n",
" <td>109.002261</td>\n",
" </tr>\n",
" <tr>\n",
" <th>USDCHF</th>\n",
" <td>95.042689</td>\n",
" <td>104.844125</td>\n",
" <td>105.796601</td>\n",
" <td>112.858954</td>\n",
" <td>112.151503</td>\n",
" </tr>\n",
" <tr>\n",
" <th>USDHKD</th>\n",
" <td>41.342021</td>\n",
" <td>38.662124</td>\n",
" <td>40.392021</td>\n",
" <td>41.783333</td>\n",
" <td>42.626773</td>\n",
" </tr>\n",
" <tr>\n",
" <th>USDJPY</th>\n",
" <td>88.980157</td>\n",
" <td>95.799739</td>\n",
" <td>100.217124</td>\n",
" <td>100.605098</td>\n",
" <td>103.960000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>USDSGD</th>\n",
" <td>75.287299</td>\n",
" <td>75.690379</td>\n",
" <td>79.803212</td>\n",
" <td>77.543650</td>\n",
" <td>80.491095</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" 月 火 水 木 金\n",
"AUDJPY 107.546467 116.696603 117.276327 120.326122 114.688707\n",
"AUDNZD 89.070191 94.894810 99.403293 103.600867 92.399480\n",
"AUDUSD 88.692961 100.785657 101.610638 101.824601 94.512899\n",
"CADJPY 114.457620 112.262990 113.848837 113.794913 115.084884\n",
"CHFJPY 97.760956 101.373307 99.153191 110.840027 105.415691\n",
"EURAUD 143.233959 153.820970 156.589498 166.694671 154.694836\n",
"EURGBP 58.054316 61.246746 62.686702 65.023404 63.141755\n",
"EURJPY 136.035591 139.516866 136.570346 148.466090 143.915027\n",
"EURUSD 106.003655 115.228590 117.535686 122.863529 122.604183\n",
"GBPAUD 190.858537 207.555935 215.427805 216.060813 207.137886\n",
"GBPJPY 180.487782 191.079814 190.097207 190.742952 194.137500\n",
"GBPUSD 132.102742 144.177023 146.250719 143.514641 148.871895\n",
"HKDJPY 11.694858 12.624956 13.273759 13.625532 13.695213\n",
"NZDJPY 102.839936 109.092982 109.386741 113.215974 106.517252\n",
"NZDUSD 82.048606 91.131341 95.319016 94.534043 89.060505\n",
"SGDJPY 72.327128 75.507611 75.473759 79.387411 79.252128\n",
"USDCAD 94.394688 103.626162 109.140293 102.709309 109.002261\n",
"USDCHF 95.042689 104.844125 105.796601 112.858954 112.151503\n",
"USDHKD 41.342021 38.662124 40.392021 41.783333 42.626773\n",
"USDJPY 88.980157 95.799739 100.217124 100.605098 103.960000\n",
"USDSGD 75.287299 75.690379 79.803212 77.543650 80.491095"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# 高値-安値\n",
"def test(df, pair):\n",
" s = df['high'] - df['low']\n",
" s2 = [s[s.index.dayofweek == i].mean() / (0.01 if 'JPY' in pair else 0.0001) for i in range(0, 4 + 1)]\n",
" return s2\n",
"\n",
"pd.DataFrame({ i: test(d[i], i) for i in data }, index=columns).T"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"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",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>AUDJPY</th>\n",
" <td>-0.388587</td>\n",
" <td>2.023641</td>\n",
" <td>0.650748</td>\n",
" <td>1.540000</td>\n",
" <td>-3.751565</td>\n",
" </tr>\n",
" <tr>\n",
" <th>AUDNZD</th>\n",
" <td>4.333276</td>\n",
" <td>3.631488</td>\n",
" <td>-1.577816</td>\n",
" <td>3.368804</td>\n",
" <td>-9.542114</td>\n",
" </tr>\n",
" <tr>\n",
" <th>AUDUSD</th>\n",
" <td>1.211023</td>\n",
" <td>2.831607</td>\n",
" <td>0.095878</td>\n",
" <td>1.457447</td>\n",
" <td>-2.543484</td>\n",
" </tr>\n",
" <tr>\n",
" <th>CADJPY</th>\n",
" <td>-1.981132</td>\n",
" <td>1.719739</td>\n",
" <td>2.940407</td>\n",
" <td>0.457413</td>\n",
" <td>-3.322674</td>\n",
" </tr>\n",
" <tr>\n",
" <th>CHFJPY</th>\n",
" <td>-3.233333</td>\n",
" <td>-0.785259</td>\n",
" <td>4.294149</td>\n",
" <td>5.546410</td>\n",
" <td>-2.855984</td>\n",
" </tr>\n",
" <tr>\n",
" <th>EURAUD</th>\n",
" <td>1.383881</td>\n",
" <td>-2.815962</td>\n",
" <td>3.803918</td>\n",
" <td>0.983229</td>\n",
" <td>-1.749922</td>\n",
" </tr>\n",
" <tr>\n",
" <th>EURGBP</th>\n",
" <td>1.023639</td>\n",
" <td>0.768526</td>\n",
" <td>0.368351</td>\n",
" <td>-0.259176</td>\n",
" <td>1.597739</td>\n",
" </tr>\n",
" <tr>\n",
" <th>EURJPY</th>\n",
" <td>-2.361089</td>\n",
" <td>1.007835</td>\n",
" <td>5.415426</td>\n",
" <td>3.417420</td>\n",
" <td>-4.282447</td>\n",
" </tr>\n",
" <tr>\n",
" <th>EURUSD</th>\n",
" <td>-0.553264</td>\n",
" <td>1.889295</td>\n",
" <td>3.409412</td>\n",
" <td>3.523268</td>\n",
" <td>-2.705229</td>\n",
" </tr>\n",
" <tr>\n",
" <th>GBPAUD</th>\n",
" <td>1.391707</td>\n",
" <td>-3.916260</td>\n",
" <td>3.538537</td>\n",
" <td>-0.821463</td>\n",
" <td>-5.959187</td>\n",
" </tr>\n",
" <tr>\n",
" <th>GBPJPY</th>\n",
" <td>-3.302656</td>\n",
" <td>1.402789</td>\n",
" <td>6.431250</td>\n",
" <td>4.550266</td>\n",
" <td>-8.508910</td>\n",
" </tr>\n",
" <tr>\n",
" <th>GBPUSD</th>\n",
" <td>-1.626632</td>\n",
" <td>1.831070</td>\n",
" <td>3.584575</td>\n",
" <td>4.959477</td>\n",
" <td>-7.582484</td>\n",
" </tr>\n",
" <tr>\n",
" <th>HKDJPY</th>\n",
" <td>-0.352837</td>\n",
" <td>-0.385487</td>\n",
" <td>-0.379078</td>\n",
" <td>-0.203369</td>\n",
" <td>-0.418440</td>\n",
" </tr>\n",
" <tr>\n",
" <th>NZDJPY</th>\n",
" <td>1.070447</td>\n",
" <td>0.605582</td>\n",
" <td>2.749681</td>\n",
" <td>0.627476</td>\n",
" <td>-2.143930</td>\n",
" </tr>\n",
" <tr>\n",
" <th>NZDUSD</th>\n",
" <td>0.684993</td>\n",
" <td>0.487384</td>\n",
" <td>0.337766</td>\n",
" <td>0.482181</td>\n",
" <td>0.250931</td>\n",
" </tr>\n",
" <tr>\n",
" <th>SGDJPY</th>\n",
" <td>-0.766135</td>\n",
" <td>0.413805</td>\n",
" <td>0.552128</td>\n",
" <td>1.895390</td>\n",
" <td>-2.942730</td>\n",
" </tr>\n",
" <tr>\n",
" <th>USDCAD</th>\n",
" <td>3.500000</td>\n",
" <td>-2.015139</td>\n",
" <td>-1.587766</td>\n",
" <td>-1.420080</td>\n",
" <td>0.653856</td>\n",
" </tr>\n",
" <tr>\n",
" <th>USDCHF</th>\n",
" <td>4.883290</td>\n",
" <td>0.356136</td>\n",
" <td>-3.307712</td>\n",
" <td>-4.432026</td>\n",
" <td>0.810588</td>\n",
" </tr>\n",
" <tr>\n",
" <th>USDHKD</th>\n",
" <td>1.878723</td>\n",
" <td>0.467965</td>\n",
" <td>-0.878723</td>\n",
" <td>-0.938652</td>\n",
" <td>-2.800177</td>\n",
" </tr>\n",
" <tr>\n",
" <th>USDJPY</th>\n",
" <td>0.080026</td>\n",
" <td>-0.363446</td>\n",
" <td>1.093072</td>\n",
" <td>0.716340</td>\n",
" <td>-0.821569</td>\n",
" </tr>\n",
" <tr>\n",
" <th>USDSGD</th>\n",
" <td>2.889197</td>\n",
" <td>-1.107872</td>\n",
" <td>-2.914745</td>\n",
" <td>-1.746715</td>\n",
" <td>-1.663504</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" 月 火 水 木 金\n",
"AUDJPY -0.388587 2.023641 0.650748 1.540000 -3.751565\n",
"AUDNZD 4.333276 3.631488 -1.577816 3.368804 -9.542114\n",
"AUDUSD 1.211023 2.831607 0.095878 1.457447 -2.543484\n",
"CADJPY -1.981132 1.719739 2.940407 0.457413 -3.322674\n",
"CHFJPY -3.233333 -0.785259 4.294149 5.546410 -2.855984\n",
"EURAUD 1.383881 -2.815962 3.803918 0.983229 -1.749922\n",
"EURGBP 1.023639 0.768526 0.368351 -0.259176 1.597739\n",
"EURJPY -2.361089 1.007835 5.415426 3.417420 -4.282447\n",
"EURUSD -0.553264 1.889295 3.409412 3.523268 -2.705229\n",
"GBPAUD 1.391707 -3.916260 3.538537 -0.821463 -5.959187\n",
"GBPJPY -3.302656 1.402789 6.431250 4.550266 -8.508910\n",
"GBPUSD -1.626632 1.831070 3.584575 4.959477 -7.582484\n",
"HKDJPY -0.352837 -0.385487 -0.379078 -0.203369 -0.418440\n",
"NZDJPY 1.070447 0.605582 2.749681 0.627476 -2.143930\n",
"NZDUSD 0.684993 0.487384 0.337766 0.482181 0.250931\n",
"SGDJPY -0.766135 0.413805 0.552128 1.895390 -2.942730\n",
"USDCAD 3.500000 -2.015139 -1.587766 -1.420080 0.653856\n",
"USDCHF 4.883290 0.356136 -3.307712 -4.432026 0.810588\n",
"USDHKD 1.878723 0.467965 -0.878723 -0.938652 -2.800177\n",
"USDJPY 0.080026 -0.363446 1.093072 0.716340 -0.821569\n",
"USDSGD 2.889197 -1.107872 -2.914745 -1.746715 -1.663504"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# 終値-始値\n",
"def test2(df, pair):\n",
" s = df['close'] - df['open']\n",
" s2 = [s[s.index.dayofweek == i].mean() / (0.01 if 'JPY' in pair else 0.0001) for i in range(0, 4 + 1)]\n",
" return s2\n",
"\n",
"pd.DataFrame({ i: test2(d[i], i) for i in data }, index=columns).T"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"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",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>AUDJPY</th>\n",
" <td>52.258152</td>\n",
" <td>58.356793</td>\n",
" <td>57.264082</td>\n",
" <td>56.690748</td>\n",
" <td>54.598912</td>\n",
" </tr>\n",
" <tr>\n",
" <th>AUDNZD</th>\n",
" <td>38.612998</td>\n",
" <td>44.013495</td>\n",
" <td>46.947314</td>\n",
" <td>49.618024</td>\n",
" <td>40.551473</td>\n",
" </tr>\n",
" <tr>\n",
" <th>AUDUSD</th>\n",
" <td>44.084595</td>\n",
" <td>51.651262</td>\n",
" <td>50.304122</td>\n",
" <td>48.249468</td>\n",
" <td>45.568218</td>\n",
" </tr>\n",
" <tr>\n",
" <th>CADJPY</th>\n",
" <td>53.909434</td>\n",
" <td>56.109289</td>\n",
" <td>56.359884</td>\n",
" <td>54.222529</td>\n",
" <td>58.531686</td>\n",
" </tr>\n",
" <tr>\n",
" <th>CHFJPY</th>\n",
" <td>44.857769</td>\n",
" <td>48.067065</td>\n",
" <td>46.277660</td>\n",
" <td>54.634176</td>\n",
" <td>49.259707</td>\n",
" </tr>\n",
" <tr>\n",
" <th>EURAUD</th>\n",
" <td>69.815493</td>\n",
" <td>76.882003</td>\n",
" <td>76.842790</td>\n",
" <td>80.549060</td>\n",
" <td>75.744288</td>\n",
" </tr>\n",
" <tr>\n",
" <th>EURGBP</th>\n",
" <td>27.407171</td>\n",
" <td>30.966135</td>\n",
" <td>30.813032</td>\n",
" <td>31.638963</td>\n",
" <td>30.642154</td>\n",
" </tr>\n",
" <tr>\n",
" <th>EURJPY</th>\n",
" <td>66.147012</td>\n",
" <td>69.052988</td>\n",
" <td>64.370479</td>\n",
" <td>71.416888</td>\n",
" <td>69.932979</td>\n",
" </tr>\n",
" <tr>\n",
" <th>EURUSD</th>\n",
" <td>50.118538</td>\n",
" <td>57.637859</td>\n",
" <td>59.267451</td>\n",
" <td>60.479346</td>\n",
" <td>63.012418</td>\n",
" </tr>\n",
" <tr>\n",
" <th>GBPAUD</th>\n",
" <td>92.919512</td>\n",
" <td>103.527642</td>\n",
" <td>106.464715</td>\n",
" <td>105.805203</td>\n",
" <td>98.740000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>GBPJPY</th>\n",
" <td>85.795883</td>\n",
" <td>94.515936</td>\n",
" <td>92.174601</td>\n",
" <td>91.177660</td>\n",
" <td>91.039761</td>\n",
" </tr>\n",
" <tr>\n",
" <th>GBPUSD</th>\n",
" <td>63.923238</td>\n",
" <td>73.913055</td>\n",
" <td>71.691242</td>\n",
" <td>68.859085</td>\n",
" <td>73.855163</td>\n",
" </tr>\n",
" <tr>\n",
" <th>HKDJPY</th>\n",
" <td>5.430851</td>\n",
" <td>6.119292</td>\n",
" <td>6.303901</td>\n",
" <td>6.385993</td>\n",
" <td>6.540426</td>\n",
" </tr>\n",
" <tr>\n",
" <th>NZDJPY</th>\n",
" <td>50.967252</td>\n",
" <td>54.999522</td>\n",
" <td>52.039776</td>\n",
" <td>53.539936</td>\n",
" <td>50.782907</td>\n",
" </tr>\n",
" <tr>\n",
" <th>NZDUSD</th>\n",
" <td>40.276760</td>\n",
" <td>45.924037</td>\n",
" <td>47.355053</td>\n",
" <td>45.287766</td>\n",
" <td>42.413963</td>\n",
" </tr>\n",
" <tr>\n",
" <th>SGDJPY</th>\n",
" <td>34.854433</td>\n",
" <td>36.893451</td>\n",
" <td>34.909574</td>\n",
" <td>37.929787</td>\n",
" <td>36.009043</td>\n",
" </tr>\n",
" <tr>\n",
" <th>USDCAD</th>\n",
" <td>45.664409</td>\n",
" <td>51.507570</td>\n",
" <td>55.116489</td>\n",
" <td>49.025665</td>\n",
" <td>53.635771</td>\n",
" </tr>\n",
" <tr>\n",
" <th>USDCHF</th>\n",
" <td>44.395300</td>\n",
" <td>53.130548</td>\n",
" <td>52.372288</td>\n",
" <td>53.676209</td>\n",
" <td>56.129281</td>\n",
" </tr>\n",
" <tr>\n",
" <th>USDHKD</th>\n",
" <td>16.139007</td>\n",
" <td>14.813805</td>\n",
" <td>14.792908</td>\n",
" <td>16.144681</td>\n",
" <td>15.659397</td>\n",
" </tr>\n",
" <tr>\n",
" <th>USDJPY</th>\n",
" <td>42.119974</td>\n",
" <td>47.362663</td>\n",
" <td>48.748235</td>\n",
" <td>48.547974</td>\n",
" <td>50.565359</td>\n",
" </tr>\n",
" <tr>\n",
" <th>USDSGD</th>\n",
" <td>34.855328</td>\n",
" <td>35.709913</td>\n",
" <td>37.541022</td>\n",
" <td>34.347883</td>\n",
" <td>35.243650</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" 月 火 水 木 金\n",
"AUDJPY 52.258152 58.356793 57.264082 56.690748 54.598912\n",
"AUDNZD 38.612998 44.013495 46.947314 49.618024 40.551473\n",
"AUDUSD 44.084595 51.651262 50.304122 48.249468 45.568218\n",
"CADJPY 53.909434 56.109289 56.359884 54.222529 58.531686\n",
"CHFJPY 44.857769 48.067065 46.277660 54.634176 49.259707\n",
"EURAUD 69.815493 76.882003 76.842790 80.549060 75.744288\n",
"EURGBP 27.407171 30.966135 30.813032 31.638963 30.642154\n",
"EURJPY 66.147012 69.052988 64.370479 71.416888 69.932979\n",
"EURUSD 50.118538 57.637859 59.267451 60.479346 63.012418\n",
"GBPAUD 92.919512 103.527642 106.464715 105.805203 98.740000\n",
"GBPJPY 85.795883 94.515936 92.174601 91.177660 91.039761\n",
"GBPUSD 63.923238 73.913055 71.691242 68.859085 73.855163\n",
"HKDJPY 5.430851 6.119292 6.303901 6.385993 6.540426\n",
"NZDJPY 50.967252 54.999522 52.039776 53.539936 50.782907\n",
"NZDUSD 40.276760 45.924037 47.355053 45.287766 42.413963\n",
"SGDJPY 34.854433 36.893451 34.909574 37.929787 36.009043\n",
"USDCAD 45.664409 51.507570 55.116489 49.025665 53.635771\n",
"USDCHF 44.395300 53.130548 52.372288 53.676209 56.129281\n",
"USDHKD 16.139007 14.813805 14.792908 16.144681 15.659397\n",
"USDJPY 42.119974 47.362663 48.748235 48.547974 50.565359\n",
"USDSGD 34.855328 35.709913 37.541022 34.347883 35.243650"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# 日々の値動きの絶対値\n",
"def test3(df, pair):\n",
" s = (df['close'] - df['open']).abs()\n",
" s2 = [s[s.index.dayofweek == i].mean() / (0.01 if 'JPY' in pair else 0.0001) for i in range(0, 4 + 1)]\n",
" return s2\n",
"\n",
"pd.DataFrame({ i: test3(d[i], i) for i in data }, index=columns).T"
]
}
],
"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.5"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment