交易引擎
由small_q创建,最终由small_q 被浏览 91 用户
交易引擎简介
1.1 交易引擎的作用
交易引擎回测模块的功能是实现用户的交易逻辑
- 当用户将策略编写好之后,我们需要在一段时间当中,用策略逻辑,模拟一下在金融市场中的买卖,通过收益情况判断策略的好坏
- 如果想测试策略在某段历史时期上的表现,只需在本地运行回测模块即可
- 如果想测试策略从今天开始一直到未来的表现,需要将含有回测模块的策略提交到模拟交易
- 在交易引擎中,用户可以自定义一些买卖逻辑,也叫交易逻辑,它和策略逻辑还是有一定区别的
策略逻辑与交易逻辑的对比:
策略逻辑 | 交易逻辑 |
---|---|
使用什么样的数据\n使用什么样的因子\n对于多种股票来说,如何选股,简单的筛选排序,还是复杂的AI模型\n对于一只股票来说,如何判断买卖信号\n。。。。。。 | 持股数量是多少\n持仓天数是多少\n每只股票的持仓占比是多少\n如果要买,以什么价格买;如果要卖,以什么价格卖;\n有没有止盈止损的考虑\n有没有大盘风控的考虑\n。。。。。。 |
策略逻辑与交易逻辑其实并不一定要严格划分
- 我的个人编写策略的习惯是:把所有策略相关的数据都在回测模块之前准备好,回测模块中直接调用数据,就不再对数据进行加工了(如下图左侧的筛选排序策略,筛选和排序全部在回测模块之前完成)
- 有些人的编写策略的习惯是:回测模块之前也有数据的提取与加工,回测模块中也有数据的提取与加工(如下图右侧的筛选排序策略,筛选在回测模块之前完成,但排序在回测模块当中完成)
目前BigQuant平台提供三种回测模块
- 新版模拟交易:BigTrader 与 HFTrade
- 旧版模拟交易:Trade
交易引擎的运行逻辑
-
\
1.2 使用交易引擎实现常见的交易逻辑
交易引擎其实就是将投资者的交易思路用代码实现
- 要想玩转交易引擎,需要使用者既要熟悉常见的交易逻辑,又要熟悉代码
- 而且这是一个学无止境的过程,因为我们总会从各种渠道学到新的交易逻辑
- 如果能将策略想法用文字描述出来的话,并且熟悉常用代码的话,其实回测模块的代码实现就不难
1.2.1 解读一个简单的回测引擎
以下是一个简单的基本的交易逻辑
-
初始资金1000000
-
日线交易,每5天调仓一次
-
仓内持股10支,等权重(1支占10%)
-
调仓时,看一下策略让我持有哪些股票,再看一下我手里有哪些股票
如果策略让我持有的就是手里有的,就不买也不卖,
如果策略让我持有的手里没有,则买入,如果要买,在开盘的时候就买,买入手续费万分之一
如果手里有的策略不需要我持有,则卖出,如果要卖,在开盘的时候就卖,卖出手续费万分之一
\
1.2.2 止盈交易逻辑的实现
止盈的交易逻辑,指的是,我仓内的某只股票,自我买入开始,如果涨幅已经超过了一定的临界值,就卖出,其实就是一个见好就收的想法
以下是一个止盈逻辑的实现
- 是否止盈需要每天判断,并不是只在调仓日判断
- 每天判断,对于仓内的每一只股票,如果自从我买入开始,涨幅超过了10%,我就将该股票卖出
\
1.2.3 大盘风控交易逻辑的实现
大盘风控指的是,如果大盘(例如沪深300)最近的跌幅有点猛(例如最近10天跌幅超过5%),则全部清仓且当日不买入
- 大盘风控同样需要每天判断,不仅是调仓当天
- 大盘风控需要在止盈逻辑之前实现
- 大盘风控的实现,可能需要在回测模块之前的数据准备步骤中,准备关于大盘的数据
\
1.3 交易引擎小结
交易引擎其实就是把你的交易想法用代码实现一下,如果觉得这部分困难,无非两个原因:
- 金融知识不懂,一些交易逻辑没听说过,如果有没听说过的交易逻辑,可以在我们的知识库中搜索
- 代码不懂,那就可以看一看我们的BigTrader的文档
策略源码:交易逻辑的实现
下面是一个策略样例,当中的交易逻辑就是1.2.1中介绍到的,并且实现了1.2.2中的止盈的逻辑,和1.2.3中的大盘风控的逻辑
https://bigquant.com/codeshare/7359eb89-6f28-4117-be9c-821de7fe95af
\