1、趋势转变如何表示?以均线拐头为例:MA10:=MA(CLOSE,10);{定义10周期均线}MA10>REF(MA10,1)&&REF(MA10,1)>REF(MA10,2)&&REF(MA10,3)>REF(MA10,2)&&R EF(MA10,4)>REF(MA10,3);{表示上拐}MA10<REF(MA10,1)&&REF(MA10,1)<REF(MA10,2)&&REF(MA10,3)<REF(MA10,2)&&R EF(MA10,4)<REF(MA10,3);{表示下拐}2、交*(金*/死*)如何表示?以均线交*为例:MA5:=MA(CLOSE,5);{5个周期收盘价的简单移动平均} MA10:=MA(CLOSE,10);{10个周期收盘价的简单移动平均} MA20:=MA(CLOSE,20);{20个周期收盘价的简单移动平均} CROSS(MA10,MA20),BK;{当MA10上穿MA20时,发出买入开仓交易指令} CROSS(MA10,MA5),SP;{当MA10上穿MA5时,发出卖出平仓交易指令} CROSS(MA20,MA10),SK;{当MA20上穿MA10时,发出卖出开仓交易指令} CROSS(MA5,MA10),BP;{当MA5上穿MA10时,发出买入平仓交易指令}3、价差如何表示?以最新价和均线价差为例: MA5:=MA(CLOSE,5);{5个周期收盘价的简单移动平均} MA10:=MA(CLOSE,10);{10个周期收盘价的简单移动平均}CROSS(MA10,MA5)||(CLOSE-MA5)>8,SK;{10周期均线上穿5周期均线或者收盘价与5周期均线的差值大于8时,发出卖出开仓交易指令} (MA5-CLOSE)>6,BP;{5周期均线与收盘价的差值大于6时,发出买入平仓交易指令}CROSS(MA5,MA10)||(MA5-CLOSE)>8,BK;{5周期均线上穿10周期均线或者收盘价与5周期均线的差值大于8时,发出买入开仓交易指令} (CLOSE-MA5)>6,SP;{收盘价与5周期均线的差值大于6时,发出卖出平仓交易指令}{{}内为文字说明,编写模型时不用写出}4、如何在模型中限制开平仓时间?MA5:=MA(CLOSE,5); {定义5周期的简单移动平均线}MA10:=MA(CLOSE,10); {定义10周期的简单移动平均线}TIME>=0905&&CROSS(MA5,MA10),BK;{在9点05分后出现5周期线金*10周期线后买开} CROSS(TIME,1457),BP;{当时间到14点58分时自动发出买平指令} TIME>=0905&&CROSS(MA10,MA5),SK;{在9点05分后出现5周期线死*10周期线后卖开} CROSS(TIME,1457),SP;{当时间到14点58分时自动发出卖平指令}5、KDJ模型雏形RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100;{定义RSV}K:=SMA(RSV,M1,1); {定义K} D:=SMA(K,M2,1); {定义D} J:=3*K-2*D; {定义J} J<30&&CROSS(K,D),BPK;{J值小于30并且K、D金*,买平并买开}J>70&&CROSS(D,K),SPK; {J值大于70并且K、D死*,卖平并卖开}6、MACD模型雏形DIFF := EMA(CLOSE,SHORT) - EMA(CLOSE,LONG);{定义DIFF}DEA := EMA(DIFF,M);{定义DEA}(DIFF<0)&&(DEA<0)&&(CROSS(DIFF,DEA)),BPK;{DIFF小于0并且DEA小于0并且DIFF上穿DEA,买平并买开}(DIFF>0)&&(DEA>0)&&(CROSS(DEA,DIFF)),SPK;{DIFF大于0并且DEA大于0并且DIFF下穿DEA,卖平并卖开}7、MTM模型雏形MTM:=CLOSE-REF(CLOSE,N);{定义MTM} CROSS(MTM,0),BPK;{MTM上穿0轴,买平并买开} CROSS(0,MTM),SPK;{MTM下穿0轴,卖平并卖开}8、RSI模型雏形LC:=REF(CLOSE,1);{定义LC}RSI1:=SMA(MAX(CLOSE-LC,0),N,1)/SMA(ABS(CLOSE-LC),N,1)*100;{定义RSI1} RSI2:=SMA(MAX(CLOSE-LC,0),M,1)/SMA(ABS(CLOSE-LC),M,1)*100;{定义RSI2} REF(RSI1,1)<40&&CROSS(RSI1,RSI2),BPK;{上一个周期的RSI1<40并且RSI1上穿RSI2,买平并买开} REF(RSI1,1)>60&&CROSS(RSI2,RSI1),SPK;{上一个周期的RSI1>60并且RSI1下穿RSI2,卖平并卖开}9、WM模型雏形RSV:= (CLOSE-HHV(HIGH,9))/(HHV(HIGH,9)-LLV(LOW,9))*100;{定义RSV} LWR1:=SMA(RSV,3,1);{定义LWR1} LWR2:=SMA(LWR1,3,1);{定义LWR2} CROSS(LWR1,LWR2),BPK;{LWR1上穿LWR2,买平并买开}CROSS(LWR2,LWR1),SPK;{LWR1下穿LWR2,卖平并卖开}10、SAR模型雏形SARLINE:=ABS(SAR(N,STEP,MVALUE));{定义SARLINE}CROSS(CLOSE,SARLINE),BPK;{最新价上穿SARLINE,买平并买开}CROSS(SARLINE,CLOSE),SPK;{最新价下穿SARLINE,卖平并卖开}我所说的解决信号反复问题,是指那种K线运行中途交易信号来回反复的问题,K线走完之后信号即固定下来,也就是收盘价模型的信号在K线中途反复现象。
将收盘价模型通过模型编写,改成K线中途出现信号即固定不再反复的即时指令价自动交易模型。
在谈到过收盘价模型与指令价模型的优缺点,各有利弊。
收盘价模型有两种执行方法:一是等到K线即将走完的瞬间手工执行它,执行出来的交易与模型没什么偏差,仅有正常的执行滑点而已;二是选择“K线走完再发出指令”的方法,可以做到自动交易,不过,所有的交易全部都移到下一个K的开盘价上了。
这样做,执行的交易与模型偏差过大,纯日内小周期还好,若是周期偏大的隔夜交易模型,信号在当天最后一个K出现,则自动交易点落在隔夜的次日开盘价上,期货品种都有特殊的隔夜跳空特点,这无法回避,可以想到采用这个方法做自动交易的结果如何了。
有人要问是否有比这个选项更好的方法呢?当然是有,就是通过模型编写,使交易信号在K线运行的中途,一旦出现则立刻固定下来不再有任何变化,且对应信号触发的唯一价。
这样做出来的全自动交易模型,实盘执行出来的交易与模型就没有偏差了,也仅是正常的执行滑点而已。
其实彻底解决这个信号反复问题,并不深奥也并不是想象的真那么复杂,所以我所提供的全部彻底解决方案,学费也不高。
有些朋友也跟我一样早就彻底解决了,并一直应用在自己的实盘全自动上。
讲义&&学习笔记第一节交易模型的编写方法主讲人:文华财经资讯有限公司培训部总监施巍巍第二节交易模型的实践精析主讲人:中航期货经纪有限公司总经理王建斌第三节如何应用程序化交易主讲人:北京国瑞煊投资管理有限公司总经理李斌第四节交易模型的实战与交流主讲人:文华财经资讯有限公司培训部总监施巍巍第一节交易模型的编写方法ABC文华财经资讯有限公司培训部总监施巍巍一、关于程序化交易的基本概念规范交易模型:指能够发出BK、SP等交易指令但是不绘出图线的公式,模型还包含止损、止赢,交易手数等与交易、资金使用相关的参数设置。
交易模型是一个交易范畴的概念。
指标:也叫技术指标,指能够绘出图线但是不发出交易指令的公式。
指标是一个技术分析范畴的概念。
公式:泛指指标、模型。
不建议大家使用这个词,因为大家搞不明白你说的到底是指标还是交易模型。
交易系统:这个词太笼统,不建议使用这个词。
有时候指的是指标,有的时候指的是模型,有的时候指的是存在心中的交易思想和经验,有的时候还指交易软件。
交易信号:指技术指标上出现的提示投资者买卖的指示,可以是图线交叉、文字、图形。
投资者需要按照信号指示去手动委托下单。
交易信号是一个技术分析范畴的概念。
交易指令:指交易模型自动发出的下单委托指令,可以不经过投资者确认直接下单,也可以等待投资者回车确认再下单。
交易指令在K线图上以不用颜色和形状的箭头来代表。
交易指令是一个程序化交易范畴的概念。
二、关于交易模型的优化迷思⒈交易模型是否应当分品种,还是包打天下?⒉交易模型是否应当分市况:振荡市、趋势市,但如何是的话如何来界定振荡市和趋势市呢?⒊交易模型是否应当进行参数优化,是不是最优参数就能最适合未来呢?(目前文华公布优化结果时只显示最优参数,下一步改版将给出全部结果)⒋日内交易信号出现后又消失,如何解决?⒌如何处理趋势交易系统在振荡市中给出的错误信号带来的交易损失?⒍不同交易时间框架的交易模型,发生信号对立,是否锁仓?三、如何编制“金叉、死叉类”交易模型?以5日均线、10日均线、20日均线为例:MA5:=MA(CLOSE,5);{定义了一个变量,代表5个周期收盘价的移动平均,带=号的不画线,否则将成为技术指标中的一条线,CLOSE代表收盘价的意思,MA代表取平均值的意思}MA10:= MA(CLOSE,10);MA20:= MA(CLOSE,20);CROSS(MA10,MA20)&&TIME>0910,BK;{CROSS为常用函数,代表穿越;&&表示“并且”的关系;TIME表示时间,此处意即9:10前不开多仓;BK 代表买入开仓}CROSS(MA10,MA5)||CROSS(TIME,1450),SP;{||表示“或者”的关系,此处意即14:50前平仓,日内冲销;SP代表卖出平仓}CROSS(MA20,MA10),SK;{SK代表卖出开仓}CROSS(MA5,MA10)||CROSS(TIME,1450),SP,BP;{BP为买入平仓}四、如何将自己熟悉的技术指标转换为交易模型?技术分析的主要工具是技术指标,而期市投机者大多都有自己的指标偏好,程序化交易的最大好处除了克服人性的弱点之外,就是一致性与高效率,只要将自己对技术指标的应用理念转换为交易模型,早上打开电脑、晚上回家数钱即可,人生到此境界,复复何求?!以MACD指标为例:第一步:将文华技术指标MACD的源代码COPY到交易模型中。