当前位置:文档之家› 程序化交易入门

程序化交易入门

程序化交易入门
文华财经施巍巍来自理解并规范使用交易模型、技术指标等以下名词
**交易模型:指能够发出BK、SP等交易指令但是不绘出图线的公式, 模型还包含止损、止赢,交易手数等与交易、资金使用相关的参数设 置。交易模型是一个交易范畴的概念。 **指标:也叫技术指标,指能够绘出图线但是不发出交易指令的公式。 指标是一个技术分析范畴的概念。 **公式:泛指指标、模型。不建议大家使用这个词,因为大家搞不明 白你说的到底是指标还是交易模型。 **交易系统:这个词太笼统,不建议使用这个词。有时候指的是指标, 有的时候指的是模型,有的时候指的是存在心中的交易思想和经验, 有的时候还指交易软件。 **交易信号:指技术指标上出现的提示投资者买卖的指示,可以是图 线交叉、文字、图形。投资者需要按照信号指示去手动委托下单。交 易信号是一个技术分析范畴的概念。 **交易指令:指交易模型自动发出的下单委托指令,可以不经过投资 者确认直接下单,也可以等待投资者回车确认再下单。交易指令在K 线图上以不用颜色和形状的箭头来代表。交易指令是一个程序化交易 范畴的概念。
金融统计函数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)&&BARSLAST(CROSS(K,D))>P,BPK; CROSS(D,K)&&BARSLAST(CROSS(D,K))>P,SPK;
组合应用
TMP:=OPEN-CLOSE; DRAWLINE(TMP>0.00001,HIGH,TMP>0.00001,OPEN,COLORCYAN); DRAWLINE(TMP>0.00001,LOW,TMP>0.00001,CLOSE,COLORCYAN); DRAWLINE(TMP<-0.00001,HIGH,TMP<-0.00001,CLOSE,COLORRED); DRAWLINE(TMP<-0.00001,LOW,TMP<-0.00001,OPEN,COLORRED); DRAWLINE(ABS(TMP)<0.00001,LOW,ABS(TMP)<0.00001,OPEN,COLOR WHITE); DRAWLINE(ABS(TMP)<0.00001,HIGH,ABS(TMP)<0.00001,OPEN,COLO RWHITE); STICKLINE(TMP>0,OPEN,CLOSE,COLORCYAN,0); STICKLINE(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;
因此可编写交易模型如下:
A:=VALUEWHEN(TIME=0900,OPEN); CLOSE>=A&&TIME<1455,BK; CLOSE>A||TIME>=1455,BP; CLOSE<A&&TIME<1455,SK; CLOSE<A||TIME>=1455,SP;
效果图如下,图中黄色水平线为当日开盘价
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)<20)&&(REF(D,1)<20) &&(CROSS(K,D)))),BK; CROSS(50,K),SP; CROSS(K,50),BP; (CROSS(100,J)||((D>80)&&(K>80)&&(CROSS(D ,K)))),SK;
逻辑判断函数VALUEWHEN 与 时间函 数TIME
在一分钟周期上如何实现:根据最新价与当日开 盘价的大小关系作为买卖条件编写交易模型; 问题: 1、如何在分钟周期上取得日开盘数据? 2、如何使交易模型不留隔夜单?
1、使用逻辑判断函数取得当日开盘价: VALUEWHEN(COND,DATA)当条件COND 满足时,取当时的DATA的值,否则取得 VALUEWHEN的前一个值。 当日开盘价可以表示为: O:VALUEWHEN(TIME=0900,OPEN); 2、使用时间函数在尾盘时将所有仓单了结: TIME>=1455,BP; TIME>=1455,SP;
2、同时有多个条件 、
5周期均线上穿 周期均线并且前个周期 周期均线上穿10周期均线并且前个周期 周期均线上穿 或者KD金叉时并且 的J值(KDJ)少于 或者 金叉时并且 值 )少于70或者 J值小于 时买开; 值小于30时买开 值小于 时买开; KD出现死叉并前个周期 值大于70时卖平 KD出现死叉并前个周期J值大于70时卖平 出现死叉并前个周期J值大于 5周期均线下叉 周期均线并且前个周期 周期均线下叉10周期均线并且前个周期 周期均线下叉 或者KD死叉时并且 的J值(KDJ)大于 或者 死叉时并且 值 )大于30或者 J值大于 时卖开; 值大于70时卖开 值大于 时卖开; KD出现金叉并前个周期 值小于30时卖平 出现金叉并前个周期J值小于 时卖平 出现金叉并前个周期 值小于 关键操作符: (并且) 关键操作符:&&(并且) ||(或者) (或者)
例5 成交量
STICKLINE(OPEN>CLOSE,VOL,0,COLORCY AN,0); STICKLINE(OPEN<=CLOSE,VOL,0,COLORR ED,0);
例6 期货指南针
STICKLINE(SMA(CLOSE,3,1)<SMA(CLOSE,2 2,1),OPEN,CLOSE,COLORCYAN,0); DRAWLINE(SMA(CLOSE,3,1)<SMA(CLOSE,2 2,1),HIGH,SMA(CLOSE,3,1)<SMA(CLOSE,22, 1),LOW,COLORCYAN); STICKLINE(SMA(CLOSE,3,1)>SMA(CLOSE,2 2,1),OPEN,CLOSE,COLORRED,0); DRAWLINE(SMA(CLOSE,3,1)>SMA(CLOSE,2 2,1),HIGH,SMA(CLOSE,3,1)>SMA(CLOSE,22, 1),LOW,COLORRED);
一、技术指标
掌握:(1)公式基本语法 (2)基础函数意义 (3)函数组合应用
例1
简单公式
A:=(HIGH-OPEN)-(OPEN-LOW); B:SUM(A,0),COLORWHITE; C:0,COLORRED;
例2
KDJ公式
RSV:=(CLOSELLV(LOW,N))/(HHV(HIGH,N)LLV(LOW,N))*100; K:SMA(RSV,M1,1),COLORWHITE; D:SMA(K,M2,1),COLORYELLOW; J:3*K-2*D,COLORMAGENTA;
二、交易模型
掌握:交易模型的几种基本形式
1、交叉问题 、
10周期的均线上穿 周期的均线时买开; 周期的均线上穿20周期的均线时买开; 周期的均线上穿 周期的均线时买开 5周期的均线下叉 周期的均线时卖平; 周期的均线下叉10周期的均线时卖平 周期的均线下叉 周期的均线时卖平; 10周期的均线下叉 周期的均线时卖开; 周期的均线下叉20周期的均线时卖开 周期的均线下叉 周期的均线时卖开; 5周期的均线上穿 周期的均线时买平; 周期的均线上穿10周期的均线时买平 周期的均线上穿 周期的均线时买平; 关键函数: 关键函数:CROSS(X,Y) ( , )
例8 多条件
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; MA5:=MA(CLOSE,N1); MA10:=MA(CLOSE,N2); (CROSS(MA5,MA10)&&REF(J,1)<70)||(CROSS(K ,D)&&J<30),BK; CROSS(D,K)&&REF(J,1)>70,SP; (CROSS(MA10,MA5)&&REF(J,1)>30)||(CROSS(D ,K)&&J>70),SK; CROSS(K,D)&&REF(J,1)<30,BP;
逻辑判断EVERY 逻辑判断
EVERY(COND,N)判断过去N个周期内是否一直 满足条件COND。 例:EVERY(CLOSE>OPEN,5);表示5个周期内一 直是阳线 使用此函数可以简化交易模型内容,比如要表示 均线MA5、MA10、MA20在5周期内的多头排列, 不必使用 “MA5>MA10&&REF(MA5,1)>REF(MA10,1)&& REF(MA5,1)>REF(MA20,1)&&REF(MA5,2)>RE F(MA10,2)...&&REF(MA5,5)>REF(MA20,5)”这样 繁琐的语句,只需要使用 EVERY(MA5>MA10,5)&&EVERY(MA10>MA20, 5)就可以了。
相关主题