怎样获得文华财经免费使用使用方法

苹果/安卓/wp
积分 1817, 距离下一级还需 408 积分
权限: 自定义头衔, 签名中使用图片, 隐身, 设置帖子权限
道具: 彩虹炫, 涂鸦板, 雷达卡, 热点灯, 金钱卡, 显身卡, 匿名卡, 抢沙发, 提升卡下一级可获得
权限: 设置回复可见道具: 沉默卡
购买后可立即获得
权限: 隐身
道具: 金钱卡, 彩虹炫, 雷达卡, 热点灯, 涂鸦板
开心签到天数: 2 天连续签到: 1 天[LV.1]初来乍到
本帖最后由 wanghaidong918 于
06:12 编辑
小生在这里恳求各位前辈帮忙破解文华财经数据。
听说用JAVA+SQL编程破解,编译个软件抽离分装包。
QQ联系。。。
载入中......
QQ联系。。。
你是想获得其中的数据?还是?
本帖最后由 tj0412ymy 于
23:56 编辑
是的,想要K线数据!
要啥数据,我可能会给你提供点超出文华财经下载时间范围的数据。
无限扩大经管职场人脉圈!每天抽选10位免费名额,现在就扫& 论坛VIP& 贵宾会员& 可免费加入
加入我们,立即就学扫码下载「就学」app& Join us!& JoinLearn&
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
如有投资本站或合作意向,请联系(010-);
邮箱:service@pinggu.org
投诉或不良信息处理:(010-)
京ICP证090565号
京公网安备号
论坛法律顾问:王进律师文华财经随身行下单系统使用说明_中华文本库
第1页/共20页
文华财经随身行下单系统使用说明书
一、下载安装(安卓智能手机 )
如果你的手机已经安装有下列电子市场,可以直接在市场内搜索“随身行”并下载安装。
否则,请按以下步骤操作:
方法1:用手机浏览网页,下载到卡上(推荐)
方法2:通过USB数据线复制文件到卡上
注:本节的截图以Motorola Milestone 为例,其他手机略有不同,请参考手机的说明。
方法1:用手机浏览网页,下载到卡上(推荐)
(1)进入手机界面,打开所有程序,点击浏览器,进入下载页面。[见下图]
第1页/共20页
寻找更多 ""文华随身行(iPhone)使用说明
文华随身行(iPhone)使用说明
下载:至iPhone中的App Store输入“随身行”检索下载安装。
一、主要功能:
&&&&查看内外盘报价,分时图,K线图,交易界面。K线图可以选择各种常用周期,同时可以显示MA,SAR等常用指标。只要期货公司为您的资金帐号开通了文华财经一键通权限,您就可以使用本程序下单。
二、使用说明:
&&&&单击某合约报价进入图表窗口,左右滑动可在详细报价、分时图、K线图、下单页面中切换。更多说明见以下图示
&&&&交易页面:挂单列表,成交列表,持仓列表工具栏可点击,分别可显示该合约所有挂单,当天成交明细,持仓。该合约无挂单,成交或持仓的不显示相关列表。2847人阅读
其他(16)
金融(36)
文华财经手册
程序化交易
(一)语法与函数
■&自编公式支持的操作符:
  ⒈+操作符,表示“加法运算”。
  ⒉-操作符,表示“减法运算”。
  ⒊*&操作符,表示“乘法运算”。
  ⒋/&操作符,表示“除法运算”。
&&&&&例如:
 &&CLOSE+OPEN表示求收盘价及开盘价的和。&
 &&CLOSE-OPEN表示求收盘价及开盘价的差。&
 &&CLOSE*OPEN 表示求收盘价及开盘价的积。&
 &&CLOSE/OPEN 表示求收盘价及开盘价的商。&
  ⒌&&(AND)操作符,表示“与运算”。&
  ⒍||(OR)操作符,表示“或运算”。&
  ⒎&&操作符,表示“大于运算”。&
  ⒏&&操作符,表示“小于运算”。&
  ⒐&=操作符,表示“大于等于运算”。&
  ⒑&=操作符,表示“小于等于运算”。&
  ⒒&&操作符,表示“不等于运算”。&
  ⒓=&操作符,表示“等于操作符”。&
&&&&例如:&
 &&CLOSE&OPEN表示判断当前周期是否收阳。&
 &&CLOSE=OPEN表示判断当前周期是否平盘。&
  ⒔:=操作符,表示定义一个局部变量(这个变量在画图时是不画的)。&
  ⒕:&操作符,表示声明了一个变量,并且在画图时画出它并且按这个名字显示。&
&&&&例如:&
 &&TMP1:=(OPEN+CLOSE)/2;&
 &&MA(TMP1,10);&
  上面的公式的第一个语句定义了一个局部变量TMP1,在下面一行中引用了这个局部变量,但是要注意的是这&&&&个公式在画图的时候只画了第二条语句所求出的结果。&
  相反下面这个公式则需要画出两条线,第一条是自己定义的均价线,同时显示了均价的名称为AVP,第二条线&&&&是均价的简单移动平均线。&
 &&AVP:(OPEN+CLOSE)/2;&
 &&MA(AVP,10);&
&&■&自编公式语法:&
&&1. 关于公式名称。公式的名称不可以和已经存在的公式重复。&
&&2. 关于参数。每个自编公式最多可以定义四个参数,参数的定义如下, 首先是参数名称,然后是参数&&&&的&&&&&最小值,最大值,最后是参数的默认值。在定义参数时要注意的是参数名称不可以重复。&
 3. 关于变量名称。变量名称不可以互相重复,不可以和参数名重复,不可以和函数名称重复。&
 4. 关于公式内容。公式的每个语句应该以分号结束,包括最后一条语句。在数据公式的时候请您注意一&定要&&使用半角输入。在编写公式的过程中,如果您不记得某个函数的确切写法,可以选择插入函数来插入函数。&
 5. 如果您在编写公式之后,想给这个公式加上注释,说明之类的东西,可以使用公式说明来输入。
注:WH3的指标、策略模型编写不再支持If Else 的语句,条件语句支持IFELSE,具体用法请参考指标、策略模型逻辑判断函数语法列表。
■&自编公式支持的函数
1.策略模型函数
1.数学运算
求X的绝对值
例:ABS(SAR(17,0.03,0.3));返回抛物转向SAR(17,0.03,0.3)的绝对值。
求X的反余弦值
求X的反正弦值
求X的反正切值
返回X的余弦值
返回e的X次幂
返回X的三次方。
CEILING(X)
向上舍入,返回沿X数值增大方向最接近的整数。
向下舍入,返回沿X数值减小方向最接近的整数。
INTPART(X)
取X的整数部分,返回沿X绝对值减小方向最接近的整数。
得到X的自然对数,以e为底的对数。
例:LN(OPEN);求开盘价的自然对数。
求A,B中的较大者。
例:MAX(CLOSE-OPEN,0);表示若收盘价大于开盘价返回它们的差值,否则返回0。
求A,B中的较小者。
例:MIN(OPEN,CLOSE);返回开盘价和收盘价中的较小值。
返回A对B得到模。
例:MOD(CLOSE,500);收盘价除以500所得余数
当X为0时返回1,否则返回0。
例:NOT(TIME=090530);表示该周期对应的时间不是9:05:30AM。
得到A的B次幂。
例:POW(CLOSE,2);求得收盘价的2次方。
REVERSE(X)
取反,返回符号相反的数值。
例:REVERSE(LOW);返回-LOW。
RANGE(A,B,C)
表示A大于B同时小于C时返回1,否则返回0
得到X的符号,如果X&0则返回1,如果X&0则返回-1,否则返回0。
得到X的正弦值。
得到X的平方根。
例:SQRT(CLOSE);收盘价的平方根。
得到X的平方。
例:SQUARE(CLOSE);收盘价的平方。
得到X的正切值。
2.金融统计函数
BARSLAST(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的次数
返回X的动态移动平均,其中A为常数,并且必须介于0及1之间。
计算方法:DMA(N)=DMA(N-1)*(1-A)+X(N)*A 其中DMA(N-1)为第(N-1)天的DMA值。
表示求X在N周期内的平滑移动平均。(指数加权)
计算方法:EMA(X,N)=[2*X+(N-1)*EMA(X,(N-1))]/(N+1) 其中EMA(X,(N-1))为第(N-1)天的EMA值
表示求X在N周期内的加权平均。(线性加权)
计算方法:EMA2(X,N)=(N*X0+(N-1)*X1+(N-2)*X2+...+1*XN-1)/(N+(N-1)+(N-2)+...+1),X0表示本周期值,X1表示上一周期值...
得到X在N周期内的最高值,如果N=0,则从本地数据的第一个有效周期开始算起。
例:HHV(HIGH,13);求13个周期内的最高价的最大值。
HHVBARS(X,N)
得到X在N周期内的最高值位置到当前的周期数。如果N=0,则从本地数据的第一个有效周期开始算起。
例:HHVBARS(VOL,0); 求历史成交量最大的周期到当前的周期数
得到X在N周期内的最小值,如果N=0,则从本地数据的第一个有效周期开始算起。
例:LLV(LOW,25);表示求25个周期内最低价的最小值
LLVBARS(X,N)
得到X在N周期内的最小值的位置到当前的周期数。如果N=0则从本地数据的第一个有效周期开始算起。
例:LLVBARS(VOL,0); 求历史成交量最小的周期到当前的周期数
求X在N周期内的简单移动平均。
计算方法:MA=(A1+A2+A3+A4+A5)/5 求A在5个周期内的简单移动平均
SLOPE(X,N)
求线型回归的斜率。
SLOPE(X,N)得到X的N周期的线型回归的斜率。
例:SLOPE(CLOSE,5);表示求收盘价5个周期线性回归线的斜率
SAR(N,Step,Max)
得到抛物转向值。N为计算周期,Step为步长,Max为极值。(系统函数,计算步骤后台自动完成)
例:SAR(17,0.03,0.3);表示计算17个周期抛物转向,步长为3%,极限值为30%
SMA(X,N,M)
得到X在N个周期内的移动平均,M为权重(M为常数)。
计算方法:SMA(N)=SMA(N-1)*(N-M)/N+X(N)*M/N
求标准差。
STD(X,N)求X在N个周期内的标准差。
求总体标准差。
STDP(X,N)为X的N日总体标准差。
得到X在N周期内的总和,如果N=0,则从第一个有效周期开始算起。
例: SUM(VOL,10);表示统计10周期内的成交量总和
SUMBARS(X,A)
得到X向前累加直到大于A时的周期数。
求X在N周期内的三角移动平均。
求X在N周期内的时间序列移动平均。
计算方法:TSMA(X,N)= FOCAST(X,N)+SLOPE(X,N)
3.数理统计函数
AVEDEV(X,N)
求X在N周期内的平均绝对偏差
DEVSQ(X,N)
数据偏差平方和。
FORCAST(X,N)
得到X的N周期线性回归预测值。
例:FORCAST(CLOSE,5);表示求5周期线性回归预测
得到X在N周期内的样本方差
得到X在N周期内的总体样本方差
数理统计举例说明:
设一个数列,数列中数据的总个数为N,以今天()五天内的A0605收盘价为例,N就为5。数列的内容为:{,,2885}。
1、算术平均值MA(CLOSE,5):数据总和除以总个数N。 (5+6+1.20。 可以用公式MA(CLOSE,5),从今天的值上看出。
2、偏差:每个数据,减去算术平均值的结果。 =-65.2, =-26.2, =-17.2, =54.8, =53.8, 各偏差相加,应该是等于0的。
3、平均绝对偏差AVEDEV(X,N):将偏差的绝对值相加,除以总个数N。 (65.2+26.2+17.2+54.8+53.8)/5=43.44&
4、数据偏差平方和DEVSQ(X,N):将偏差的平方相加。 (-65.2)2+ (-26.2)2+ (-17.2)2+ (54.8)2+ (53.8)2=11130.80&
5、总体样本方差VARP(X,N):将偏差的平方相加,总和除以总个数N。用公式可以这样算: (-65.2)2+ (-26.2)2+ (-17.2)2+ (54.8)2+ (53.8)2/5=2226.16&
6、样本方差VAR(X,N):是总体方差的N/(N-1)倍。 /(5-1)=2782.70 估算样本方差,总比总体样本方差大一点,当N够大时,两者趋于相等。
4.逻辑判断函数
BETWEEN(A,B,C)
判断条件“A位于B及C之间”是否成立,如果条件成立则返回1 (yes),否则返回0 (no)。
例:BETWEEN(CLOSE,MA5,MA40); 表示收盘价介于5日均线与40日均线之间。
CROSS(X,Y)
表示X上穿Y。
例:CROSS(CLOSE,MA(CLOSE,5));表示收盘线从下方向上穿过5日均线
CROSS2(A,B)
两条线交叉。
CROSS2(A,B)表示当A从下方向上穿过B两次时返回1(Yes),否则返回0(No)
例:CROSS2(CLOSE,MA(CLOSE,5));表示收盘线从下方向上穿过5日均线两次
FILTER(COND,N)
过滤连续出现的信号。
FILTER(COND,N) 当COND条件成立时,将其后N周期内的数据置为0。
例:FILTER(CLOSE&OPEN,3) 查找阳线,3天内再次出现的阳线不被记录在内
注:不能与BKPRICE,BARSBK,SKPRICE,BARSSK一起使用
EXIST(COND,N)
判断N个周期内是否有满足条件COND的情况发生。
例:EXIST(CLOSE&REF(HIGH,1),10);表示10个周期中是否存在收盘价大于前一个周期的最高价
EVERY(COND,N)
判断过去N个周期内是否一直满足条件COND。
例:EVERY(CLOSE&OPEN,5);表示5个周期内一直是阳线
LAST(COND,N1,N2)
判断过去N1到N2周期内是否一直满足条件COND。
例:LAST(CLOSE&OPEN,10,5);表示从过去第10个周期到第5个周期内一直是阳线
求常用对数。
LOG(X)求X的常用对数。
例:LOG(100);返回2。
LONGCROSS(A,B,N)
如果A在前N个周期内都小于B,本周期上穿B,则返回1。否则返回0。
例:LONGCROSS(CLOSE,MA(CLOSE,10),20);表示收盘线在10日均线之下持续20周期后从下向上穿过10日均线
IFELSE(C,A,B)
如果条件C成立则取A值,否则取B值
例:A:=IFELSE(MA5&MA10,CROSS(DIFF,DEA),IFELSE(CROSS(D,K),2,0));当MA5&MA10时,取是否满足DIFF上穿DEA,否则(MA5不大于MA10),当K,D死叉时,令A赋值为2,若上述条件都不满足,A赋值为0
A=1,BPK;//当MA5&MA10,以DIFF上穿DEA作为开多仓条件
A=2,SPK;//当MA5不大于MA10,以K D死叉作为开空仓条件
判断该周期是否收阴。
判断该周期是否平盘。
判断该周期是否收阳。
判断当前周期是否为最后一根K线。
ISLASTKLINE
判断该周期是否为收盘前最后一根k线。
ISLASTKLINE 如果是收盘前最后一个K线返回1(Yes),否则返回0(No)
VALUEWHEN(COND,DATA)
当条件COND满足时,取当时的DATA的值,否则取得前面一个满足条件COND的值。
例:VALUEWHEN(HIGH&REF(HIGH,5),HIGH);表示当前最高价大于前五个周期最高价的最大值时返回当前最高价。
5.时间函数
取得当前K线的位置。
CLOSEMINUTE
距收盘前时间。
CLOSEMINUTE 返回距离闭市前的时间(单位:分钟),方便闭市前及时平仓。
取得当前周期的日数(231)。
取得当前周期的日数(1-31)。
取得当前周期的小时数(0-23)。
取得当前周期的分钟数(0-59)。
取得当前周期的月数(1-12)。
取得当前周期的时间数(0-2359),秒级周期返回值范围为:0-235959。
取得当前周期的星期数(0-6)。
取得当前周期的年数()。
BACKGROUNDSTYLE(i)
设置背景的样式。
BACKGROUNDSTYLE(i)设置背景的样式。
i = 0 或 1。
在k线图上,显示小图标。
用法:ICON(TYPE,ICON),当TYPE为1,则在K线最高价位置显示图标ICON,当TYPE为0,则在最低价位置显示图标ICON。
例:CLOSE&OPEN,ICON(1,'ICO1');表示K线收盘大于开盘时,在最高价上显示图标1。&
写完“ICON(1,” 以后,点击插入图标,再单击选中的图标插入到函数中,图标用'ICO1'~'ICO105'表示
显示文字。
用法:WORD(TYPE,TEXT),当TYPE为1,则在K线最高价位置书写文字TEXT,当TYPE为0,则在最低价位置书写文字TEXT。
例:CLOSE&OPEN,WORD(1,'阳');表示K线收盘大于开盘时,在最高价上写&阳&字。
播放声音。
用法:SOUND('N'),播放声音'N',。
例:CLOSE&OPEN,SOUND('A');表示K线收盘大于开盘时,播放声音&A&,条件如果一直满足,则只播放一次,不重复播放。
点击设置声音,在弹出来的界面中设置声音,声音用字符'A'~'J'表示。
绘制小图标。
DRAWICON(COND,PRICE,ICON),当COND条件满足时,在PRICE位置画图标ICON。
例:DRAWICON(CLOSE&OPEN,LOW,'ICO1');表示收阴在最低价上画出图标ICON1。&
写完“DRAWICON(CLOSE&OPEN,LOW,” 以后,点击插入图标按钮,再单击选中的图标插入到函数中,图标用'ICO1'~'ICO105'表示.
DRAWLINE(C1,P1,C2,P2,COLOR)
当条件C1及C2均满足时,从P1画直线到P2,颜色为COLOR。
例:DRAWLINE(MA18& CLOSE,OPEN,MA5 &CLOSE,CLOSE,COLORCYAN); 表示当收盘价大于18日均线并且小于5日均线时,从开盘价画青色直线到收盘价。
DRAWTEXT(C,P,TEXT)
表示当条件C满足时在P上写TEXT文字。
例:DRAWTEXT(CLOSE& OPEN&&REF(CLOSE,1)& REF(OPEN,1) &&REF(VOL,1)*1.1& VOL,LOW,'注'); 表示连续两日收阴并且成交量比前一日至少多10%时,在最低价上写“注”字。
DRAWSL(COND,DATA,SLOPE,LEN,EXPAND,
画斜线,当条件COND满足时,从DATA开始以每个周期相差SLOPE个点的斜率画斜线,划线长度为LEN个周期,EXPAND为线段的延长方式(0:不延伸;1:向左延伸;2:向右延伸;3:双向延伸)。
例:DRAWSL(LOW=LLV(LOW,50),LOW,5,3,2,COLORRED); 表示当前最低价等于50周期内的最小值时,从当前最小值开始以每隔5个点的斜率画长度为3个周期向右延伸的斜线,颜色为红色
自定义K线颜色,实空心及宽度。
用法:DRAWKLING(WidthRatio,COLOR1,EMPTY1,COLOR2,EMPTY2)。按照宽度比例WidthRatio画线,阳线以COLOR1和EMPTY1判断,阴线以COLOR2和EMPTY2判断。WidthRadio从0到1,COLOR1、COLOR2代表颜色,Empty非0为空心。
例:DRAWKLINE(0.75,COLORRED,1,COLORCYAN,0);绘制K线宽度比例为0.75,阳线为红色空心,阴线为蓝绿色实心。
DRAWNUMBER
(COND,DATA,NUMBER,PRECISION,COLOR)
画数字。当条件COND满足时,在DATA位置写数字NUMBER(为数组),精度为PRECISION(小数点后有几位数字)。
例:DRAWNUMBER(CLOSE/OPEN&1.08,HIGH,(CLOSE-OPEN)/OPEN*100,2,COLORRED); 表示当日涨幅大于8%时在最高价位置显示涨幅(相对开盘价的百分比)。
(COND,DATA1,DATA2,COLOR)
填充区域,当条件COND满足时,填充DATA1及DATA2包围的区域。
例:FILLRGN(MA5&MA10,MA5,MA10,COLORRED); 表示MA5&MA10时以红色填充MA5和MA10之间的区域。
PLAYSOUND(COND, 'N')
当条件满足时,播放自定义声音'N'(自定义声音在插入声音文件中设置,最多可以设置10个)。
例:PLAYSOUND(CLOSE&OPEN,'A');表示CLOSE&OPEN时播放自定义声音'A'。
在k线上标注文字。
用法:KTEXT(COND,POSITION,PRICE,LCR,COLOR,TEXT)&
当COND条件满足时,移动POSITION根K线,在PRICE位置书写COLOR色文字TEXT。LRC是文字占K线左(0)中(1)右(2)位置。
注:POSITION 参数负数代表向前移动 0代表满足条件当根K线 正数代表向后移动。LCR 代表显示在字符位置的左右中位置,0为左,1为中,2为右。
例:KTEXT(O&C,2,H,1,COLORYELLOW,'注')在阴线的后两根K线处,在最高价位置中心上写&注&字。
(COND,DATA,COLOR)
画折线,当条件COND满足时,连接各个DATA点。
例:POLYLINE(CLOSE&=HHV(CLOSE,100),CLOSE,COLORRED); 表示在收盘价创100天新高点之间画折线。
(COND,DATA,COLOR)
同POLYLINE。
例:PARTLINE(HIGH&REF(HIGH,1),HIGH,COLORRED); 表示当期最高价大于前期最高价用红色绘制最高价连线线段。
(C,P1,P2,Color,Empty)
如果条件C满足时,从P1到P2画柱线,颜色为Color,如果Empty取1,则为空心柱;如果Empty取0,则为实心柱。
例:STICKLINE(OPEN-CLOSE&0,OPEN,CLOSE,COLORCYAN,0); 表示当开盘价大于收盘价时,从开盘价到收盘价画青色的实心柱,即K线阴线的实体部分。
(COND,COLOR)
画垂直线,当条件COND满足时,画垂直线。
例:VERTLINE(HIGH&=HHV(HIGH,30),COLORRED); 表示在价格创30天新高时画垂直线。
7.画线函数
角度返回值。
用法:ANGLELING(COND1,DATA1,COND2,DATA2,RATIO);
从本地起始K线开始计算,以相距最近两根分别满足条件COND1的DATA1值和COND2的DATA2值构成起止点,在角度线段高度比例为RATIO处形成角度线,该函数返回K线对应的角度值。
例:ANGLELINE(C&O,H,O&C,L,1);相距最近的阳线最高价与阴线最低价构成起止点形成角度线,该函数返回K线对应的角度值。
GOLDENLINE
黄金分割返回值。
用法:GOLDENLINE(COND1,DATA1,COND2,DATA2,RATIO);
从本地起始K线开始计算,以相距最近两根分别满足条件COND1的DATA1值和COND2的DATA2值构成起止点,在差额的RATIO比率处形成黄金分割线,该函数返回K线对应的黄金分割值。
例:GOLDENLINE(O&C,H,C&O,H,0.3);相距最近的阴线和阳线,以各自最高价作为起止点,在差额区间内的0.3比率处形成黄金分割线,该函数返回K线对应的黄金分割值。
HORIZONTALLINE
水平返回值。
用法:HORIZONTALLINE(COND,DATA);
从本地起始K线开始计算,满足条件COND的DATA值形成水平线,该函数返回K线对应的水平值。
例:HORIZONTALLINE(C&O,H);以阳线的最高价为起点,截至下一根阳线为止形成一条水平线,该函数返回K线对应的水平值。
TRENDLINES
趋势返回值。
用法:TRENDLINES(COND1,DATA1,COND2,DATA2);
从本地起始K线开始计算,以相距最近两根分别满足条件COND1的DATA1值和COND2的DATA2值构成起止点形成趋势线,该函数返回K线对应的趋势值。
例:TRENDLINES(O&C,H,C&O,H);相距最近的阴线和阳线最高价形成一条趋势线,该函数返回K线对应的趋势值。
波浪尺返回值。
用法:WAVERULER(COND1,DATA1,COND2,DATA2,COND3,DATA3,RATIO);
从本地起始K线开始计算,以相距最近三根分别满足条件COND1的DATA1值、COND2的DATA2值和COND3的DATA3值构成三点,在第三点偏离前两点差额的RATIO比率处形成波浪尺线,该函数返回K线对应的波浪尺值。
例:WAVERULER(C&O,H,C&O,H,C&O,H,0.3);相距最近的三根阳线,以各自最高价作为三个点,在第三点偏离前两点差额的0.3比率处形成波浪尺线,该函数返回K线对应的波浪尺值。
DRAWANGLELING
画角度线。
用法:DRAWANGLELING(COND1,DATA1,COND2,DATA2,RATIO,COLOR);
从本地起始K线开始计算,连接相距最近两根分别满足条件COND1的DATA1值和COND2的DATA2值构成起止点,在线段高度比例RATIO处画角度线,颜色为COLOR,截至下一根满足COND1条件的K线处。
例:DRAWANGLELINE(C&O,H,O&C,L,1,COLORGREEN);连接相距最近的阳线最高价与阴线最低价为起止点,画高度比例为1的绿色角度线,截至下一根阳线为止。
DRAWGOLDENLINE
画黄金分割线。
用法:DRAWGOLDENLINE(COND1,DATA1,COND2,DATA2,RATIO,COLOR);
从本地起始K线开始计算,连接相距最近两根分别满足条件COND1的DATA1值和COND2的DATA2值构成起止点,在差额RATIO比率处画黄金分割线,颜色为COLOR,截至下一根满足COND1条件的K线处。
例:DRAWGOLDENLINE(O&C,H,C&O,H,0.3,COLORGREEN);连接相距最近的阴线和阳线,以各自最高价作为起止点,在差额区间内的0.3比率处画绿色黄金分割线,截至下一根阴线为止。
DRAWHORIZONTALLINE
画水平线。
用法:DRAWHORIZONTALLINE(COND,DATA,COLOR);
从本地起始K线开始计算,满足COND条件K线的DATA值处画水平线,颜色为COLOR,截至下一根满足COND条件的K线处。
例:DRAWHORIZONTALLINE(C&O,H,COLORGREEN);以一根阳线的最高价为起点,画绿色水平线,截至下一根阳线为止。
DRAWTRENDLINE
画趋势线。
用法:DRAWTRENDLINE(COND1,DATA1,COND2,DATA2,COLOR);
从本地起始K线开始计算,连接相距最近两根分别满足条件COND1的DATA1值和COND2的DATA2值构成起止点,画趋势线,颜色为COLOR,截至下一根满足COND1条件的K线处。
例:DRAWTRENDLINE(O&C,H,C&O,H,COLORGREEN);连接相距最近的阴线和阳线的最高价为起止点,画绿色趋势线,截至下一根阴线为止。
DRAWWAVERULER
画波浪尺线。
用法:DRAWWAVERULER(COND1,DATA1,COND2,DATA2,COND3,DATA3,RATIO,COLOR);
从本地起始K线开始计算,连接相距最近两根分别满足条件COND1的DATA1值、COND2的DATA2值和COND3的DATA3值构成三点,在第三点偏离前两点差额的RATIO比率处画波浪尺,颜色为COLOR,截至下一根满足COND1条件的K线处。
例:DRAWWAVERULER(C&O,H,C&O,H,C&O,H,0.3,COLORGREEN);连接相距最近的三根阳线,以各自最高价作为三个点,在第三点偏离前两点差额0.3比率处画绿色波浪尺线,截至下一根阳线为止。
8.未来函数
BACKSET(X,N)
将当前位置到若干周期前的数据设为1。
BACKSET(X,N),若X非0,则将当前位置到N周期前的数值设为1。
例:BACKSET(CLOSE&OPEN,3);表示当K线收阳时,自当前位置到3周期前的数值设为1
该函数参数支持变量计算如BACKSET(CLOSE&OPEN,VAR1);//VAR1是变量
本函数运算量很大,将占用很多的CPU资源,导致行情刷新速度变慢,请谨慎使用!
引用后N个周期的数据。
REFX(X,N)引用X在N个周期后的值。
例:REFX(CLOSE,5);表示引用自当前周期后第5个周期的收盘价
本函数运算量很大,将占用很多的CPU资源,导致行情刷新速度变慢,请谨慎使用!
判断该周期是否为最后一根k线。
ISLASTBAR 如果是最后一个K线返回1(Yes),否则返回0(No)
本函数运算量很大,将占用很多的CPU资源,导致行情刷新速度变慢,请谨慎使用!
ZIGZAG(X,P,N)
之字转向,当X变化量超过P时转向,当N取1,P为百分比数;当N取0,P为价位差值绝对值。
例:ZIGZAG(HIGH,10,1);表示最高价的10%的之字转向
ZIGZAG(MA(HIGH,34),100,0);表示34个周期内最高价均线的100个价位的之字转向
PEAK(X,P,M,N)
取波峰值。
用法:PEAK(X,P,M,C) 取得ZIGZAG的前M个波峰的值。
例:PEAK(HIGH,10,1,1);表示最高价的10%的之字转向的上一个波峰的数值;PEAK(MA(HIGH,34),100,1,0);表示34个周期内最高价均线的100个价位的之字转向的上一个波峰的数值。
本函数运算量很大,将占用很多的CPU资源,导致行情刷新速度变慢,请谨慎使用!
PEAKBARS(X,P,M,N)
取波峰的位置。
PEAKBARS(X,P,M,C) 取得ZIGZAG的前M个波峰的位置。
例:PEAKBARS(HIGH,10,1,1);表示最高价的10%的之字转向的上一个波峰到当前的周期数;
PEAKBARS(MA(HIGH,34),100,1,0);表示34个周期内最高价均线的100个价位的之字转向的上一个波峰到当前的周期数
本函数运算量很大,将占用很多的CPU资源,导致行情刷新速度变慢,请谨慎使用!
TROUGH(X,P,M,N)
求前M个波谷的值。
TROUGH(X,P,M,C) 求ZIGZAG前M个波谷的值。
例:TROUGH(LOW,10,1,1);表示最低价的10%的之字转向的上一个波谷的数值;
TROUGH (MA(LOW,34),100,1,0);表示34个周期内最低价均线的100个价位的之字转向的上一个波谷的数值
本函数运算量很大,将占用很多的CPU资源,导致行情刷新速度变慢,请谨慎使用!
TROUGHBARS(X,P,M,N)
求前M个波谷的位置。
TROUGHBARS(X,P,M,C) 求前M个波谷的位置。
TROUGH(LOW,10,1,1);表示最低价的10%的之字转向的上一个波谷到当前的周期数;
TROUGH (MA(LOW,34),100,1,0);表示34个周期内最低价均线的100个价位的之字转向的上一个波谷到当前的周期数
本函数运算量很大,将占用很多的CPU资源,导致行情刷新速度变慢,请谨慎使用!
9.头寸函数
AUTOFILTER
对模型的所有信号按照先买后卖,先开后平的顺序过滤。
用法:AUTOFILTER产生的指令将按照如下规则过滤:
1.连续的同方向指令只有第一个有效,其他的将被过滤;
2.交易指令必须配对出现(例如:前面已经有了买开指令,则后面只允许出现卖平指令,其他的指令都被滤掉。这也就意味着,第一个指令只能是买开或者卖开指令,其他的都被过滤);
CLOSE&OPEN,BPK;
CLOSE&OPEN,SPK;
AUTOFILTER;
注意如果使用自动过滤函数建议就不要在代码中再使用其它的语句进行过滤的编写。
上一次买开信号位置
BARSBK返回上一次买开仓距离当前k线的k线数。
上一次卖开信号位置
BARSSK返回上一次卖开仓距离当前k线的k线数。
判断上一个交易信号是否是BK。
ISLASTBK 如果上一个交易信号是BK则返回1(Yes),否则返回0(No)
判断上一个交易信号是否是SK。
ISLASTSK 如果上一个交易信号是SK则返回1(Yes),否则返回0(No)
判断上一个交易信号是否是BP。
ISLASTBP 如果上一个交易信号是BP则返回1(Yes),否则返回0(No)
判断上一个交易信号是否是SP。
ISLASTSP 如果上一个交易信号是SP则返回1(Yes),否则返回0(No)
判断上一个交易信号是否是BPK。
ISLASTBPK 如果上一个交易信号是BPK则返回1(Yes),否则返回0(No)
判断上一个交易信号是否是SPK。
ISLASTSPK 如果上一个交易信号是SPK则返回1(Yes),否则返回0(No)
合约手续费
FEE返回当前合约的手续费(用户启动模组时设置的)。
注意不能与未来函数同时使用如ISLASTBAR,EMA2,ZIGZAG,BACKSET,PEAK,PEAKBARS,TROUGH,TROUGHBARS,REFX等
本函数运算量很大,将占用很多的CPU资源,导致行情刷新速度变慢,请谨慎使用!
ISLASTBUYLONG
判断上一个信号是否是BUYLONG
ISLASTBUYLONG 如果上一个交易信号是BUYLONG则返回1(Yes),否则返回0(No)
ISLASTSELLSHORT
判断上一个信号是否是SELLSHORT
ISLASTSELLSHORT 如果上一个交易信号是SELLSHORT则返回1(Yes),否则返回0(No)
ISLASTEXITLONG
判断上一个信号是否是EXITLONG
ISLASTEXITLONG 如果上一个交易信号是EXITLONG则返回1(Yes),否则返回0(No)
ISLASTEXITSHORT
判断上一个信号是否是EXITSHORT
ISLASTEXITSHORT 如果上一个交易信号是EXITSHORT则返回1(Yes),否则返回0(No)
买开信号位置的买开信号价位。
BKPRICE返回最近一次模型买开位置的买开信号价位。
BKPRICE-CLOSE&60 && BKPRICE&0, SP;//如果买开价位比当前价位高出60,且买开价位存在,卖平仓
请注意当模型存在连续多个开仓信号(加仓)的情况下,该函数返回的是最后一次开仓信号的价格,而不是开仓均价。
注:BKPRICE 只在加载之后的K线上才返回信号价位,历史K线信号由于无信号价位会返回0,使用时请注意判断BKPRICE&0。效果测试中该函数返回信号位置的收盘价
卖开信号位置的卖开信号价位
SKPRICE返回最近一次模型卖开位置的卖开信号价位。
CLOSE-SKPRICE&60 && SKPRICE&0, BP;//如果当前价位高出卖开价位60, 且卖开价位存在, 买平仓
请注意当模型存在连续多个开仓信号(加仓)的情况下,该函数返回的是最后一次开仓信号的价格,而不是开仓均价。
注:SKPRICE 只在加载之后的K线上才返回信号价位,历史K线信号由于无
信号价位会返回0,使用时请注意判断SKPRICE&0。效果测试中该函数返回信号位置的收盘价
上一次买平信号位置
BARSBP返回上一次买平仓距离当前k线的k线数。
上一次卖平信号位置
BARSSP返回上一次卖平仓距离当前k线的k线数。
判断上一次交易的信号
LASTSIG返回上一次交易的信号。
注意与未来函数同时使用ISLASTBAR,EMA2,ZIGZAG,BACKSET,PEAK,PEAKBARS,
TROUGH,TROUGHBARS,REFX等可能会导致误差。
虚拟资金余额
MONEY返回虚拟资金余额。
注意与未来函数同时使用ISLASTBAR,EMA2,ZIGZAG,BACKSET,PEAK,PEAKBARS,
TROUGH,TROUGHBARS,REFX等可能会导致误差。
模型虚拟多头持仓
BUYVOL返回模型虚拟多头持仓。
注意与未来函数同时使用ISLASTBAR,EMA2,ZIGZAG,BACKSET,PEAK,PEAKBARS,
TROUGH,TROUGHBARS,REFX等可能会导致误差。
模型虚拟空头持仓
SELLVOL返回模型虚拟空头持仓。
注意与未来函数同时使用ISLASTBAR,EMA2,ZIGZAG,BACKSET,PEAK,PEAKBARS,
TROUGH,TROUGHBARS,REFX等可能会导致误差。
合约保证金
MARGIN返回当前合约的保证金比率(用户启动模组时设置的)。
注意与未来函数同时使用ISLASTBAR,EMA2,ZIGZAG,BACKSET,PEAK,PEAKBARS,
TROUGH,TROUGHBARS,REFX等可能会导致误差。
模型虚拟空头持仓
VOLMARGIN计算当前的持仓保证金。
注意与未来函数同时使用ISLASTBAR,EMA2,ZIGZAG,BACKSET,PEAK,PEAKBARS,
TROUGH,TROUGHBARS,REFX等可能会导致误差。
MONEYRATIO
资金使用率
MONEYRATIO返回当前的虚拟资金的使用率。
注意与未来函数同时使用ISLASTBAR,EMA2,ZIGZAG,BACKSET,PEAK,PEAKBARS,
TROUGH,TROUGHBARS,REFX等可能会导致误差。
虚拟总资金
MONEYTOT返回当前虚拟总资金(虚拟资金余额+持仓保证金)。
注意与未来函数同时使用ISLASTBAR,EMA2,ZIGZAG,BACKSET,PEAK,PEAKBARS,
TROUGH,TROUGHBARS,REFX等可能会导致误差。
虚拟逐笔浮盈
PROFIT返回当前的虚拟逐笔浮动盈亏。
注意与未来函数同时使用ISLASTBAR,EMA2,ZIGZAG,BACKSET,PEAK,PEAKBARS,
TROUGH,TROUGHBARS,REFX等可能会导致误差。
SETDEALPERCENT
设置下单的虚拟资金使用比例
SETDEALPERCENT(fPercent)表示每次按资金的fPercent(范围1~100)下单。
例子:SETDEALPERCENT(20); //每次按资金比例的%20下单
注:应该与AUTOFILTER函数同时使用
10.历史数据引用
取得均价(在盘后对于国内三个期货交易所指结算价)
取得结算价(只有在日线周期盘后才能取得当日的结算价)
说明:如果用在周期小于'日'的K线上如5分钟K线,一小时k线,每根k线返回的值表示这根k线当日开盘时到这根k线的为止的结算价(均价)
如果用在周期大于等于'日'的K线上,返回当根K线结束时间所在日的结算价.
取得收盘价(在盘中指最新价),也可简写为 C 。
求高价,也可简写为 H 。
求最低价,也可简写为L 。
求开盘价,也可简写为O 。
引用X在N个周期前的值
例:REF(CLOSE,5);表示引用当前周期前第5个周期的收盘价
引用某品种在某个周期上加载了某个指标的数据。
用法:#IMPORT [CODE, PERIOD, FORMULA] AS VAR。引用 CODE 所对应的合约 PERIOD 周期下指标 FORMULA 的数据。
CODE 文华码,PERIOD 周期,FORMULA 引用指标名,VAR定义变量名
注意:1.只能引用 .FML/.XFML文件
2.只能引用如下周期:MIN1 MIN3 MIN5 MIN15 MIN30 HOUR1 DAY WEEK MONTH
s3.只能短周期引用长周期&
4.被引用的指标中不能存在引用
5.如果不写文华码,默认引用当前合约
返回某品种的最小变动价位。
用法:MINPRICE(CODE); 返回CODE所对应合约的最小变动价位。
CODE 文华码或交易代码。例:MINPRICE('IF1107'); 表示返回IF1007的最小变动价位。
注意:某些合约(如橡胶指数)查不到最小变动价位,返回0。
求成交量,也可简写为V 。
11.日内高频数据引用
量能周期返回这根K线形成的时间,单位:秒。
VOLTIME 量能周期时,返回当前K线形成的时间。
量能周期返回这根K线形成的TICK笔数,单位:笔。
VOLTICK 量能周期时,返回当前K线形成的TICK笔数。
取秒周期末买1价(K线图)或该笔TICK时刻的买1价(Tick图)。
L2_BID1 K线图时返回当前秒周期最后时刻的买1价。TICK图时返回该笔TICK时刻的买1价。
取秒周期末买2价(K线图)或该笔TICK时刻的买2价(Tick图)。
L2_BID2 K线图时返回当前秒周期最后时刻的买2价。TICK图时返回该笔TICK时刻的买2价。
取秒周期末买3价(K线图)或该笔TICK时刻的买3价(Tick图)。
L2_BID3 K线图时返回当前秒周期最后时刻的买3价。TICK图时返回该笔TICK时刻的买3价。
取秒周期末买4价(K线图)或该笔TICK时刻的买4价(Tick图)。
L2_BID4 K线图时返回当前秒周期最后时刻的买4价。TICK图时返回该笔TICK时刻的买4价。
取秒周期末买5价(K线图)或该笔TICK时刻的买5价(Tick图)。
L2_BID5 K线图时返回当前秒周期最后时刻的买5价。TICK图时返回该笔TICK时刻的买5价。
取秒周期末卖1价(K线图)或该笔TICK时刻的卖1价(Tick图)。
L2_ASK1 K线图时返回当前秒周期最后时刻的卖1价。TICK图时返回该笔TICK时刻的卖1价。
取秒周期末卖2价(K线图)或该笔TICK时刻的卖2价(Tick图)。
L2_ASK2 K线图时返回当前秒周期最后时刻的卖2价。TICK图时返回该笔TICK时刻的卖2价。
取秒周期末卖3价(K线图)或该笔TICK时刻的卖3价(Tick图)。
L2_ASK3 K线图时返回当前秒周期最后时刻的卖3价。TICK图时返回该笔TICK时刻的卖3价。
取秒周期末卖4价(K线图)或该笔TICK时刻的卖4价(Tick图)。
L2_ASK4 K线图时返回当前秒周期最后时刻的卖4价。TICK图时返回该笔TICK时刻的卖4价。
取秒周期末卖5价(K线图)或该笔TICK时刻的卖5价(Tick图)。
L2_ASK5 K线图时返回当前秒周期最后时刻的卖5价。TICK图时返回该笔TICK时刻的卖5价。
L2_BIDVOL1
取秒周期末买1量(K线图)或该笔TICK时刻的买1量(Tick图)。
L2_BID1 K线图时返回当前秒周期最后时刻的买1量。TICK图时返回该笔TICK时刻的买1量。
L2_BIDVOL2
取秒周期末买2量(K线图)或该笔TICK时刻的买2量(Tick图)。
L2_BID2 K线图时返回当前秒周期最后时刻的买2量。TICK图时返回该笔TICK时刻的买2量。
L2_BIDVOL3
取秒周期末买3量(K线图)或该笔TICK时刻的买3量(Tick图)。
L2_BID3 K线图时返回当前秒周期最后时刻的买3量。TICK图时返回该笔TICK时刻的买3量。
L2_BIDVOL4
取秒周期末买4量(K线图)或该笔TICK时刻的买4量(Tick图)。
L2_BID4 K线图时返回当前秒周期最后时刻的买4量。TICK图时返回该笔TICK时刻的买4量。
L2_BIDVOL5
取秒周期末买5量(K线图)或该笔TICK时刻的买5量(Tick图)。
L2_BID5 K线图时返回当前秒周期最后时刻的买5量。TICK图时返回该笔TICK时刻的买5量。
L2_ASKVOL1
取秒周期末卖1量(K线图)或该笔TICK时刻的卖1量(Tick图)。
L2_ASK1 K线图时返回当前秒周期最后时刻的卖1量。TICK图时返回该笔TICK时刻的卖1量。
L2_ASKVOL2
取秒周期末卖2量(K线图)或该笔TICK时刻的卖2量(Tick图)。
L2_ASK2 K线图时返回当前秒周期最后时刻的卖2量。TICK图时返回该笔TICK时刻的卖2量。
L2_ASKVOL3
取秒周期末卖3量(K线图)或该笔TICK时刻的卖3量(Tick图)。
L2_ASK3 K线图时返回当前秒周期最后时刻的卖3量。TICK图时返回该笔TICK时刻的卖3量。
L2_ASKVOL4
取秒周期末卖4量(K线图)或该笔TICK时刻的卖4量(Tick图)。
L2_ASK4 K线图时返回当前秒周期最后时刻的卖4量。TICK图时返回该笔TICK时刻的卖4量。
L2_ASKVOL5
取秒周期末卖5量(K线图)或该笔TICK时刻的卖5量(Tick图)。
L2_ASK5 K线图时返回当前秒周期最后时刻的卖5量。TICK图时返回该笔TICK时刻的卖5量。
取Tick图中该笔TICK的成交价。
L2_PRICE 返回TICK图中该笔TICK的成交价。
取TICK图中该笔TICK的成交量。
L2_VOLUME 返回TICK图中该笔TICK的成交量。
ASKBIGVOLPRICE
TICK图中该笔Tick 盘口中空头满足大单条件的与最新价的最近价格。
ASKBIGVOLPRICE 返回TICK图中该笔Tick 盘口满足大单条件的与最新价的最近价格, 注模型中需调用一次CALVOLPRICELIST函数
BIDBIGVOLPRICE
TICK图中该笔Tick 盘口中多头满足大单条件的与最新价的最近价格。
BIDBIGVOLPRICE 返回TICK图中该笔Tick 盘口满足大单条件的与最新价的最近价格, 注模型中需调用一次CALVOLPRICELIST函数
CALVOLPRICELIST
TICK图中初始化盘口大单价格表,主要在BIDBIGVOLPRICE 与ASKBIGVOLPRICE 前使用,提供初始化。
CALVOLPRICELIST
L2_SETBIGVOL
设置大单成交手数阈值&
L2_SETBIGVOL( nVol ) 成交手数大于nVol的为大单,
例:L2_SETBIGVOL( 10 ); // 大于10手的是大单&
L2_BKBIGCOUNT; // 查看买开的大单成交次数;
取秒周期主动买的成交量。
L2_BIDVOL 返回当前秒周期主动买的成交量
取秒周期主动卖的成交量。
L2_ASKVOL 返回当前秒周期主动卖的成交量
L2_BIDBIGCOUNT
取秒周期主动买的大单成交次数。
L2_BIDBIGCOUNT 返回当前秒周期主动买的大单成交次数
L2_ASKBIGCOUNT
取秒周期主动卖的大单成交次数。
L2_ASKBIGCOUNT 返回当前秒周期主动卖的大单成交次数
L2_BIDBIGTOTVOL
取秒周期主动买的大单成交量。
L2_BIDBIGTOTVOL 返回当前秒周期主动买的大单成交量
L2_ASKBIGTOTVOL
取秒周期主动卖的大单成交量。
L2_ASKBIGTOTVOL 返回当前秒周期主动卖的大单成交量
取秒周期买开的成交量。
L2_BKVOL 返回当前秒周期买开的成交量
取秒周期卖开的成交量。
L2_SKVOL 返回当前秒周期卖开的成交量
取秒周期买平的成交量。
L2_BPVOL 返回当前秒周期买平的成交量
取秒周期卖平的成交量。
L2_SPVOL 返回当前秒周期卖平的成交量
L2_BKBIGCOUNT
取秒周期买开的大单成交次数。
L2_BKBIGCOUNT 返回当前秒周期买开的大单成交次数
L2_SKBIGCOUNT
取秒周期卖开的大单成交次数。
L2_SKBIGCOUNT 返回当前秒周期卖开的大单成交次数
L2_BPBIGCOUNT
取秒周期买平的大单成交次数。
L2_BPBIGCOUNT 返回当前秒周期买平的大单成交次数
L2_SPBIGCOUNT
取秒周期卖平的大单成交次数。
L2_SPBIGCOUNT 返回当前秒周期卖平的大单成交次数
L2_BKBIGTOTVOL
取秒周期买开的大单成交量。
L2_BKBIGTOTVOL 返回当前秒周期买开的大单成交量
L2_SKBIGTOTVOL
取秒周期卖开的大单成交量。
L2_SKBIGTOTVOL 返回当前秒周期卖开的大单成交量
L2_BPBIGTOTVOL
取秒周期买平的大单成交量。
L2_BPBIGTOTVOL 返回当前秒周期买平的大单成交量
L2_SPBIGTOTVOL
取秒周期卖平的大单成交量。
L2_SPBIGTOTVOL 返回当前秒周期卖平的大单成交量
12.引用其他合约价格
GETPRICE(N)
根据文华码取出某一合约的价格(任何周期上都返回当日的日线价格)。
GETPRICE(1209, 'CLOSE');返回文华码为1209的合约合约的收盘价。
其中'CLOSE'可以替换为以下:
'OPEN': 开盘
'HIGH': 最高
'LOW': 最低
'CLOSE': 收盘
'NEW': 最新
'AVPRICE':均价
'SETTLE': 结算
'YCLOSE': 昨收
'YSETTLE':昨结算
'BID1': 买1
'BIDVOL1':买1量
'ASK1': 卖1
'ASKVOL1':卖1量
'VOLUME': 成交量
'OPI': 持仓量
'DELTAVOL':现手
'DELTAOPI':增仓
注意,该函数历史数据返回加载时刻的价格(与其k线的时间无关),加载后实时生成的k线返回k线时间对应的实时价格
&&&&&&&13.颜色常数
COLORGREEN
COLORMAGENTA
COLORYELLOW
COLORLIGHTGREY
COLORLIGHTRED
COLORLIGHTGREEN
COLORLIGHTBLUE
COLORBLACK
COLORWHITE
■&交易模型中的交易指令:
期货交易指令
公式中用BK表示
公式中用BP表示
公式中用SK表示
公式中用SP表示
买平后买开新仓
公式中用BPK表示
卖平后卖开新仓
公式中用SPK表示
股票、权证、外汇交易指令
公式中用BUY表示
公式中用SELL表示
套利模型中的交易指令
第一腿买开,第二腿卖开
公式中用BKSK表示
第一腿卖开,第二腿买开
公式中用SKBK表示
第一腿买平,第二腿卖平
公式中用BPSP表示
第一腿卖平,第二腿买平
公式中用SPBP表示
&&&&■&编程举例:
1. MACD公式。&
 &&MACD公式有三个参数:SHORT(短期)、LONG(长期)、M 天数,一般为12、26、10&
&&MACD公式的用法:&
 &&①DIFF、DEA均为正,DIFF向上突破DEA,买入信号。&
 &&②DIFF、DEA均为负,DIFF向下跌破DEA,卖出信号。&
 &&③DEA线与K线发生背离,行情反转信号。&
 &&④分析MACD柱状线,由红变绿(正变负),卖出信号;由绿变红,买入信号。&
&&&&其中:
⑴DIFF线 收盘价短期、长期指数平滑移动平均线&间的差&
 &&⑵DEA线  DIFF线的M日指数平滑移动平均线&
 &&⑶MACD线 DIFF线与DEA线的差,彩色柱状线&
  按照上述原理,MACD公式应该写成如下形式:&
&&&&参数表:&
  参数名 最小值 最大值 默认值&
  SHORT 5 40 12&
  LONG 20 100&26&
  M&&&&2 60 10&
&&&&公式写成如下形式即可:&
  DIFF:=EMA(CLOSE,SHORT)-EMA(CLOSE,LONG);&
  DEA:=MA(DIFF,M);&
  MACD:2*(DIFF-DEA);&
&&&&公式的第一行对应于⑴,公式的第二行对应于⑵,公式的第三行对应于⑶。&
2. KD公式:&
算法:对每一交易日求RSV(未成熟随机值)&
⑴RSV=(收盘价-最近N日最低价)/(最近N日最高价-最近N日最低价)×100&
⑵K线:RSV的M1日移动平均&
  ⑶D线:K值的M2日移动平均。&
&&&参数:N、M1、M2 天数,一般取9、3、3&
&&&&用法:&
  ①D&70,超买;D&30,超卖。&
  ②线K向上突破线D,买进信号;线K向下跌破线D ,卖出信号。&
  ③线K与线D的交叉发生在70以上,30以下,才有效。&
  ④KD指标不适于发行量小,交易不活跃的股票;&
  ⑤KD指标对大盘和热门大盘股有极高准确性。&
&&&&参照KD公式算法,KD公式可以按照如下方式来编写。&
&&&&参数表:&
  参数名称 最小值 最大值 缺省值&
  N 1 100&9&
  M1 2 40&3&
  M2 2 40 3&
&&&&公式的内容如下:&
 &&RSV:=(CLOSE-LLV(CLOSE,N))/(HHV(CLOSE,N)-LLV(CLOSE,N))*100;&
 &&K:SMA(RSV,M1,1);&
 &&D:SMA(RSV,M2,1);&
公式如下:&
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,COLORWHITE);&
 DRAWLINE(ABS(TMP)&0.00001,HIGH,ABS(TMP)&0.00001,OPEN,COLORWHITE);&
 STICKLINE(TMP&0.00001,OPEN,CLOSE,COLORCYAN,0);&
 STICKLINE(TMP&-0.00001,OPEN,CLOSE,COLORRED,1);&
&&&&公式说明:&
  第一行,当当前周期收阴时,从HIGH向OPEN画直线,颜色为COLORCYAN;&
  第二行,当当前周期收阴时,从LOW向CLOSE画直线,颜色为COLORCYAN;&
  第三行,当当前周期收阳时,从HIGH向CLOSE画直线,颜色为COLORRED;&
  第四行,当当前周期收阳时,从LOW向OPEN画直线,颜色为COLORRED;&
  第五行,当当前周期平盘时,从LOW向OPEN画直线,颜色为白色;&
  第六行,当当前周期平盘时,从HIGH向OPEN画直线,颜色为白色;&
  第七行,当当前周期收阴时,从OPEN向CLOSE画实心柱线,颜色为COLORCYAN;&
  第八行,当当前周期收阳时,从OPEN向CLOSE画空心柱线,颜色为COLORRED;
(二)下单组件的语法与函数
■&自编公式支持的操作符:
  ⒈+操作符,表示“加法运算”。
  ⒉-操作符,表示“减法运算”。
  ⒊*&操作符,表示“乘法运算”。
  ⒋/&操作符,表示“除法运算”。
&&&&例如:
high=High(&m1109&);//high的值为合约m1109当前最高价
 &high+Price(&m1109&)表示求m1109当前最高价及当前价格的和。&
 &high-Price(&m1109&)表示求m1109当前最高价及当前价格的差。&
 &high*Price(&m1109&)表示求m1109当前最高价及当前价格的积。&
 &high/Price(&m1109&)表示求m1109当前最高价及当前价格的商。
 ⒌&&&(AND)操作符,表示“与运算”。&
  ⒍||(OR)操作符,表示“或运算”。&
  ⒎&&操作符,表示“大于运算”。&
  ⒏&&操作符,表示“小于运算”。&
  ⒐&=操作符,表示“大于等于运算”。&
  ⒑&=操作符,表示“小于等于运算”。&
  ⒒!=操作符,表示“不等于运算”。&
  ⒓==&操作符,表示“等于操作符”。&
&&&&例如:&
 & high&Price(&m1109&)表示判断m1109当前最高价是否大于当前价格。&
 & high==Price(&m1109&)表示判断m1109当前最高价是否等于当前价格。&
  ⒔=操作符,表示为变量进行赋值。&
&&&&例如:&
 & Price=Price(&m1109&);//表示将合约m1109的当前价格赋值给Price变量。
&&&&■&下单组件编写语法:&
&&&&1.&算法组件构成:全局变量定义、主函数定义、自定义函数定义。
注:a.全局变量定义要在主函数和自定义函数之外,主函数和自定义函数定义不分先后顺序。
&&& b.运行原理:先读取全局变量,后直接运行主函数,在主函数运行过程中如果遇到自定义函数,在跳出主函数运行自定义函数。
VAR&&&--------------------------------------------全局变量定义&&&&&&&&&&&&&&&&&&&
VAR&ADDTEST(VAR&a,VAR&b)
&&&&&&&&&&&&&&VAR&x;
&&&&&&&&&&&&&&VAR&y;
&&&&&&&&&&&&&&x = a +&&&&&&&&&&&&&&&&&--------------------------自定义函数定义
&&&&&&&&&&&&&&y = a -
&&&&&&&&&&&&&&MessageOut(x);
&&&&&&&&&&&&&&MessageOut(y);
&&&&&&&&&&&&&&RETURN&(x*y);
VOID&MAIN()
&&&&&&&&&&&&&&result = ADDTEST(50,100);&&&&&-----------------------主函数定义
&&&&&&&&&&&&&&MessageOut(result);
2.变量定义:&&VAR+变量名& 如:VAR&N;
3.&主函数定义:
VOID/VAR&MAIN()
主函数内容;
自定义函数定义:
有返回值无参数的自定义函数定义
&& 自定义函数内容;
&&&RETURN(10);
b.无返回值无参数的自定义函数定义
VOID&ADD()
&& 自定义函数内容;
c.有返回值有参数的自定义函数定义
VAR&ADDTEST(VAR&a,VAR&b)
&&&&&&&&&&&&&&VAR&x;
&&&&&&&&&&&&&&VAR&y;
&&&&&&&&&&&&&&x = a +&&&&&&&&&&&&&&
&&&&&&&&&&&&&&y = a -
&&&&&&&&&&&&&&MessageOut(x);
&&&&&&&&&&&&&&MessageOut(y);
&&&&&&&&&&&&&&RETURN&(x*y);
循环语句while的用法:
WHILE(条件1)&&&
{&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 当满足条件1时,循环执行语句1,直到不满足条件时,
&& 执行语句1;&&&&&&&&&&&&&&&&&&&&&&&& 在执行语句2.
执行语句2;
■&下单组件模型函数
1.引用数据函数
AvPrice(Code)
某合约当前均价。
AvPrice(Code)返回合约Code的当前均价,Code为某合约的合约代码
VAR//定义一个变量avprice
avprice=AvPrice(&m1009&); //price的值为合约m1009的当前均价
High(Code)
某合约当前最高价。
High(Code)返回合约Code的当前最高价,Code为某合约的合约代码
VAR//定义一个变量high
high=High(&m1009&); //high的值为合约m1009的当前最高价
某合约当前最低价。
Low(Code)返回合约Code的当前最低价,Code为某合约的合约代码
VAR//定义一个变量low
low=Low(&m1009&); //low的值为合约m1009的当前最低价
Position(Code,strContent)
某合约的盘口数据。
Position(Code,strContent) 返回某合约某种盘口数据Code
为某合约的合约代码(字符串), strContent为所要取得内容,
可选以下内容
&bid1&,&bid2&,&bid3&,&bid4&,&bid5&,
&ask1&,&ask2&,&ask3&,&ask4&,&ask5&,
&bidvol1&,&bidvol2&,&bidvol3&,&bidvol4&,&bidvol5&,
&askvol1&,&askvol2&,&askvol3&,&askvol4&,&askvol5&,
分别表示买1-买5 卖1-卖5 买1量-买5量 卖1量-卖5量。
bid1=Position(&m1009&,&bid1&);//bid1为豆粕1009的当前买1价
Price(Code)
某合约当前价格。
Price(Code)返回合约Code的当前价格,Code为某合约的合约代码
VAR//定义一个变量price
price=Price(&m1009&); //price的值为合约m1009的当前价格
Volume(Code)
某合约当前成交量。
Volume(Code)返回合约Code的当前成交量,Code为某合约的合约代码
VAR//定义一个变量volume
volume=Volume(&m1009&); //volume的值为合约m1009的当前成交量
2.逻辑判断函数
SamePeriod(Code,PeriodStr,T1,T2)
判断两个时间是否是同一个周期。
SamePeriod(Code,PeriodStr,T1,T2)如果T1,T2是同一个周期返回1,
否则返回0,Code:合约的合约代码,PeriodStr可以取以下值的其中之一:
&min1&,&min3&,&min5&,&min10&,&min15&,&min30&,&1hour&,&3hour&,
&8hour&,&1day&,&week&,&month&,T1和T2是以总秒数表示的时间
IF(SamePeriod(&m1009&,&min10&,LastOrderTime(),Time(&09:00:00&))合约为m1009,周期为10分钟情况下,如果最后一次下单时间与09:00:00在同一个周期内
3.辅助函数
CurrentTime()
当前时间。
CurrentTime()返回当前时间
CurTime=CurrentTime(); //定义一个变量CurTime,CurTime的值为当前时间。注意返回值是日至今的总秒数
DateToStr(nSec)
日期转换为字符串。
DateToStr(nSec)把整形数值表示的时间nSec转换为字符串,nSec为时间的总秒数,返回的字符串格式为:YY:MM:DD
MessageOut(DateToStr(CurrentTime() ) ); //输出当前日期
退出程序。
Exit()退出程序。
例:Exit(); 退出程序。当组件设置为循环时,遇到Exit将停止循环,请谨慎使用。当组件未设置为循环执行时,应该使用RETURN语句退出。
Itoa(Value)
数字转换为字符。
Itoa(Value)将Value转换成字符串,Value的为整形数值
VAR str=&数字&+Itoa(5); //str的值为&数字5&
MessageOut(Content)
输出内容。
用法:MessageOut(Content),输出Content的内容。注意:Content可以是字符串也可以是数字
ReadGlobal(strName)
返回已注册的整形变量的值
用法:ReadGlobal(strName);返回注册的strName的值,strName为已注册的整形变量的注册名称(字符串)。如果strName未被注册过,返回0
WriteGlabal(&limit&,20);
VAR limitV
limitValue=ReadGlobal(&limit&);limitValue的值为20。
ReadGlobalF(strNameF)
返回已注册的浮点型变量的值
用法:ReadGlobalF(strNameF);返回注册的strNameF的值,strNameF为已注册的浮点型变量的注册名称(字符串),如果strNameF未被注册过,返回0.0f
WriteGlabalF(&Rate&,0.5);
fRate=ReadGlobal(Rate);fRate的值为0.5。
ReadGlobalStr(NameStr)
返回已注册的字符串变量的值
用法:ReadGlobalStr(NameStr);返回注册的NameStr的值,NameStr为已注册的字符串变量的注册名称。如果NameStr未被注册过,返回(空字符串)
WriteGlabalStr(&showStr&,&上升&);
str=ReadGlobal(showStr);//str的值为&上升&。
Time(strTime)
转换字符串为时间。
Time(strTime) 转换字符串strTime为时间(以总秒数表示),strTime的格式应为HH:MM:SS,其中0&=HH&24,0&=MM&60,0&=SS&60,如果不满足此条件,返回0
time:Time(&09:15:00&)
TimeToStr(nSec)
时间转换为字符串。
TimeToStr(nSec) 把整形数值表示的时间nSec转换为字符串,nSec为时间的总秒数,返回的字符串格式为:HH:MM:SS
MessageOut(TimeToStr(CurrentTime())),输出当前时间
WriteGlabal(Name,Value)
注册一个整形变量。
WriteGlabal(Name,Value)。Name为整形变量的注册名称(字符串),Value为整形变量的值
WriteGlabal(&Period&,5) 注册一个整形变量,注册名称为&Period&,值为5。
WriteGlabal(NameF,ValueF)
注册一个浮点形变量
WriteGlabal(NameF,ValueF)。NameF为浮点形变量的注册名称(字符串),ValueF为浮点形变量的值
WriteGlabalF(&Rate&,0.5) 注册一个浮点形变量,注册名称为&Rate&,值为0.5。
WriteGlabalStr(NameStr,ValueStr)
注册一个字符串变量
用法:WriteGlabalStr(NameStr,ValueStr)。NameStr为字符串变量的注册名称(字符串),ValueStr为字符串变量的值
WriteGlabalStr(&showStr&,&上升&) 注册一个字符串变量,注册名称为&showStr&,值为&上升&。
4.数学运算函数
ABS(Value)
取整形绝对值。
ABS(Value)返回Value的绝对值,Value是整形值
X=ABS(5);//X的值为5
ABSF(ValueF)
取浮点型的绝对值。
ABSF(ValueF)返回ValueF的绝对值,ValueF是浮点值
X=ABSF(-1.5); //X的值为1.5
5.模型相关函数
F_BuyPosition()
模型某合约多头持仓。
F_BuyPosition()返回模型的多头持仓
例:&&&&&&&&&&&&&
fmlBVol=F_BuyPosition(); //定义一个变量fmlBVol,fmlBVol为模型的多头持仓。
F_SellPosition()
模型某合约空头持仓。
F_SellPosition()返回模型的空头持仓
fmlSVol=F_SellPosition(); 定义一个变量fmlSVol,fmlSVol为模型的空头持仓。
F_BuyAvgPrice()
模型某合约多头持仓成本价。
F_BuyAvgPrice()返回模型多头持仓成本价
price=F_BuyAvgPrice(); 定义一个变量price,price的值为值为模型多头持仓成本价
F_SellAvgPrice()
模型某合约空头持仓成本价。
F_SellAvgPrice()返回模型空头持仓成本价
price=F_SellAvgPrice() 定义一个变量price,price的值为模型空头持仓成本价
F_DealCode()
取得当前模型的合约编码。
F_DealCode()返回模型所加载K图表的合约的合约编码(字符串)
DealCode=F_DealCode();& //变量DealCode的内容为模型当前合约的合约编码.
F_Period()
取得当前模型的周期。
F_Period() 返回当前模型的周期(字符串)
period=F_Period();&&&&&&&&&&&&&&//变量period的内容为当前模型所使用的周期.
F_FreshSig()
刷新当前信号。
F_FreshSig() 取一个新信号(如果模型已经发出了多个信号,取最早发出的信号,信号消失也是一种信号)返回1表示取到新信号,返回0表示失败即已经没有新信号可取。取到新信号以后可以配合 F_Sig, F_SigVol, F_SigValid, F_SigTime, F_SigPos使用
IF(F_FreshSig()) //如果取得了新的信号
取当前的信号(BK|SK|BP|SP|BPK|SPK)。
F_Sig() 返回当前的信号是什么类型(BK|SK|BP|SP|BPK|SPK)例:
IF(F_Sig()==BPK && F_SigValid()==1) //如果信号是BPK 且不是信号消失状态
F_SigVol()
取当前信号的手数。
F_SigVol() 取当前的信号的手数, 如果当前信号是BPK(5), 则返回5.
IF(F_SigVol() == VarOpi) //如果信号的仓位等于变量VarOpi
F_SigValid()
当前信号是发出的,还是消失的
F_SigValid() 返回模型信号存在两种类型之一(信号发出,信号消失), 返回1表示信号发出, 返回0表示信号消失。
IF(F_Sig()==BPK && F_SigValid()==1) //如果信号是BPK 且不是信号消失状态
F_SigTime()
当前信号的发出时间。
F_SigTime() 返回当前信号的发出时间(以总秒数表示),
IF(SamePeriod(&m1009&,&min10&,LastOrderTime(),F_SigTime()) //如果取得新信号的时间与上次交易的时间是同一个周期
F_SigPos()
当前信号在模型中是第几个有指令的语句。
F_SigPos() 如果当前信号是模型中第5个含信号的语句发出的,返回5
IF(F_SigPos()==5) //如果当前信号是第5行发出的
6.头寸函数
LastOrderTime()
最后一次下单的时间。
LastOrderTime()返回最后一次下单的时间,以总秒数表示
IF(LastOrderTime() - CurrentTime() &= 300)如果距离上次下单时间超过5分钟
T_BuyPosition(Code)
交易系统某合约多头持仓。
T_BuyPosition(Code)返回交易系统中合约Code的多头持仓,Code为某合约的合约代码。
BuyVol=T_BuyPosition(&m1009&); //BuyVol为交易系统中合约代码为m1009的合约的多头持仓。
T_BuyAvgPrice(Code)
交易系统某合约多头持仓成本价。
用法:T_BuyAvgPrice(Code)返回交易系统合约Code的多头持仓成本价,Code为某合约合约代码。
VAR BuyP BuyPrice=T_BuyAvgPrice(&m1009&);// 定义一个变量BuyPrice,BuyPrice的值为交易系统合约m1009多头持仓成本价
T_BuyProfitLoss(code)
交易系统某合约的多头盈亏。
T_BuyProfitLoss(code)返回交易系统合约code的多头盈亏
BuyEarn=T_BuyProfitLoss(&m1009&);// 定义一个变量BuyEarn,BuyEarn的值为交易系统合约m1009的多头盈亏
T_SellPosition(Code)
交易系统某合约空头持仓。
T_SellPosition(Code)返回交易系统中合约Code的空头持仓,Code为某合约的合约代码。
SellVol=T_SellPosition(&m1009&);// SVol为交易系统中合约代码为m1009的合约的空头持仓。
T_SellAvgPrice(code)
交易系统某合约空头持仓成本价。
用法:T_SellAvgPrice(code)返回交易系统合约code的空头持仓成本价,code为某合约合约代码。
SellPrice=T_SellAvgPrice(&m1009&);// 定义一个变量SellPrice,SellPrice的值为交易系统合约m1009空头持仓成本价
T_SellProfitLoss(code)
交易系统某合约的空头盈亏。
T_SellProfitLoss(code)返回交易系统合约code的空头盈亏
SellEarn=T_SellProfitLoss(&m1009&) 定义一个变量SellEarn,SellEarn的值为交易系统合约m1009的空头盈亏
T_Deal(Code,bs,kp,vol,price)
发出委托。
T_Deal(Code,bs,kp,vol,price),发出委托。Code(字符串):合约编码,bs(整数0,1):0 买 1 卖 ,kp(整数0,1,2):0 开 1平 2平今 Vol(整数):下单手数,Price(整数或小数):下单价格,0为市价 返回唯一委托标识OrderID(字符串)
VAR orderID=T_Deal(&m1009&, 0, 0, 5, 2900); 发出委托:m1009 买开5手 限价2900
T_FreeMargin(Type)
可用资金。
用法T_FreeMargin(Type), 返回可用资金。 Type(整数 0, 1) 0期货 1股票,返回可用资金数(小数)
margin=T_FreeMargin(0); //返回当前期货帐户的可用资金数
T_Equity(Type)
用法T_Equity(Type), 返回权益。 Type(整数 0, 1) 0期货 1股票,返回权益(小数)
margin=T_Equity(0); //返回当前期货帐户的权益数
T_MaxOpen(Code, margin, bs)
某品种最大可开仓手数。、
T_MaxOpen(Code, margin, bs),某品种最大可开仓手数。Code(字符串):合约编码,margin(小数):保证金比例 bs(整数0,1):0 买 1 卖 返回该品种在当前可用资金,当前价格下的可开仓手数(整数)
vol=T_MaxOpen(&m1009&, 0.1, 0);& //变量vol为m1009 的 在保证金比例为0.1 下的可开仓手数
T_OrderState(OrderID)
查询委托状态。
T_OrderState(OrderID)根据委托唯一标识OrderID(字符串)查委托状态,返回值含义:-1查询失败 0挂单 1成交 2被撤单 3部份成交 4 其它
IF(T_OrderState(X)=0) 如果委托X是挂单
T_OpenOrder(Code,Type)
查询挂单数量。
T_OpenOrder(Code,Type)返回未成交委托数量,Code:交易编码,Type:0所有方向;1买开;2卖平;3卖开;4买平
IF(LastOrderTime() - CurrentTime &= 300 && T_OpenOrder(ru)
&&& T_OpenOrder(&ru1009&,1)& //如果距离上次下单超过5分钟,且存在买开挂单,撤掉剩余买开委托合约X的未成交委托数量
T_DeleteOrder(OrderID)
委托撤单。
T_DeleteOrder(OrderID)根据委托唯一标识orderID(字符串)撤单,返回0撤单发出成功,返回其它失败
IF(T_DeleteOrder(orderID)!=0)如果撤单失败
T_DeleteOrderByCode(Code,Type)
委托撤单(通过合约代码)。
T_DeleteOrderByCode(Code,Type)委托撤单。Code:合约代码(字符串)Type:0所有方向;1买开;2卖平;3卖开;4买平 返回0撤单发出成功,返回其它失败
T_DeleteOrderByCode(&ru1009&,2)撤单橡胶1009的卖平委托
T_DeleteOrderAll()
撤掉所有未成交委托。
T_DeleteOrderAll()撤掉所有该模型相关的未成缴委托单,返回0撤单发出成功,返回其它失败
IF(T_DeleteOrderAll()!=0)//如果撤单失败
T_AddBuyOpiTo(Code, Price, Vol)
根据当前成交的量采用买开的手段达到把仓位增加某一数值的目的。
T_AddBuyOpiTo(Code, Price, Vol)把多头仓位增加到某一数值。Code(字符串):合约代码,Price(小数):价格,Vol(整数):成交量 对合约代码为Code的字符串以Price价格下单达到多头vol手持仓
T_AddBuyOpiTo(&m1009&, Price(&m1009&)+5, 10); //买开使多头持仓达到10手
T_AddSellOpiTo(Code, Price, Vol)
根据当前成交的量采用卖开的手段达到把仓位增加到指定值的目的。
T_AddSellOpiTo(Code, Price, Vol)把空头仓位增加到某一数值。Code(字符串):合约代码,Price(小数):价格,Vol(整数):成交量 对合约代码为Code的字符串以Price价格下单达到多头vol手持仓
T_AddSellOpiTo(&m1009&, Price(&m1009&)-5, 10); //卖开使空头持仓达到10手
T_ReduceBuyOpiTo(Code, Price, Vol)
根据当前成交的量采用卖平的手段达到把仓位减少到某一数值的目的。
T_ReduceBuyOpiTo(Code, Price, Vol)把多头仓位减少到某一数值。Code(字符串):合约代码,Price(小数):价格,Vol(整数):成交量 对合约代码为Code的字符串以Price价格下单达到多头vol手持仓
T_ReduceBuyOpiTo(&m1009&, Price(&m1009&)-5, 10); //卖平使多头持仓减少到10手
T_ReduceSellOpiTo(Code, Price, Vol)
根据当前成交的量采用买平的手段达到把仓位减少到某一数值的目的。
T_ReduceSellOpiTo(Code, Price, Vol)把空头仓位减少到某一数值。Code(字符串):合约代码,Price(小数):价格,Vol(整数):成交量 对合约代码为Code的字符串以Price价格下单达到空头vol手持仓
T_ReduceSellOpiTo(&m1009&, Price(&m1009&)-5, 10); //卖开使空头持仓减少到10手
T_StgBuyVol(Code)
当前算法交易模型产生的某品种的多头持仓。
T_StgBuyVol(Code)返回当前算法交易模型产生的合约代码为Code的合约的多头持仓数。Code(字符串):合约代码
T_StgBuyVol(&m1009&); //当前算法交易模型产生的某品种多头持仓数
T_StgSellVol(Code)
当前算法交易模型产生产生的某品种的空头持仓。
T_StgSellVol(Code)返回当前算法交易模型产生的合约代码为Code的合约的空头持仓数。Code(字符串):合约代码
T_StgSellVol(&m1009&); //当前算法交易模型产生的某品种空头持仓数
T_OrderMatchVol(OrderID)
某次委托已经成交的数量。
T_OrderMatchVol(OrderID)根据委托唯一标识OrderID查询委托成交手数,返回成交手数。OrderID(字符串)
matchvol=T_OrderMatchVol(X); //matchvol为某次委托的已成交数量
T_IsNoOrder()
该算法交易模型无挂单(发出的所有委托都已经成交,或被撤单)。
T_IsNoOrder()如果没有挂单返回1,否则返回0
例:&&&&&&&&&&&&&
IF(T_IsNoOrder()) //如果没有挂单
&&■&编程举例:
数学计算算法组件编写实例。
VAR&&&&&&&&&&&&&&&&&&&&&-----------------------//定义全局变量result
VAR&ADDTEST(VAR&a,VAR&b)&&&&&&&&&-----------------------//定义自定义函数ADDTEST 设定参数a,b
&&&&&&&&&&&&&&VAR&x;&&&&&&&&&&&&&&&&&&&&&&&-----------------------//定义局部变量x
&&&&&&&&&&&&&&VAR&y;&&&&&&&&&&&&&&&&&&&&&&&-----------------------//定义局部变量y
&&&&&&&&&&&&&&x = a +&&&&&&&&&&&&&&&&&&&-----------------------//将 a+b 的结果赋值给x
&&&&&&&&&&&&&&y = a -&&&&&&&&&&&&&&&&&&&-----------------------//将 a-b 的结果赋值给y
&&&&&&&&&&&&&&MessageOut(x);&&&&&&&&&&&&&&&-----------------------//输出变量x的值
&&&&&&&&&&&&&&MessageOut(y);&&&&&&&&&&&&&& -----------------------//输出变量y的值
&&&&&&&&&&&&&&RETURN&(x*y);&&&&&&&&&&&&&&&&-----------------------//返回数值x*y
VOID&MAIN()&&&&&&&&&&&&&&&&&&&&&&-----------------------//定义主函数
&&&&&&&&&&&&&&result = ADDTEST(50,100);&&&&-----------------------//调用自定义函数ADDTEST 并将结果赋值给result
&&&&&&&&&&&&&&MessageOut(result);&&&&&&&&&&-----------------------//输出变量result的值
1-100自然数累加算法组件编写实例
VAR&SUM,N;&&&&&&&&&&&&&&&&&&&&&&&-----------------------//定义全局变量SUM、N
VOID&MAIN()&&&&&&&&&&&&&&&&&&&&&&-----------------------//定义主函数
&&&&&&&&&&&&&&N=0;&&&&&&&&&&&&&&&&&&&&&&&&&-----------------------//将0赋值给变量N
&&&&&&&&&&&&&&SUM=0;&&&&&&&&&&&&&&&&&&&&&&&-----------------------//将0赋值给变量SUM
&&&&&&WHILE(N&=100)&&&&&&&&&&&&&&-----------------------//运行WHILE循环函数,条件为N&=100
&&&&&&&&&&&&&&{
&&&&&&&&&&&&&&&&&&&&&&&&&&&&SUM=SUM+N;&&&&&&&&&&&&&&&-----------------------//将SUM+N赋值给SUM
&&&&&&&&&&&&&&&&&&&&&&&&&&&&N=N+1;&&&&&&&&&&&&&&&&&&&-----------------------//将N+1赋值给N
&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&MessageOut(SUM);&&&&&&&&&&&&&-----------------------//输出变量SUM的值
注:输出后返回结果为5050。
(三)如何编指标?
在系统工具菜单中,选择&指标管理器&,在弹出的&指标管理器&里新建
为方便用户自建公式,编辑器菜单栏&插入&中备有&插入函数&、&引用其它公式&等功能。利用文华函数和语法编写指标:
编写完毕,语法检查测试成功后取名保存即可
(四)如何设置指标线形?
WH3增加编写指标函数加粗BOLD、虚线DOT函数,可以在指标代码中进行编写。
例如:5日均线加粗,十日均线变为虚线,可以如下编写:
&&&&&&MA5:MA(C,5),BOLD;
&&&&&&MA10:MA(C,10),DOT;
(五)如何在主图上显示指标的买卖信号?
在技术分析图表中,点击鼠标右键选择‘其他’,勾选‘显示指标的买卖信号’。
(六)什么是程序化交易?
程序化交易是一种在计算机和网络技术的支持下,瞬间完成你预先设置好的组合交易指令的一种交易手段。您可以将您的交易思路,通过文华提供的函数、语法及编辑平台,编写成交易模型,实现自动开仓、自动止损、自动止赢。程序化交易在投资实战中不仅可以提高下单速度,而且可以帮助投资者在交易过程中避免受到情绪波动的影响,实现理性投资。
程序化交易系统的第一版于2004年9月推出(中国期货行业第一个程序化交易系统),在第一版的基础上进行多次的修改和完善后,目前功能如下:
客户可以自己编写交易模型(交易公式),实现自动下单。可以发出:买开 /买平/卖开/卖平/反手指令,极大方便了技术派进行操盘。
当交易模型满足条件时,就会发出交易指令,如下图所示。选中相应的交易信号点击“手动干预”,探出的下单窗口会自动填入客户已经预先设好委托数量等其他条件,点击“下单”就可以按照信号方向发出委托指令(如果客户设置成全自动交易,系统会不需要确认自动下单)。
程序化交易系统的原理
&&&&&&&&客户通过程序化交易系统发出的委托指令通过一键通下单系统,进入期货公司和交易所。通过程序化交易来进行下单和客户通过自助委托软件手动下单具有同等的安全性和可靠性。
1.使用“程序化交易”的第一步,一定要在文华财经行情系统中点击键盘F12启动一键通委托程序,输入你的用户名和密码),否则程序化交易无法工作。
2.使用一键通委托程序下单以前,请阅读“免责声明”。
3.当你离开电脑的时候,一定要把电脑锁屏,以免别人使用你的账号进行交易。
(七)如何编写程序化交易模型?
菜单栏中点击程序化,选择策略模型管理器,选择新建:
模型编写窗口上方为编写工具条,包括新建、保存、打印,剪切、复制、粘贴,撤销、恢复,查找、语法检测等功能;左侧可以选择范例模型来学习编写的方法;右侧显示模型的说明:
编写交易模型的时候,可以点击“插入”,选择“插入函数”来查询和套用软件支持的函数。其中包括数学函数,时间函数,绘图函数等全部的函数语句。如下图所示:
点击“插入”,选择“引用其他模型”来引用已有的策略模型组件,选择一个组件后点击“插入”拷贝直接将模型引用过来。如下图所示:
(八)如何编写下单组件?
与交易模型的编写界面相类似,&菜单栏中“程序化”“下单组件管理器”,在算法交易管理器中点击“新建”即可。
下单组件窗口中提供的菜单、工具条以及功能按键与策略模型编写窗口类似,可以参照(五)中的说明。另外,下单组件使用的是类C语言的语法结构,可以通过软件中的自带模型以及编写帮助了解具体的编写方法。
(九)如何在编写程序化交易模型遇到问题的时候获得帮助
程序化交易平台提供了强大的编写模型功能,同时文华财经也提供了优质的服务,在编写模型的时候如果遇到问题可点击“帮助”查看文华函数和语法说明;也可点击“帮助”后面的链接进入文华论坛获得文华客服人员的帮助;同时还提供了电话咨询和邮件咨询的服务:
电话:400-811-3377
(十)如何对策略模型进行效果测试
客户交易模型编写好以后,可以进行“效果测试”以及详细的资金曲线,如下图所示:
效果测试操作方法:在要测试的合约中加载待测试模型,点击“收益率测算”,在弹出的参数这是框中设置相应参数,点击确定
点击演算过程部分的“信号和资金记录表”查看资金曲线
通过效果测试并且对资金曲线满意,认为交易模型已经满足您的要求了,下一步要做的就是“保存模型”。
切换到“效果预览”标签下,图表上就出现根据您的交易模型出现的交易信号。在程序化运行模组里加载模型,一旦交易模型满足要求,系统就会发出交易指令 。
效果测试指标项说明:
测试的自然天数(不包括当天)
测试周期数
测试的K线根数
出现指令数目
初始投入总资金
空仓周期数
没有持仓的周期数
最长连续空仓周期数
连续无持仓的K线根数
最长交易周期*
开仓到持仓为0这个过程一共占用的周期数称为交易周期;多头,空头所有交易都有一个对应的交易周期值,取其中的最大值
标准离差:
√(SUM((每次盈利-平均盈利)^2,N)/&N)
标准离差率:
离差/平均盈利
盈亏总平均/亏损平均*
((总盈利-总亏损)/交易次数) / (总亏损/亏损交易次数)
从测试开始到结束,动态权益计算出来的波段从高点到低点回撤的最大值
每手最大回撤
每手回撤的最大值。(每手回撤:对于每次交易,用该次交易的亏损值除以这次交易过程中的成交次数)
每手平均盈亏
(总利益-总亏损)/ (总成交量的 1/2)
期间最大权益
整个测试过程中每个周期已缴保证金+剩余可用资金+持仓浮盈所得结果中的最大值。
期间最小权益
整个测试过程中每个周期已缴保证金+剩余可用资金+持仓浮盈所得结果中的最小值。
交易产生的总手续费
成交价*(开仓或者平仓手数)*交易单位
(最终权益-出始资金)/出始资金
非亏损交易周次数/总交易次数
平均盈利/最大回调(最大回撤)*
平均盈利 = 总盈利/盈利交易次数
平均盈利/平均亏损*
平均亏损 = 总亏损/亏损交易次数
净利润 = 总盈利 - 总亏损
盈利的总和
亏损的总和
其中持仓浮盈
其中持仓的浮动盈亏,最后交易状态如果是有持仓,按照收盘价计算盈亏。
发生交易的次数
盈利次数/总交易次数
盈利的交易次数
亏损的交易次数
持平的交易次数
平均交易周期
总周期数/交易次数
平均盈利交易周期*
总周期数/盈利次数
平均亏损交易周期*
总周期数/亏损次数
平均盈亏(利润)
总利润率/总交易次数
每一次的盈利额比总资金额的均值
每一次的亏损额比总资金额的均值
单笔最大盈利
单笔最大亏损
净利润/最大亏损*
(总盈利-总亏损)/最大亏损
最大连续盈利次数:
测试周期内连续盈利交易的次数
最大连续亏损次数:
测试周期内连续亏损交易的次数
所有周期里持仓的最大值
最大使用资金
这里的使用资金指的是持仓缴纳的保证金
扣除最大盈利后收益率
(最终权益-最大赢利-初始资金)/初始资金
扣除最大亏损后收益率
(最终权益+最大亏损-初始资金)/出始资金
注:对于盈利、亏损的计算,带有*的是都是以从开仓到持仓为0算一次交易计算盈亏,未标注*的是按照一开一平来计算盈亏。
(十一)如何进行参数优化
当对当前编写的模式不是十分满意或者打算通过调整参数改进模式,可以通过”参数优化”功能实现匹配最优参数.在收益率测算这部分下,通过点击“抽样初选”和“精选”进行最优参数匹配以达到模型的最佳参数配置.
如下图所示,系统正在进行抽样初选参数优化,为您筛选最优参数配置. 优化后的参数显示在最优值中.同时,不仅可以设定总盈利率的最优参数,还可以自己选择其他参考标准的最优参数.
(十二)如何加密销售
期货公司的研发人员编的模型,给客户用,一旦客户离开这个期货公司,模型自动失效。
具体操作方法:
1、选择加密销售,设置购买者的文华帐号、到期时间及输出路径:
购买者得到公式后选择导入路径进行导入
2、设置查看密码,此功能是为了给本机电脑软件中的模型进行加密,防止被盗用源码。
(十三)如何启动程序化交易
点击菜单栏中的程序化菜单,在下拉菜单中选中“自动交易运行模组”
(十四)如何设置程序交易的合约、周期与选择加载的模型
程序化模组的菜单栏中选择“启动”,“新建模组”,在弹出的窗口中按照向导提示进行设置
设置加载参数,下单方式可以选择半自动或全自动,信号确认提供“一直等到该根K线走完”和“持续时间超过N秒或K线走完”两种方式,后者可以自行设定信号持续时间
与Mytrader功能兼容性设置,信号消失、开仓止损可根据需要进行设置
设置超价追价是否启用,在模组选择上可以使用软件内置模块也可以选择使用自编下单组件
(十五)如何在程序化交易窗口设置下单手数
可以在程序化交易窗口“加载参数”标签设置下单手数,模型触发后以固定手数下单。
方法:在程序化交易窗口“加载参数”标签下的“加载参数”中修改即可。
(十六)如何启用下单组件
赢智版程序化交易提供了下单组件的编写与加载平台,可以实现让策略模型与下单组件绑定运行的方式来完成程序交易。
方法:在程序化运行模组窗口“下单精细控制”标签下选择“使用自编的下单组件”,点击绑定组件后的设置按钮,在弹出的绑定组件窗口中选择要绑定的下单组件即可。如下图:
(十七)如何查看各交易组件的运行状态
&&方法:在程序化交易菜单栏选择下单组件运行池,即可看到个交易组件的运行状态,如图:
(十八)如何进行全自动下单
方法:在程序化运行模组窗口“加载参数”标签下的“下单方式”中进行设置,选择不需要确认(全自动)的时候,当模型满足条件时,系统会自动发出委托;选择需要确认(半自动)的时候,当模型满足条件时,会发出确认下单的提示框。
(十九)如何实现加载模型后在另外指定的合约中下单
方法:在已运行的模组窗口中“下单设置”标签下“加载参数”部分中的“交易合约”下进行设置,点击“另外指定”,选择指定下单的合约即可;对于新建的模组,可在第三步设置——“加载参数”中进行设置方法同样以“另外指定”形式。
(二十)如何进行多品种的程序化交易
程序化交易功能支持同时进行多品种程序化交易
方法:程序化模组窗口中点击“启动”菜单,选择“新建模组”按照上述方法启动其他程序化交易。
(二十一)如何在程序化交易窗口中使用指标分析
在程序化运行模组进行程序化交易的时候,可以选择分析指标辅助分析。
方法:,鼠标右键单击程序化模组窗口的K线图,选择多种分析指标。
(二十二)如何解决指令忽闪&&&&&&
1、设置信号确认时间
当信号出现后并持续一定时间后再发出委托,以此避免价格变化过快或者突发的价格变化导致的信号忽闪。
方法:在程序化运行模组窗口“加载参数”标签下的“信号确认”中进行设置
2、&“一直等到该根K线走完”:选择此设置后,若当前K线满足触发条件,需等K线走完即第二根K线开盘价出现时才发出交易指令。
(二十三)如何保存、载入设置好的程序化模组
为了避免每次加载都重复设置,软件可以保存当前设置好多个品种的程序化模组组合,方便下次加载时快速的调用。
保存的方法:在程序化模组窗口中新建模组后,系统会自动保存。
载入的方法:与保存相类似,点击“启动”“载入运行模组”,选择之前保存的程序化模组点击“打开”即可。如图:
(二十四)如何使用算法交易过程监控&
操作方法:点击软件菜单栏中的“交易” “本机下单记录”,可以得到详细的系统自动交易的全部过程。同时可以通过取消算法交易或者取消以后批次的算法交易终止程序的运行。如下图所示
(二十五)指令间连线的作用?
指令间连线
如果您想运用自编的交易模型交易,为了能够清楚的的显示交易指令信号。可以选择该项。
方法:鼠标右键单击程序化窗口K线图,选择“指令间连线显示”。
(二十五)如何使用程序化数据管理?
1、何时需要使用“程序化数据管理”?
当您需要对程序化交易所用数据进行“检查”、“补充”或“修改”时,便可点击“程序化交易”——“程序化数据管理”。(如图1-1、1-2)
2、如何检查“程序化数据”?
在“合约列表”中选择需要检查的内容(已做过预览或创建过模组的合约才能再“合约列表”中找到),点击“载入”,相关K线图表便会显示出来。(如图2-1)
在图表上滑动鼠标,便可在左侧显示出当根K线具体开、收、高、低价格及成交量、持仓量等信息。
在图表上点住鼠标左键不放,便可左右拖动图表进行左右平移。也可点“程序化数据管理”窗口右上方“”及“”进行前后翻页。(如图2-2)
1分钟周期,翻页一次可向前或向后跳转1天数据;
30分钟及1小时周期,翻页一次可向前或向后跳转1个月数据;
日、周及月线周期,翻页一次可向前或向后跳转1年数据;
在“程序化数据管理“窗口右上方选定所需要的日期后,点击”跳转“可直接跳转至所需要日期的K线图表。
3、如何补充“程序化数据”?
当您所需要的数据超出了现有数据的时间范围时,可以点击“补数据”从服务器申请更多的K线数据。(如图3-1)
4、如何修改“程序化数据”?
当您发现现有K线数据存在错误时,可以点击“补数据”,在其中选择“刷新当屏数据”——“申请”,这样会从服务器重新下载当前屏幕所显示K线数据,解决错误数据问题。(如图4-1)
当您认为某根K线的开、收、高、低价格及成交量、持仓量等信息需要手动修改时,可以用鼠标左键点击该K线,此时左侧可以在窗口左侧对相关数据进行手工修改,点击“修改”,K线图表便会按照新修改数据重新显示。(如图4-2)
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:116116次
积分:2026
积分:2026
排名:第15142名
原创:72篇
转载:121篇
评论:20条
阅读:9137
(14)(18)(7)(4)(3)(7)(12)(2)(4)(7)(1)(8)(8)(1)(1)(1)(1)(1)(2)(1)(5)(1)(3)(4)(4)(12)(3)(1)(2)(7)(7)(4)(3)(1)(3)(11)(2)(10)(6)}

我要回帖

更多关于 文华财经 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信