ihit's diary

ちょっとしたメモに

Machine Learning for Trading (Lesson1~7)

UdacityのMachine Learning for Tradingを観始めた
Udacity

以下に講義メモを残していく

Lesson 1~4

pandas、numpyの使い方

Lesson 5

移動平均:pd.rolling_std(values, window=window)
移動分散:pd.rolling_mean(values, window=window)
移動平均と株価が交差するところが株価上昇、下降の見極めるチャンス。
移動平均に分散の2倍を足し引きしたものが株価上昇、下降の上限、下限となる事が多い(Bollinger Bands)
upper_band, lower_band = rm + 2*rstd, rm - 2*rstd

ここまでやったことのコード抜粋

os.path.join(base_dir, "{}.csv".format(str(symbol))) #ファイル名取得
df = pd.DataFrame(index=dates) #日付をインデックスにしている
df_temp = pd.read_csv(symbol_to_path(symbol), index_col='Date', parse_dates=True, usecols=['Date', 'Adj Close'], na_values=['nan']) #日付をインデックスにしてcsvファイルを読んでいる。
df_temp = df_temp.rename(columns={'Adj Close': symbol}) #Adj Closeを銘柄名に置換
df = df.join(df_temp)
df = df.dropna(subset=["SPY"]) #欠損値を削除
dates = pd.date_range('2012-01-01', '2012-12-31') #日付でデータの範囲を絞れる

Lesson 6

株価に欠損データがあるときは
1. 欠損直前の値で後を埋める:df.fillna(method='ffill', inplace=True)
2. 欠損終了直後の値で前を埋める:df.fillna(method='bfill', inplace=True)

Lesson 7

2つの銘柄を比較する際は収益率(Daily returns)を用いる
Daily return=今日の株価/前日の株価 - 1

daily returnsの計算式

daily_returns = df.copy()
daily_returns = (df[1:] / df[:-1].values) - 1
daily_returns.ix[0, :] = 0

Daily returnsを時系列からヒストグラムにすると比較しやすい
ベル・カーブっぽくなる→正規分布
kurtosis:分布の両端
fat tails:positive kurtosis
skinny tails:negative kurtosis

ヒストグラムの描き方

daily_returns.hist(bins=20)
mean = daily_returns['SPY'].mean()
plt.axvline(mean, color='w, linestype='dashed', linewidth=2)

std = daily_returns['SPY'].std()
stdが大きいとvolatility(変動性)が大きい

2つの銘柄(片方は市場平均?)の収益率を散布図で表して単回帰分析でを引く
傾きをβ=slope
y切片をα
とおく
βは市場の成長に対してどれだけ反応するか
αは市場平均に対してどれだけ優位か
を表しているみたいなこと言っていたけどよくわからなかった。

slopeはcorrelationとは違う
correlationは回帰線にどれだけ近いかを示す

散布図の描き方

daily_returns.plot(kind='scatter', x='SPY', y='XOM')
bera_XOM, alpha_XOM = np.polyfix(daily_?returns['SPY', daily_returns['XOM'], 1)
plt.plot(daily_returns['SPY'], beta_XOM*daily_returns['SPY'] + alpha_XOM, '-', color = 'r')
plt.show()

相関係数の導出方法
daily_returns.corr(method='pearson')

投資信託のアルファとベータってなに? [資産運用] All About
上記URLによると
α:アクティブリターン
市場の平均値からの超過リターン
β:パッシブリターン
株式や債券を含む幅広い市場指数に連動するリターン
とのこと