《程序化交易入门.ppt》由会员分享,可在线阅读,更多相关《程序化交易入门.ppt(35页珍藏版)》请在三一办公上搜索。
1、程序化交易入门,文华财经 施巍巍,理解并规范使用交易模型、技术指标等以下名词,*交易模型:指能够发出BK、SP等交易指令但是不绘出图线的公式,模型还包含止损、止赢,交易手数等与交易、资金使用相关的参数设置。交易模型是一个交易范畴的概念。*指标:也叫技术指标,指能够绘出图线但是不发出交易指令的公式。指标是一个技术分析范畴的概念。*公式:泛指指标、模型。不建议大家使用这个词,因为大家搞不明白你说的到底是指标还是交易模型。*交易系统:这个词太笼统,不建议使用这个词。有时候指的是指标,有的时候指的是模型,有的时候指的是存在心中的交易思想和经验,有的时候还指交易软件。*交易信号:指技术指标上出现的提示投
2、资者买卖的指示,可以是图线交叉、文字、图形。投资者需要按照信号指示去手动委托下单。交易信号是一个技术分析范畴的概念。*交易指令:指交易模型自动发出的下单委托指令,可以不经过投资者确认直接下单,也可以等待投资者回车确认再下单。交易指令在K线图上以不用颜色和形状的箭头来代表。交易指令是一个程序化交易范畴的概念。,一、技术指标,掌握:(1)公式基本语法(2)基础函数意义(3)函数组合应用,例1 简单公式,A:=(HIGH-OPEN)-(OPEN-LOW);B:SUM(A,0),COLORWHITE;C:0,COLORRED;,例2 KDJ公式,RSV:=(CLOSE-LLV(LOW,N)/(HHV(
3、HIGH,N)-LLV(LOW,N)*100;K:SMA(RSV,M1,1),COLORWHITE;D:SMA(K,M2,1),COLORYELLOW;J:3*K-2*D,COLORMAGENTA;,例3 移动平均线,MA1:MA(CLOSE,5),COLORRED;MA2:MA(CLOSE,10),COLORYELLOW;MA3:MA(CLOSE,30),COLORGREEN;MA4:MA(CLOSE,60),COLORMAGENTA;,例4 K线公式,TMP:=OPEN-CLOSE;DRAWLINE(TMP0.00001,HIGH,TMP0.00001,OPEN,COLORCYAN);DR
4、AWLINE(TMP0.00001,LOW,TMP0.00001,CLOSE,COLORCYAN);DRAWLINE(TMP0,OPEN,CLOSE,COLORCYAN,0);STICKLINE(TMP=0,OPEN,CLOSE,COLORRED,1);,组合应用,TMP:=OPEN-CLOSE;DRAWLINE(TMP0.00001,HIGH,TMP0.00001,OPEN,COLORCYAN);DRAWLINE(TMP0.00001,LOW,TMP0.00001,CLOSE,COLORCYAN);DRAWLINE(TMP0,OPEN,CLOSE,COLORCYAN,0);STICKLINE
5、(TMP=0,OPEN,CLOSE,COLORRED,1);MA1:MA(CLOSE,N1),COLORRED;MA2:MA(CLOSE,N2),COLORYELLOW;MA3:MA(CLOSE,N3),COLORGREEN;MA4:MA(CLOSE,N4),COLORMAGENTA;,例5 成交量,STICKLINE(OPENCLOSE,VOL,0,COLORCYAN,0);STICKLINE(OPEN=CLOSE,VOL,0,COLORRED,0);,例6 期货指南针,STICKLINE(SMA(CLOSE,3,1)SMA(CLOSE,22,1),OPEN,CLOSE,COLORRED,0
6、);DRAWLINE(SMA(CLOSE,3,1)SMA(CLOSE,22,1),HIGH,SMA(CLOSE,3,1)SMA(CLOSE,22,1),LOW,COLORRED);,二、交易模型,掌握:交易模型的几种基本形式,1、交叉问题,10周期的均线上穿20周期的均线时买开;5周期的均线下叉10周期的均线时卖平;10周期的均线下叉20周期的均线时卖开;5周期的均线上穿10周期的均线时买平;关键函数:CROSS(X,Y),例7 交叉模型,MA5:=MA(CLOSE,5);MA10:=MA(CLOSE,10);MA20:=MA(CLOSE,20);CROSS(MA10,MA20),BK;CRO
7、SS(MA10,MA5),SP;CROSS(MA20,MA10),SK;CROSS(MA5,MA10),BP;,交易模型中的交易指令,2、同时有多个条件,5周期均线上穿10周期均线并且前个周期的J值(KDJ)少于70或者KD金叉时并且J值小于30时买开;KD出现死叉并前个周期J值大于70时卖平5周期均线下叉10周期均线并且前个周期的J值(KDJ)大于30或者KD死叉时并且J值大于70时卖开;KD出现金叉并前个周期J值小于30时卖平关键操作符:&(并且)|(或者),例8 多条件,RSV:=(CLOSE-LLV(LOW,9)/(HHV(HIGH,9)-LLV(LOW,9)*100;K:=SMA(R
8、SV,3,1);D:=SMA(K,3,1);J:=3*K-2*D;MA5:=MA(CLOSE,N1);MA10:=MA(CLOSE,N2);(CROSS(MA5,MA10),REF(X,N)作用,(1)解决当前周期交易指令不稳定(2)判断线类指标值是否拐头(3)其它,模型1,RSV:=(CLOSE-LLV(LOW,9)/(HHV(HIGH,9)-LLV(LOW,9)*100;K:=SMA(RSV,3,1);D:=SMA(K,3,1);J:=3*K-2*D;(CROSS(J,0)|(REF(K,1)80),模型2 豆一合约5分钟,MA5:=MA(CLOSE,5);MA10:=MA(CLOSE,1
9、0);CROSS(MA10,MA5)|(CLOSE-MA5)8,SK;(MA5-CLOSE)6,BP;CROSS(MA5,MA10)|(MA5-CLOSE)8,BK;(CLOSE-MA5)6,SP;止损问题,逻辑判断函数VALUEWHEN 与 时间函数TIME,在一分钟周期上如何实现:根据最新价与当日开盘价的大小关系作为买卖条件编写交易模型;问题:1、如何在分钟周期上取得日开盘数据?2、如何使交易模型不留隔夜单?,1、使用逻辑判断函数取得当日开盘价:VALUEWHEN(COND,DATA)当条件COND满足时,取当时的DATA的值,否则取得VALUEWHEN的前一个值。当日开盘价可以表示为:O
10、:VALUEWHEN(TIME=0900,OPEN);2、使用时间函数在尾盘时将所有仓单了结:TIME=1455,BP;TIME=1455,SP;,因此可编写交易模型如下:A:=VALUEWHEN(TIME=0900,OPEN);CLOSE=A,效果图如下,图中黄色水平线为当日开盘价,逻辑判断EVERY,EVERY(COND,N)判断过去N个周期内是否一直满足条件COND。例:EVERY(CLOSEOPEN,5);表示5个周期内一直是阳线使用此函数可以简化交易模型内容,比如要表示均线MA5、MA10、MA20在5周期内的多头排列,不必使用“MA5MA10&REF(MA5,1)REF(MA10,
11、1)&REF(MA5,1)REF(MA20,1)&REF(MA5,2)REF(MA10,2).&REF(MA5,5)REF(MA20,5)”这样繁琐的语句,只需要使用EVERY(MA5MA10,5)&EVERY(MA10MA20,5)就可以了。,5周期内均线多头排列即开多仓,5周期内均线空头排列即开空仓的交易模型即可表示如下:,MA5:=MA(CLOSE,5);MA10:=MA(CLOSE,10);MA20:=MA(CLOSE,20);EVERY(CLOSEOPEN,5),金融统计函数BARSLAST,BARSLAST(X)求上一次条件成立到当前的周期数。使用BARSLAST函数可以起到过滤作用,例如KD数值接近纠结在一起时交叉过于频繁,使用BARSLAST就可以过滤掉一些交叉:RSV:=(CLOSE-LLV(LOW,N)/(HHV(HIGH,N)-LLV(LOW,N)*100;K:=SMA(RSV,M1,1);D:=SMA(K,M2,1);CROSS(K,D),上图为使用过滤条件的效果图,下图为直接使用KD交叉为买卖条件的模型效果示意图,