番茄量化系统使用指南
命令行运维
系统提供了一些命令行上的运维命令,再完整的UI开发出来前,可以借助一些命令来做基本的运维。在命令行中无法运维的内容,目前只有直接去修改数据库来完成了。网页版本的运维会逐步提供,当然命令行的运维也在逐步丰富。
命令行的格式会遵循这样的格式规范:
python -m freshquant.cli <资源>[.<子资源>] <命令> [选项]
资源分:stock, bond, etf, index, future, config等。
命令分:save, import, rm, set等。
子资源分:list, day, min, block等。
python -m freshquant.cli还有一种简单写法就是fqctl
即:
fqctl 等价于 python -m freshquant.cli
那么:
python -m freshquant.cli stock.list save
也可以写成:
fqctl stock.list save
选项运行命令的时候需要的其他一些选项。
下载行情数据
下载股票列表
fqctl stock.list save
下载股票日线数据
fqctl stock.day save
下载股票分钟数据
fqctl stock.min save
下载股票板块数据
fqctl stock.block save
下载股票除权除息数据
fqctl stock.xdxr save
一条命令下载以上所有数据
fqctl stock save
如上的命令,就分别是下载股票列表,股票日线数据,股票分钟数据,股票板块,股票除权除息。
最后一条命令,省略子资源的情况下,就是下载所有(list, day, min, block, xdxr)的子资源。
导入股票到股票池
系统中建立的三种股票池:
-
预选股票池。存放预选的股票,比如我们之前开发的各种模型的预选结果会先存放在这里。
-
监控股票池。从预选股票池经过人工或者自动的筛选,符合某种要求后存放到这个股票池。这个池中的股票会在盘中监控,给出买卖点提示信息。
-
必买股票池。一般是人工直接维护,就是必须会买的股票,有买卖信号系统就直接执行交易。
为了能人工对这些股票池进行管理,提供一套命令行工具。
比如我们要给预选股票池导入数据:
fqctl stock.pre-pool import --file <路径> --category CLXS00001 --days 20
这里的文件可以是通达信的自选股文件,也就是文本文件,一行一个股票代码。category指的是导入系统后的分类,days指的是在股票池中保留多少天。
如果要导入监控股票池,只要把pre-pool改成pool就可以了。
除了指定文件,还可以直接指定股票代码。
fqctl stock.pre-pool import --code 000001 --category CLXS00001 --days 20
导入多个可以这样写:
fqctl stock.pre-pool import --code 000001 --code 000002 --category CLXS0001 --days 20
也可以这样写:
fqctl stock.pre-pool import --code 000001,000002 --category CLXS0001 --days 20
查看股票池当前股票
命令格式是
查看预选股票池
fqctl stock.pre-pool list [--category <分类>]
查看监控股票池
fqctl stock.pool list [--category <分类>]
查看必买股票池
fqctl stock.must-pool list [--category <分类>]
如果后面跟上–category选项就是按分类查看,比如:
fqctl stock.pool list --category CLXS00001
从股票池中删除股票
按id删除
fqctl stock.pool rm --id 67af2ae6628d0c02c85a9a6f
按category删除
fqctl stock.pool rm --category 超级赛道
按代码删除,这样都是支持的。
fqctl stock.pool rm --code 603103
fqctl stock.pool rm --code 603103 --code 600633
fqctl stock.pool rm --code 603103,600633
按category和code的组合删除
fqctl stock.pre-pool rm --category CLXS00001 --code 000001
监控股票池同理,pre-pool替换成pool。
必买股票池的管理
必买股票池和预选股票池的管理有些不同,主要是多一些额外的参数,比如止损价,初始买入金额,一网买入金额。
添加的命令的格式是
fqctl stock.must-pool import --code <股票代码> --category <分类> --stop-loss-price <止损价> --initial-lot-amount <第一次买入的金额> --lot-amount <一网买入的金额>
从必买股票池删除股票的方法和pre-pool和pool一样,格式如下。
fqctl stock.must-pool rm --id <ID> --category <分类> --code <代码>
运行选股程序
命令格式是:
fqctl stock screen clxs --model-opt <modelopt> --wave-opt <waveopt> --stretch-opt <stretchopt> --trend-opt <trendopt> --days <days>
days参数是指定最近今天内的信号,默认是1天。
比如我们用CLXS的0001模型选股:
fqctl stock screen clxs --model-opt 10001
fqctl stock screen clxs --model-opt 1
运行后选出的股票也会直接被存入到pre-pool股票池。
股票成交订单管理
如果已经对接了miniqmt的情况下,成交订单当然是已经自动地导入到系统了。但是如果还没有对接好miniqmt,那么怎么来利用系统来管理好持仓的成交订单呢。就通过这里的命令来完成。
一旦订单录入到系统后,就可以利用系统的能力,来帮你监控你的持仓,当出现交易信号的时候通知到你,没有自动交易的情况下,就手工来执行订单指令,成交之后再把成交单录入系统。如此,我们就可以和系统进行信息交换了。接下来就一一说明:
命令行说明中的约定:
方括号代表可选,尖括号代表占位。
查看系统中所有的成交单:
fqctl stock.fill list [--code <股票代码>]
fqctl stock.fill list
fqctk stock.fill list --code 000001
导入成交单到系统中:
fqctl stock.fill import buy --code <股票代码> --quantity <数量> --price <价格>
fqctl stock.fill import sell --code <股票代码> --quantity <数量> --price <价格>
如果发现某笔成交录入错了,也可以删除他。
按数据库的记录ID,删除一条记录:
fqctl stock.fill rm --id <数据库记录的ID>
按股票代码,删除所有这个股票的成交记录:
fqctl stock.fill rm --code <股票代码>
你的成交订单录入后,我们就可以在http://127.0.0.1这个页面上看到你的成交记录。并且在图表中看到你的持仓线。在盘中也可以对他们进行信号监控了。
期货成交订单管理
期货没有接入自动交易,为了能支持期货的订单管理和持仓监控,也提供一组命令行运维工具。
查询所有的期货成交订单:
fqctl future.fill list [--instrument-id <期货代码>]
比如
fqctl future.fill list --instrument-id c2509
导入多头成交单到系统中:
fqctl future.fill import buy_open --instrument-id <期货代码> --volume <数量> --price <价格>
fqctl future.fill import sell_close --instrument-id <期货代码> --volume <数量> --price <价格>
导入空头成交单到系统中:
fqctl future.fill import sell_open --instrument-id <期货代码> --volume <数量> --price <价格>
fqctl future.fill import buy_close --instrument-id <期货代码> --volume <数量> --price <价格>
如果发现某笔成交录入错了,也可以删除他。
按数据库的记录ID,删除一条记录:
fqctl future.fill rm --id <数据库记录的ID>
按期货代码,删除所有这个期货的成交记录:
fqctl future.fill rm --instrument-id <期货代码>