Bri*_*ian 1 random numpy quantitative-finance dataframe
什么是模拟随机回报的快捷方法.我知道numpy.random.但是,这并没有指导我如何模拟资产回报.
我试过了:
import numpy as np
r = np.random.rand(100)
Run Code Online (Sandbox Code Playgroud)
但这并不准确.其他人如何处理此事?
我建议采用以下两种方法之一:
One:
假设回报通常分布,平均值等于0.1%,标准偏差约为1%.这看起来像:
import numpy as np
np.random.seed(314)
r = np.random.randn(100) / 100 + 0.001
Run Code Online (Sandbox Code Playgroud)
seed(314) 将随机数生成器设置在特定点,这样如果我们都使用相同的种子,我们应该看到相同的结果.
randn 从正态分布中拉出来.
我也建议使用pandas.它是一个实现DataFrame类似于的对象的库R
import pandas as pd
df = pd.DataFrame(r)
Run Code Online (Sandbox Code Playgroud)
然后,您可以绘制累积回报,如下所示:
df.add(1).cumprod().plot()
Run Code Online (Sandbox Code Playgroud)
Two:
第二种方法是假设返回是正常分布的日志.这意味着log(r)是正常的.在这种情况下,我们拉出正态分布的随机数,然后使用这些值作为指数e.它看起来像这样:
r = np.exp(np.random.randn(100) / 100 + 0.001) - 1
Run Code Online (Sandbox Code Playgroud)
如果你绘制它,它看起来像这样:
pd.DataFrame(r).add(1).cumprod().plot()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
183 次 |
| 最近记录: |