如何使用Numpy/Pandas创建OHLC数据帧
.0075
到.02
之间,或范围可以指定为变量。希望看到随机价格大致在这些边界内移动李>1.1904
的第一行上使用Close
值(参见下面的示例)李>np.random.seed
),因此数据帧是可再现的李>我正在尝试生成模拟外汇数据,以便使用Numpy/pandas为pandas问题创建可复制的示例。本question涵盖了类似的数据要求,但使用开放、高、低、封闭数据的外汇数据示例可能很有用,并有助于避免将大量数据粘贴到问题中
作为数据框外观的示例,我看到周五的欧元/美元汇率如下:
eur = {"open" : 1.19160,
"high" : 1.19371,
"low" : 1.18739,
"close" : 1.1904}
pd.DataFrame(eur,index=['19/3/2021'])
这是一个基于前面提到的question的伪/模拟数据示例,它给出了关于如何使用np.random
生成数据的想法。我添加了重采样并转换为OHLC,但不确定如何使用Numpy生成/控制数据
periods = 250
eurusd = pd.DataFrame({
'ticker':np.repeat( ['eurusd'], periods ),
'date':np.tile( pd.date_range('1/1/2011', periods=periods, freq='H'), 1 ),
'price':(np.random.randn(periods).cumsum() + 10) })
eurusd.index = pd.to_datetime(eurusd.date)
eurusd.price.resample('D').ohlc()
我已经更新了我生成这些数据的尝试(请参阅下面的“到目前为止我尝试了什么”),在从小时数据重新采样到每日数据后生成OHLC列。我仍在研究Numpy数据生成元素,以便每天生成大约.0075
的数据
这是我的答案,但我很高兴看到代码被细化/最小化的其他答案
生成带有种子的dataframe,以允许其他人复制数据
如果需要,绘制数据:
变化不大。只是让代码更简洁而已
您可以像上面那样随机抽取欧元/美元样本,或者使用免费quandl API获取历史中点值作为起点,然后从正态分布中抽取
'True Range'
值,平均值0.0075
和适当的标准偏差,并从中模拟高点和低点:result 您还可以以类似的方式应用随机正态误差来模拟
'Open'
值相关问题 更多 >
编程相关推荐