金字塔决策交易系统—高级教程(2016修订版)(4)

2019-03-28 15:50

金字塔决策交易系统高级教程

第二章 图表交易和后台交易的主要区别和联系

2.1 图表、交易函数的区别

2.11图表交易函数

BUY

开多

BUYSHORT 开空 SELL

平多

SELLSHORT平空

适用于图表程序式交易模式,本函数中可以设置下单条件、下单手数、下单价格等参数。这种交易函数优

点在于可以将本交易函数套用到若干个循环逻辑判断语句中,对下单手数灵活设置,对下单价格灵活的掌控,与之配套使用的各类函数较多,因此能够用于实现较为复杂的交易模型;缺点是没有参数设置账户名、下单品种、只能运行在逐K线模式等。 例2.1:

BUY(vol/ref(vol,1)>3 AND CLOSE>OPEN , 1 ,LIMIT ,CLOSE ); SELL(vol/ref(vol,1)>3 AND CLOSE

IFvol/ref(vol,1)>3THEN BEGIN

BUY(CLOSE>OPEN , 1 ,LIMIT ,CLOSE ); SELL(CLOSE

其中LIMIT为限价委托交易控制符,新图表程序化交易可使用的交易控制符非常丰富,还有LIMITR;MARKET; NEXTHIGH; NEXTLOW; NEXTMID;NEXTOPEN; THISCLOSE;这些交易控制符的具体用法用户可以在公式编辑器左方的函数列表中找到。

2.12 后台交易函数

TBUY

开多 开空 平多 平空

TBUYSHORT TSELL

TSELLSHORT

适用于后台程序化交易模式,在图表交易函数的基础上又增加了关于下单账户、下单品种两个参数,对交

12

金字塔决策交易系统高级教程

易过程的控制能力进一步增强,本函数可以设置下单条件、下单手数、下单价格、下单账户、下单品种等参数。这种交易函数的优点在于可以适用于后台交易模式,对下单手数、价格和账户都可以做到精确控制,有大量的实时动态行情函数、后台函数等可以与之配套使用,基本所有的交易模型都可以通过后台交易模式来实现。 例2.3:

TBUY(vol/ref(vol,1)>3 AND CLOSE>OPEN ,1,LMT ,CLOSE ,0,’351579’ ,’al02’); TSELL(vol/ref(vol,1)>3 AND CLOSE

注意:限价委托交易控制符在后台程序化交易已由LMT取代,后台程序化交易由于是采用的真实持仓的

方式工作,因此只有LMT;MKT;STP;LMTSTP这4个交易控制符,并且这些交易控制符不可混用,也就是后台的交易控制符不能用在图表的BUY函数中,同样图表的交易控制符不能用在TBUY中,后面的章节中我们还会对其用对照表方式进行详细的对比。

2.3图表交易和后台交易的主要区别

(1)适用交易模式不同

图表交易函数用在图表程序化交易中; 后台交易函数用于后台程序化交易中;

(2)显示方式不同

在使用时,需要在所看的当前品种分析K线图中调用出交易指标,调用后K线图中会显示买卖信号; 后台交易函数使用时只会在后台静默的运行,不需要在当前所看的K线图中调用交易指标,因此在当前所看的K线图中不显示买卖信号;

(3)启用和设置方式不同

图表程序化交易的设置和启用界面位于菜单栏的“交易>图表程序化交易”选项。 后台程序化交易的设置和启用界面位于菜单栏的“交易>后台程序化交易”选项。

(4)虚拟和真实的区别

图表程序化交易采用的是虚拟持仓、虚拟资金等概念,各个买卖点以及中间过程返回给用户的持仓和资金是根据历史交易信号和相关初始化的数据计算得来,资金、费率等初始化数据是在指标编辑器中的“费率设置”中进行设置。

后台程序化交易采用的是真实持仓、真实资金的概念,它们调用的是账户栏中真实的账户数据。

13

金字塔决策交易系统高级教程

第三章基于VBA的二次开发

一个优秀的程序化交易软件不仅需要满足个人个性化的策略实现外,策略的执行也至关重要,俗话说:细节决定成败,前面章节我们都是介绍的使用金字塔内置的PEL脚本语言作为程序化交易使用,但是PEL终归还是为普通非计算机专业投资者准备的脚本语言,方便投资者学习和使用的同时,也带来了其自身存在的格式固化,运行不够灵活,效率不足等问题,是无法满足具有更多想法更多需求的程序化交易者的。在各种高级语言中,熟悉和精通VB的人无疑是最多的。著名的微软OFFICE办公软件中的二次开发也是使用的VBA。但是金字塔不仅仅是一个被广泛应用的金融分析软件,除了具有一般软件的数据处理、统计分析、图表功能外,最大的特点是集成了VBA 环境。并提供了VBA 的IDE 环境。可以应用金字塔的所有现有功能,例如其数据处理、图表绘制、数据库连接、内置函数等等。利用这些接口将极大的发挥我们专业程序化交易投资者的编程空间,使我们的交易系统具有强大的计算能力、扩展能力和生命力。

3.1金字塔VBA与OFFICE VBA区别和联系

尽管金字塔VBA与OFFICE VBA都是VBA,但是它们2个还是有些不同的地方,这里假设读者是熟悉OFFICE VBA的用户,如果你是VBA的初学者,那么可以不必理会这里的差别。

金字塔的脚本引擎是VBS,与OFFICE的VBA主要区别在于变量无需声明就可以使用。

金字塔软件的VBA系统是介于传统VBS与VBA之间的系统,支持VBA系统中才有的窗体,框架等等更多的对象,另外,语法上又兼容VBS。

除了类模块外,所有的框架和窗体对象模块的数据都是公用的,框架和窗体之所以独立是因为方便用户编辑和管理,实际运行代码是合在一起的。比如你在框架或者窗体中定义了一个函数过程外的全局变量,实际上是所有VBS代码都可以调用的,在窗体框架对象中的过程名在其他窗体中调用也无需使用 窗体.过程名 这种方式,可以直接使用过程名。

金字塔中的窗体与OFFICE其他组件的窗体在访问其内部控件时稍有不同,例如访问UserForm1窗体的Text1编辑控件,使其隐藏。代码如下: UserForm1_Text1.Visible = False

除此之外,金字塔VBA与OFFICE VBA在IDE界面,使用方法和布局上,完全一致,如果读者熟悉OFFICE VBA的开发,那么就应该很快掌握金字塔VBA的开发。

3.2 VBA 原理的隐喻

VBA 的基本原理可通过下图做示意性解释。

金字塔对象 14 VBA VBA代码 金字塔决策交易系统高级教程

VBA 作为应用VBA 编写的代码和金字塔对象之间的一个桥梁,为2 者之间的调用提供支持,这种调用是通过COM 自动化实现的。例如我们的代码中一句代码,调用金字塔中一个对象的一个属性,那么这个过程大概是类似这样的:VBA 环境解释执行这句代码,如果发现对金字塔对象的调用,就通过COM 的方式调用这个对象,获取其属性,这样VBA 代码就可以和金字塔对象进行交互。

3.3VBA 简介

要使用 VBA 进行数据处理,第一要熟悉VBA 的IDE 环境,知道如何进行代码书写,如何编写代码,设计窗体,创建类模块(对象),第二要熟悉VBA 的基本语法和。二者都是VBA 程序设计的基础,需要认真学习。

VBA 语法不是一章就可以全部介绍完全的,本章介绍的内容是最基本和应该熟练掌握的内容,对于不熟悉或者不理解的内容可以在学习了后面的内容后再反过头来学习。有些内容需要反复练习和熟悉。对于VBA 语法和用法的很多内容可以随时通过查看帮助来获得相关信息。

本章和下一章(金字塔 对象模型)的部分内容,特别是表格内的一些内容,没有必要完全记住,可以作为参考手册来使用。

3.3.1VBA 及其IDE 初步

本部分将对VBA 及其开发环境IDE(集成开发环境)作一概略的介绍。VBA IDE 是进行程序设计和代码编写的地方,同一个金字塔共享同一IDE。文中会涉及到一些诸如对象、事件等部分读者可能不熟悉或不清楚的概念,对于此类问题可直接忽略之,因为在后面会有详细介绍。本部分也不是一个VBA 的参考文档,只是其语法、特征的快速浏览和介绍。

(1)VBA 集成开发环境(IDE)的组成

VBA 代码和金字塔文档文件是保存在一起的,可以通过点击“工具―宏― Visual Basic 工程”打开VBA 的IDE 环境,进行程序设计和代码编写。

图3-1Visual Basic IDE 环境

15

金字塔决策交易系统高级教程

图3-1 为金字塔 VBA 的IDE 环境,缺省情况下,VBA IDE 环境上方为菜单和工具条(图3-1),左侧窗口为工程资源管理器窗口,右侧最大的窗口为代码窗口。

每一个金字塔文档文件,对应的VBA 工程都有4 类对象,包括:框架、窗体、模块和类模块(图3-2)。这里的框架主要是金字塔运行时的技术分析图表,例如我们常见的K线走势分析图的框架对象,双击这些对象会打开代码窗口(图3-1 右侧窗口),在此窗口中可输入相关的代码,响应事件,例如框架的打开、关闭,窗格的激活、品种显示的修改、选择等(有关事件、金字塔对象模型见后)。窗体对象代表了自定义对话框或界面,模块为自定义代码的载体,类模块则是以类或对象的方式编写代码的载体,关于各对象的具体含义和使用见后。在工程资源管理器窗口的右键菜单下,有添加用户窗体、模块、类模块的选项,也可以将已有的模块移除、导入和导出。

注意:建议用户新建一个VBA工程来完成你的个性化VBA代码,尽量不要在默认的工程中添加,防止多个不同工程的代码相互干扰,您可以点击左侧工程资源窗口上的

(2)在 VBA IDE 下进行开发

熟悉了VBA 的IDE 环境后,我们来开发VBA 之旅的第一个程序。首先我们双击左侧工程资源管理器上的窗口的模块分类,然后双击“Macro”模块,打开宏模块代码编辑窗口(图3-3),然后选择“插入”菜单->过程,再随后弹出的宏名称编辑窗口里输入“MyFirstVBAProgram”,然后单击确定,这样系统会自动将MyFirstVBAProgram这个过程函数插入到代码编辑窗口中,我们只要在打开窗口中输入以下代码:

Sub MyFirstVBAProgram() MsgBox “我的第一个自编程序。” End Sub

通过“运行”菜单->宏,或者按Alt+F8快捷键,弹出宏运行窗口,下拉框中选择我们前面建立的“MyFirstVBAProgram”宏,然后就能看到运行的结果了。

工具栏来新建一个VBA工程。

图3-2

16


金字塔决策交易系统—高级教程(2016修订版)(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:主题教育活动简报第1期(总第89期)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: