PLUS会员

交易引擎

由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

\

标签

交易引擎回测模块模拟交易金融市场交易
{link}