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

昨天(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模块定义了一个回调函数,处理传入的推文并开始将特朗普的推文分析结果传输出去:

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或其他平台上运行它。

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。导出到环境变量:

export TWITTER_CONSUMER_KEY="<YOUR_CONSUMER_KEY>"export TWITTER_CONSUMER_SECRET="<YOUR_CONSUMER_SECRET>"

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

export TWITTER_ACCESS_TOKEN="<YOUR_ACCESS_TOKEN>"export TWITTER_ACCESS_TOKEN_SECRET="<YOUR_ACCESS_TOKEN_SECRET>"

Google

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

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。将它们全部导出到环境变量:

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(我的帐户)下找到:

export TRADEKING_ACCOUNT_NUMBER="<YOUR_ACCOUNT_NUMBER>"

3.安装依赖库

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

$ pip install -r requirements.txt

4.运行测试

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

$ export USE_REAL_MONEY=NO && pytest *.py -vv

5.运行基准测试

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

$ python benchmark.py > benchmark.md

6.启动机器人

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

$ export USE_REAL_MONEY=YES

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

$ nohup python main.py &

License

Copyright 2017 Max Braun

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

http://www.apache.org/licenses/LICENSE-2.0

本文分享自微信公众号 - AI研习社(okweiwu)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-05-07

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏VRPinea

3.25 VR扫描:阿里巴巴收购以色列创企InfinityAR;任天堂Labo VR 套件有6 DOF控制器?

今日,阿里巴巴宣布收购以色列AR初创公司InfinityAR,收购后InfinityAR将加入阿里巴巴旗下的以色列机器视觉研究实验室。据悉,阿里巴巴在2016年...

7620
来自专栏FreeBuf

使用SSRF泄漏云环境中的Metadata数据实现RCE

本文我将向大家分享一个新的非常有意思的漏洞。利用该漏洞可以为我们泄漏云环境中的Metadata数据,并进一步的实现远程代码执行(RCE )。

13130
来自专栏原创分享

nginx0.1.0 access_handler模块源码分析

access模块主要是对连接到nginx中的客户端进行权限管理,nginx会根据access模块注册的命令,在解析命令的时候,遇到对应的命令的时候,会调用acc...

9660
来自专栏葫芦

linux svn简明配置

安装配置svn #yum install subversion #mkdir /opt/u01 #svnadmin create /opt/u01/lie...

15510
来自专栏京程一灯

怎样与 CORS 和 cookie 打交道[每日前端夜话0x4A]

CORS 与 cookie 在前端是个非常重要的问题,不过在大多数情况下,因为前后端的 domain 一般是相同的,所以很少去关心这些问题。或者只是要求后端设置...

11330
来自专栏码匠的流水账

聊聊openjdk的BufferPoolMXBean

java.management/java/lang/management/PlatformManagedObject.java

11030
来自专栏业余草

深入浅出LinkedHashMap原理和源码解毒

最近,我知道有好几个同学会偶尔的阅读阅读我的博客。我倍感压力,他都是 CTO 级的人物,我经常向他们取经,膜拜他们。

34830
来自专栏思科新闻

思科路由器常用命令总结

20040
来自专栏叉叉敌

访问Apache服务器自动跳转到https协议

版权声明:转载注明出处 https://blog.csdn.net/weixin_42514606/article/details/89367932 ...

12630
来自专栏Hadoop实操

0564-6.1.0-HDFS超级用户(Superuser)和HDFS管理员(Administrator)的区别

在前面的文章《0550-6.1-如何将普通用户增加到HDFS的超级用户组supergroup》中Fayson介绍过如何将普通用户设置为HDFS的超级用户,从而可...

85420

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励