首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >外汇数据-分析日内数据

外汇数据-分析日内数据
EN

Stack Overflow用户
提问于 2013-04-07 07:26:55
回答 1查看 974关注 0票数 3

我最近刚找到熊猫和蟒蛇。我已经看过韦斯的书了,而且我还反复地在这里搜索了熊猫贴着标签的问题,以此来收集这个问题的答案。所以我试过..。不幸的是,我那贫乏的编程智能正在闪耀;)

以下是我要做的事:

我有日内外汇数据(每小时),我试图做一些相当简单的分析。我希望测试价格多久一次测试每日开放水平,或者拒绝它或通过它。

对我来说很简单..。我只是迷失在把所有的组件结合在一起,最终得到一个完整的解决方案。

在psuedocode中,我想要实现的是:

  • 通过read_csv读取数据
  • 计算每个每日开放水平(使用at_time?)
  • 所有每小时的蜡烛
    • 测试烛光是否低于每日开放水平。
    • 测试蜡烛的关闭是否高于每日开放的水平。

如果有人能指出正确的方向,我会非常感激的。我到了我要放弃的时候了。我觉得答案应该很简单,但我现在迷失了方向

下面是我一直在使用的数据:

代码语言:javascript
复制
data = pd.read_csv('data/GBPUSD60.csv', 
                names=['Date','Time','Open','High','Low','Close','Volume'],
                parse_dates={'Timestamp': ['Date', 'Time']},
                index_col=['Timestamp'])

                # Get rid of the volume
                del data['Volume']

由此产生的DF:

代码语言:javascript
复制
                     Open    High    Low     Close   
Timestamp                   
2012-11-14 04:00:00  1.58766 1.58890 1.58749 1.58877      
2012-11-14 05:00:00  1.58874 1.58887 1.58819 1.58849      
2012-11-14 06:00:00  1.58849 1.58921 1.58831 1.58890      
2012-11-14 07:00:00  1.58890 1.58895 1.58811 1.58876      
2012-11-14 08:00:00  1.58874 1.58934 1.58841 1.58849      

我想我需要做两种方法之一:

  • 要么按日分组数据,然后遍历行以测试日内蜡烛。
  • 其次,我可以使用df.apply函数并生成一个函数来测试蜡烛。

这两种方法的问题是,我在访问我需要的字段时遇到了各种各样的麻烦。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-07 12:54:00

你的伪代码被发现了。这是语义

步骤1:创建日期列

代码语言:javascript
复制
df['date'] = [i.date() for i in df.index]

第二步:每天开放(假设开盘价是当天第一支蜡烛上的开放栏)

代码语言:javascript
复制
df['dailyOpen'] = df.groupby('date').open.transform(lambda s: s[0])

第三步:比较

代码语言:javascript
复制
df['flag'] = (df.low < df.dailyOpen) & (df.close > df.dailyOpen)

如果您想要一天中发生上述情况的次数,这应该是可行的。

代码语言:javascript
复制
res = df.groupby('date').flag.sum()
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15859961

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档