好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

股票交易系统编程.pdf

16页
  • 卖家[上传人]:mg****85
  • 文档编号:44943869
  • 上传时间:2018-06-14
  • 文档格式:PDF
  • 文档大小:193.07KB
  • / 16 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 交易系统编程交易系统编程1、如何把熟悉的技术指标转换成交易模型、如何把熟悉的技术指标转换成交易模型?第一步:把 KDJ 指标公式 COPY 过来RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100;{算出 (收盘价-N 周期内的最低价)/(N 周期的最高价—N 周期内的最低价)*100 的值,用 RSV 来表示}BACKGROUNDSTYLE(1);{确定背景的样式,钝化)}K:SMA(RSV,M1,1),COLORWHITE;{RSV 的移动加权平均的值用 K 表示, 并且画白色的线}D:SMA(K,M2,1),COLORYELLOW;{K 的移动加权平均的值用 D 表示,并 且画黄色的线}J:3*K-2*D,COLORMAGENTA;{3 倍的 K 减去 2 倍的 D 的值用 J 表示,并 且画紫色的线}第二步:原有公式主要是画线,所以稍作修改如下:RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100;{第一行 不需要修改} {第二行删除,在交易模型中不用钝化}K:=SMA(RSV,M1,1); {在“:”后加上“=”变为只定义不用画线,所以把后面的 颜色函数(COLORWHITE)也去掉}D:=SMA(K,M2,1);{同上}J:=3*K-2*D;{同上}第三步:把自己总结的交易条件写上,就可完成交易模型。

      如下:RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100;K:=SMA(RSV,M1,1);D:=SMA(K,M2,1);J:=3*K-2*D;CROSS(K,D),BK;{K 向上穿越 D,发出买开交易指令}CROSS(J,100),SP;{J 向上穿越 100,发出卖平交易指令}CROSS(D,K),SK;{K 向下穿越 D,发出卖开交易指令}CROSS(0,J),BP;{J 向下穿越 0,发出买平交易指令} {{}内为文字说明,编 写模型时不用写出}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、如何编制多条件类型的交易模型、如何编制多条件类型的交易模型?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;{以上为 KDJ 公式}MA5:=MA(CLOSE,5);MA10:=MA(CLOSE,10);{以上为定义 5 个周期收盘价的简单移动平均和 10 个周期收盘价的简单移动平均}(CROSS(MA5,MA10){KD 出现死叉并且前一个周期 J 值大于 70 时发出卖出平仓交易指令}(CROSS(MA10,MA5){5 周期 均线下叉 10 周期均线并且前一个周期的 J 值(KDJ)大于 30 或者 KD 死叉时并且 J 值大于 70 时 发出卖出开仓交易指令}CROSS(K,D){连续四个周期的收盘价小于前一周期 的收盘价并且当前周期的收盘价大于 A 时,发出买平并且买开(反手)交易指令}REF(CLOSE,1)>REF(CLOSE,2){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 时, 发出卖出平仓 交易指令}{{}内为文字说明,编写模型时不用写出}6、如何编制简单价差类型的套利模型、如何编制简单价差类型的套利模型?CROSS(300,CLOSE),BKSK; {CLOSE 为两个品种的价差。

      当价差小于 300时,买入开仓前一品种,卖出开仓后一品种}CROSS(CLOSE,500),SPBP;{当价差大于 500 时,卖出平仓前一品种,买入 平仓后一品种}CROSS(CLOSE,600),SKBK;{当价差大于 600 时,卖出开仓前一品种,买入 开仓后一品种}CROSS(400,CLOSE),BPSP;{当价差小于 400 时,买入平仓前一品种,卖出 平仓后一品种}{{}内为文字说明,编写模型时不用写出}7、如何编制组合类型的套利模型、如何编制组合类型的套利模型?RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100;K:=SMA(RSV,M1,1);D:=SMA(K,M2,1);J:=3*K-2*D;{以上为 KDJ 公式}CLOSE600{当价差大于 600 并且 D 上穿 K 时,卖 出开仓前一品种,买入开仓后一品种}CROSS(400,CLOSE)||CROSS(K,D),BPSP;{当价差下穿400或者K上穿D时, 买入平仓前一品种,卖出平仓后一品种}{{}内为文字说明,编写模型时不用写出}编辑平台支持的操作符编辑平台支持的操作符操作符意义例+加法CLOSE+OPEN 表示求收盘价及开盘价的和。

      CLOSE-OPEN 表示求收盘价及开盘价的差CLOSE*OPEN 表示求收盘价及开盘价的积CLOSE/OPEN 表示求收盘价及开盘价的商-减法*乘法/除法MA(TMP1,10);上面的公式的第一个语句定义了一个局部变量 TMP1,在下面一行中引用了这个局部变量, 但是要注意的是这个公式在画图的时候只画了第二条语句所求出的结果相反下面这个公式则需要画出两条线, 第一条是自己定义的均价线,同时显示了均价的名称为 AVP,第二条线是均价的简单移动平均线AVP:(OPEN+CLOSE)/2;MA(AVP,10);:声明了一个变量,在画图时画出它并且按这个名字显示编辑平台支持的函数编辑平台支持的函数1.引用数据1.引用数据AVPRICE引用均价(在盘后对于国内三个期货交易所指结算价)CLOSE引用收盘价(在盘中指最新价)HIGH引用最高价LOW引用最低价OPEN引用开盘价OPI引用持仓量REF(X,N)引用 X 在 N 个周期前的值例:REF(CLOSE,5);表示引用当前周期前第 5 个周期的收盘价REFX(X,N)引用 N 个周期后的数据N 为大于等于 1 的整数)(未来函数)例:REFX(CLOSE,5);表示引用自当前周期后第 5 个周期的收盘价SETTLE引用结算价(只有盘后才能引用当日的结算价)VOL引用成交量2.金融统计2.金融统计BACKSET(X,N)若 X 非 0,则将当前位置到 N 周期前的数值设为 1。

      例:BACKSET(CLOSE>OPEN,3);表示当 K 线收阳时,自当前位置到 3 周期前的数值设为 1BARSLAST(X)求上一次条件成立到当前的周期数COUNT(X,N)表示统计在 N 周期内满足 X 条件的周期数 如果 N 为 0 则表示从第一天开始算起例:WR:=-100*(HHV(HIGH,N)-CLOSE)/(HHV(HIGH,N)-LLV(LOW,N));COUNT(WR>80,5);表示统计在 5 个周期内满足 WR>80 的次数DMA(X,A)返回 X 的动态移动平均,其中 A 必须介于 0 及 1 之间计算方法:DMA(N)=DMA(N-1)*(1-A)+X(N)*A 其中 DMA(N-1)为第(N-1)天的 DMA值EMA(X,N)表示求 X 在 N 周期内的平滑移动平均指数加权)计算方法:EMA(X,N)=[2*X+(N-1)*EMA(N-1)]/(N+1) 其中 EMA(N-1)为第(N-1)天的 EMA 值EMA2(X,N)表示求 X 在 N 周期内的加权平均线性加权)计算方法:EMA2(N)=(N*X0+(N-1)*X1+(N-2)*X2+...+1*XN)/(N+(N-1)+(N-2)+...+1),X0 表示本周期值,X1 表示上一周期值...HHV(X,N)得到 X 在 N 周期内的最高值,如果 N=0,则从第一个有效周期开始算起。

      例:HHV(HIGH,13);求 13 个周期内的最高价的最大值HHVBARS(X,N)得到 X 在 N 周期内的最高值位置到当前的周期数如果 N=0,则从第一个有效周期开始算起例:HHVBARS(VOL,0); 求历史成交量最大的周期到当前的周期数LLV(X,N)得到 X 在 N 周期内的最小值,如果 N=0,则从第一个有效周期开始算起例:LLV(LOW,25);表示求 25 个周期内最低价的最小值LLVBARS(X,N)得到 X 在 N 周期内的最小值的位置到当前的周期数 如果 N=0 则从第一个有效周期开始算起例:LLVBARS(VOL,0); 求历史成交量最小的周期到当前的周期数MA(X,N)求 X 在 N 周期内的简单移动平均计算方法:MA=(A1+A2+A3+A4+A5)/5 求 A 在 5 个周期内的简单移动平均ZIGZAG(X,P,C)之字转向(未来函数),当 C 取 1,P 为百分比数;当 C 取 0,P 为价位差值例:ZIGZAG(HIGH,10,1);表示最高价的 10%的之字转向ZIGZAG(MA(HIGH,34),100,0);表示 34 个周期内最高价均线的 100 个价位的之字转向PEAK(X,P,M,C)取得 ZIGZAG 前 M 个波峰的值。

      其中 X 为数据,P 为转折值(如果 C 为 1 的话,这个值为百分比,否则为绝对值),M 为大于等于 1 的整数未来函数)例:PEAK(HIGH,10,1,1);表示最高价的 10%的之字转向的上一个波峰的数值PEAK(MA(HIGH,34),100,1,0);表示 34 个周期内最高价均线的 100 个价位的之字转向的上一个波峰的数值PEAKBARS(X,P,M,C)取得 ZIGZAG 前 M 个波峰到当前周期的周期数未来函数)例:PEAKBARS(HIGH,10,1,1);表示最高价的 10%的之字转向的上一个波峰到当前的周期数PEAKBARS(MA(HIGH,34),100,1,0);表示 34 个周期内最高价均线的 100 个价位的之字转向的上一个波峰到当前的周期数TROUGH(X,P,M,C)取得 ZIGZAG 前 M 个波谷的值未来函数)例:TROUGH(LOW,10,1,1);表示最低价的 10%的之字转向的上一个波谷的数值TROUGH (MA(LOW,34),100,1,0);表示 34 个周期内最低价均线的 100 个价位的之字转向的上一个波谷的数值TROUGHBARS(X,P,M,C) 取得 ZIGZAG 前 M 个波谷到当前周期的周期数 (未来函数)TROUGHBARS(LOW,10,1,1);表示最低价的 10%的之字转向的上一个波谷到当前的周期数TROUGHBARS(MA(LOW,34),100,1,0);表示34个周期内最低价均线。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.