New PO
Concept
新POはリバランス時の手数料も考慮に入れる。方法は以下の通り:
各アセットにはタイムスロットという概念がある。あるアセットを購入するとタイムスロットに入る。タイムスロットは購入時刻、価格、取得したアセットの量などの情報を保持する。
PO処理は、アセットのタイムスロットごとのリバランスである。タイムスロットごとに保持するアセットの売却量と新規購入量を決め、オーダーを発行する。アセットを新規購入すると1で説明したとおり、新しいタイムスロットができる。
ポイント:
Rebalance時のTransaction costを考慮する
ROIは利用せず、Quote assetの量で利益を評価する
ROIを利用しない理由は、評価タイミングが存在するとROIの分母がわかりにくくなるため
Definition
POAssetInfo
Symbol | Code | Description |
---|
a | base_asset_symbol | Name of base asset, a∈A |
i | N/A | Asset slot number of asset ai∈Na |
ati | acquisition_time_sec_utc | A creation timestamp of asset a |
api | buy_price | Asset Aをタイムスロットiで購入したときの価格 |
ap | current_price | Asset Aの現在の価格 |
ap^ | forecast_price | Asset Aの予想価格 |
aqi | base_asset_quantity | The qunantity of asset a at timestmap ati |
aqi′ | optimal_base_asset_quantity | The optimal qunantity of asset a at timestmap ati |
aq′ | new_optimal_base_asset_quantity | The optimal qunantity of asset a that acquire now |
acBi | buy_commission_rate | Buy commision rate of asset a |
axi | asset_holding_rate | Current holding rate of asset a |
axi⋆ | N/A | Optimal holding rate of asset a |
P | profit | 利益 |
QF | quantity_future | 予想評価額 |
QI | quantity_investment | 投資額 |
QR | quantity_remaining | 保有している自由に利用できるQuote assetの量 |
A | base_assets | 対象の全Base assets |
Na | base_assets_time_slots | アセットaが有するタイムスロットの集合 |
やりたいこと:利益Pの分散の最小化
以下のシチュエーションで発生する利益を考える:
アセットa∈Aのタイムスロットi∈Naについて、 aqi保有している。
最適な保有量 aqi′がわかったので、保有量を aqi→ aqi′にするよう売却する。このとき、必ず aqi≥ aqi′である。理由は、タイムスロットに属す保有量しか考えないので選択肢は保有量のキープか売却しか存在しないたいめ。購入する場合はタイムスロットを増やす。
このとき、売却益を得られるが、手数料などのトランザクションコストが発生する。
また、アセットaの最適購入量 aq′≥0がわかったとして、購入し新たなタイムスロットを作成する。
このとき、購入費に加えて手数料などのトランザクションコストが発生する。
この状態で投資額QIと、未来の予想評価額QFを計算する。
したがって、利益P:
P=QF−QI 投資額QIについて
投資額は以下の和:
式にすると:
QI=a∈A∑i∈Na∑( aqi api(1+ acBi))+a∈A∑( aq′ ap(1+ acB)) 予想評価額QFについて
予想評価額は以下の和:
全アセットの各タイムスロットで最適な保有量を持っているとしての、予想評価額から売却したときの手数料を引いたもの
全アセットの保有量を最適保有量とする際に売却して得たQuote assetの量から手数料を引いたもの
全アセットで新たに追加するタイムスロットの予想評価額
式にすると:
QF=a∈A∑i∈Na∑( aqi′ ap^(1− acS)+( aqi− aqi′) ap(1− acS))+a∈A∑( aq′ ap^(1− acS)) 各拘束条件について
- C1; 利益の拘束条件、最小利益PE以上とする:
P=QF−QI≥PE - C2; 新規購入時の費用と手数料は、売却時に得た手数料を除いたQuote assetの量と自由に使えるQuote assetの量以下:
a∈A∑i∈Na∑( aqi− aqi′) ap(1− acS)+QR≥a∈A∑ aq′ ap(1+ acB) - C3; 各タイムスロットの最適保有量は増えず、売却のみ考える:
aqi≥ aqi′≥0,a∈A,i∈Na aq′≥0,a∈A - 新規購入費用+手数料は、手数料を除いた売却額+現在の保有金額QRになる:
a∈A∑i∈Na∑( aqi− aqi′) ap(1− acS)+QR≥a∈A∑ aq′ ap(1+ acB) 分散について
Pの分散を最小化する aqi′、 aq′を見つけるのが目的。したがってPの分散V(P)を計算する。
V(P)=E[(P−E[P])2] このとき、確率変数は ap^のみ。したがって:
P−E(P)=a∈A∑i∈Na∑( aqi′(1− acS)( ap^−E[ ap^]))+a∈A∑( aq′(1− acS)( ap^−E[ ap^]))=a∈A∑( ap^−E[ ap^])( aq′(1− acS)+i∈Na∑ aqi′(1− acS))=a∈A∑( ap^−E[ ap^])xa ここでは、
xa= aq′(1− acS)+i∈Na∑ aqi′(1− acS) としている。
すると、V(P)は:
V(P)=a∈A∑b∈B∑( ap^−E[ ap^])( bp^−E[ bp^])xaxb=a∈A∑b∈B∑Cov( ap^, bp^)xaxb=a∈A∑b∈B∑σabxaxb となる。
次のQP最小化を考える:
minimizesubject to21xTZx+yTx=V(P)l≤Ax≤u 状態変数x:
xT=[ 1q1′,..., 1qN1′, 1q′,..., Aq1′,..., AqNA′, Aq′] このとき、{1,...,A}∈A、{1,...,NA}∈NA
二次形式
V(P)は、
V(P)=a∈A∑b∈B∑σab(1− acS)(1− bcS)( aq′+i∈NA∑ aqi′)( bq′+i∈NB∑ bqi′) と書けるので、Zは、
Z=⎣⎡Z11,...,Z1AZ21,...,Z2A...ZA1,...,ZAA⎦⎤ ただし、
Zab=σab(1− acS)(1− bcS)INa+1,Nb+1 Is,tは要素が全て1で、s行t列の行列とする。
また、y=0とする。
拘束条件
Aを、
A=⎣⎡a1a2a3...⎦⎤ lを、
l=⎣⎡l1l2l3...⎦⎤ uを、
u=⎣⎡u1u2u3...⎦⎤ とおく。
- 拘束条件C1について; P=QF−QI≥PE:
この条件はa1として導入する。
P=a∈A∑i∈Na∑ aqi′(( ap^− ap)(1− acS))+a∈A∑ aq′( ap^(1− acS)− ap(1+ acBi))+a∈A∑i∈Na∑ aqi( ap(1− acS)− api(1+ acBi)) より、
a1=[( 1p^− 1p)(1− 1cS),...,( 1p^− 1p)(1− 1cS), 1p^(1− 1cS)− 1p(1+ 1cBi),...,( Ap^− Ap)(1− AcS),...,( Ap^− Ap)(1− AcS), Ap^(1− AcS)− Ap(1+ AcBi)] また、下限l1、上限u1は、
l1=PE−a∈A∑i∈Na∑ aqi( ap(1− acS)− api(1+ acBi)) となる。
この条件はa2として導入する。
変形すると、以下のように書ける。
a∈A∑( ap(1+ acB) aq′+i∈NA∑ ap(1− acS) aqi′)≤QR+a∈A∑i∈Na∑ aqi(1− acS) ap したがって、a2、l2、u2は次の通りになる:
a2=[ 1p(1− 1cS),..., 1p(1− 1cS), 1p(1+ 1cB),..., Ap(1− AcS),..., Ap(1− AcS), Ap(1+ AcB)] このとき、 xp(1− xcS),x∈Aはアセットxのタイムスロット分、つまりNxの要素数分存在する。一方、 xp(1+ xcB)は新規購入分なので各アセットで一つしか存在しない。
下限について:
上限について:
u2=QR+a∈A∑i∈Na∑ aqi(1− acS) ap 変数 xqi,x∈A,i∈Nxと xq,x∈Aに対しての上限、下限の拘束なのでA,l,uは以下のようになる。
A=⎣⎡a1a21,0,⋯,0,00,1,⋯,0,00,0,⋱,0,00,0,⋯,1,00,0,⋯,0,1⎦⎤ a1,a2以外は単位行列になっている。
l=⎣⎡l1−∞0⋮0⎦⎤ u=⎣⎡∞u2 1q1 1q2⋮ 1qN1∞⋮ Aq1⋮ AqNA∞⎦⎤