当前位置:文档之家› 金字塔决策交易系统—高级教程(2016修订版)

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

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

2016

金字塔决策交易系统

高级教程

上海金之塔信息技术有限公司

本教程主要介绍金字塔的后台程序化交易,VBA、C++二次开发的编程。

目录

目录 (2)

第一章金字塔的后台程序化交易 (1)

1.1后台程序化工作机理 (1)

1.2 后台程序化交易函数 (1)

1.3 后台套利模型例 (5)

1.4 后台程序化的启用 (7)

1.5 后台程序化的调试 (8)

1.6 后台程序化注意事项 (10)

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

2.1 图表、交易函数的区别 (12)

2.11 图表交易函数 (12)

2.12 后台交易函数 (12)

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

第三章基于VBA的二次开发 (14)

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

3.2 VBA 原理的隐喻 (14)

3.3 VBA 简介 (15)

3.3.1VBA 及其IDE 初步 (15)

3.3.2模块、函数和过程 (18)

3.3.3数据类型和变量 (20)

3.3.4VBA 语言基础 (23)

3.3.5用户窗体 (29)

3.4金字塔的对象模型 (33)

3.4.1Application 对象 (34)

3.4.2Order 对象 (36)

3.4.3MarketData 对象 (44)

3.4.4 ReportData对象 (49)

3.4.5 HistoryData 对象 (50)

3.4.6 Document对象 (52)

3.4.7 Frame 对象 (54)

3.4.8 Grid对象 (56)

3.4.9 Formula 对象 (62)

3.4.10 NetWork 对象 (63)

3.4.11 TestReport 对象 (65)

第四章 VBA实用例 (75)

4.1 跨期套利交易例 (75)

4.2 金字塔VBA指标调用数据库教程 (77)

4.2.1数据库的准备工作(vba使用数据库首先我们需要连接数据库) (77)

4.2.2 数据库操作方法(具体代码和注释<使用时选取需要的代码只要稍许修改>) (77)

第五章基于C++二次开发 (86)

5.1使用金字塔C++ API开发策略的优势 (86)

5.2金字塔的C++ API与主程序的组织结构 (87)

5.3金字塔的接口例下载与简要说明 (87)

5.3.1 API接口报价行情订阅 (87)

5.3.2报价行情变化通知 (88)

5.3.3获取指定市场全部合约报价 (88)

5.3.4历史数据的获取 (88)

5.3.5下单委托指令 (89)

5.3.6订单状态推送回报 (89)

5.3.7策略编写调试与跟踪 (90)

5.3.8API接口更多功能信息 (91)

第六章自定义PEL函数 (91)

6.1 使用VBA自定义PEL函数 (91)

6.1.1自定义函数的格式 (92)

6.1.2自定义函数的两种工作模式 (93)

6.2 使用C++DLL扩展函数程序调用 (95)

第一章金字塔的后台程序化交易

金字塔提供功能性和扩展性更为强大的基于后台预警模式的程序化交易模式(后台程序化),可以在不影响用户前台图形操作的情况下,高效地与预警系统一起工作,实现自动交易。由于该模式运行在后台,不需要打开图表占用过多的资源,且只需最后一个周期的信号,所以原则上公式不做多余计算,效率高,便于对多个品种同一个策略进行轮循监控。

从某种意义讲,后台程序化属于图表程序的深化,它的优点是更注重于策略的高效执行,更完美地实现策略的设计初衷。虽然后台程序化的功能强大,但用户切忌直接使用后台策略,而跳过学习图表程序化的过程。原因是在后台程序化中用户无法直接在图表上看到信号的整个出现过程,因此对用户的公式编写水平有一定的要求。其次,用户需要对金字塔的后台交易系统工作机理有比较深的了解,并且要对自己的公式系统有清晰的认识,这样一旦遇到问题也能及时找到原因。后台交易过程中,一旦遇到问题,需要客户掌握第八章后台程序化交易调试的技巧。以我们多年的经验来看,用户先将策略经测评、优化、图表实盘上运行后,再转化成后台策略,会取得非常好的效果。

1.1后台程序化工作机理

在初级教程中,我们介绍了基于虚拟数据技术的图表程序化交易。想必经过一段时间的学习,大家已将图表程序化运用的相当纯熟。不过当你进行实盘的时候,是否发现在某些情况下,例如碰到未成交单、未完全成交单、需要进行追撤单等更精细的下单操作时,图表程序化就束手无策了。这是由于图表基于虚拟数据的特性,无法与真实账户进行交互,虚拟数据的成交并不考虑实盘的的流动性情况,只要价格达到即成交。而实际情况可能并不是这样。

另一方面,当图表程序化碰上多品种、多策略、或者较复杂的策略时,有时系统会显得相对较慢、不流畅。这是由于图表需要计算大量以往的历史数据进行判断操作,并在图表上进行输出。这消耗了相当多的资源。但实盘并不需要考虑历史曾经如何,实时交易需要考虑的是如何高效的执行,其实只需根据最后一根K线上的数据,来确定开平仓的动作。这也就是例如DYNAINFO等这些常数函数无法进行测评而实盘的公式确可以用的主要原因,因为DYNAINFO只有最新的一笔行情数据,而没有历史的序列数据。金字塔后台程序化也是这个道理,因为金字塔的后台程序化只注重交易,因此无法用来测评。

总结一下,金字塔的后台程序化交易是金字塔很大的特色。从工作机制的角度看,后台程序化在沿用PEL 语言体系的情况下,为用户创造了近似VB、C++才能达到的精细化、高效快捷程序化下单模式。因此它特别适合那些多周期、多策略、多品种的组合交易以及对效率要求较高的套利交易,为您的交易带来无与伦比的便捷。

1.2 后台程序化交易函数

金字塔的后台程序化交易只能在专业版及更高级的版本中使用,它可以运行在序列和逐K线两种模式,但

是推荐序列模式运行,这样可以极大提高后台执行的效率。

为了让用户更快的编写和熟悉金字塔的后台程序化交易,金字塔的程序化交易函数,前面都在交易系统函数名称前加 T 字母,比如BUY改为TBUY, 使用方法大致相同,用户仔细注意查看函数的使用说明。与图表交易系统函数不同的是,后台程序化交易的函数都使用实际的用户持仓和资金。

让我们通过案例来学习后台程序化交易函数。

例1:MA指标后台公式

//中间变量

MA3:MA(C,3);

MA5:MA(C,5);

//交易系统

TBUY(CROSS(MA3,MA5),1,LMT,C); //按照最新价限价开多

TSELL(CROSS(MA5,MA3),0,LMT,C);//按照最新价限价平多,0表示平掉全部持仓

请注意TBUY和TSELL函数的参数出现了变化,真正的下单时,需要指定下单类型和价格的,否则系统会按照市价进行交易。

用以模拟交易的函数和真实交易的函数,大部分只是有了前面T字母差别,大部分的用以交易评测的交易系统,只要将交易函数部分前面加T字母即可解决,唯一区别最大的就是TBUY,TSELL,TBUYSHORT,TSELLSHORT 这4个函数与模拟交易用的函数区别较大,请仔细辨别。

请注意后台程序化交易不能使用图表交易功能,且图表交易和后台交易的函数不能混用。交易控制符THISCLOSE 在真实交易中被 LMT 等真实交易控制符所取代,金字塔的模拟交易控制符和真实交易控制符两者不能通用。金字塔的真实下单函数只支持LMT限价 MKT市价 STP止损 STPLMT限价止损这4个交易控制符。

真实下单交易函数,下单数量不再支持百分比模式。

程序化交易的函数介绍:

程序化交易系统之开多操作:

用法:TBUY(COND,V,[Type,P1,P2,AC,STOCK]);表示当COND条件成立时,

买入V股(手)当前品种,

TYPE表示开仓类型,LMT限价MKT市价STP止损STPLMT限价止损

P1表示开仓价格,当TYPE为LMT和STP,STPLMT时为指定限价和止损价格,其他情况填0

P2为止损限价,当TYPE为STPLMT时,必须指定P2的止损限价,其他情况填0,当P1止损价触发时按照P2价格止损操作.

当TYPE参数省略时,为市价开仓。AC为ID,为空时为系统默认,否则将下单到指定中

STOCK为品种代码,比如'SH600215',为空或者不填时为当前品种

后台程序化交易不能使用图表交易功能,且图表交易和后台交易的函数不能混用。例如,限价在图表中函

相关主题
文本预览
相关文档 最新文档