Dean@Edinburgh

NYとエジンバラの大学で、スパコンや、科学計算ソフト開発を続けて20年以上が経ちました…

Dean@Edinburgh

NYとエジンバラの大学で、スパコンや、科学計算ソフト開発を続けて20年以上が経ちました。 今までとは全く違うことを始めてみたくて、Pythonと機械学習を勉強し始めました。 機械学習/AIが、どこまで行けるのか、楽しみです。

最近の記事

High Performance Python: Numpy and Numba

Pythonの高速化には、Numpyによるベクトル化と、llvmを使い動的にコンパイルするNumbaの二つがコードを大きく書き換える必要もなく手軽と言える。 素数判定 def isPrime(I): if I % 2 == 0: return False for i in range(3, int(I ** 0.5) + 1, 2): if I % i == 0: return False return True ループ関

    • ファイナンス機械学習:機械学習を使ったアセットアロケーション 練習問題 固有値行列をスケール変換する

      前問のNアセットのPnL行列の共分散行列をスペクトル分解し、スケール変更によるポートフォリオの重みの変化を比較する。 共分散行列を$${{\bf V}}$$、$${{\bf V}}$$の固有ベクトル行列を$${{\bf W}}$$、固有値を対角に並べたものを$${{\bf Lambda}}$$とすれば、 $${{\bf V W}={\bf W \Lambda}}$$である。 eVal,eVec=np.linalg.eigh(cov)eVal=np.diag(eVal) $

      • ファイナンス機械学習:機械学習を使った資産アロケーション 練習問題 ストックプライス

        投資戦略のN個の証券の損益(PnL)系列が与えられているとする。 週次の取引とし、週次の観測値に合わせ、リターンの共分散から、階層クラスターを求め、クラスター化された相関係数行列を可視化する。 from datetime import datetimefrom pandas_datareader import data as pdrimport yfinance as yfinyfin.pdr_override()ticker_symbols=['AAPL','ACN','

        • ファイナンス機械学習:機械学習によるアセットアロケーション アウトオブサンプルのモンテカルロシミュレーション HRP,IVP,CLA

          インサンプルでパフォーマンスの高いものが、アウトオブサンプルで同じパフォーマンスを示すとは限らない。  モンテカルロ法を使い、CLAの最小分散ポートフォリオ、リスクパリティのIVP、そしてHRPポートフォリオのアウトオブサンプルにおけるパフォーマンスを比較する。  平均ゼロで10%の標準偏差の正規リターンを、$${520 \times 10}$$作成する。520の観測値個数は日次ベースで2年に相当する。  現実の価格はジャンプがあることから、生成データにランダムなショックと相

        High Performance Python: Numpy and Numba

        • ファイナンス機械学習:機械学習を使ったアセットアロケーション 練習問題 固有値行列をスケール変換する

        • ファイナンス機械学習:機械学習を使った資産アロケーション 練習問題 ストックプライス

        • ファイナンス機械学習:機械学習によるアセットアロケーション アウトオブサンプルのモンテカルロシミュレーション HRP,IVP,CLA

          ファイナンス機械学習:機械学習によるアロケーション HRP 数値例

          $${10000 \times 10}$$の観測データから、HRPとIVP、CLAを使ってポートフォリオを構築する。 def generateData(nObs, size0, size1, sigma1): #1) generating some uncorrelated data np.random.seed(seed=12345) random.seed(12345) x = np.random.normal(0, 1, size=(nO

          ファイナンス機械学習:機械学習によるアロケーション HRP 数値例

          ファイナンス機械学習:機械学習によるアセットアロケーション 階層的リスクパリティアプローチ HRP

           ポートフォリオの構築は、最小分散を制約付きで可能にするCLAがある。 このCLAは共分散行列が逆行列を持つことが必要であり、得意行列である時には計算ができない。また投資ユニバース中の一資産に重みが集中する弱点がある。  階層的リスクパリティアプローチ(HRP)は、共分散行列の正定値性や逆行列を必要とせず、共分散行列に含まれる情報を使い、グラフ理論と機械学習を通じて、ポートフォリオを構築する。  アルゴリズムには、ツリークラスタリング、準対角化、再帰的二分の三段階がある。

          ファイナンス機械学習:機械学習によるアセットアロケーション 階層的リスクパリティアプローチ HRP

          ファイナンス機械学習:戦略リスク 最適取引ルールと最低正確度

          OU過程を用いて、取引ルールの利益確定値$${\overline{\pi}}$$と$${\underline{\pi}}$$の最適な組み合わせを探した。 これをベット頻度を週次からほぼ毎日まで変えて、目標SRを年率換算1.5とし、戦略の最低正確度を評価する。 pt=np.linspace(.5,10,20)sl=-1*ptFrqs=[50,100,200,250]srt=1.5for Frq in Frqs: minP=[] for comb_ in prod

          ファイナンス機械学習:戦略リスク 最適取引ルールと最低正確度

          ファイナンス機械学習:戦略リスク 練習問題 混合ガウス分布

          毎月ベットした2年間のリターンが二つのガウス分布からなる戦略を考える。  平均は一つ目が-0.1、二つ目が0.06で、分散はそれぞれ0.06と0.03で、リターンが最初の分布から生じる確率は0.15とする。 この論文を用いて、$${m}$$個のガウシアン分布が重なっている時のモーメントを計算する。それぞれの分布からリターンが生じる可能性を$${p_j, j=1,\cdots, m}$$、それぞれの平均と分散を$${\mu_j, \sigma_j}$$とする。一次から5次のモ

          ファイナンス機械学習:戦略リスク 練習問題 混合ガウス分布

          ファイナンス機械学習:戦略リスク 練習問題 戦略パラメータの値

          毎週頻度のベットで、正確度60%、利益確定値と損切り値を共に2%として、年率換算シャープレシオ2の戦略の実行を望むとする。  このパラメータで与えられるシャープレシオは、 $${\theta=\displaystyle{\frac{2p-1}{\sqrt{p(1-p)}} \cdot \sqrt{n} }}$$ から、1.47である。  よって、目標シャープレシオは達成されない。  他のパラメータを固定にした時、必要な正確度は、スニペット15.3を用いて、0.63となる。

          ファイナンス機械学習:戦略リスク 練習問題 戦略パラメータの値

          ファイナンス機械学習:戦略リスク 戦略失敗の確率

          投資戦略で決定できるパラメータは、損益閾値$${[\pi_-, \pi_+]}$$と、ベット頻度であり、戦略の投資すべきか否かの正確度$${p}$$は、市場で左右され確率変数$${E[p]}$$となる。目標となる年率換算シャープレシオ$${\theta^\ast}$$を下回る$${p}$$の値を、$${p_{\theta^\ast}}$$とすると、$${p_{\theta^\ast}=\max\{p | \theta \le \theta^\ast\}}$$ である。 $${

          ファイナンス機械学習:戦略リスク 戦略失敗の確率

          ファイナンス機械学習:戦略リスク 非対称のペイアウト

          ここで、前記事と違うのは、年間$${n}$$回の内$${i}$$ベットの結果$${X_i}$$が利益$${\pi_+}$$となる確率が$${p}$$、損失$${\pi_-}$$となる確率が$${1-p}$$である時、$${\pi_- < \pi_+}$$ で、$${|\pi_-| \ne \pi_+}$$であることである。 よって、$${X_i}$$の期待値と分散は、 $${E[X_i]=p\pi_++(1-p)\pi_-}$$ $${V[X_i]=E[X_i^2]-E[X_

          ファイナンス機械学習:戦略リスク 非対称のペイアウト

          ファイナンス機械学習:戦略リスク 対称的ペイアウト

          年間で$${n}$$回の独立同分布なベットをする戦略において、ある回$${i, i\in [1,n]}$$でのベットの結果$${X_i}$$が利益$${\pi, \pi>0}$$となる確率を$${p}$$、損失$${-\pi}$$となる確率を$${1-p}$$とする。 $${P[X_i=\pi ]=p}$$ $${P[X_i=-\pi ]=1-p}$$ この$${p}$$は、利益か損失かに分けるバイナリ分類器の正解率precisionと解釈できる。 $${\pi>0}$$の時

          ファイナンス機械学習:戦略リスク 対称的ペイアウト

          ファイナンス機械学習:バックテストの統計値 練習問題E-mini S&P500先物 ドルバー

          E-mini S&P 500 の先物ドルバーを用いて、統計値をとる。 import numpy as npimport pandas as pdfrom datetime import datetime,timedelta, dateimport Bars as barsfrom scipy.stats import norm, skew, kurtosisimport matplotlib.pylab as pltdef getBetsTiming(tPos): '

          ファイナンス機械学習:バックテストの統計値 練習問題E-mini S&P500先物 ドルバー

          ファイナンス機械学習:バックテストの統計値 練習問題 シャープレシオ

          二年間のバックテストの結果、月次リターンの平均が3.6%、標準偏差が0.079%であった時の、日次のリターンと標準偏差は以下の様に計算される。  まず、月次リターンは$${r_m=\frac{Close_{the\_last\_day}-Open_{the\_1st\_day}}{Open_{the\_1st\_day}}\times 100}$$で計算されるから、 日次リターン$${r_d=\displaystyle{\left(1+\frac{r_m}{100}\righ

          ファイナンス機械学習:バックテストの統計値 練習問題 シャープレシオ

          ファイナンス機械学習:バックテストの統計値 練習問題 高いレバレッジの戦略

          高い回転率、高いリバレッジ、多いベット数、短い保有期間、執行コストに対する低いリターン、高いシャープレシオの特性を持つ戦略があるとする。  高いリバレッジに関して、市場が想定と逆に動いた場合、損失が元本以上に膨れ上がることがある。追加証拠金を求められることもあり、リスクに対するヘッジを万全に行う必要がある。  また、高い回転率、多いベット数、短い保有期間は執行コストが膨らむことを意味する。また、ベット数が多さと保有期間の短さは、市場の影響を強く受ける戦略であることを意味し、リ

          ファイナンス機械学習:バックテストの統計値 練習問題 高いレバレッジの戦略

          ファイナンス機械学習:バックテストの統計値:執行コスト、シャープレシオ、分類スコア

          投資戦略を立てるにおいて、無視してならないのは執行コストである。ポートフォリオ内全ての資産が全て売買され、総入れ替えが起こるときの執行コストには以下のものがある。 ブローカー手数料 ブローカー手数料以外のコスト 入れ替えが起こった時のドルパフォーマンス 執行コストとリターンの率 ドルパフォーマンスと総執行コストの比 シャープレシオは、戦略のiidガウス分布に従う超過リターン(無リスク金利を超えるリターン)$${\{r_t\}t=1,\dots,T}$$の平均$${\

          ファイナンス機械学習:バックテストの統計値:執行コスト、シャープレシオ、分類スコア