1 同花顺因子产品使用说明书
1.1 因子库产品的权限开通
本产品为付费产品,请联系同花顺销售经理,先开通权限。
1.2 因子产品SFTP账号获取
开通账号后,点击下方链接 进行登录:
https://quant.10jqka.com.cn/view/factorserver
请您先确定是否有固定IP:
【我有固定公网IP】
只有在第二个步骤配置的特定IP才能访问数据,需要有固定的公网IP,请您确认您的公网IP是固定的(一般需要找运营商采购该服务才会开通固定IP),才选择这个模式。 该模式安全级别较高,建议有公网IP的企业选择。
【没有固定的公网IP】
如果您的公网IP是动态的,就是没有固定的公网IP,该模式下只需要SFTP账号和私钥即可访问SFTP,注意保管好您的SFTP账号和私钥。
因子产品使用说明。
1.3 因子产品如何使用?
我们会提供SFTP地址,可以通过命令行或者客户端的方式进行访问,以下提供了常见访问方式的教程。
SFTP(Secure File Transfer Protocol),即安全文件传输协议,是一种内置于 SSH 中的协议,所以他非常灵活且安全性很强。适用于各种类型的服务器获取数据。
1.3.1 使用WinSCP可视化下载数据(简单推荐、仅支持Win系统)
有许多SFTP客户端可供选择,这些客户端提供了图形界面,使文件传输变得更加直观和简单。以下是一些流行的SFTP客户端:
-
平台:Windows
-
描述:WinSCP是一个免费的SFTP、SCP、FTP和WebDAV客户端。它拥有一个图形用户界面和一个命令行界面。
-
如何使用?
-
安装:运行---接受---完整升级(下一步)---安装
-
Winscp配置sftp
打开远程标签页
-
配置站点信息:
选择文件协议:SFTP
主机名:填写同花顺SFTP域名地址(请找销售开通权限后 登录 https://quant.10jqka.com.cn/view/factorserver 获取)
端口:2022
用户名:sftp 账号
高级: SSH—验证---导入密钥文件**(固定IP访问模式的用户不用添加密钥,密钥文件请联系销售开通权限后在 https://quant.10jqka.com.cn/view/factorserver 获取)** -
填写主机名、SFTP账号、和端口号(密钥方式登录无需密码)
- (密钥方式登录才需要)点击高级
- (密钥方式登录才需要)点击验证:
- (密钥方式登录才需要)点击密钥文件右侧 ··· :
- (密钥方式登录才需要)选择 所有文件:
- (密钥方式登录才需要)选择拿到的 密钥文件:
- (密钥方式登录才需要)点击确定:
- (密钥方式登录才需要) 选择一个地方存放生成的 .ppk 格式的密钥:
- (密钥方式登录才需要)点击确定:
- (密钥方式登录才需要)点击确定:
- 点击保存
- 点击登录
- 看到文件夹之后 表明登录成功:
1.3.1.1 如何使用WinSCP自带的增量同步功能(脚本):
先确保登录Winscp,然后进行下面操作。
1.根据程序生成如下相应代码
登录Winscp的账号后右键该标签 会出现一个菜单:
点击【生成会话URL/代码】
点击脚本
格式选择 脚本文件
点击【复制到剪贴板】
以下为复制出来的命令行:
open sftp://simufactor_****@thsfactor.forfunds.cn:2022/ -hostkey="ssh-ed25519 255 0js5********************Qo3Ug" -privatekey="E:\factor\key1107\pem key\privatekey.ppk" -rawsettings ConsiderDST=0
# 你的命令1
# 你的命令2
exit
# 使用类似命令执行脚本:
# "C:\Program Files (x86)\WinSCP\WinSCP.exe" /log="C:\writable\path\to\log\WinSCP.log" /ini=nul /script="C:\path\to\script\script.txt"
2.在上一步复制出来的命令行中 加入同步命令
同步远程到本地命令:synchronize local [本地目录] [远程目录]
比如我希望把远程目录的 /realtime 的所有文件 增量更新同步到本地的 E:\factor\sync-script\realtime 文件:
synchronize local E:\factor\sync-script\realtime /realtime
把这个命令放到中间:
最终变成:
open sftp://simufactor_WWWWWDDDDD@thsfactor.forfunds.cn:2022/ -hostkey="ssh-ed25519 255 6v/S+uUL7W32tb7Oy+2vw5kJTJNcOmxhl9iJB9YUnF8" -privatekey="E:\factor\key1107\pem key\privatekey.ppk" -rawsettings ConsiderDST=0 synchronize local E:\factor\sync-script\realtime /realtime exit
把上面代码保存成 run.bat
3.在命令行执行脚本
脚本调用了 WinSCP.exe
来执行 run.bat
脚本,
(WinSCP.exe 的安装目录可能会不一样 要找到你的安装目录下的WinSCP.exe 的路径)
"C:\Program Files (x86)\WinSCP\WinSCP.exe" /log="E:\factor\sync-script\WinSCP.log" /ini=nul /script="E:\factor\sync-script\run.bat"
在命令行中执行该命令:
执行后会把log日志打印在WinSCP.log
这个文件夹下,所以请到这个log文件内进行查看运行情况:
可能会出现密钥不符合的报错:
把日志中的正确的密钥替换到 run.bat 中的 hostkey 后即可:
其他更多的脚本命令用法 请参考官方文章:
https://winscp.net/eng/docs/guide_automation
https://winscp.net/eng/docs/task_synchronize_full
https://winscp.net/eng/docs/scriptcommand_synchronize
如果想每天自动执行WINSCP自动同步脚本 达到每天自动同步因子文件到本地的效果请看下一小节。
1.3.1.2 WINDOWS 下如何每天自动执行WINSCP自动同步脚本?
备注:您也可以通过其他方式定时运行同步脚本达到每日同步的效果。
打开任务计划程序
:
点击【创建基本任务】
填写名称和描述,点击【下一步】:
选择每天:
填写开始时间,建议选择在6点, 每隔 1天,点击下一步:
选择【启动程序】
把上小节中最后的执行脚本复制到这里,点击下一步:
上一小节的第3步的执行脚本(举例):
"C:\Program Files (x86)\WinSCP\WinSCP.exe" /log="E:\factor\sync-script\WinSCP.log" /ini=nul /script="E:\factor\sync-script\run.bat"
点击【是】
点击【完成】就算创建完成:
为确保万无一失,我们再进行一些小配置:
选中我们刚才添加的定时任务,之后点击属性:
选择【不管用户是否登录都要运行】 和 勾选【使用最高权限运行】,点击确定。
验证是否配置正确:
选择刚才创建的定时任务,点击运行:
查看运行日志:
一切正常。
可能会出现密钥不符合的报错:
把日志中的正确的密钥替换到 run.bat 中的 hostkey 后即可:
1.3.2 使用Xshell下载SFTP数据(支持Win/Linux、支持登录远程服务器进行命令行操作)
1.3.2.1 首先建立链接
- 到官网进行下载。
- 点击文件-点击 新建:
连接常规填写:
- 主机:SFTP服务地址 (请联系销售开通账号权限后登录 https://quant.10jqka.com.cn/view/factorserver 获取主机地址)
- 协议选择:SFTP
- 填写端口号:2022
用户身份验证:
- 点击【用户身份认证】
- 方法选择:Public Key
- 点击设置按钮
- 导入用户密钥文件 (如果是固定IP用户不需要导入。如果非固定IP模式需要先到后台下载密钥再导入)
- 选择下载的密钥文件:
- 点击确定:
- 点击确定(无需填写这部的密码):
- 填写SFTP用户名
- 填写SFTP密码(有密钥的账号 不需要填写密码):
- 选择接受并保存方便后续使用:
- 然后就登录成功,可以使用SFTP的命令进行操作数据(见下一个小节):
1.3.2.2 建立链接之后就可以使用以下命令行方式进行下载数据
适用于登录远程服务器,通过命令行把文件下载到远程服务器。
- 连接到SFTP服务器:
- 无固定IP-使用秘钥方式:
端口号、秘钥文件、域名:请先找同花顺销售顾问开通账号后登陆: https://quant.10jqka.com.cn/view/factorserver 获取。
sftp -i /privatekey.pem -P 2022 simufactor_WWWWWDDDDD@thsfactor.forfunds.cn.
注意 privatekey.pem 是后台下载的秘钥文件路径。
- 有固定IP登录方式
端口号、域名:请先找同花顺销售顾问开通账号后登陆 https://quant.10jqka.com.cn/view/factorserver: 获取。
sftp -P [端口号] [用户名]@[主机名或IP地址]
sftp -P 2022 simufactor_WWWWWDDDDD@thsfactor.forfunds.cn.
sftp -P [端口号] [用户名]@[主机名或IP地址]
端口号、IP:请询问顾问索要获取方式 可能会变化 请找销售顾问进行确认。
如果是秘钥方式登录 用以下命令:
sftp -i /data/private.pem -P [端口号] [用户名]@[主机名或IP地址]
通过-i
来指定秘钥文件地址即可。
-
浏览远程服务器的文件:
- ls: 列出远程服务器当前目录下的文件。
-
下载文件:
get [远程文件] [本地路径]
: 下载远程文件到本地。如果不指定本地路径,文件将被下载到你当前的工作目录。
例如:
get remote_file.txt local_directory/remote_file.txt
-
下载整个目录:
get -r [远程目录] [本地路径]
: 递归地下载远程目录到本地。
例如:
get -r remote_directory local_directory/remote_directory
-
断开连接:
- 输入
exit
或bye
来退出SFTP。
- 输入
记得,每次使用 get
命令时,都确保有足够的磁盘空间来保存要下载的文件或目录。
SFTP 命令行一览:
sftp> help
Available commands:
bye Quit sftp
cd path Change remote directory to 'path'
chgrp [-h] grp path Change group of file 'path' to 'grp'
chmod [-h] mode path Change permissions of file 'path' to 'mode'
chown [-h] own path Change owner of file 'path' to 'own'
copy oldpath newpath Copy remote file
cp oldpath newpath Copy remote file
df [-hi] [path] Display statistics for current directory or
filesystem containing 'path'
exit Quit sftp
get [-afpR] remote [local] Download file
help Display this help text
lcd path Change local directory to 'path'
lls [ls-options [path]] Display local directory listing
lmkdir path Create local directory
ln [-s] oldpath newpath Link remote file (-s for symlink)
lpwd Print local working directory
ls [-1afhlnrSt] [path] Display remote directory listing
lumask umask Set local umask to 'umask'
mkdir path Create remote directory
progress Toggle display of progress meter
put [-afpR] local [remote] Upload file
pwd Display remote working directory
quit Quit sftp
reget [-fpR] remote [local] Resume download file
rename oldpath newpath Rename remote file
reput [-fpR] local [remote] Resume upload file
rm path Delete remote file
rmdir path Remove remote directory
symlink oldpath newpath Symlink remote file
version Show SFTP version
!command Execute 'command' in local shell
! Escape to local shell
? Synonym for help
1.3.3 使用XFTP可视化下载数据
下载地址:
https://www.xshell.com/zh/xftp/
独立的XFTP或Xshell中的XFTP也可以。
点击绿色的Icon:
点击新建:
- 在后台选择【有固定IP】的请按照以下操作:
输入以下信息:
名称:自定义方便自己记忆
主机地址:从您的因子网页获取
协议选择:SFTP(注意不是FTP)
端口号:2022
登录中的方法:选择Password
用户名:从您的因子网页后台获取
密码:从您的因子网页后台获取
然后点击连接即可登录成功:
- 在后台选择【无固定IP】的请按照以下操作:
输入以下信息:
名称:自定义方便自己记忆
主机地址:从您的因子网页获取
协议选择:SFTP(注意不是FTP)
端口号:2022
登录中的方法:选择Public Key
用户名:从您的因子网页后台获取
密码:无需密码
点击 用户秘钥右侧的 浏览
选择导入:
导入从因子后台下载的秘钥文件:
看到出现这个表示导入成功,点击关闭:
点击链接:
然后就能看到SFTP的文件:
XFTP还有个下载加速的功能,按照以下方式开启:
在登录信息填写界面,点击设置:
点击使用ZLIB压缩,点击确定:
1.3.4 使用Git Bash命令行方式登录并下载数据
登录
- 无固定IP-使用秘钥方式:
sftp -i /privatekey.pem -P 2022 simufactor_WWWWWDDDDD@thsfactor.forfunds.cn.
注意 privatekey.pem 是后台下载的秘钥文件路径。
- 有固定IP登录方式
sftp -P [端口号] [用户名]@[主机名或IP地址]
sftp -P 2022 simufactor_WWWWWDDDDD@thsfactor.forfunds.cn.
下载整个history文件夹(在根目录的情况下:
get -r history/
常用命令:lcd path
切换本机的目录(下载数据的地址)
1.4 因子库的目录结构:
root
- history (包含所有因子的 t-2 之前的所有数据 按年存储)
- realtime (包含有权限因子的 t 和t-1 的所有数据)
备注:服务端文件编码格式为 UTF-8 如果客户端编码格式不一致 会导致乱码。确保客户端格式也是UTF-8
1.5 常见问题
1.5.0 我用其他支持SSH的客户端 可以下载么?
支持。
SFTP本质上是SSH协议,所以理论上任何支持SSH协议的终端都是可以试用sftp命令的,比如MobaXterm、OpenSSH等。
1.5.1 如何下载数据比较方便?
建议按照文件夹进行下载 会方便一点。不用一个一个文件进行下载。
数据量一共是多大?
history 数据共计100G多一点。
数据下载中断 又要重新下载怎么办?
建议使用 winscp的 【同步】功能。这样因各种原因导致的断线,都可以继续下载不用重新从头下载。
1.5.2 如何合并多个文件?
用Excel自带的功能即可:
先把要合并的文件放在一个文件夹内如 示例中我以2019年的某个因子举例 把2019年的该因子数据都准备好放到一个文件夹:
打开Excel 选择数据-选择获取数据- 选择来自文件-选择从文件夹:
选择刚才准备好的数据文件夹:
点击组合- 点击合并和加载:
就可以看到数据加载到一个excel内了:
然后接下来就可以通过excel 的数据筛选功能 进行筛选 和画图了:
1.5.3 下载速度一般是多少?
使用WINSCP下载的速度是1~2M左右,根据您的带宽和下载机器的配置有一定的关系
1.5.4 数据更新时间是怎么样的?
新闻类的凌晨五点半左右更新,其他每天晚上九点半左右更新
1.5.5 为什么下载文件的时候成功一个失败一个,时好时坏?报错返回的是断连?
很大可能是您的IP是动态IP,但是您选择了固定IP模式进行访问SFTP,这样就会导致时好时坏。建议使用秘钥方式进行访问。
1.5.6出现:“警告 - 有潜在安全风险” 提示该怎么办?
可能由于您的IP变动,导致服务器密钥核对不上,点击【添加】即可。