(参考)ETFトリックとは(具体例はすこし下)
なぜETFトリックが必要になるか、ベーシストレーディングというものを使って説明する。
日経225の先物の値段の理論値は、日経225の価格と、利子率と、予想配当利回りと、レポ利率 (=株を借りるのにかかるコスト)から求められる。
先物価格理論値 = 今の日経225価格 + 予想金利収入 - 予想配当収入 - 予想レポ収入
先物と日経225の差、つまり(先物価格 ー 日経225価格)はベーシスと呼ばれる。
マーケットで観測されるベーシスは、理論値と一致するとは限らない。この理論値からのズレを使って収益を上げるトレーディング手法をベーシス・トレーディングという。
例えば、ベーシスが3日連続で上昇したら4日目は下落しやすい、のような法則を見つけることができたら、そのアイデアを使って儲けることができるかもしれない。
ただ、このベーシス自体の時系列を取ってきて、モデル化して予測するのは問題点がある:①ベーシスの値が正になったり負になったりするとモデル化しにくい②構成株のウエイトの変化によって価格が変動してアービトラージの機会がないのにベーシスの値が変わったりする事がある*1ので、正しくベーシスの変動を予測しても儲けられないことがある。
そこで、ベーシスに1ドル投資したら、投資した1ドルはどのくらい増減するか?という問題を考える。「ベーシスに投資する戦略をとるETFがあったら値動きはどうなるか?」という考え方と一緒なので、この手法をETFトリックという。
ベーシストレーディング以外にも、とうもろこしや金などの先物を商品使ったトレード戦略を考える際、とある満期の先物を使うと数ヶ月分のトレード履歴しか取得できないが、ETFのような先物をロールして価格の連続性を保つ方法なら、何十年分のデータが取得可能である。ETFが存在する商品ならそれを使ってしまえば楽だが、そうではない場合、またETF価格は管理手数料が引かれているので正確に計算したい場合は、先物などを自分でETFっぽく変換すると、価格の連続性が保たれた時系列データが手に入る。
時点tでの投資資金をドルとすると、最初は1ドルからスタートするので、。は以下のように求められる。
\begin{align}
\displaystyle
K _ t &= K _ {t-1} + \text{t期の合計損益} \\
&= K _ {t-1} + \sum _ {全銘柄} \text{t-1期での各株の保} \text{有数} \times \text{各株からの利益率(ドル)} \\
&= K _ {t-1} + \sum _ {全銘柄} (\text{t-1期での各株の保} \text{有数} \times \text{為替レート}) \\ & \times ( \text{1株あたり株} \text{価変動額} + \text{1株の配} \text{当利} \text{回り} ) \\
&= K _ {t-1} + \sum _ {i=1} ^ {I} h _ {i, t-1} \varphi _ {i, t} (\delta _ {i, t} + d _ {i, t})
\end{align}
数あるタイムステップtのうち、株のリバランスのタイミング(ロールの日など)()で、株iの保有数 を、以下のように変化させていく。
\begin{align}
\displaystyle
h _ {i, t} =
\begin{cases}
\text{所有資産合計} \times \text{株iへの割合} \div \text{株iの値段(ドル)} & (\text{if } t \in B) \cr
h_{i, t-1} & (\text{otherwise})
\end{cases}
\end{align}
この条件分岐は、リバランスを行う()の時期以外は、株数は前のタイムステップと一緒ということ。
また、ここで、
と表せる。ここで、に絶対値がついているのは、だったときに無限大になってしまうから。
具体例
以下のような金と銀の仮想の先物データでETFトリックを試してみる。
t |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
Rebalance |
- |
- |
- |
- |
B |
- |
B |
- |
- |
gold opn |
7 |
10 |
9 |
8 |
7 |
8 |
2 |
18 |
16 |
gold cls |
8 |
8 |
9 |
9 |
8 |
6 |
0 |
17 |
15 |
silv opn |
6 |
8 |
6 |
2 |
2 |
17 |
15 |
11 |
15 |
silv cls |
7 |
7 |
4 |
3 |
0 |
16 |
11 |
12 |
13 |
(参考) BASIS |
1 |
1 |
5 |
6 |
8 |
-10 |
-11 |
5 |
2 |
- tはタイムステップ
- Rebalanceは, つまりtにリバランスがあるかどうかを示している
- opnは始値(今後資産iの時点tの始値をと表す)
- clsは終値
- 配当dは単純化のため0とする
- レートは単純化のため1とする
- 上で述べたように、BASIS自体をモデル化するのは難しそう
まず、アロケーションベクトルωを決定してく。金が上がると思うので今回は金-銀のスプレッドが大きくなる方にベッドしたい。シンプルに金のωを1、銀のωを-1とする↓
t |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
Rebalance |
- |
- |
- |
- |
B |
- |
B |
- |
- |
gold opn |
7 |
10 |
9 |
8 |
7 |
8 |
2 |
18 |
16 |
gold cls |
8 |
8 |
9 |
9 |
8 |
6 |
0 |
17 |
15 |
silv opn |
6 |
8 |
6 |
2 |
2 |
17 |
15 |
11 |
15 |
silv cls |
7 |
7 |
4 |
3 |
0 |
16 |
11 |
12 |
13 |
gold ω |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
silver ω |
-1 |
-1 |
-1 |
-1 |
-1 |
-1 |
-1 |
-1 |
-1 |
次に、金銀それぞれの価格変化δを以下の式から求めていく↓
\begin{align}
\displaystyle
\delta _ {i, t} =
\begin{cases}
p _ {i, t} - o _ {i, t} & (\text{if } (t-1) \in B) \cr
\Delta p _ {i, t} & (\text{otherwise})
\end{cases}
\end{align}
t |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
Rebalance |
- |
- |
- |
- |
B |
- |
B |
- |
- |
gold opn |
7 |
10 |
9 |
8 |
7 |
8 |
2 |
18 |
16 |
gold cls |
8 |
8 |
9 |
9 |
8 |
6 |
0 |
17 |
15 |
silv opn |
6 |
8 |
6 |
2 |
2 |
17 |
15 |
11 |
15 |
silv cls |
7 |
7 |
4 |
3 |
0 |
16 |
11 |
12 |
13 |
gold ω |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
silver ω |
-1 |
-1 |
-1 |
-1 |
-1 |
-1 |
-1 |
-1 |
-1 |
gold δ |
- |
0 |
1 |
0 |
-1 |
-2 |
-6 |
-1 |
-2 |
silver δ |
- |
0 |
-3 |
-1 |
-3 |
-1 |
-5 |
1 |
1 |
初期条件のを表に書き入れる↓
t |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
Rebalance |
- |
- |
- |
- |
B |
- |
B |
- |
- |
gold opn |
7 |
10 |
9 |
8 |
7 |
8 |
2 |
18 |
16 |
gold cls |
8 |
8 |
9 |
9 |
8 |
6 |
0 |
17 |
15 |
silv opn |
6 |
8 |
6 |
2 |
2 |
17 |
15 |
11 |
15 |
silv cls |
7 |
7 |
4 |
3 |
0 |
16 |
11 |
12 |
13 |
gold ω |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
silver ω |
-1 |
-1 |
-1 |
-1 |
-1 |
-1 |
-1 |
-1 |
-1 |
gold δ |
- |
0 |
1 |
0 |
-1 |
-2 |
-6 |
-1 |
-2 |
silver δ |
- |
0 |
-3 |
-1 |
-3 |
-1 |
-5 |
1 |
1 |
Kt |
1 |
? |
? |
? |
? |
? |
? |
? |
? |
このをもとに、金と銀それぞれの保有数hを計算する
を使うと、金の初期保有数は
\begin{align}
\displaystyle
h _ {金, 0} &= 1 \times \frac{1}{2} \div 10 \\
&= 0.05
\end{align}
であり、銀の初期保有数は
\begin{align}
\displaystyle
h _ {銀, 0} &= 1 \times \frac{-1}{2} \div 8 \\
&= -0.0625
\end{align}
ここで、使われている値段は翌日の始値であることに注意。これは、t=0の引け後の資産を使って翌日の朝、成行注文を出していると考えれば良い。
今求めた保有数は、リバランスが来るまで変わらない。
t |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
Rebalance |
- |
- |
- |
- |
B |
- |
B |
- |
- |
gold opn |
7 |
10 |
9 |
8 |
7 |
8 |
2 |
18 |
16 |
gold cls |
8 |
8 |
9 |
9 |
8 |
6 |
0 |
17 |
15 |
silv opn |
6 |
8 |
6 |
2 |
2 |
17 |
15 |
11 |
15 |
silv cls |
7 |
7 |
4 |
3 |
0 |
16 |
11 |
12 |
13 |
gold ω |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
silver ω |
-1 |
-1 |
-1 |
-1 |
-1 |
-1 |
-1 |
-1 |
-1 |
gold δ |
- |
0 |
1 |
0 |
-1 |
-2 |
-6 |
-1 |
-2 |
silver δ |
- |
0 |
-3 |
-1 |
-3 |
-1 |
-5 |
1 |
1 |
Kt |
1 |
? |
? |
? |
? |
? |
? |
? |
? |
gold h |
0.05 |
0.05 |
0.05 |
0.05 |
? |
? |
?? |
?? |
?? |
silv h |
-0.0625 |
-0.0625 |
-0.0625 |
-0.0625 |
??? |
??? |
???? |
???? |
???? |
より、を計算する。
\begin{align}
\displaystyle
K _ 1 &= K _ {0} + 0 \times 0.05 + 0 \times (-0.0625) \\
&= 1 \\
K _ 2 &= K _ {1} + 1 \times 0.05 + (-3) \times (-0.0625) \\
&= 1.2375 \\
\vdots
\end{align}
t |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
Rebalance |
- |
- |
- |
- |
B |
- |
B |
- |
- |
gold opn |
7 |
10 |
9 |
8 |
7 |
8 |
2 |
18 |
16 |
gold cls |
8 |
8 |
9 |
9 |
8 |
6 |
0 |
17 |
15 |
silv opn |
6 |
8 |
6 |
2 |
2 |
17 |
15 |
11 |
15 |
silv cls |
7 |
7 |
4 |
3 |
0 |
16 |
11 |
12 |
13 |
gold ω |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
silver ω |
-1 |
-1 |
-1 |
-1 |
-1 |
-1 |
-1 |
-1 |
-1 |
gold δ |
- |
0 |
1 |
0 |
-1 |
-2 |
-6 |
-1 |
-2 |
silver δ |
- |
0 |
-3 |
-1 |
-3 |
-1 |
-5 |
1 |
1 |
Kt |
1 |
1 |
1.2375 |
1.3 |
1.4375 |
? |
? |
? |
? |
gold h |
0.05 |
0.05 |
0.05 |
0.05 |
? |
? |
?? |
?? |
?? |
silv h |
-0.0625 |
-0.0625 |
-0.0625 |
-0.0625 |
??? |
??? |
???? |
???? |
???? |
t=4でリバランスをして、hを調整する。より、
金:
\begin{align}
\displaystyle
h _ {金, 4} = h _ {金, 5} &= 1.4375 \times \frac{1}{2} \div 8 \\
&= 0.089844
\end{align}
銀:
\begin{align}
\displaystyle
h _ {銀, 4} = h _ {銀, 5} &= 1.4375 \times \frac{-1}{2} \div 17 \\
&= -0.04228
\end{align}
t |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
Rebalance |
- |
- |
- |
- |
B |
- |
B |
- |
- |
gold opn |
7 |
10 |
9 |
8 |
7 |
8 |
2 |
18 |
16 |
gold cls |
8 |
8 |
9 |
9 |
8 |
6 |
0 |
17 |
15 |
silv opn |
6 |
8 |
6 |
2 |
2 |
17 |
15 |
11 |
15 |
silv cls |
7 |
7 |
4 |
3 |
0 |
16 |
11 |
12 |
13 |
gold ω |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
silver ω |
-1 |
-1 |
-1 |
-1 |
-1 |
-1 |
-1 |
-1 |
-1 |
gold δ |
- |
0 |
1 |
0 |
-1 |
-2 |
-6 |
-1 |
-2 |
silver δ |
- |
0 |
-3 |
-1 |
-3 |
-1 |
-5 |
1 |
1 |
Kt |
1 |
1 |
1.2375 |
1.3 |
1.4375 |
? |
? |
? |
? |
gold h |
0.05 |
0.05 |
0.05 |
0.05 |
0.089844 |
0.089844 |
?? |
?? |
?? |
silv h |
-0.0625 |
-0.0625 |
-0.0625 |
-0.0625 |
-0.04228 |
-0.04228 |
???? |
???? |
???? |
求めたhをもとに、を求める(緑色の部分)
(式、表省略)
求めたKをもとに、t=6, 7, 8での株保有数を求める
(式、表省略)
求めた株保有数をもとに、を求める
(式、表省略)
以上の計算で、時系列データKtが生成された
t |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
Rebalance |
- |
- |
- |
- |
B |
- |
B |
- |
- |
gold opn |
7 |
10 |
9 |
8 |
7 |
8 |
2 |
18 |
16 |
gold cls |
8 |
8 |
9 |
9 |
8 |
6 |
0 |
17 |
15 |
silv opn |
6 |
8 |
6 |
2 |
2 |
17 |
15 |
11 |
15 |
silv cls |
7 |
7 |
4 |
3 |
0 |
16 |
11 |
12 |
13 |
gold ω |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
silver ω |
-1 |
-1 |
-1 |
-1 |
-1 |
-1 |
-1 |
-1 |
-1 |
gold δ |
- |
0 |
1 |
0 |
-1 |
-2 |
-6 |
-1 |
-2 |
silver δ |
- |
0 |
-3 |
-1 |
-3 |
-1 |
-5 |
1 |
1 |
Kt |
1 |
1 |
1.2375 |
1.3 |
1.4375 |
1.300092 |
0.972426 |
0.901213 |
0.802989 |
gold h |
0.05 |
0.05 |
0.05 |
0.05 |
0.089844 |
0.089844 |
0.027012 |
0.027012 |
0.027012 |
silv h |
-0.0625 |
-0.0625 |
-0.0625 |
-0.0625 |
-0.04228 |
-0.04228 |
-0.0442 |
-0.0442 |
-0.0442 |
(参考) BASIS |
1 |
1 |
5 |
6 |
8 |
-10 |
-11 |
5 |
2 |
間違っていたら教えて下さい。
[付録]その他の章
「ファイナンス機械学習」1章&2章メモ - babaye's notes
「ファイナンス機械学習」3章&4章メモ - babaye's notes