从历史数据建立调整后的连续期货合约

2024-10-01 17:25:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在学习Python,所以需要指导如何解决这个问题。在

我正在使用Quandl包下载历史期货数据(ESH2000, ESM2000, ESU2000, ESZ2000, ESH2001, ...., ESU2014)。现在我想为绘图和回溯测试构建连续的后调整契约。在

希望您能提供关于实现以下功能的软件包的建议(即pandas、numpy、straight python或其他软件包):

Quandle文件具有以下数据结构:

Date, Open, High, Low, Last, Change, Settle, Volume, Prev. Day Open Interest

ESH2000 data:
3/1/2000    1372.25 1388.75 1371            1384.5  60887   29558
3/2/2000    1384.25 1390.5  1372.5          1385    62489   30059
3/3/2000    1384.75 1414.5  1383.5          1410.5  65432   29923
3/6/2000    1411    1412.75 1386.25         1395    59860   29549
3/7/2000    1394.5  1404.5  1351            1351.75 85263   31256
3/8/2000    1352.75 1376    1348.5          1366    73911   30916
3/9/2000    1367    1405    1357.5          1404    7153    28164
3/10/2000   1403.25 1415.5  1394.25         1399    3192    27549
3/13/2000   1398    1415.75 1364.75         1383.75 2025    26719
3/14/2000   1380.25 1395.75 1359.5          1359.5  1207    25134


ESM2000 data:
3/1/2000    1396    1404    1389.75         1402.75 52  105
3/2/2000    1400.75 1407.75 1391.25         1402.75 91  147
3/3/2000    1400.75 1433    1400.75         1429.75 183 189
3/6/2000    1424.75 1428.75 1405.25         1415    366 379
3/7/2000    1412.5  1423    1370.25         1370.25 1160    1023
3/8/2000    1372.75 1393.75 1366.25         1384    981 1194
3/9/2000    1384.25 1423.5  1376.75         1423    49536   5974
3/10/2000   1423.25 1434.25 1412            1417.75 65615   9561
3/13/2000   1416.75 1418.25 1381.25         1401.75 69428   11559
3/14/2000   1401.25 1414.25 1376.75         1380.5  77793   12057

我想把新合同的成交量登记到新合同上。在

编辑添加:
由于ESH2000合约量在2000年3月9日下跌,随着交易员转向ESM2000合约,我需要“滚动”到新合约数据,然后再调整先前的值。所以在这个例子中,2000年3月9日新合同的结算值是1423,旧合同的结算值是1404,所以我想匹配它们。因此,我需要对旧合同的所有值加上19来进行调整。
编辑结束:

期望的输出是:Date, AdjOpen, AdjHigh, AdjLow, AdjClose (Settle), Vol, OI:

^{pr2}$

我现在正在阅读pandas文档,但不确定如何“比较”两个文件/数据帧,以及如何输出文件子集,然后进行反向调整,然后对历史上的每个附加合同执行此操作。在

不,我不是要求任何人帮我做这件事,只是希望能找到一个方向来集中我的学习努力。在


Tags: 文件数据编辑pandasdatadateopen历史
2条回答

使用包含?甚至starts-with

 //*[contains(@id, "searchpopupSCH_USER_")]
 //*[starts-with(@id, "searchpopupSCH_USER_")]

声明如下所示的变量:

public static final String TIME_STAMP = new SimpleDateFormat("ddMMyyHHmmss").format(Calendar.getInstance().getTime());

然后在xpath中:

driver.findElement(By.xapth("//htmltag[@id="searchpopupSCH_USER_".concat(TIME_STAMP + "]"));

根据您的要求,您可以更改日期格式

相关问题 更多 >

    热门问题