NAS也能炒股赚钱!大数据下的股票神器「instock」极空间部署教程
大家好,这里是Cherry,喜爱折腾、捡垃圾、玩数码,热衷于分享自己的数码玩耍经验~
前言
国庆前后,我们的大A数次跌宕起伏,无数新股民也涌入并领取了人生第一桶金,或吸取了第一次教训,反正我是属于后者,于是我决定再也不入股,直到我发现了这个NAS炒股的项目!
有很多股民朋友觉得,自己对股市掌握的不足,是因为对信息掌握不足,对资金流量知晓不多导致的。如果有这样一个项目,每天会抓取海量的资金流向信息,并且计算各类技术指标进行展示,那么能对你的选购有一定帮助吗?
今天,cherry为大家介绍一款无意中发现的自托管选股工具——Instock,该项目每天数次收集股票大数据信息,并通过表格展示。

声明:股市有风险,数据不可信!本教程仅为技术性文章,指导如何使用docker和数据库,因部署该项目产生的一切后果,本文、本人概不负责。
部署机介绍
本期教程依旧选择极空间Z423标准版,极空间Z423标准版使用AMD R5 5625U处理器,拥有超高的6核12线程,最高支持64GB DDR4 3200Mhz内存。在处理docker、虚拟机、多线程数据同步备份中,表现出了强劲的性能,可以说是目前成品NAS中的性能天花板级别的存在。
目前,极空间NAS上线了SSH、SSL、DDNS等功能,允许我们将域名直接绑定到NAS中使用,满足无极空间客户端场景,或直接使用容器的需求,让我们更自由的实现不同网络环境下的配置需求。
除了极空间Z423标准版/旗舰版外,极空间Z4 Pro性能版也是值得购买的一款型号,其采用N97 4核4线程处理器,CPU性能比经典款N5105提升约150%,GPU性能提升约128%,是现如今的NAS性能扛把子。
一、系统部署
1、导入/下载镜像
本项目需要使用instock和mariadb/mysql两个容器,cherry为大家准备了本项目需要使用到的容器镜像包,已解决网络问题无法下载容器镜像的问题。通过网盘进行下载EXE文件后,双击解压成容器镜像。
首先将解压后的tar格式的镜像包上传到极空间私有云中,接着打开docker应用,选择镜像-本地镜像-导入镜像-从极空间导入。

两个包都要导入才可以正确部署。

2、安装mariadb数据库
切换到镜像-本地镜像,首先选择mariadb数据库镜像,点击添加到容器。

为了确保数据库的性能,建议大家取消性能限制。

【文件夹路径】:极空间docker会默认一个/var/lib/mysql的装载路径,我们只需要选择,并点击编辑。

然后在弹出的文件夹列表中,在常用位置新建一个instock文件夹并进入后,点击确定。

完成后,会得到如下图所示的路径映射,我们将数据库的/var/lib/mysql目录,保存到了极空间NAS的/SATA存储11/docker/instcok目录下。

【端口】:mariadb和mysql类似,默认的是3306端口。但是为了以后数据库不冲突,建议大家将本地端口配置为不冲突的高位端口,比如33306。

【环境】:在环境变量中,我们需要配置一个mysql的root密码,以及新创建一个数据库供使用。点击两次添加一行,并将下方的具体变量填入。
# root密码,可自定义
MYSQL_ROOT_PASSWORD=root
# 新建数据表库,不可更改
MYSQL_DATABASE=instockdb
最终图片如下,供大家参考。

3、配置mariadb数据库
安装完数据库以后,稍等一会等数据库启动。接着我们切换到容器概况,选择mariadb容器,点击SSH进入容器内部操作。

选择默认的/bin/bash语句,直接点确认即可。

进入mariadb容器后,按照下面的顺序,分三次数据三条指令。
# 第一步:登录数据库
mariadb -u root -p
>输入密码 root 回车
# 第二步:切换到instockdb库
USE instockdb;
# 第三步:创建缺失的表
CREATE TABLE IF NOT EXISTS cn_stock_attention(datetime datetime(0) NULL DEFAULT NULL, code varchar(6) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, PRIMARY KEY (code) USING BTREE, INDEX INIX_DATETIME(datetime) USING BTREE ) CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
可参考图片,看看是否正确执行语句。

4、安装instock本体
接着,我们来创建instock本体,依旧选择镜像并添加到容器。

一样,该项目存在定时读写,所以建议大家取消性能限制。

【端口】:默认的容器端口是9988,本地端口一般不会冲突,我们也使用9988即可。

【环境】:比较关键的地方来了,我们需要配置数据库环境变量,以确保instock容器可以正确连接上数据库。
db_host=NAS的ip地址
db_user=root
db_password=你自己在安装mariadb时设置的密码
db_database=instockdb
db_port=你自己在安装mariadb时映射的本地端口

3、远程访问
最后,为了在外网也能顺利使用instock容器,我们需要打开极空间的远程访问功能,新建一个链接,将instock的URL地址录入。

二、系统使用
稍等一会,我们的系统就会自动连接数据库并创建对应的表,拉取数据使用。我们可以通过SSH容器的方法,去执行指令查看系统日志。

1、查看日志
原则上不会报错,如果报错的化再后头看看配置是不是有问题。
# 数据库连接日志
cat InStock/instock/log/stock_execute_job.log
# web服务日志
cat InStock/instock/log/stock_web.log
两个日志的截图放在下面。

2、其它指令
其它指令,譬如历史数据抓取、处理、分析、识别、回测等,都放在下面了,大家自行研究使用。使用方法和上面查看日志的方法是一样的。
cat InStock/instock/bin/run_job.sh
#查看run_job.sh注释,自己选择作业
------整体作业,支持批量作业------
当前时间作业 python execute_daily_job.py
单个时间作业 python execute_daily_job.py 2022-03-01
枚举时间作业 python execute_daily_job.py 2022-01-01,2021-02-08,2022-03-12
区间时间作业 python execute_daily_job.py 2022-01-01 2022-03-01
------单功能作业,支持批量作业,回测数据自动填补到当前
综合选股作业 python selection_data_daily_job.py
基础数据实时作业 python basic_data_daily_job.py
基础数据收盘2小时后作业 python backtest_data_daily_job.py
基础数据非实时作业 python basic_data_other_daily_job.py
指标数据作业 python indicators_data_daily_job.py
K线形态作业 klinepattern_data_daily_job.py
策略数据作业 python strategy_data_daily_job.py
回测数据 python backtest_data_daily_job.py
第一种方法:
python execute_daily_job.py 2023-03-01,2023-03-02
第二种方法:
3、web端功能展示
一共有11个大功能,包括:综合选股、股票每日数据、计算股票指标、根据指标判定可能买入卖出的股票、K线形态识别、策略选股、选股验证、选股验证、关注功能、批量作业等。

除了最后的实时交易功能只能在windows上实现外,其它10个功能在NAS端都可以使用。

最大化以后,可以在左侧看到功能列表,包括了每一天的股市信息和数据,如统计数据、资金数据、技术数据等。

以综合选股为例,这里展示了A股中所有单股某一天的数据,展示形式其实就是一份excel表格,支持搜索、筛选。拉到最后可以看到近期涨跌、资金流向、所属概念板块等信息,这些数据作为集中展示供股友分析,不存在推荐性指标。

如果要看一些榜单,可以尝试看一下龙虎榜、大宗交易、资金流向、概念资金流向等图表。

尤其是概念资金流入,可以排个序,很轻松的根据当前实时掌握近期的概念股票,为自己选股提供数据支撑。

在技术指标上,系统提供了一些列的K线参数分析,以及基本面、放量、回踩年线、均线多头等等内容,由于太过专业,个人是完全无法理解的,希望给老股民可以提供帮助。

最后
不得不说,自从有了NAS,我对千奇百怪的系统越来越了解了。而各类开源项目也让我节约了一大笔购买商业软件的费用,诸如堡垒机、waf、erp等等,这些系统我在前面多少都分享过一些,有兴趣的朋友可以回头翻一翻。
所以,还是cherry一直以来的观念,NAS仅仅作为一台存储设备实在太可惜了!越来越多的应用如影视、音乐、docker、虚拟机、智能家具赋能NAS以后,它真正摇身一变成为了我们的家庭智能服务中心!
各位还在由于NAS到底值不值得,该不该购入的朋友听我一劝,早买早享受!
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

无证水电工小青蛙
ERROR 1049 (42000): Unknown database 'instockdb'
校验提示文案
值友5730107466
校验提示文案
不知其可
pymysql.err.ProgrammingError: (1146, "Table 'instockdb.cn_stock_strategy_low_backtrace_increase' doesn't exist")
2025-02-25 22:33:39,986 500 GET /instock/api_data?name=cn_stock_strategy_low_backtrace_increase&date=2025-02-25 (172.17.0.1) 14.55ms
pymysql.err.ProgrammingError: (1146, "Table 'instockdb.cn_stock_strategy_climax_limitdown' doesn't exist")
2025-02-25 22:56:43,286 500 GET /instock/api_data?name=cn_stock_strategy_climax_limitdown&date=2025-02-25 (172.17.0.1) 11.31ms
校验提示文案
醉爱小萝莉
校验提示文案
zkay__
校验提示文案
hawx2
校验提示文案
林溪风
校验提示文案
买买买的M先森
校验提示文案
布兰迪霍克莱姆
校验提示文案
值友1193010735
校验提示文案
张老板儿啊
校验提示文案
TankT-CQ
校验提示文案
抽筋的鸡腿
校验提示文案
跳跳芭比丶
校验提示文案
值友7478634915
你可拉倒吧
校验提示文案
明也明也明也
校验提示文案
皓天zhi
校验提示文案
cutesun
校验提示文案
值友3378853510
校验提示文案
EirChen
校验提示文案
EirChen
校验提示文案
抽筋的鸡腿
校验提示文案
不知其可
pymysql.err.ProgrammingError: (1146, "Table 'instockdb.cn_stock_strategy_low_backtrace_increase' doesn't exist")
2025-02-25 22:33:39,986 500 GET /instock/api_data?name=cn_stock_strategy_low_backtrace_increase&date=2025-02-25 (172.17.0.1) 14.55ms
pymysql.err.ProgrammingError: (1146, "Table 'instockdb.cn_stock_strategy_climax_limitdown' doesn't exist")
2025-02-25 22:56:43,286 500 GET /instock/api_data?name=cn_stock_strategy_climax_limitdown&date=2025-02-25 (172.17.0.1) 11.31ms
校验提示文案
TankT-CQ
校验提示文案
值友5730107466
校验提示文案
值友3378853510
校验提示文案
cutesun
校验提示文案
张老板儿啊
校验提示文案
皓天zhi
校验提示文案
明也明也明也
校验提示文案
我是那个面
校验提示文案
值友1193010735
校验提示文案
布兰迪霍克莱姆
校验提示文案
值友7478634915
你可拉倒吧
校验提示文案
跳跳芭比丶
校验提示文案
无证水电工小青蛙
ERROR 1049 (42000): Unknown database 'instockdb'
校验提示文案
买买买的M先森
校验提示文案
hawx2
校验提示文案
zkay__
校验提示文案
林溪风
校验提示文案