本文以交易开拓者·极速版为例简单介绍,该软件的程序化开发过程,以此来抛砖引玉。
TB简介:交易开拓者(TB),是一款支持证券、期货、外盘市场的中高端专业投资者的专业金融交易软件。除多帐户交易终端功能外,还拥有丰富的程序化交易功能。用户可以简单、快速的将自己的交易思想转化为计算机代码,形成自己的交易策略,让计算机辅助用户执行交易。是国内最早能够接入证券、期货市场进行自动交易的程序化交易软件。
一、程序公式编写前的准备
1.软件下载地址:http://www.tradeblazer.net/product/download.html。
2.下载后按照提示进行一步步安装,成功安装完成打开界面(以交易开拓者·极速版为例):
二、程序编写
下面以简单的双均线交叉为例来进行程序的编写.
图2、程序编写界面
首先是参数的的编写,参数可以直接在公式应用的外面进行修改,不需要每次都要进入程序内再编译,双均线用到的几个参数包括短周期均线和长周期均线和下单手数的等参数。代码如下:
Params
Numeric ShortLength(6);//短周期
Numeric LongLength(16);//长周期
Numeric lots(1);//下单手数
再次是变量的的设置,变量包括
Vars
NumericSeries ma1;//短周期的变量定义
NumericSeries ma2;//短周期的变量定义
Bool c1;//此处定义两个布尔类型的变量
Bool c2;
第三就是策略的编写,所有的实现策略功能程序从begin开始编写,作为一个初学者,最希望的是先看到一个能实用的程序,下面我们简单来编写一个常用的趋势跟踪指标函数,均线交叉函数。
Begin
ma1 = AverageFC(Close,ShortLength);//求短周期平均价格
ma2= AverageFC(Close,LongLength);
PlotNumeric("ma1",ma1);
PlotNumeric("ma2",ma2);
If(BarStatus == 2 And IsCallAuctionTime) Return;//过滤集合竞价
c1=CrossOver(ma1[1],ma2[1]);//短周期上穿长周期
c2=CrossUnder(ma1[1],ma2[1]);//短周期下穿长周期
If(MarketPosition <>1)
{
If(c1) Buy(lots,Open);//买入开仓,买入平仓
}
If(MarketPosition <>-1)
{
If(c2) SellShort(lots,Open);//卖出开仓,卖出平仓
}
此段程序可以简单实现我们以双均线交叉为买卖信号的,在价格的变动中短周期比长周期反应更为灵敏,特别是趋势行情里面,短周期上穿长周期往往作为一个买点的信号,同理短周期下穿长周期作为一个空单进场的信号。
AverageFC,Close,CrossOver,CrossUnder,Open,Buy,SellShort等都是系统直接给的,我们在编写程序策略的时候直接调用即可,如果需要实现更多的功能或者需要不同类型的函数,建议熟悉TB的帮助手册。
编写完以上内容后我们首先对所写程序进行编译,只有成功编译通过的函数才能加载到我们所需要的合约上,完成后我们先进行所编写程序的测试和优化等工作。
下面我们以甲醇ma1905合约为例来进行程序的加载测试,步骤如下:文件-->新建工作区-->新建工作区再工作区右键点击选择插入k线,然后选择甲醇1905的合约,选择好合约后然后在工作区窗口右键选择插入公式应用,然后选择我们编译好的公式test001。
加载好的工作区如下图:
图3 1905小时周期加载公式图
交易开拓者对于初步接触程序化的交易者来说是比较容易上手的,测试的话我们可以直接通过工具栏里面的测试报告按钮或者按F3就能直接看到测试报告。里面比较完整的展示了该策略在该合约上的各个性能,包括盈利金额、亏损金额、盈利手数、亏损手数、回撤数据等等,如下图
图4 性能测试报告
由于每个品种不同的特性,导致了其价格走势也不尽相同,TB给我们提供了一个比较好的功能参数优化,通过这个功能我们可以找到更适合我们要求的参数组合,下面我们就来试试这个功能。
进入界面可以通过工具栏参数优化或者F2按键可以进入操作界面,如下图
图5 参数优化设置图
通过图5我们可以设置我们要优化的目标:包括净利润最大,交易手数最大,平均利润最大,盈利比率最大等等,这个可以满足我们在期货市场交易目的需求,下面就是我们设置参数的优化范围和步长,然后选中要优化的参数,就可以进行对该策略公式的优化,然后找到适合该品种该策略的参数组合。
下面我们进入参数优化结果图:
图6 参数优化结果图
通过对该结果的分析,从结果中选出适合我们交易目的参数,比如说我们要找净利润较大,就直接按照净利润排序,或者有些交易者需要能成交手数较多的,就可以按照交易手数排序,找到合适的参数,然后直接应用到该品种的交易策略中即可。
完成策略程序的测试后我们下一步要进行关联模拟账户进行测试,。
首先我们要在论坛上进行注册一个模拟账户,然后进入TB界面进行账户的绑定
图7 模拟账户绑定
绑定完成后在账户配置中进行输入密码,然后登陆,账户的配置基本就完成了,然后就要启动自动交易。实盘交易前为什么要加入模拟账户的测试呢?首先是我们要用程序化做的事就是确定的指令动作,包括开平仓,止损止盈等等,历史回测的过程有些问题不一定能够发现,比如开仓时候的指令发送次数,还有挂单价格等等,这些我们可以通过模拟测试发现不完善的地方,然后进行修改。
五、实盘交易
1、您需要在我们的期货公司拥有交易帐户;
2、如果没有交易帐户,您可以先去期货公司自行开户,开户时请申明要使用交易开拓者;
3、在有交易帐户的情况下,您需要到期货公司去填写《交易开拓者(TradeBlazer)使用申请表》;
4、在收到期货公司的申请表传真件后,我们会第一时间为您开通帐户。您就可以正式使用交易开拓者进行交易了。
图8 实盘账户开通
小结:我们用程序化的目的就是用确定性的方法去进行股票,期货等金融的交易,从而能够辅助交易者做到知行合一。本文只是简单介绍TB的使用方法和基本的策略编程方法,更多的策略研发及软件账户等使用方法大家可以加QQ 379305007(同微信)。