本文以交易开拓者·极速版为例简单介绍,该软件的程序化开发过程,以此来抛砖引玉。

TB简介:交易开拓者(TB),是一款支持证券、期货、外盘市场的中高端专业投资者的专业金融交易软件。除多帐户交易终端功能外,还拥有丰富的程序化交易功能。用户可以简单、快速的将自己的交易思想转化为计算机代码,形成自己的交易策略,让计算机辅助用户执行交易。是国内最早能够接入证券、期货市场进行自动交易的程序化交易软件。

一、程序公式编写前的准备

1.软件下载地址:http://www.tradeblazer.net/product/download.html。

2.下载后按照提示进行一步步安装,成功安装完成打开界面(以交易开拓者·极速版为例):

图1  安装成功界面

二、程序编写

下面以简单的双均线交叉为例来进行程序的编写.

  1. 文件-->新建函数/公式-->公式应用;打开界面填写简称,名称和注释等,简称可以方便以后直接输入加载公式应用。确认后进入以下界面

图2、程序编写界面

  1. 程序编写

首先是参数的的编写,参数可以直接在公式应用的外面进行修改,不需要每次都要进入程序内再编译,双均线用到的几个参数包括短周期均线和长周期均线和下单手数的等参数。代码如下:

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的帮助手册。

编写完以上内容后我们首先对所写程序进行编译,只有成功编译通过的函数才能加载到我们所需要的合约上,完成后我们先进行所编写程序的测试和优化等工作。

  • 程序测试
  1. 程序的加载。

下面我们以甲醇ma1905合约为例来进行程序的加载测试,步骤如下:文件-->新建工作区-->新建工作区再工作区右键点击选择插入k线,然后选择甲醇1905的合约,选择好合约后然后在工作区窗口右键选择插入公式应用,然后选择我们编译好的公式test001。

加载好的工作区如下图:

图3  1905小时周期加载公式图

  1. 程序策略的回测

交易开拓者对于初步接触程序化的交易者来说是比较容易上手的,测试的话我们可以直接通过工具栏里面的测试报告按钮或者按F3就能直接看到测试报告。里面比较完整的展示了该策略在该合约上的各个性能,包括盈利金额、亏损金额、盈利手数、亏损手数、回撤数据等等,如下图

图4  性能测试报告

  1. 策略参数优化

由于每个品种不同的特性,导致了其价格走势也不尽相同,TB给我们提供了一个比较好的功能参数优化,通过这个功能我们可以找到更适合我们要求的参数组合,下面我们就来试试这个功能。

进入界面可以通过工具栏参数优化或者F2按键可以进入操作界面,如下图

图5  参数优化设置图

通过图5我们可以设置我们要优化的目标:包括净利润最大,交易手数最大,平均利润最大,盈利比率最大等等,这个可以满足我们在期货市场交易目的需求,下面就是我们设置参数的优化范围和步长,然后选中要优化的参数,就可以进行对该策略公式的优化,然后找到适合该品种该策略的参数组合。

下面我们进入参数优化结果图:

图6  参数优化结果图

通过对该结果的分析,从结果中选出适合我们交易目的参数,比如说我们要找净利润较大,就直接按照净利润排序,或者有些交易者需要能成交手数较多的,就可以按照交易手数排序,找到合适的参数,然后直接应用到该品种的交易策略中即可。

  • 模拟测试

完成策略程序的测试后我们下一步要进行关联模拟账户进行测试,。

首先我们要在论坛上进行注册一个模拟账户,然后进入TB界面进行账户的绑定

图7 模拟账户绑定

绑定完成后在账户配置中进行输入密码,然后登陆,账户的配置基本就完成了,然后就要启动自动交易。实盘交易前为什么要加入模拟账户的测试呢?首先是我们要用程序化做的事就是确定的指令动作,包括开平仓,止损止盈等等,历史回测的过程有些问题不一定能够发现,比如开仓时候的指令发送次数,还有挂单价格等等,这些我们可以通过模拟测试发现不完善的地方,然后进行修改。

五、实盘交易

1、您需要在我们的期货公司拥有交易帐户;

2、如果没有交易帐户,您可以先去期货公司自行开户,开户时请申明要使用交易开拓者;

3、在有交易帐户的情况下,您需要到期货公司去填写《交易开拓者(TradeBlazer)使用申请表》;

4、在收到期货公司的申请表传真件后,我们会第一时间为您开通帐户。您就可以正式使用交易开拓者进行交易了。

图8  实盘账户开通

小结:我们用程序化的目的就是用确定性的方法去进行股票,期货等金融的交易,从而能够辅助交易者做到知行合一。本文只是简单介绍TB的使用方法和基本的策略编程方法,更多的策略研发及软件账户等使用方法大家可以加QQ 379305007(同微信)。

浅谈交易开拓者程序化相关推荐

  1. 同花顺如何切换k线_K线之形态学:浅谈纸白银产品该如何去做好交易?

    K线之形态学:浅谈纸白银产品该如何去做好交易? 由于疫情期间,明显感觉到今年做投资理财的朋友多了,特别是银行的纸产品,我是分析外盘伦敦银伦敦金为主,自己也是只操作外盘产品.国内的不管是纸白银或者TD白 ...

  2. 浅谈策略交易、系统交易和程式交易

    新交易时代的来临 --浅谈策略交易.系统交易和程式交易 主持人:周莉莎 特邀嘉宾:hylt 近年来,我们越来越多地听到策略交易.系统交易.程式交易这些名词.许多人对其极为推崇,视为未来打开财富之门的金 ...

  3. iOS实录15:浅谈iOS Crash

    导语:在当前的iOS开发中,虽然ARC为开发者解决了手动内存管理时代 的许多麻烦,但是内存方面的问题依然是产生iOS Crash的元凶之一,本文介绍内存方面,有关僵尸对象.野指针.内存泄漏.废弃内存这 ...

  4. NFT系列#1 - 浅谈你不知道的加密艺术史(一)

    导读:加密艺术是近期的热门话题.不少人啧啧称奇,区块链和艺术什么时候打得如此火热?我们回溯加密艺术的历史,发现区块链与艺术的羁绊乃是草蛇灰线,伏脉千里:10年前,人们不止可以用比特币买披萨,也可以买画 ...

  5. java 中的单元测试_浅谈Java 中的单元测试

    单元测试编写 Junit 单元测试框架 对于Java语言而言,其单元测试框架,有Junit和TestNG这两种, 下面是一个典型的JUnit测试类的结构 package com.example.dem ...

  6. 浅谈几种区块链网络攻击以及防御方案之其它网络攻击

    旧博文,搬到 csdn 原文:http://rebootcat.com/2020/04/16/network_attack_of_blockchain_other_attack/ 写在前面的话 自比特 ...

  7. 浅谈几种区块链网络攻击以及防御方案之拒绝服务攻击

    旧博文,搬到 csdn 原文:http://rebootcat.com/2020/04/14/network_attack_of_blockchain_ddos_attack/ 写在前面的话 自比特币 ...

  8. 浅谈几种区块链网络攻击以及防御方案之51#37攻击

    旧博文,搬到 csdn 原文:http://rebootcat.com/2020/04/11/network_attack_of_blockchain_51_attack/ 写在前面的话 自比特币诞生 ...

  9. 【转】浅谈.net remoting 与webservice

    1. .NET Remoting .NET Remoting是微软随.NET推出的一种分布式应用解决方案,被誉为管理应用程序域之间的 RPC 的首选技,它允许不同应用程序域之间进行通信(这里的通信可以 ...

  10. 从零打造聚合支付系统:一、浅谈聚合支付的核心价值

    支付被誉为一切交易活动的咽喉,是商业活动的本质环节. 近两年,市场如雨后春笋般地涌现出一批"聚合支付"商家,如收钱吧.Ping++.钱方好近等等. 从零打造聚合支付系统系列文章将带 ...

最新文章

  1. 3.3V与5V的电平转换
  2. java和c++的区别大吗_安徽成人高考和自考区别大吗?为什么推荐选成人高考?
  3. python hdfs初体验
  4. python中复制n次字符串_在Python中查找字符串中多次出现的字符串
  5. php.ini 配置详解
  6. 机器人彩铅画_彩铅画嗔
  7. HTTP和HTTPS总结
  8. 光立方原理讲解_90%人不理解什么是防眩光射灯 防昡晕 防炫光,。怎么选项led防眩灯...
  9. 飞畅科技-工业交换机电源故障初探
  10. keras笔记-mnist数据集上的简单训练
  11. Sublime Text关闭自动更新
  12. =、:=、?=、+=
  13. 破局疫后“她经济”,解读艺星整形逆势增长的“3级助推器”
  14. SHELL基础命令大全
  15. 32位java jre_jre-7u4-windows-i586.exe|java 1.7.0(Java TM 7)JRE7 32位_最火软件站
  16. Android 声音采集回声与回声消除
  17. 百度推广怎么调整计算机优先,百度竞价优化关于帐户层级的一些设置方法与技巧...
  18. HTML从入门到入土 - CSS基础
  19. 百度地图如何准确定位?注意surroundingPois
  20. 第八-九周-总结(day38-54)

热门文章

  1. SPR EAD NET 6
  2. 离线地图开发 支持 局域网内二次开
  3. java中的g1_G1GC 概念与性能调优
  4. 使用Certbot申请ssl证书
  5. 元素化学期末(考点)整理
  6. 结构化、半结构化、非结构化数据
  7. 秒杀项目总结及面试常见问题
  8. CSS中几种解决高度坍塌方式分析
  9. Aras Innovator: 如何快速的装多份innovatorSample数据到不同的数据库
  10. blk-mq 进行多重队列