背景:
使用者本人可以修改现有的Python,Matlab 和Selenium程序,但需要一个专业人士来建立整个软件框架。
股票分析网站guidants.com没有提供任何API用以访问实时数据,并缺少一些我必须的功能。因此,此任务是通过Selenium从guidants.com抓取实时数据,在后台使用 Python 或Matlab 进行一些简单的计算,将结果/数据放入 GUI。
软件环境:
Windows 10 64 位
最新版本的Google Chrome(64 位) 和 Chromedriver(似乎只有 32 位)
最新的稳定版 Python (3.8.5 64 位?)
最新的Selenium(通过pip安装)
程序使用py.exe启动, 无需编译源代码。源代码必须移交给使用者,源代码应该有设计精良的结构和充分的注释,这样使用者才能按需修改程序。
过程:
注释:标注在引号""内的文本应该是可以在源代码中修改的变量
1. 使用go.guidants.com"用户名“和"密码"登录(用户名和密码在项目发包后提供)
2. 在My Desktops打开一个"特定虚拟桌面"(例如这里命名为Selenium),可以有多个虚拟桌面(这里10个)。
3. 在"特定虚拟桌面"内,有一个或多个列表。此"特定虚拟桌面"是专门为此程序构建的,它仅包含必要的 (多个 ) 列表如下所示:
程序应从"特定虚拟桌面"中的所有列表中获取数据。
每个列表都包含不同数量的行和列的数据。
每一列的数据都有各自的名称,例如名称、价格、WKN、工业部门等。
WKN 在每个列表中都是肯定的,作为列表中列出的股票的唯一标识符。
每一行都是一个股票的数据。
数据每一秒更新一次(如果有新数据传入),列表本身会以预设的时间间隔更新(间隔是通过网站设置的,而不是这个程序的一部分,有些列表每 1 分钟更新一次,有些列表每 5 分钟更新一次,有些列表每 15 分钟更新一次)。
当列表更新本身时,行即网站后台服务器过滤出的股票的数量可能会更改(也可能不会),但列的数量不会更改(除非我修改 Web 上列表的结构)。
不熟悉股市的程序员的信息:每只股票都有自己的 WKN 号码作为其 ID。因此,我将确保每个列表都有一行显示 WKN 来标识列表中的每只股票。
4. 数据的快照(因为数据每秒钟都在更改一次,所以仅取存储时的状态),应以一定的"周期"(1 分钟、5 分钟等,以分钟为单位的整数值)以明文文本存储在硬盘驱动器上(例如作为 cvs 文件),
程序可以自动加载文件数据 ( 当发生操作系统冻结、互联网连接丢弃等情况时需要重新加载程序,那么程序自动加载当日的数据文件),用于分析目的。
每日新开程序时,程序将自动创建当日的存储文件。
使用者是一个日内交易者,所以每天的数据保存在一个文件内,文件的命名应该包含日期。 文件应与脚本/程序存储在同一个目录中。
5. 针对“特定桌面“内的每个列表,程序都应打开一个 GUI表格(比如网站桌面中的 2 个列表,那么在 Windows中显示2个GUI表格),映射从网站抓取的数据和其他计算出的数据显示在GUI表格里。
计算的数据包括:
A. 前面提到过,列表本身由服务器在预设的周期内自动更新,列表中的股票可能会因间隔而变化,有些将被踢出列表,有些将被添加到列表中。GUI 必须用"红色"(颜色代码将在源代码中设置)标记股票,该代码是新列入表内的(不在上一个间隔的列表中)。以“黄色“ (颜色代码将在源代码中设置)标记上“三个周期”内被列入的股票,再旧的就不需要标记了。
B. 本周期新加入的股票,显示当此股票上一次被列入该表的时间(在一天内,例如第一次被列入该表,上一次11 分钟前在表内,35 分钟前,等等)。
C. 从上个周期到当前周期一直都留在列表中的股票,显示其已经停留在列表中的时间(在一天内,例如已经在表内11 分钟了,已经在表内1小时40 分钟了)。
D. 其他根据我自己的逻辑计算出的数据。我会自己写代码计算这些数据,请保持GUI易于扩展,数据结构易于读取。
此处编写者应加入两个示例:
1. 任一数值减去该数值四个存储周期前的数值。
2. 任一数值除以该数值五个存储周期前的数值。
GUI 应具有以下功能:
a. GUI表格可以对文本和数字的进行排序(从大到小,从A到Z)。
b. 我使用的显示器分辨率不同,因此 GUI 的大小和位置应该能够用鼠标拉动调整。
c. 数据的排列(各列)要能拖动调整顺序,比如WKN原本在第9行,可以通过鼠标拖动到第一行。
GUI示例:
当前周期:500 当前存储周期:每1分钟
Name WKN 状态 时间 Spread xxx xxx
AXA 新入表,上次入表在此前: 2:30
IBM 次新入表,已在表时间: 0:02
Amazon 已在表,已在表时间: 0:10
Apple 已在表,已在表时间: 1:23
作为项目评估用途请使用测试账户,用户名haowerbung@gmail.com, 密码haodemohaodemo