该给你关注的股票提个醒了!

在这里插入图片描述
大家好,才是真的好。

2020年伊始,股市行情较火,希望不是新一波的韭菜施肥。

我们的功能很实用,因为工作忙碌的你,虽然心切地盼望着过年,但还需每时每刻都盯着股盘查看变化,而老板还时不时地出现在你身后,所以我想到了一个好办法,今天来告诉你。

利用Domino中的代理,可每隔10分钟从互联网上的API接口来查询指定股票的价格,而后进行比较,如当前股价比开盘价高或低5%,则发送一封邮件进行提醒(如果手机上安装了Verse,则有提醒界面和声音),这时你可以从容打开交易盘查看。

设计原因和目标我都讲到了,下面就开始吧。

一、设计表单

先设计一个表单,里面有一个域,用来输入需要关注一只或多只股票。我们做简单点,手动输入股票交易代码,并且是多值,如下图:
在这里插入图片描述
录入数据,效果如下:
在这里插入图片描述
设计一个视图用来展示自己关注的股票代码
在这里插入图片描述
二、编写lotusscript代理

我们新建一个代理,本例名称为stockMonitor,如下图
在这里插入图片描述
关键是写代码,如下图
在这里插入图片描述
详细代码如下:

%REM
Agent stockMonitor
Created Jan 8, 2020 by li jian
Description: Comments for Agent
%END REM
Option Public
Option Declare
'变量定义
Dim ns As NotesSession
Dim db As NotesDatabase
Dim view As NotesView
Dim doc As NotesDocument
Dim webRequest As NotesHTTPRequest
Dim MultiValue As Variant
Dim url As String
Dim stocklist As Variant
Dim allstockInfo As String
Dim stockInfo As String
Dim i As Integer
Dim j As Integer
Dim ret As Variant
Dim comparevalue As Double
Dim mailflag As Boolean
Dim mailsubject As string
Dim mailbodystr As string
Sub Initialize
'变量实例化
Set ns=New notessession
Set db=ns.Currentdatabase
Set view=db.getview("AllStocks")
Set doc=view.Getfirstdocument()
MultiValue = doc.Getitemvalue("stockCode")
mailflag=false
Set webRequest = ns.CreateHTTPRequest()
webRequest.Preferstrings = True
url="http://hq.sinajs.cn/list=" '从sinajs站点获取指定的股票代码信息,可以一次性获取多只股票
'取每只股票名称,加入到查询URL地址
For i=0 To UBound(MultiValue)
If i=0 Then
url=url+MultiValue(i)
Else
url=url+","+MultiValue(i)
End If
Next
'进行查询并返回股票信息
allstockInfo=webrequest.Get(url)
stocklist=Split(allstockInfo,|="|)
For i = 1 To UBound (stocklist)
ret=Split(stocklist(i),",")

comparevalue=ComparePrice(CDbl(ret(2)),CDbl(ret(3)))
comparevalue=Abs(comparevalue)
If comparevalue>0.05 Then
mailbodystr=mailbodystr+Chr(13)+"股票"+ret(0)+",代码为" & MultiValue(i-1) +";昨收盘价格:"+ret(2)+";当前价格:"+ret(3)+";涨跌幅为" & Format(comparevalue,"0.00%") &";已超过5%;"
mailflag=true
End If 
Next
'条件满足,发送邮件
If mailflag Then
mailbodystr=mailbodystr+"请及时关注!"
mailsubject="股票监控通知"
Call mailnotify(mailsubject,mailbodystr)
End If

End Sub
%REM
邮件通知函数
%END REM
Sub mailnotify(subject As String,bodystr As String)
Dim maildoc As NotesDocument
Set maildoc=db.Createdocument()
maildoc.Form = "Memo"
maildoc.Subject = subject
maildoc.body=bodystr
Call maildoc.Send( False, "li jian" )
End Sub
%REM
Function ComparePrice
Description: 比较股票价格函数
%END REM
Function ComparePrice(iniprice As Double,curprice As Double) As Double
comparePrice=(curprice-iniprice)/iniprice
End Function

好了,接着,我们需要设置代理的属性,运行的时间段是,从周一到周五,每天早上九点半开始到下午三点结束。将代理设置为定时执行,其执行的属性如下图:
在这里插入图片描述
三、代理执行

我们什么也不需要做,保证写代理的人在服务器上有权限,那么等到时间和条件都满足时(本例为每10分钟执行一次),就可以收到邮件通知:
在这里插入图片描述
其实设计和代码还有进一步可优化的地方,如不做优化,那么时间和条件满足时,每隔十分钟我们都会收到邮件提醒,虽然可以使用规则将此类邮件自动分到某个文件夹,但时间久了,也会产生大量邮件。所以,可以考虑,对已经发过通知的股票代码进行标记等。

不过,今天就介绍到这里吧。欢迎继续关注。

更多精彩内容请关注微信公众号“协作者”

原文地址:https://mp.weixin.qq.com/s/jKIk3b02UdR1n53ukIHy8A

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值