前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Github项目推荐 | 被昨天的股票吓哆嗦了吗,试试用Trump2Cash帮你赶紧脱坑

Github项目推荐 | 被昨天的股票吓哆嗦了吗,试试用Trump2Cash帮你赶紧脱坑

作者头像
AI研习社
发布2019-05-15 13:21:29
2.4K0
发布2019-05-15 13:21:29
举报
文章被收录于专栏:AI研习社AI研习社

昨天(2019.05.06)的国内股市大家也都看到了,川普的一句推特威力真的太可怕了......(虽然今天涨了一点回去,但是本质上还是亏了呀)

但是不用担心,这个机器人(本项目)会追踪唐纳德·特朗普(Donald Trump)的推文,并且在他提及到任何一家上市公司时会进行通知。当他发推特的时候,它会使用情绪分析来确定他的意见对这些公司是积极的还是消极的。然后,机器人将会根据预期的市场反应自动执行相关股票的交易。它还在推特 @Trump2Cash 上实时发布其调查结果的摘要。

有关本项目的背景信息,点击底部【阅读原文】戳链接看论文:https://medium.com/@maxbraun/this-machine-turns-trump-tweets-into-planned-parenthood-donations-4ece8301e722

Github项目地址:

https://github.com/maxbbraun/trump2cash

项目代码用Python编写,你可以在Google Compute Engine实例上运行。每当特朗普发推文时,它都会使用Twitter Streaming API得到通知。实体检测和情绪分析使用Google的Cloud Natural Language API(云自然语言API)完成,Wikidata Query Service(Wikidata查询服务)提供公司数据,用TradeKing API进行股票交易。

main模块定义了一个回调函数,处理传入的推文并开始将特朗普的推文分析结果传输出去:

代码语言:javascript
复制
def twitter_callback(tweet):    companies = analysis.find_companies(tweet)        if companies:        trading.make_trades(companies)        twitter.tweet(companies, tweet)        if __name__ == "__main__":    twitter.start_streaming(twitter_callback)

核心算法在分析和交易模块中实现。前者在特朗普推特的文本中检索对公司的提及,寻找它们的股票代码,并给推文打情绪分。后者则选择一种交易策略,即要么现在买进,然后在收盘时卖出;要么现在卖空,然后在收盘时买进以回补。twitter模块处理流媒体和发推输出摘要。

请按照以下步骤自行运行代码:

1. 创建虚拟机实例

查看快速入门,使用GoogleComputeEngine创建云平台项目和Linux虚拟机实例,然后通过SSH执行以下步骤。选择与你的首选价格和性能相匹配的预设机器类型。

容器

或者,你可以使用Dockerfile构建Docker容器并在ComputeEngine或其他平台上运行它。

代码语言:javascript
复制
docker build -t trump2cash .docker tag trump2cash gcr.io/<YOUR_GCP_PROJECT_NAME>/trump2cashdocker push gcr.io/<YOUR_GCP_PROJECT_NAME>/trump2cash:latest

2. 设置身份验证

从shell环境变量中读取不同API的身份验证密钥。每项服务都有不同的步骤来获取它们。

Twitter

登录你的Twitter帐户并创建一个新应用程序。在应用程序的Keys and Access Tokens(密钥和访问令牌)选项卡下,你将找到Consumer Key和Consumer Secret。导出到环境变量:

代码语言:javascript
复制
export TWITTER_CONSUMER_KEY="<YOUR_CONSUMER_KEY>"export TWITTER_CONSUMER_SECRET="<YOUR_CONSUMER_SECRET>"

如果你希望推文来自拥有该应用程序的同一帐户,只需在同一页面上使用访问令牌和访问令牌密钥即可。如果你想用其他帐户发送推文,请按照步骤获取访问令牌。然后导出到环境变量:

代码语言:javascript
复制
export TWITTER_ACCESS_TOKEN="<YOUR_ACCESS_TOKEN>"export TWITTER_ACCESS_TOKEN_SECRET="<YOUR_ACCESS_TOKEN_SECRET>"

Google

按照Google Application Default Credentials的说明创建、下载和导出服务帐户密钥。

代码语言:javascript
复制
export GOOGLE_APPLICATION_CREDENTIALS="/path/to/credentials-file.json"

你还需要为你的Google云平台项目启用云自然语言API。

TradeKing

登录你的TradeKing帐户并创建一个新应用程序。在应用程序的Details 按钮后面,你将找到Consumer Key,Consumer Secret,OAuth (Access) Token和Oauth (Access) Token Secret。将它们全部导出到环境变量:

代码语言:javascript
复制
export TRADEKING_CONSUMER_KEY="<YOUR_CONSUMER_KEY>"export TRADEKING_CONSUMER_SECRET="<YOUR_CONSUMER_SECRET>"export TRADEKING_ACCESS_TOKEN="<YOUR_ACCESS_TOKEN>"export TRADEKING_ACCESS_TOKEN_SECRET="<YOUR_ACCESS_TOKEN_SECRET>"

同时导出你的TradeKing帐号,你可以在My Accounts(我的帐户)下找到:

代码语言:javascript
复制
export TRADEKING_ACCOUNT_NUMBER="<YOUR_ACCOUNT_NUMBER>"

3.安装依赖库

有一些库依赖项,你可以使用pip进行安装:

代码语言:javascript
复制
$ pip install -r requirements.txt

4.运行测试

通过使用下面的命令运行pytest测试,验证是否运行正常:

代码语言:javascript
复制
$ export USE_REAL_MONEY=NO && pytest *.py -vv

5.运行基准测试

基准测试报告显示了分析和交易算法的当前实现将如何对历史数据执行。你可以再次运行它来对你可能做出的任何更改进行基准测试:

代码语言:javascript
复制
$ python benchmark.py > benchmark.md

6.启动机器人

启用使用你的资金的真实订单:

代码语言:javascript
复制
$ export USE_REAL_MONEY=YES

使用以下命令让代码在后台运行:

代码语言:javascript
复制
$ nohup python main.py &

License

Copyright 2017 Max Braun

根据Apache许可证2.0版(“许可证”)获得许可;除非符合许可,否则你不得使用此文件。你可以在以下位置获取许可证副本:

代码语言:javascript
复制
http://www.apache.org/licenses/LICENSE-2.0
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-05-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AI研习社 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 创建虚拟机实例
    • 容器
    • 2. 设置身份验证
      • Twitter
        • Google
          • TradeKing
          • 3.安装依赖库
          • 4.运行测试
          • 5.运行基准测试
          • 6.启动机器人
          • License
          相关产品与服务
          容器服务
          腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档