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

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

    关注

    211

    文章

    28578

    浏览量

    207794
  • 树莓派
    +关注

    关注

    117

    文章

    1710

    浏览量

    105773
收藏 人收藏

    相关推荐

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

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

    【「具身智能机器人系统」阅读体验】2.具身智能机器人大模型

    ,能够利用\"思维链\"的技术复杂任务分解为多个子任务,以渐进的方式解决问题。这不仅提高了任务的成功率,也显著增强了系统的鲁棒性,使得机器人可以更高效地应对复杂环境和多样化需求
    发表于 12-29 23:04

    【「具身智能机器人系统」阅读体验】+初品的体验

    《具身智能机器人系统》 一书由甘一鸣、俞波、万梓燊、刘少山老师共同编写,其封面如图1示。 本书共由5部分组成,其结构和内容如图2示。 该书可作为高校和科研机构的教材,为学生和研究人员提供系统
    发表于 12-20 19:17

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

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

    智驾科技企业地平线登陆港交

    近日,智驾科技企业地平线(地平线机器人-W,股票代码:9660.HK)在香港交易所主板成功挂牌上市,募资总额高达54.07亿港元,成为港股今年最大的科技IPO。
    的头像 发表于 10-28 16:37 308次阅读

    什么是树莓树莓是什么架构的

    什么是树莓 树莓(Raspberry Pi,简写为RPi,别名为RasPi/RPI)是由英国“Raspberry Pi 慈善基金会”开发的一款为学习计算机编程教育而设计的微型电脑。
    的头像 发表于 10-22 17:33 1138次阅读

    Al大模型机器人

    金航标kinghelm萨科微slkor总经理宋仕强介绍说,萨科微Al大模型机器人有哪些的优势?萨科微AI大模型机器人由清华大学毕业的天才少年N博士和王博士团队开发,与同行相比具有许多优势:语言
    发表于 07-05 08:52

    工业机器人数据采集远程监控平台是什么

    关节运动轨迹等,并提供远程控制和诊断功能。主要功能特点包括: 1. 数据采集:平台能够从工业机器人控制器、传感器和其他相关设备中采集数据,并将其转换为可用的格式。 2. 实时监控:能够实时显示工业
    的头像 发表于 06-20 16:05 473次阅读

    工业机器人控制柜的组成有哪些

    的组成,包括硬件和软件两个方面。 一、硬件组成 电源模块 电源模块是控制柜的能源供应部分,它负责输入的交流电转换为机器人所需的直流电。电源模块通常包括整流器、滤波器、稳压器和保护电路等。整流器
    的头像 发表于 06-16 15:13 1706次阅读

    Hailo联手树莓,开创人工智能新纪元

    近日,人工智能处理器领导品牌Hailo正式宣布与树莓展开深度合作。Hailo将为树莓推出专用AI套件,支持树莓
    的头像 发表于 06-06 16:08 770次阅读

    树莓携手Hailo为其新品注入人工智能功能

    套件用于支持树莓5的AI功能。此次合作将以先进的人工智能功能助力专业以及创作爱好者在智能家居、安全、机器人等领域中提升解决方案效率。 Hailo的首席执行官兼联合创始Orr Dan
    的头像 发表于 06-06 10:18 430次阅读

    BlackBerry宣布与AMD合作革新下一代机器人系统

    德国,纽伦堡 – 2024年4月9日 – 在今日举行的国际嵌入式展会(Embedded World)上,BlackBerry(纽约证券交易所代码:BB;多伦多证券交易所代码:BB)宣布与AMD合作,旨在通过实现新水平的低延迟、低抖动和可重复确定性,革新下一代
    的头像 发表于 04-10 14:39 695次阅读

    【开源作品】基于树莓4B、ESP32制作的桌面机器人、气象站、立方光!

    ;gt;>点此查看全文 基于树莓 4B DIY 能笑会动的桌面机器人 Emo是一款基于树莓4做的个人伴侣
    发表于 03-05 16:52

    路特斯电动汽车部门拟3月底前在纳斯达克上市

    近日,据Automotive News Europe报道,知名跑车制造商路特斯的电动汽车部门Lotus Technology(简称Lotus Tech)正积极筹备在今年3月底之前于美国纳斯达克股票交易所正式挂牌上市。这一消息引起了业界和投资者的广泛关注。
    的头像 发表于 02-06 16:44 3270次阅读

    基于树莓的四足喷水机器人设计

    今天小编给大家带来的是来自B-AROL-O团队带来的基于树莓的四足喷水机器人,该机器人可以在农场环境中自主导航,识别需要浇水的植物并自动浇水,视觉系统采用的是 Luxonis 的 O
    的头像 发表于 01-22 09:19 1977次阅读
    基于<b class='flag-5'>树莓</b><b class='flag-5'>派</b>的四足喷水<b class='flag-5'>机器人</b>设计