0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

怎样将树莓派转换为股票交易所监控机器人

454398 来源:网络整理 作者:佚名 2019-11-01 17:03 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

步骤1:准备Raspberry Pi

我的特殊设置是Raspberry pi 3,带有外部WD Pi Drive 314Gb磁盘。不需要外部磁盘。 SD卡应该足够了,除非您有数千只库存要监视。..

我将不介绍如何设置raspberry pi使其正常运行。

我假设您已经运行了树莓派,并且可以访问互联网。

该项目的文件可以在github的github上找到。将文件克隆到您的树莓派中,发出在下面的命令中,请在raspberry pi命令行上进行操作:

git clone https://github.com/kal001/stocks.git

您应该在树莓派pi中安装git才能起作用。如果不是这种情况,请先安装它:

sudo apt-get install git-core

您现在应该拥有一个包含所有文件的 “ stocks” 文件夹在上面。用 ls -la 列出它们,以查看是否一切正常。

步骤2:创建数据库

安装sqlite3:

sudo apt-get install sqlite3

运行sqlite3创建数据库文件( stockdata.sqlite ):

sqlite3 stockdata.sqlite

在sqlite提示符下,通过阅读 sql文件stocks_db_structure.sql 中的命令来创建表结构:

sqlite》 .read stocks_db_structure.sql

检查表是否正确创建并退出:

sqlite》 .tables

currencies exchanges movements portfolio stocks

dividends hollidays options quotes strategies

sqlite》 .exit

您现在应该在数据库中拥有一个stockdata.sqlite文件。

所有表都应该为空。您可以根据需要填充它们。为此,请检查文件 database.html ,该文件列出了数据库中的所有表以及每个字段的含义。

如果需要用我使用的一些 样本数据 填充表,再次运行sqlite,这次从 stocks_db_data.sql :

sqlite3 stockdata.sqlite

sqlite》 .read stocks_db_data.sql

要测试一切是否正常,请列出 库存 表中的行,例如:

sqlite》 select * from stocks;

1|Millenium BCP|ELI:BCP|BCP.LS|1|False|15|||1|stock

2|The Navigator Company|ELI:NVG|NVG.LS|1|True|15|2.88|2016-06-10T17:35:00+02:00|1|stock

3|EURO Dollar exchange ratio|EURUSD|EURUSD=X|3|True|60|1.1253|2016-06-12T14:41:38.815735+00:00||currency

4|Jeronimo Martins|ELI:JMT|JMT.LS|1|True|15|13.77|2016-06-10T17:36:00+02:00|1|stock

5|Galp Energia|ELI:GALP|GALP.LS|1|False|15|||1|stock

6|EDP Energias de Portugal|ELI:EDP|EDP.LS|1|False|15|||1|stock

7|REN Redes Energeticas Nacionais|ELI:RENE|RENE.LS|1|False|15|||1|stock

8|CTT Correios de Portugal SA|ELI:CTT|CTT.LS|1|False|15|||1|stock

9|Qlik Technologies, Inc.|NASDAQ:QLIK|QLIK|4|True|15|30.0|2016-06-10T16:00:00-04:00|2|stock

并退出:

sqlite》 .exit

您可以在文件 database.html 中找到每个数据库表的描述。

最重要的表格是: 库存 ,用于描述您感兴趣的库存; 交易所 ,您可以在其中定义将要交易的证券交易所(例如,定义交易所的开放和关闭时间)

第3步:安装要求

从安装pip开始。

pip是python的软件包安装程序。安装pip后,安装python包非常容易。

要安装pip,请在命令行中输入:

sudo apt-get install python-pip

现在安装所有必需的软件包:

sudo pip install -r requirements.txt

现在您是准备开始使用其中包含的几个python脚本。

这些是:

monitor.py -用于监视持续不断的股市

stock_telegrambot.py -这是一种Telegram机器人,它将发送和接收电报消息以与您的脚本/股票

ggetquote.py -该脚本可打印 stocks 中所有股票的最新报价表,其字段为Tracked = True

backtest.py -用于测试表中保存的某些投资策略的脚本策略,根据历史数据,并根据该策略返回股票的价值。

每个脚本均在后续步骤中进行了详细说明。

步骤4:配置电报/创建Bot

如果您尚未在所有设备(电话,计算机,平板电脑等)中安装Telegram,并创建了一个帐户。

Telegram是一种非常快速,安全的方法,灵活的Messenger应用程序。它可以在iOS,Android,Windows,Mac,Linux等系统中运行。

它允许您创建一个“机器人”,该机器人是处理消息的程序。在这种情况下,我们将使用python编写一个与用户交互的脚本,并且该脚本在树莓派中运行。

A)创建一个机器人

您必须与两个父亲“交谈”才能创建机器人。在此处查看说明。

打开电报并与Botfather聊天时,写/newbot 创建一个新的Bot。

Telegram会要求您输入名称到机器人。随意命名,例如 stockserver 。

Telegram会要求输入一个以bot结尾的用户名。例如 stockserver_bot 。

Botfather然后创建了该bot,并应为您提供将来访问它的密钥。像这样的

完成!祝贺您的新机器人。您可以在telegram.me/stockserver_bot中找到它。现在,您可以添加有关机器人的部分和个人资料图片的描述,请参阅/help以获取命令列表。顺便说一句,当您完成酷机器人的创建后,如果您想要一个更好的用户名,请ping我们的Bot支持。只需确保该机器人已完全正常运行,即可。

使用此令牌访问HTTP API:

234126601:T7SO2lNWJbChPB2hfKwQxDe3PGI

有关Bot API的描述,请参见以下页面:https://core.telegram.org/bots/api

关键是带粗体的 2341 。.. 上方。您需要将该密钥插入文件 stocks.ini 中:

[Telegram]

token = 2341.。.

我建议您复制粘贴此消息并将其插入到名为的文件中》 stockserver_bot.txt ,并将其保存以备将来使用。

现在,您可以告诉您的机器人它将接受哪些命令。此步骤是可选。但是,如果这样做,将会简化在Telegram客户端中发出命令的过程。

在两个父亲之间编写/setcommands ,然后选择您的漫游器。现在,编写您的漫游器应理解的命令:

buy - Buy shares

sell - Sell shares

dividend - Set new dividend

status - Check bot status

portfolio - Get current portfolio

returns - Get current portfolio returns

movements - Get movements for a stock

B)查找您的电报用户ID

您的漫游器需要知道您的用户ID

转到电报,然后将带有 /start 的消息发送到您的机器人。

p》

由于树莓派尚未运行该机器人,您将无法回答。

现在运行脚本 gettelegramuid.py 。它会在Telegram中打印您的用户ID编号,该编号是从您发送给他的消息/start中获得的。

将此数字(类似123456789)复制到文件stocks.ini中:

[Telegram]

token = 。..

uid = 123456789

您还可以仅检查 gettelegramuid.py 了解其工作原理。仅有几行。

步骤5:Monitorstock.py

monitor.py 是一个python脚本,可以:

根据不同的策略查看是时候购买还是出售了。

在表 策略 中具有 Active = True 的所有策略都将被检查为看看是否:

A)是时候买入-当股票连续连续下跌几天后又跌开

B)是时候卖出-如果指定了最低限度达到回报

将发送电报消息,以提醒用户该是购买/出售股票的时候了。

获取跟踪的股票报价,并将其存储在数据库中。

表 stocks 中具有 Tracked = True 的所有股票都是通过定义的 间隔 采样时间。报价存储在 quotes 表中。

scipt检查交易所是否开放(考虑每个证券交易所的开放时间,周末和节假日) ),然后再执行任何先例操作。

步骤6:使Monitorstock.py定期运行并启动Stock_telegrambot.py

A )将monitorstock.py设置为定期运行

您应安装monitostock.py使其定期运行。为此,请在树莓派中编写 crontab -e 。您应该看到预定义的编辑器(在我的情况下为“ nano”)显示树莓派pi定期运行的任务列表。

在此文件末尾添加:

MAILTO=“”

*/1 * * * * cd ~/bolsa && python monitorstock.py

0 12 * * * /home/fernando/bolsa/restartbot.sh

按Ctrl + X退出。回答Y保存更改,然后按Enter。您将在提示符后回来。

第一行告诉crontab不要发送包含执行结果的电子邮件。否则,您将每分钟收到一封电子邮件!!

第二行更改为安装脚本的文件夹,然后告诉crontab运行 python monitorstock.py 每分钟(*/1)。例如,如果要将周期更改为5分钟,请将*/1更改为*/5。

第三行每天在12:00运行bash脚本。脚本为 restartbot.sh 。如果运行,该脚本将停止stock_telegrambot.py,然后立即再次启动它。

我发现运行几天后,由于某种无法解释的原因,脚本stock_telegrambot.py停止了响应,甚至

每天停止并重新启动一次,以避免这种现象。

B)启动 stock_telegrambot.py

编写 。/startbot.sh 。您的机器人应该启动,并且您会收到这样的消息,并在电报中进行确认:

Start stock_telegrambot.py

v0.0.2-5-gf75a193

2016-06-12 21:33:57.458815

该机器人将是一个正在运行的任务,在后台运行。它将永远运行。

如果要查找任务,请写 ps aux 。这将打印在树莓派中运行的所有任务的列表。找到说“ python stock_telegrambot.py” 的行。

如果要停止bot,请写 。/killbot.sh 。确认任务没有执行,再次编写 ps aux 。

C)将树莓派启动时放置stock_telegrambot.py

如果您希望机器人在树莓派启动时每次启动,请发出 sudo nano/etc/rc.local

该文件中的命令行 /home/fernando/bolsa/startbot.sh ,位于最后一个退出0的行之前。按ctrl + x退出,并回答Y保存

第7步:播放

现在已经安装了所有内容,您可以使用电报来

/购买-告诉电报向您的投资组合中添加一些股票

以每只股票15欧元的价格购买50股ELI:JMT的示例:

/buy 50 eli:jmt 15

Success. Bought 50.00 ELI:JMT @ 15.000. New quantity on hand 400.00. New average price 11.875

/出售-卖出您投资组合中的一些股票

以16欧元出售50股ELI:JMT的示例每只股票:

/sell 50 eli:jmt 16

Success. Sold 50.00. New quantity on hand 350.00.

/投资组合-返回您当前的投资组合

示例:

/portfolio

QTY STOCK PRICE

350.00 Jeronimo Martins (ELI:JMT) 11.875

30.00 Qlik Technologies, Inc. (NASDAQ:QLIK) 30.000

/回报-打印投资组合中每个资产的当前回报

示例:

/returns

QTY STOCK RETURN %

350.00 Jeronimo Martins 12.8

30.00 Qlik Technologies, Inc. -0.1

/状态-检查正在运行的机器人的状态

示例:

/status

Ok. Running

v0.0.2-5-gf75a193

/股利-告诉机器人该股票的新股利

将ELI:JMT的每股股利设置为0.7欧元的除息示例日期2020年1月1日:

/dividend eli:jmt 0.7 2020-01-01

Ok. Dividend set for ELI:JMT

就是这样!

责任编辑:wv

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 机器人
    +关注

    关注

    213

    文章

    30624

    浏览量

    219703
  • 树莓派
    +关注

    关注

    122

    文章

    2070

    浏览量

    109784
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    RK3576机器人核心:三屏异显+八路摄像头,重塑机器人交互与感知

    引擎,访问并显示米尔官方网页,承担人机信息查询与交互角色。· MINI DP接口(27寸显示器):实时显示8路摄像头捕捉的图像预览,充当机器人的"视觉监控中心"
    发表于 10-29 16:41

    基于树莓(RaspberryPi)构建高效实时监控系统

    由于树莓体积小、可开发性强等特性,常被用于视频监控场景中,结合 ZeroNews,可实现用户在任意位置都能实时安全得访问视频监控系统。 先决条件:
    的头像 发表于 09-22 15:14 882次阅读
    基于<b class='flag-5'>树莓</b><b class='flag-5'>派</b>(RaspberryPi)构建高效实时<b class='flag-5'>监控</b>系统

    工业机器人的特点

    的基础,也是三者的实现终端,智能制造装备产业包括高档数控机床、工业机器人、自动化成套生产线、精密仪器仪表、智能传感器、汽车自动化焊接线、柔性自动化生产线、智能农机、3D 打印机等领域。而智能制造装备中工业
    发表于 07-26 11:22

    树莓分类器:用树莓识别不同型号的树莓

    在本教程系列的第一部分中,您将学习如何使用树莓AI摄像头来检测不同的树莓型号。本系列由DavidPlowman创建,他是树莓
    的头像 发表于 06-13 16:39 1003次阅读
    <b class='flag-5'>树莓</b><b class='flag-5'>派</b>分类器:用<b class='flag-5'>树莓</b><b class='flag-5'>派</b>识别不同型号的<b class='flag-5'>树莓</b><b class='flag-5'>派</b>!

    新视角解锁:树莓“云”驾驶扫地机器人

    。你是否曾在YouTube上看到过猫咪坐在Roomba扫地机器人上的热门视频,并幻想自己也能这么做?没有?只有我这么想吗?好吧,对我来说幸运的是,至少还有一个
    的头像 发表于 06-04 15:33 449次阅读
    新视角解锁:<b class='flag-5'>树莓</b><b class='flag-5'>派</b>“云”驾驶扫地<b class='flag-5'>机器人</b>!

    树莓“吉尼斯世界记录”:树莓的性能发挥到极致的项目!

    完成的许多酷炫项目。这就引出了一个问题——你该如何树莓的性能推向极限呢?历经13年的项目实践和树莓各型号的发展,你会惊讶地发现,
    的头像 发表于 05-22 16:53 1216次阅读
    <b class='flag-5'>树莓</b><b class='flag-5'>派</b>“吉尼斯世界记录”:<b class='flag-5'>将</b><b class='flag-5'>树莓</b><b class='flag-5'>派</b>的性能发挥到极致的项目!

    能够精准定位的树莓机器人

    我为我的自制机器人BigRob(同样由树莓驱动)配备了基于树莓的精准GPS导航系统。本项目所用组件硬件组件NV08C-CSMx1NV08
    的头像 发表于 05-17 08:33 856次阅读
    能够精准定位的<b class='flag-5'>树莓</b><b class='flag-5'>派</b><b class='flag-5'>机器人</b>!

    搭建树莓网络监控系统:顶级工具与技术终极指南!

    树莓网络监控系统是一种经济高效且功能多样的解决方案,可用于监控网络性能、流量及整体运行状况。借助树莓
    的头像 发表于 05-14 15:32 1220次阅读
    搭建<b class='flag-5'>树莓</b><b class='flag-5'>派</b>网络<b class='flag-5'>监控</b>系统:顶级工具与技术终极指南!

    盘点#机器人开发平台

    地瓜机器人RDK X5开发套件地瓜机器人RDK X5开发套件产品介绍 旭日5芯片10TOPs算力-电子发烧友网机器人开发套件 Kria KR260机器人开发套件 Kria KR260-
    发表于 05-13 15:02

    树莓“复活”我的世界爬行者,现实版“噩梦”机器人诞生!

    关系增添了新意。利用我们喜爱的单板计算机(SBC),Lopez打造了一款依赖于树莓的爬行者机器人,并且甚至集成了人工智能。别担心,这个爬行者机器人并不会真的爆炸。
    的头像 发表于 05-07 17:31 510次阅读
    <b class='flag-5'>树莓</b><b class='flag-5'>派</b>“复活”我的世界爬行者,现实版“噩梦”<b class='flag-5'>机器人</b>诞生!

    树莓PLC:让工业自动化进入DIY时代!

    PLC和树莓简介可编程逻辑控制器(PLC)是一种专为各种行业的流程自动化和机械控制而设计的工业计算机。PLC以其高可靠性、坚固耐用性著称,能够处理诸如管理传送带、监控传感器或操作机器人
    的头像 发表于 04-11 15:32 1220次阅读
    <b class='flag-5'>树莓</b><b class='flag-5'>派</b>PLC:让工业自动化进入DIY时代!

    分享8个用树莓做的黑科技产品!

    1.六轴机器人视觉控制系统在上海国际嵌入式展上,基于树莓CM4的六轴机器人视觉解决方案惊艳全场。该系统集成了AI摄像头、EtherCAT总线控制模块和15.6寸HMI人机界面,
    的头像 发表于 03-25 09:21 1683次阅读
    分享8个用<b class='flag-5'>树莓</b><b class='flag-5'>派</b>做的黑科技产品!

    机器人产业链企业IPO进展

    自2024年以来,点开各大交易所的IPO项目动态,“终止”二字抢占了视线。据高工机器人不完全统计,仅2024年,就约20家机器人产业链企业终止IPO。
    的头像 发表于 02-13 09:58 2049次阅读

    【「具身智能机器人系统」阅读体验】2.具身智能机器人的基础模块

    具身智能机器人的基础模块,这个是本书的第二部分内容,主要分为四个部分:机器人计算系统,自主机器人的感知系统,自主机器人的定位系统,自主机器人
    发表于 01-04 19:22

    开源项目!OpenCat—— 一个全能的平价四足机器人

    上种出少量庄稼。有一天,一团曾为仙界私厨服务的火种从天而降。很快,刀耕火种的农业在人间繁荣起来。” 这个机器人是我学习常规树莓初学者套件中所有组件的试验场。我从工艺棒开始,然后切换到3D 打印框架以
    发表于 12-16 11:44