基于Node_red的股票量化分析

@目录

背景情况

留意股市的朋友,都知道2020年有个牛市,而炒股票需要实时的盯盘以及量化的分析,而我又需要上班,不可能全部 工作时间都在看盘,那么就需要做好计划,然后让电脑自动去盯盘,按照制定的策略进行提示就好了,简单上手,使用node-red进行监控

Node-red的安装和说明

看我Node-red中的安装和说明,

d代码

以监控交易时间段内的格力股票价格为例,代码如下:

基于Node_red的股票量化分析_第1张图片
首先,股票是有时间段交易的,这个在设置的时候需要注意,如下:
基于Node_red的股票量化分析_第2张图片
其次,获取股票的实时数据,使用了新浪的接口数据,参考如下的文章:
https://www.cnblogs.com/phpxuetang/p/4519446.html
而具体到我们使用的格力电器的数据就是如下:
http://hq.sinajs.cn/list=sz000651
代码配置见下图:
基于Node_red的股票量化分析_第3张图片
这时候,如果没有异常的话,就获取了数据,需要对数据进行进一步的处理,进行分隔以及数据的判断,
split和switch,这两个功能,而split维持原样就可以了,
数据获取后,重要的是要需要提取到格力电器的当前股价,以及开盘价和收盘价,这样才能查看价格是否符合预期,
基于Node_red的股票量化分析_第4张图片
以其中的获取当前价格为例,在实验的时候,数据如下:
var hq_str_sz000651=“格力电器,55.040,55.050,54.800,55.290,54.720,54.800,54.810,27868080,1530686910.250,390383,54.800,27600,54.790,32400,54.780,28600,54.770,12500,54.760,45904,54.810,20800,54.820,22237,54.830,31199,54.840,37059,54.850,2020-09-17,15:00:03,00”;
那么,他的当前价格是54.8元,

我希望的是,在每隔1min看一下价格,当然这个时间可以自己去把握,然后在价格到了上限位的时候触发报警信息,比如最近,监控的价格是60-50,做一个无脑操作,监控价格50买入,60卖出的报警

加入该Switch模块就可以了。代码如下:
基于Node_red的股票量化分析_第5张图片
Switch node 的代码如下,
基于Node_red的股票量化分析_第6张图片

然后,为了增加不同的价格进行不同的提示,增加了function 模块操作如下:

基于Node_red的股票量化分析_第7张图片
当然,也可以把function 和switch两个node结合成一个使用。

结果跑了一天之后邮箱出现了报警:

550 Mail content denied

注明:这个报警不用理会,一般当天不能发邮件,过一天就好了。
一看邮箱,一天发了*900多分的邮件,回来看了一下当天的数据,有个问题:
1.测试的时候设置卖出的价格为55,买入的价格为50,结果2020.09.18单天就不断的提示卖出,卖出,

2020/09/19进行改进
1.价格人工改为60,进行触发
那么后续的OPL:
1.判断股价趋势?
2.如何利用历史的均值进行回测?
3.如何获利

针对趋势判断的,选用整体上证指数SG000001做为数据,对他的成交金额进行判断,以及点数,举个例子,以目前3200点认为就是牛市结束,那么在节点中增加如下代码,具体的设置就和之前的内容类似。
基于Node_red的股票量化分析_第8张图片
2020-11-11更新
在实际的价格监控过程中,如果只是对一个数据监控还好,如果数据量多的时候,就需要对多个股票的数据进行监控,我想把所有的监控数据,汇总成一个报告,这样,在每次发送邮件的时候,就可以实现两个功能,一个是单个股票的报警,另外一个是,每天的批量检擦情况汇总报告。
这就是需要使用到node-red中的另外一个功能,借助context对象。它可以理解为上下文,或者语境,用于保存内存中的数据,这个数据可以持续保存到下一个消息到来。Context可用于保存索引,计数或者消息中的数据,而分成上下节点和流程节点,大体如下,
节点变量的使用和 
context.get(…) : 获取一个节点范围内的上下文属性
context.set(…) : 设置一个节点范围内的上下文属性
context.keys(…) : 返回所有节点范围上下文属性键的列表
context.flow : 同 flow
context.global : 同lobal
全局的变量的使用
flow.get(…) : 获得流作用域上下文属性
flow.set(…) : 设置流作用域上下文属性
flow.keys(…) : 返回所有流作用域上下文属性键的列表
那么,在系统中增加如下几个节点的功能

基于Node_red的股票量化分析_第9张图片其中输入

基于Node_red的股票量化分析_第10张图片基于Node_red的股票量化分析_第11张图片在合并的时候使用function节点:
基于Node_red的股票量化分析_第12张图片其中使用的就是flow.get的功能,就可以将数据进行合并,最终显示的效果如下:
基于Node_red的股票量化分析_第13张图片
通过增加这个节点就可以对产品进行汇总报告。

上述的两个node就是进行

你可能感兴趣的:(Node-red,node.js)