《期货程序化培训教程.ppt》由会员分享,可在线阅读,更多相关《期货程序化培训教程.ppt(40页珍藏版)》请在优知文库上搜索。
1、 程序化交易-文华财经课程安排程序化交易概念程序化交易概念模型基本结构与编写模型基本结构与编写跨指标模型跨指标模型跨周期模型跨周期模型模型的测试与优化模型的测试与优化程序化交易概念l什么是程序化交易什么是程序化交易 计算机执行量化、代码化后的交易思路计算机执行量化、代码化后的交易思路。l程序化交易的优势程序化交易的优势 基于历史数据的收益、风险评估、改进。基于历史数据的收益、风险评估、改进。 克服心理劣势。克服心理劣势。 快速计算、快速下单。快速计算、快速下单。量化思路代码化模型测试与优化资金管理程序化交易概念需求分析程序化交易概念l指标指标 绘图,不发出交易指令绘图,不发出交易指令l交易模型
2、交易模型 根据条件发出交易指令根据条件发出交易指令l公式公式 指标指标+ +交易交易模型模型l计算方式计算方式 每个每个TICKTICK计算一次计算一次程序化交易概念均线指标MACD指标程序化交易概念MACD交易模型程序化交易概念程序化交易概念l模型的加载模型的加载 下单价格:排队价、对价、对价连续追价、超价、停下单价格:排队价、对价、对价连续追价、超价、停板价板价l指标的加载指标的加载 主图指标、附图指标、指标叠加主图指标、附图指标、指标叠加语法与操作符l公式名公式名 汉字、字母、数字、下划线,汉字、字母、数字、下划线,3131个字符内,不可与已存个字符内,不可与已存在同类在同类( (指标指
3、标/ /模型模型) )公式重名公式重名l变量名变量名 不能相互重复、不能与函数名、参数名重复。不可汉字不能相互重复、不能与函数名、参数名重复。不可汉字l必须的必须的 行尾分号行尾分号l注释注释 /语法与操作符常用函数CLOSE引用收盘价引用收盘价(在盘中指最新价在盘中指最新价),也可简写为,也可简写为 C 。HIGH引用最高价,也可简写为引用最高价,也可简写为 H 。LOW引用最低价,也可简写为引用最低价,也可简写为L 。OPEN引用开盘价,也可简写为引用开盘价,也可简写为O 。VOL应用成交量,也可简写为应用成交量,也可简写为V。OPI引用持仓量。引用持仓量。常用函数REF(X,N)引用X在
4、N个周期前的值IFELSE(CON,A,B)如果条件C成立则返回A值,否则返回B值EVERY(CON,N)判断过去N周期内,是否一直满足条件CON。COUNT(CON,N)N个周期内满足条件CON的周期数HHV(X,N)求X在N个周期内的最大值LLV(X,N)求X在N个周期内的最小值BARSLAST(CON)求上一次CON条件成立到当前的周期数。EXIST(CON, N)判断过去N周期内,是否有满足条件CONBETWEEN(A,B,C)A是否介于B与C之间MA(X,N) 求X在N周期内的简单移动平均CROSS(X,Y) X上穿YMACD交易信号要求要求: :MACDMACD指标指标, , DI
5、FF DIFF上穿上穿DEA,DEA,显示买显示买, ,下穿下穿DEA,DEA,显示卖显示卖DIFF : EMA(CLOSE, 12) - EMA(CLOSE, 26);DEA : EMA(DIFF, 9);MACD : 2 * (DIFF - DEA), COLORSTICK;DRAWTEXT(CROSS(DIFF, DEA), DIFF, 买);DRAWTEXT(CROSS(DEA,DIFF), DEA, 卖);MACD交易信号要求要求: :MACDMACD指标指标, , DIFF DIFF大于大于DEA,DEA,红红K K线线, ,小于小于DEA,DEA,绿绿K K线线DIFF := E
6、MA(CLOSE, 12) - EMA(CLOSE, 26);DEA := EMA(DIFF, 9);MACD := 2 * (DIFF - DEA);DRAWLINE(DIFF = DEA, H, DIFF = DEA, L, COLORRED);STICKLINE(DIFF DEA, O, C, COLORRED, 0);DRAWLINE(DIFF DEA, H, DIFF DEA, L, COLORCYAN);STICKLINE(DIFF =0900&TIME=1450,SP;CROSS(MA10,MA5)&TIME=0900&TIME=1450,BP;常用功能DATEREF(DATE,
7、1);/当天第一根K线VALUEWHEN(DATEREF(DATE,1),OPEN);/当天开盘价VALUEWHEN(TIME=1030,OPEN);/10点半那根K线的开盘价CBKPRICE+50*MD;/最新价大于开仓价位的50个点HHV(H,BARSBK+1);/开仓到目前为止最高价BARSLAST(DATEREF(DATE,1)+1;/今天开盘到目前为止的周期数HHV(H,N);/开盘到目前为止的最高价REF(HHV(H,N),N)/前某阶段的最高价最大值跨指标模型多个指标同时应用在交易模型上DIFF上穿DEA并且收盘价大于5周期均线,买开;DIFF下穿DEA并且收盘价小于5周期均线,
8、卖开;收盘价小于5周期均线,平多;收盘价大于5周期均线,平空;DIFF:=EMA(CLOSE,12) - EMA(CLOSE,26);DEA:=EMA(DIFF,7);MACD:=2*(DIFF-DEA);MA5:=MA(C,N);CROSS(DIFF,DEA)&CMA5,BK;CROSS(DEA,DIFF)&CMA5,SK;CMA5,BP;跨周期模型函数介绍函数介绍跨周期函数引用某品种某品种在某周期某周期上加载了某指标某指标的数据。用法:#IMPORT CODE, PERIOD, FORMULA AS VAR引用 CODE 所对应的合约 PERIOD 周期下指标 FORMULA 的数据。CO
9、DE:文华码PERIOD:周期FORMULA:引用指标名,VAR:定义变量名跨周期模型编写规则编写规则1、只能引用指标2、引用周期:MIN1 MIN3 MIN5 MIN15 MIN30 HOUR1 DAY WEEK MONTH3、只能短周期引用长周期4、被引用的指标中不能存在引用5、如果不写文华码,默认引用当前合约,也可以直接写合约代码如:rb12016、FORMULA 引用指标名,只能引用除数字、汉字、 或者数字开头的名称之外的名称。跨周期模型相同合约不同周期调用相同合约不同周期调用要求:日周期均线多头排列时, 5分钟KD线金叉,做多。日周期均线空头排列时, 5分钟KD线死叉,做空。均线多头
10、排列:5周期均线10周期均线30周期均线跨周期模型先新建一个指标,名称为AAAMA5:=MA(C,5); MA10:=MA(C,10); MA30:=MA(C,30);在建立你的模型#IMPORT , DAY,AAA AS VARDM5:=VAR.MA5;DM10:=VAR.MA10;DM30:=VAR.MA30;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;DM5DM10&DM10DM30&CROSS(K,D),BPK;DM5DM10&DM10DM10&C
11、ROSS(MA5,MA10)&TIME1455,BK(DM5=1455,SP;DM5DM10&CROSS(MA10,MA5)&TIMEDM10&CROSS(MA5,MA10)|TIME=1455,BP;跨周期模型不同合约的数据调用不同合约的数据调用要求:沪胶指数价格破20日新高,橡胶1205的MA5MA10,做多。沪胶指数价格破20日新低,橡胶1205的MA5REF(H20,1);B:=CMA10,BPK;DL20&MA5MA10,SPK;止损止盈函数介绍函数介绍BARSBK:BARSBK:上一次买开信号位置上一次买开信号位置 上一次买开仓距离当前上一次买开仓距离当前k k线的线的k k线数线
12、数BARSSK:BARSSK:上一次卖开信号位置上一次卖开信号位置 上一次卖开仓距离当前上一次卖开仓距离当前k k线的线的k k线数线数BKPRICEBKPRICE: :最近一次最近一次模型模型买开位置的买开信号价位买开位置的买开信号价位( (效果测试为收盘价效果测试为收盘价) )SKPRICE:SKPRICE:最近一次最近一次模型模型卖开位置的卖开信号价位卖开位置的卖开信号价位( (效果测试为收盘价效果测试为收盘价) )止损止盈限价止损止盈限价止损止盈A:=A:=多头开仓条件多头开仓条件; ;B:=B:=空头开仓条件空头开仓条件; ;E:=E:=多头平仓条件多头平仓条件; ;F:=F:=空头
13、平仓条件空头平仓条件; ;A,BK;A,BK;E E|C=BKPRICE+150,SP;|C=BKPRICE+150,SP;B,SK;B,SK;F F|C=SKPRICE+100|C=SKPRICE+100|CMA1,BK; CMA1,BK; (C=BKPRICE&C=HH-N(C=BKPRICE&CMA1,BK; /CMA1,BK; /收盘价大于收盘价大于5 5周期均线,开仓周期均线,开仓CMA1|(C=(BKPRICE-(ZSCMA1|(C=(BKPRICE-(ZS* *JW)+(BCJW)+(BC* *JW)JW)* *FLOOR(H1-FLOOR(H1-BKPRICE)/(BCBKPR
14、ICE)/(BC* *JW), SP; JW), SP; /收盘价小于收盘价小于5 5周期均线,或者满足追踪止损条件,平仓周期均线,或者满足追踪止损条件,平仓止损止盈豆粕豆粕12091209合约合约: :低于买开仓价低于买开仓价1010个点差,多头止损;个点差,多头止损;高于买开仓价高于买开仓价2020个点差,多头止赢个点差,多头止赢; ;高于卖开仓价高于卖开仓价1010个点差,空头止损;个点差,空头止损;低于卖开仓价低于卖开仓价2020个点差,空头止赢;个点差,空头止赢;多头开仓条件多头开仓条件,BK;,BK;(C=BKPRICE-SL(C=BKPRICE+TPA|C=BKPRICE+TP*
15、 *A)&A)&BKPRICE0BKPRICE0,SP;,SP;空头开仓条件空头开仓条件,SK;,SK;(C=SKPRICE+SL(C=SKPRICE+SL* *A|C=SKPRICE-TPA|C0SKPRICE0,BP;,BP;模型的效果测试参数设置参数设置价位价位选择选择滑点滑点误差误差模型的效果测试 总收益率总收益率 胜率胜率 最大亏损额最大亏损额 最大亏损周期最大亏损周期 最大连续亏损次数最大连续亏损次数 最大连续亏损最大连续亏损 空仓时间空仓时间/总时间总时间效果测效果测试指标试指标解读解读模型的效果测试详细测试结果详细测试结果l资金曲线资金曲线 模型的优化 详细测试的结果分析哪些亏损是可哪些亏损是可以避免的以避免的 哪些参数可以优化(减少交易次数) 哪些优化最有效参数优化参数优化模型的优化基本思路:IF当月,5周期、10周期均线多头与空头排列优化:1、依次剔除最大亏损2、实体过大的K线不开仓3、阳线开多、阴线开空模型的优化模型有风险优化需谨慎