ファイナンス機械学習: ベットサイズの決定 練習問題 一様分布乱数を用いる
SampleSize = 10_000
X=2
minP=1./X
maxP=1.
prob = np.random.uniform(minP,maxP,SampleSize)
startDate = datetime(2000, 1, 1) # Starting at 01-JAN-2000
dateStep = timedelta(days=1)
dates = np.array([startDate + i*dateStep for i in range(SampleSize)])
shiftList = np.random.randint(1, 26, SampleSize)
shiftDt = np.array([timedelta(days=np.float64(d)) for d in shiftList])
datesShifted = dates + shiftDt
t1 = pd.Series(data=datesShifted, index=dates)
Events = pd.DataFrame({'t1': t1, 'prob': prob})
Events['side'] = 2*np.random.randint(low = 0, high = 2, size = SampleSize)-1
Events
このprobを用いてベットサイズを計算し、平均アクティブなベットサイズを計算する。
Events['z']=Events["prob"].apply(lambda prob: (prob - 1/2) / (prob * (1 - prob))**0.5)
Events["signal"] =Events["z"].apply(lambda z: 2 * norm.cdf(z) - 1)
Events['avgSignal']=avgActiveSignals(Events)
Events.describe()
この記事が気に入ったらサポートをしてみませんか?