金字塔决策交易系统高级教学方案课程教案(2016年度修订版).doc

上传人:一*** 文档编号:2646998 上传时间:2020-04-26 格式:DOC 页数:117 大小:1.50MB
返回 下载 相关 举报
金字塔决策交易系统高级教学方案课程教案(2016年度修订版).doc_第1页
第1页 / 共117页
金字塔决策交易系统高级教学方案课程教案(2016年度修订版).doc_第2页
第2页 / 共117页
点击查看更多>>
资源描述

《金字塔决策交易系统高级教学方案课程教案(2016年度修订版).doc》由会员分享,可在线阅读,更多相关《金字塔决策交易系统高级教学方案课程教案(2016年度修订版).doc(117页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、,.上海金之塔信息技术有限公司2016金字塔决策交易系统高级教程l 本教程主要介绍金字塔的后台程序化交易,VBA、C+二次开发的编程。目录目录2第一章 金字塔的后台程序化交易11.1后台程序化工作机理11.2 后台程序化交易函数21.3 后台套利模型范例51.4 后台程序化的启用71.5 后台程序化的调试81.6 后台程序化注意事项10第二章 图表交易和后台交易的主要区别和联系122.1 图表、交易函数的区别122.11 图表交易函数122.12 后台交易函数122.3图表交易和后台交易的主要区别13第三章 基于VBA的二次开发143.1金字塔VBA与OFFICE VBA区别和联系143.2

2、VBA 原理的隐喻143.3 VBA 简介153.3.1VBA 及其IDE 初步153.3.2模块、函数和过程183.3.3数据类型和变量203.3.4VBA 语言基础233.3.5用户窗体293.4金字塔的对象模型333.4.1Application 对象343.4.2Order 对象363.4.3MarketData 对象453.4.4 ReportData对象493.4.5 HistoryData 对象503.4.6 Document对象523.4.7 Frame 对象543.4.8 Grid对象563.4.9 Formula 对象623.4.10 NetWork 对象633.4.11

3、TestReport 对象65第四章 VBA实用范例754.1 跨期套利交易范例754.2 金字塔VBA指标调用数据库教程764.2.1数据库的准备工作(vba使用数据库首先我们需要连接数据库)764.2.2 数据库操作方法(具体代码和注释)77第五章 基于C+二次开发855.1使用金字塔C+ API开发策略的优势855.2金字塔的C+ API与主程序的组织结构865.3金字塔的接口范例下载与简要说明865.3.1 API接口报价行情订阅865.3.2报价行情变化通知875.3.3获取指定市场全部合约报价875.3.4历史数据的获取875.3.5下单委托指令885.3.6订单状态推送回报885

4、.3.7策略编写调试与跟踪895.3.8API接口更多功能信息90第六章 自定义PEL函数916.1 使用VBA自定义PEL函数916.1.1自定义函数的格式916.1.2自定义函数的两种工作模式926.2 使用C+DLL扩展函数程序调用94,.第一章 金字塔的后台程序化交易金字塔提供功能性和扩展性更为强大的基于后台预警模式的程序化交易模式(后台程序化),可以在不影响用户前台图形操作的情况下,高效地与预警系统一起工作,实现自动交易。由于该模式运行在后台,不需要打开图表占用过多的资源,且只需最后一个周期的信号,所以原则上公式不做多余计算,效率高,便于对多个品种同一个策略进行轮循监控。从某种意义讲

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

6、化工作机理在初级教程中,我们介绍了基于虚拟数据技术的图表程序化交易。想必经过一段时间的学习,大家已将图表程序化运用的相当纯熟。不过当你进行实盘的时候,是否发现在某些情况下,例如碰到未成交单、未完全成交单、需要进行追撤单等更精细的下单操作时,图表程序化就束手无策了。这是由于图表基于虚拟数据的特性,无法与真实账户进行交互,虚拟数据的成交并不考虑实盘的的流动性情况,只要价格达到即成交。而实际情况可能并不是这样。另一方面,当图表程序化碰上多品种、多策略、或者较复杂的策略时,有时系统会显得相对较慢、不流畅。这是由于图表需要计算大量以往的历史数据进行判断操作,并在图表上进行输出。这消耗了相当多的资源。但实

7、盘并不需要考虑历史曾经如何,实时交易需要考虑的是如何高效的执行,其实只需根据最后一根K线上的数据,来确定开平仓的动作。这也就是例如DYNAINFO等这些常数函数无法进行测评而实盘的公式确可以用的主要原因,因为DYNAINFO只有最新的一笔行情数据,而没有历史的序列数据。金字塔后台程序化也是这个道理,因为金字塔的后台程序化只注重交易,因此无法用来测评。总结一下,金字塔的后台程序化交易是金字塔很大的特色。从工作机制的角度看,后台程序化在沿用PEL语言体系的情况下,为用户创造了近似VB、C+才能达到的精细化、高效快捷程序化下单模式。因此它特别适合那些多周期、多策略、多品种的组合交易以及对效率要求较高

8、的套利交易,为您的交易带来无与伦比的便捷。1.2 后台程序化交易函数金字塔的后台程序化交易只能在专业版及更高级的版本中使用,它可以运行在序列和逐K线两种模式,但是推荐序列模式运行,这样可以极大提高后台执行的效率。为了让用户更快的编写和熟悉金字塔的后台程序化交易,金字塔的程序化交易函数,前面都在交易系统函数名称前加 T 字母,比如BUY改为TBUY, 使用方法大致相同,用户仔细注意查看函数的使用说明。与图表交易系统函数不同的是,后台程序化交易的函数都使用实际的用户持仓和资金。让我们通过案例来学习后台程序化交易函数。例1:MA指标后台公式/中间变量MA3:MA(C,3);MA5:MA(C,5);/

9、交易系统TBUY(CROSS(MA3,MA5),1,LMT,C); /按照最新价限价开多TSELL(CROSS(MA5,MA3),0,LMT,C);/按照最新价限价平多,0表示平掉全部持仓请注意TBUY和TSELL函数的参数出现了变化,真正的下单时,需要指定下单类型和价格的,否则系统会按照市价进行交易。 用以模拟交易的函数和真实交易的函数,大部分只是有了前面T字母差别,大部分的用以交易评测的交易系统,只要将交易函数部分前面加T字母即可解决,唯一区别最大的就是TBUY,TSELL,TBUYSHORT,TSELLSHORT 这4个函数与模拟交易用的函数区别较大,请仔细辨别。请注意后台程序化交易不能

10、使用图表交易功能,且图表交易和后台交易的函数不能混用。交易控制符 THISCLOSE 在真实交易中被 LMT 等真实交易控制符所取代,金字塔的模拟交易控制符和真实交易控制符两者不能通用。金字塔的真实下单函数只支持LMT限价 MKT市价 STP止损 STPLMT限价止损 这4个交易控制符。真实下单交易函数,下单数量不再支持百分比模式。程序化交易的函数介绍:程序化交易系统之开多操作:用法:TBUY(COND,V,Type,P1,P2,AC,STOCK);表示当COND条件成立时,买入V股(手)当前品种,TYPE表示开仓类型,LMT限价 MKT市价 STP止损 STPLMT限价止损P1表示开仓价格,

11、当TYPE为LMT和STP,STPLMT时为指定限价和止损价格,其他情况填0P2为止损限价,当TYPE为STPLMT时,必须指定P2的止损限价,其他情况填0,当P1止损价触发时按照P2价格止损操作.当TYPE参数省略时,为市价开仓。AC为帐户ID,为空时为系统默认帐户,否则将下单到指定帐户中STOCK为品种代码,比如SH600215,为空或者不填时为当前品种后台程序化交易不能使用图表交易功能,且图表交易和后台交易的函数不能混用。例如,限价在图表中函数为Limit,后台为Lmt。市价在图表是函数Market,在后台是Mkt。例如:TBUY(CO ,1000,LMT,C);表示收阳线则在本周期收盘

12、价上买入1000股(手)。TBUY(C0,1000,STP,CLOSE+0.2);表示收阳线则在本周期收盘价高于0.2元下1000股(手)止损单,当盘中价格到了触发价时按市价开仓止损.TBUY(C0,1000,STPLMT,CLOSE+0.2,CLOSE);表示收阳线则在本周期收盘价高于0.2元下1000股(手)止损单,当盘中价格到了触发价时按CLOSE价格开仓止损。程序化交易系统之平多操作:TSELL(COND,V,Type,P1,P2,AC,STOCK); 用法同上程序化交易系统之开空操作:TBUYSHORT(COND,V,Type,P1,P2,AC,STOCK); 用法同上程序化交易系统

13、之平空操作:TSELLSHORT(COND,V,Type,P1,P2,AC,STOCK); 用法同上注意:程序化交易系统的函数中交易类型Type与交易测试系统的差别例2:唐奇安通道模型/中间变量input:N(20,5,100,1),NS(10,0,60,1);Price:=AVGENTERPRICE;/持仓价位/交易条件开多平空条件:=CROSS(H, hhv(ref(h,1),N);开空平多条件:=CROSS(llv(ref(l,1), N),L);/交易系统SELLSHORT(开多平空条件 and 持仓0,持仓,market);SELLSHORT(持仓0,持仓,market);SELL(

14、持仓0,持仓,Stopr,Price-NS);/止损BUYSHORT(开空平多条件 and 持仓=0,30%,market);/其他资产:asset,noaxis,colorgreen;持仓:HOLDING,LINETHICK0;总次数: TOTALTRADE,LINETHICK0;盈利:NUMWINTRADE,LINETHICK0;胜率:ROUNDS(100*PERCENTWIN,1),LINETHICK0;连亏:MAXSEQLOSS,LINETHICK0;连盈:MAXSEQWIN,LINETHICK0;将交易模型转换成程序化交易系统,主要是涉及交易系统函数的转化,即在交易系统函数前加“t”

15、,以及交易类型的改动;并且程序化交易函数都是在后台运行,不能在图表中显示;交易数量不能用30%的写法,只能用具体数量。因此,唐奇安通道模型转化为可程序化交易的系统:/中间变量input:N(20,0,60,1) ,NS(30,0,100,1);持仓:=tHOLDING,LINETHICK0;KCS:= intpart(tasset*0.3/(close*multiplier);/也表示30%的开仓数BUY1:=hhv(ref(h,1),N);SELL1:=llv(ref(l,1),N);Price:=tAVGENTERPRICE; /持仓价位/交易条件开多平空条件:=CROSS(H,BUY1)

16、;开空平多条件:=CROSS(SELL1,L);/交易系统TSELLSHORT(开多平空条件 and 持仓0,t持仓,mkt);TSELLSHORT(持仓0,持仓,mkt);TSELL(持仓0,持仓,Stp,Price-NS);TBUYSHORT(开空平多条件 and 持仓=0, KCS,mkt);若想与交易模型完全一样,后句则需这样写:tSELLSHORT(ref(开多平空条件,1) and 持仓0,t持仓,mkt);tSELLSHORT(持仓0,t持仓,mkt);tSELL(持仓0,持仓,Stp,Price-NS);tBUYSHORT(ref(开空平多条件,1) and 持仓=0, KCS

17、,mkt);注意:在公式编辑中,点击 0; 平多开空条件 :=MACD0; /交易系统TSELLSHORT(平多开空条件,10, mkt, 0,0, , SQRB03); /平空TBUY(平空开多条件,10,mkt, 0,0, SQRB05);/开多TSELL(平多开空条件,10, mkt, 0,0, SQRB05); /平多TBUYSHORT(平空开多条件,10,mkt, 0,0, , SQRB03); /开空(3)如何编制技术指标的多账户模型:账户1:16801账户2:16802/中间变量DIFF := EMA(C,12) - EMA(C,26); DEA := EMA(DIFF,9);

18、MACD:=2*(DIFF-DEA); /交易系统IF THOLDING0 and THOLDING0,10, mkt, 0,0, 16802); /平空ENDIF THOLDING=0 THEN BEGINTBUY(MACD0 and THOLDING=0,10,mkt, 0,0, 16801);/开多TBUY(MACD0,10,mkt, 0,0, 16802);/开多ENDIF THOLDING0 THEN BEGINTSELL(MACD0, THOLDING,10, mkt, 0,0,16801); /平多TSELL(MACD0,10, mkt, 0,0,16802); /平多ENDIF

19、 THOLDING=0 THEN BEGINTBUYSHORT(MACD0 and THOLDING=0,10,mkt, 0,0,16801); /开空TBUYSHORT(MACD下单设置-程序化交易-将“记录下单日志”打勾。打勾的同时,会提醒您日志所保存的文件路径。在图表交易和后台自动交易的甚至手工下单的过程中,金字塔会将与交易有关的动作记录在内,便于用户查找和分析问题原因。1.6 后台程序化注意事项(1) 图表BUY等显示函数是不能放在后台做监控交易的,但是将允许程序化交易勾去掉后单独做预警是可以的。(2)只有少数的带T的后台交易函数允许使用在BUY前台图表交易策略中. Tholding,

20、 TAVGENTERPRICE,Taccount,Tasset,但是金字塔强烈不建议使用,因为这样会造成图表上的交易信号与实际的下单记录不符。(3)金字塔的后台交易部分,使用手工闪电下单的记录,将无法通过比如TENTERPRICE等与交易记录有关函数中得到结果,但可以通过程序化交易监控中的手工下单干预功能完成此项目的。(4)金字塔的后台交易,查询持仓和资产均为用户当前的实际数值,如果多个策略同时多一个品种或通一个帐户进行操作会产生相互干扰现象,解决办法就是通过使用交易系统使用虚拟持仓和资金,这样就完全可以避免这种共振现象,但是推荐高级用户使用,因为需要很多技巧需要处理。(5)用以图表显示的交易

21、系统和后台程序化交易的交易指令函数,参数有明显的不同,用户不能简单的将BUY函数加个T就可以直接后台交易,使用前应该将鼠标放在TBUY函数上认真看看函数说明。同名交易系统函数与程序化交易函数的差别:函数意义前台图表交易模型后台交易系统开多BUYTBUY平多SELLTSELL开空BUYSHORTTBUYSHORT平空SELLSHORTTSELLSHORT其中TYPE:次周期限价LIMITREF(条件,1),LMTTYPE:本周期限价LIMITRLMTTYPE:次周期停损STOPREF(条件,1),STPTYPE:本周期停损STOPRSTPTYPE:次周期市价MARKETREF(条件,1),MKT

22、TYPE:本周期市价MARKETRMKT开仓百分比30%KCS:= intpart(tasset*0.3/MULTIPLIER/close);语句语句T语句函数可在图表上显示不能在图表上显示总之,通过函数列表,了解他们的细微差别。第二章 图表交易和后台交易的主要区别和联系2.1 图表、交易函数的区别2.11 图表交易函数BUY 开多BUYSHORT 开空SELL 平多SELLSHORT 平空适用于图表程序式交易模式,本函数中可以设置下单条件、下单手数、下单价格等参数。这种交易函数优点在于可以将本交易函数套用到若干个循环逻辑判断语句中,对下单手数灵活设置,对下单价格灵活的掌控,与之配套使用的各类

23、函数较多,因此能够用于实现较为复杂的交易模型;缺点是没有参数设置账户名、下单品种、只能运行在逐K线模式等。例2.1: BUY(vol/ref(vol,1)3 AND CLOSEOPEN , 1 ,LIMIT ,CLOSE );SELL(vol/ref(vol,1)3 AND CLOSE3 THEN BEGINBUY(CLOSEOPEN , 1 ,LIMIT ,CLOSE );SELL(CLOSE3 AND CLOSEOPEN ,1,LMT ,CLOSE ,0,351579 ,al02);TSELL(vol/ref(vol,1)3 AND CLOSE图表程序化交易”选项。后台程序化交易的设置和启

24、用界面位于菜单栏的“交易后台程序化交易”选项。 (4)虚拟和真实的区别图表程序化交易采用的是虚拟持仓、虚拟资金等概念,各个买卖点以及中间过程返回给用户的持仓和资金是根据历史交易信号和相关初始化的数据计算得来,资金、费率等初始化数据是在指标编辑器中的“费率设置”中进行设置。后台程序化交易采用的是真实持仓、真实资金的概念,它们调用的是账户栏中真实的账户数据。 第三章 基于VBA的二次开发一个优秀的程序化交易软件不仅需要满足个人个性化的策略实现外,策略的执行也至关重要,俗话说:细节决定成败,前面章节我们都是介绍的使用金字塔内置的PEL脚本语言作为程序化交易使用,但是PEL终归还是为普通非计算机专业投

25、资者准备的脚本语言,方便投资者学习和使用的同时,也带来了其自身存在的格式固化,运行不够灵活,效率不足等问题,是无法满足具有更多想法更多需求的程序化交易者的。在各种高级语言中,熟悉和精通VB的人无疑是最多的。著名的微软OFFICE办公软件中的二次开发也是使用的VBA。但是金字塔不仅仅是一个被广泛应用的金融分析软件,除了具有一般软件的数据处理、统计分析、图表功能外,最大的特点是集成了VBA 环境。并提供了VBA 的IDE 环境。可以应用金字塔的所有现有功能,例如其数据处理、图表绘制、数据库连接、内置函数等等。利用这些接口将极大的发挥我们专业程序化交易投资者的编程空间,使我们的交易系统具有强大的计算

26、能力、扩展能力和生命力。3.1金字塔VBA与OFFICE VBA区别和联系尽管金字塔VBA与OFFICE VBA都是VBA,但是它们2个还是有些不同的地方,这里假设读者是熟悉OFFICE VBA的用户,如果你是VBA的初学者,那么可以不必理会这里的差别。金字塔的脚本引擎是VBS,与OFFICE的VBA主要区别在于变量无需声明就可以使用。金字塔软件的VBA系统是介于传统VBS与VBA之间的系统,支持VBA系统中才有的窗体,框架等等更多的对象,另外,语法上又兼容VBS。除了类模块外,所有的框架和窗体对象模块的数据都是公用的,框架和窗体之所以独立是因为方便用户编辑和管理,实际运行代码是合在一起的。比

27、如你在框架或者窗体中定义了一个函数过程外的全局变量,实际上是所有VBS代码都可以调用的,在窗体框架对象中的过程名在其他窗体中调用也无需使用 窗体.过程名 这种方式,可以直接使用过程名。金字塔中的窗体与OFFICE其他组件的窗体在访问其内部控件时稍有不同,例如访问UserForm1窗体的Text1编辑控件,使其隐藏。代码如下: UserForm1_Text1.Visible = False除此之外,金字塔VBA与OFFICE VBA在IDE界面,使用方法和布局上,完全一致,如果读者熟悉OFFICE VBA的开发,那么就应该很快掌握金字塔VBA的开发。3.2 VBA 原理的隐喻VBA 的基本原理可

28、通过下图做示意性解释。VBA 作为应用VBA 编写的代码和金字塔对象之间的一个桥梁,为2 者之间的调用提供支持,这种调用是通过COM 自动化实现的。例如我们的代码中一句代码,调用金字塔中一个对象的一个属性,那么这个过程大概是类似这样的:VBA 环境解释执行这句代码,如果发现对金字塔对象的调用,就通过COM 的方式调用这个对象,获取其属性,这样VBA 代码就可以和金字塔对象进行交互。3.3 VBA 简介要使用 VBA 进行数据处理,第一要熟悉VBA 的IDE 环境,知道如何进行代码书写,如何编写代码,设计窗体,创建类模块(对象),第二要熟悉VBA 的基本语法和。二者都是VBA 程序设计的基础,需

29、要认真学习。VBA 语法不是一章就可以全部介绍完全的,本章介绍的内容是最基本和应该熟练掌握的内容,对于不熟悉或者不理解的内容可以在学习了后面的内容后再反过头来学习。有些内容需要反复练习和熟悉。对于VBA 语法和用法的很多内容可以随时通过查看帮助来获得相关信息。本章和下一章(金字塔 对象模型)的部分内容,特别是表格内的一些内容,没有必要完全记住,可以作为参考手册来使用。3.3.1VBA 及其IDE 初步本部分将对 VBA 及其开发环境IDE(集成开发环境)作一概略的介绍。VBA IDE 是进行程序设计和代码编写的地方,同一个金字塔共享同一IDE。文中会涉及到一些诸如对象、事件等部分读者可能不熟悉

30、或不清楚的概念,对于此类问题可直接忽略之,因为在后面会有详细介绍。本部分也不是一个VBA 的参考文档,只是其语法、特征的快速浏览和介绍。(1)VBA 集成开发环境(IDE)的组成VBA 代码和金字塔文档文件是保存在一起的,可以通过点击“工具 宏 Visual Basic工程”打开VBA 的IDE 环境,进行程序设计和代码编写。图3-1Visual Basic IDE 环境图 3-1 为金字塔 VBA 的IDE 环境,缺省情况下,VBA IDE 环境上方为菜单和工具条(图 3-1),左侧窗口为工程资源管理器窗口,右侧最大的窗口为代码窗口。每一个金字塔文档文件,对应的VBA 工程都有4 类对象,包

31、括:框架、窗体、模块和类模块(图 3-2)。这里的框架主要是金字塔运行时的技术分析图表,例如我们常见的K线走势分析图的框架对象,双击这些对象会打开代码窗口(图3-1 右侧窗口),在此窗口中可输入相关的代码,响应事件,例如框架的打开、关闭,窗格的激活、品种显示的修改、选择等(有关事件、金字塔 对象模型见后)。窗体对象代表了自定义对话框或界面,模块为自定义代码的载体,类模块则是以类或对象的方式编写代码的载体,关于各对象的具体含义和使用见后。在工程资源管理器窗口的右键菜单下,有添加用户窗体、模块、类模块的选项,也可以将已有的模块移除、导入和导出。注意:建议用户新建一个VBA工程来完成你的个性化VBA代码,尽量不要在默认的工程中添加,防止多个不同工程的代码相互干扰,您可以点击左侧工程资源窗口上的工具栏来新建一个VBA工程。(2)在 VBA IDE 下进行开发熟悉了 VBA 的IDE 环境后,我们来开发VBA 之旅的第一个程序。首先我们双击左侧工程资源管理器上的窗口的模块分类,然后双击“Macro”模块,打开宏模块代码编辑窗口(图3-3),然后选择“插入”菜单-过

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com