如何打造一个可转债自动交易系统

介绍

自动交易或量化交易可以使用券商提供的量化平台,这种需要一定的资金门槛,具体可以咨询你使用的券商。这种量化系统响应速度快,是最优选择。另外一种是借助第三方工具,通过本地操作券商客户端的形式实现,优点是免费,无门槛。只需要稍加学习就能掌握。缺点是响应速度有限,不适合高频操作,不过对于散户的秒级、分钟级没有问题。

本文重点介绍第二种方式。所借助的工具是python和easytrader。

框架

交易信号

一个自动交易系统一般需要包括2个部分,一部分用于产生交易信号,一部分用于进行交易。

第一部分是产生交易信号的。这一部分的自由度是很大的,根据每个人的策略不同而不同。不论哪种方式,对市场行情的获取都是必须的。这方面的python库有很多,包括收费的tushare,免费的akshare,xalpha,easyquotation。他们的数据来源主要是一些财经网站。还有一些量化平台,也可以提供数据。

有了行情数据之后就可以根据自己的策略形成交易信号。

常见的交易策略可以分成2类,一类是固定交易信号,一类是实时交易信号。

固定交易信号就是能够提前规划好的,例如前一天计划好第二天买入什么标的,在哪个价格区间。

实时交易信号就是需要根据市场行情决定的交易信号,这部分需要用到技术分析的方法。

这两类交易信号不是互斥的,是可以结合使用的。例如,决定交易哪些标的可以使用固定交易信号,但是价格可以看当时的行情决定,即实时交易信号。

交易系统

第二部分是交易系统,用来执行具体交易任务。这部分比较简单,就是使用easytrader控制券商的客户端进行交易。这个过程和我们手动交易没有任何区别,只是easytrader速度更快,能够避免交易时的情绪影响。

框架部分就这么简单,下面结合可转债常用的轮动策略具体介绍一下。

easytrader

先简单介绍一下easytrader吧。easytrader是开源软件,网上就可以下载到,使用python编写。能够支持以下券商:
  • 海通客户端(海通网上交易系统独立委托)
  • 华泰客户端(网上交易系统(专业版Ⅱ))
  • 国金客户端(全能行证券交易终端PC版)
  • 其他券商通用同花顺客户端(需要手动登陆)

操作也很简单,基本看一遍说明文档就能知道怎么用。稍微优点python基础用起来应该没什么难度。

官方文档百度可得。

轮动策略

可转债中使用最多的就是各种轮动策略,包括低价、双低、低溢价、多因子等等。

轮动策略就是在轮动日那天,将不符合持有标准的转债卖出,买入符合标准的转债。按照策略轮动,即使是割肉卖出也要轮。

这种方式显然是固定交易信号的,到轮动日需要操作的转债是很清晰的。至于买卖价格也可以固定,比如开盘交易。如果你的交易量较小,是可以按照前一日收盘价,需要买入则高挂,需要卖出则低挂,就可以按照开盘价交易。

如果交易量较大,则需要分批交易。开盘交易一些,盘中交易一些,盘中交易时可以按当时市价交易,也可以根据行情走向,增加一些技术分析的手段,买低卖高。

轮动程序

轮动程序需要根据当前的持仓情况以及你所使用的策略下最新的转债排名来判断需要买入和卖出的转债及其数量。

这就是轮动程序需要干的唯一一件事。然后只需要将这些信息传递给交易程序即可。

交易程序

交易程序收到轮动程序发来的交易指令后,需要保存交易指令,便于检查是否完成所有交易。这部分交易指令仅包括 交易标的,交易数量和交易方向。这是我们本次交易的目标,这部分不涉及价格。

这是第一部分。用于告诉交易程序要交易的对象和数量。

第二部分是交易方案。

我分为开盘交易和盘中交易。因为,开盘交易是一次性的,在开盘前的集合竞价时间挂单,过了那个时间就变为盘中交易了。所以开盘交易不需要监控。如果开盘就完成了所有交易指令,那么对于轮动而言,今天的交易就结束了。

盘中交易则要复杂一些,因为需要对交易状态进行监控。如果挂单没有成交,那么需要撤单后再按照新的价格挂上去。另外,盘中交易的价格在随时变化,也需要监控,以便能够更新盘中交易价格。

对于这种需要监控的,比较好的方式是通过多进程。分出几个进程用于监控不同标的的价格走势,一个进程用于交易。

当然也有简单的办法,因为对于轮动而言,今天就是需要成交,只要成交价不是太高就好。那么我们可以期望得到今天的均价,一个简单的做法就是间隔下单。例如,每间隔10分钟下一单,每一单的数量根据总交易量而定。因为价格波动是随机的,如果次数较多,可以认为拿到了今天的均价。

第三部分就是实施交易了。调用easytrader的buy,sell函数即可。

总结

上面给出了构建一个可转债自动交易系统的框架。我没有涉及具体的代码,因为其中有很多细枝末节的东西需要处理。例如,在交易前需要判断账户状态,金额是否充足,卖出转债份额是否超过持有份额,在交易时还需要跟踪挂单的状态,是否成交,撤销的是否成功等等。不过,按照上面的思路使用easytrader构建一个简单的自动交易系统应该是没问题的。

我自己主力在用的就是上面的轮动方案,目前运行良好。正在测试运行的是盘中交易方案,监控持仓转债的涨幅,当超过一定幅度则卖出。由于系统是借助easytrader构建,所以不适合高频操作(分钟以下频率)。不要对这个系统抱有不切实际的幻想。

这个系统最大的好处就是:
  1. 节省轮动时间,配置好之后,轮动日只需要5分钟就能搞定。
  2. 避免人的主观干扰,避免轮动时下不去手,割不了肉的情况出现。

好了,先说这些。如果对这个系统有兴趣,可以到我的公众号找我。
发表时间 2022-03-31 09:57

赞同来自: 甘甜交响曲 财叔在苏州 集XFD 股息有道 biso byff 流沙少帅 bismackzhang更多 »

0

cqzhao

赞同来自:

@amoyca
我对这个感兴趣啊, 但是没看到你的公众号。
不知道在集思录能不能宣传啊。先说一下吧:微信搜索奇而思
2022-05-14 22:55 引用

要回复问题请先登录注册

发起人

问题状态

  • 最新活动: 2023-02-10 21:41
  • 浏览: 5758
  • 关注: 32