文华赢智程序化交易(WH3)编程函数
赢智程序化交易系统使用说明书 2.
赢智程序化交易系统使用说明书目录目录 (2一、登录软件 (7(一如何登录软件 (7(二如何选择服务器 (9(三如何保存交易密码 (9(四如何使用动态备份 (10(五如何矫正本机时间与服务器时间一致 (10 二、常用窗口基本操作 (11(一、自选报价列表 (11(二、分时走势图 (15(三、K线图窗口 (19(四当日分钟K线 (34(五、OX图 (34(六、价量运行趋势图 (37(七、三线反转图 (38(八、TICK闪电图 (40(九、盘口报价 (40(十、逐笔成交表 (42(十一、大单成交表 (43(十二、分笔统计 (44(十三、分价统计 (45(十四、分笔+分价 (46(十五、新闻 (46三、行情模块使用案例 (53(一如何设置起始页面 (53(二如何调入行情报价页面 (53(三如何创建页面 (58(四如何保存页面 (60(五如何调出页面 (61(六如何还原修改后的页面 (62(七如何设置书签并将个人重要页面设置在书签上,方便调用 (64 (八如何修改报价窗口回撤在分时——K线图循环切换 (67(九如何保存扩展分析模板 (67(十如何自定义快捷访问工具条 (69(十一鼠标滚轴操作如何切换合约 (70(十二如何区分系统页面和普通页面 (71(十三如何利用我的指标区保存多组指标参数 (71(十四如何进行指标设置周期化 (73(十五如何设置坐标显示方式 (73(十六如何在数据出现问题时重新申请数据 (74(十七如何申请更多数据及设置K线显示密度 (75(十八如何设置报价列表排序 (77(十九如何设置盘口报价买卖横竖排列 (77(二十如何设定报价红绿定义 (78(二十一如何设定成交明细红绿定义 (78(二十二如何显示小报价框 (79(二十三如何显示持仓成本线 (79(二十四如何调出信息灯塔 (80(二十五如何显示技术分析图上的十字光标 (81(二十六如何设置今天昨天分割线 (81(二十七如何设置K线形状 (82(二十八如何调整报价页面的字体及字体大小 (82(二十九如何进行颜色字体风格的设置 (83(三十如何进行合约代码、指令快捷键、分析周期快捷键的设置 (84 (三十一如何进行涨跌停定义的设置 (85(三十二如何设置页面保存机制 (85(三十三如何导出个性化设置,如何导出交易日志记录文件 (86四、交易模块使用案例 (87(一、登陆与退出交易系统 (871、如何调取下单系统 (872、如何登陆下单系统 (883、如何退出下单系统 (894、如何调取下单板 (89(二、交易部分 (90竖式下单 (90(1如何开仓 (90(2如何平仓(指定价平仓、对价平仓、超价平仓、停板价平仓、清仓 (91 (3如何撤单 (93(4如何使用追价功能 (94(5如何使用定时平仓 (94(6如何使用预埋单 (95(7如何使用条件单 (96(8如何使用锁仓、移仓、反手操作。
文华财经WH策略函数列表
3非过滤模型持仓不为0时:BKPRICE2返回交易合约理论持仓的开仓均价.
4非过滤模型持仓为0时:BKPRICE2返回值为0.
3、模组运行,盘中出现BK信号,BKPRICE2取值为交易合约模组多头持仓的开仓均价.
4、该函数在模组运行中读取的是模组实际持仓的开仓均价,非理论持仓.
2设置信号执行方式为K线走完复核例如:在模型中写入CHECKSIG_SECBK,'A',N,'D',0;
BARSBK返回值为上一个BK信号距离当前的K线根数包含当前K线
例:
1、BARSBK>10,SP;
史信号计算中,出现SK信号当根K线,BARSSK返回空值
b.加载运行过程中,SK信号当根K线,信号固定后BARSSK返回空值
3、信号执行方式选择不进行信号复核例如:在模型中写入MULTSIG_SEC或MULTSIG_MIN;,BKBPK信号的当根K线返回从信号发出到K线走完时行情的最高价;BK
BPK信号之后的K线返回信号发出以来行情的最高价.
例:
C>O,BK;
C>BKPRICE&&C<bkhigh-5,sp;
AUTOFILTER;
4、当模组自动初始化时,BKPRICE返回的为上一次买开信号时数据合约行情的最新价;手动初始化,BKPRICE返回为初始化弹出框中填入的持仓价格.
例:
BKPRICE-CLOSE>60 && BKPRICE>0 && BKVOL>0, SP;
史回测:BKPRICE1返回信号发出时的交易合约行情最新价
b.模组运行:BKPRICE1返回信号发出时的交易合约行情最新价
赢智程序化交易培训
赢智“麦语言” MY language
指标 指能够绘出图线但不发交易指令的公式。指标是一个技术分析范畴的概念。 交易指令 指交易模型自动发出的下单委托指令,可以不经过投资者确认直接下单,也可以等待投资者回车确认再下单。交易指令在K线图上以不同颜色和形状的箭头来代表。交易指令是一个程序化交易范畴的概念。 交易模型 指能够发出BK、SP等交易指令,模型还包含下单方向,交易手数,止盈止损等与交易、资金使用相关的参数设置。交易模型是一个交易范畴的概念。
模型
将指标转化为模型:
运作模型:
一、模型的基本结构和跨指标模型的编写
1、模型编写的语法与操作符
MY language 编写语法
1
MY language 操作符
2
MY language 编写语法:
定义变量名称
半角输入法的全英大写状态;
每个语句应该以分号结束;
命名
参数
MY language 操作符
理解以下名词:
KDJ指标源码:
单击此处添加大标题内容
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;
指标
用指标监测行情: K线上穿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,发出买平交易指令 AUTOFILTER;
文华赢智程序化交易系统
模型源码 命名
参数
Mytrader模型回顾
MA5:=MA(C,5); MA10:=MA(C,10); CROSS(MA5,MA10),BK; CROSS(MA10,MA5),SP;
定义变量 指令 条件
Wh3模型加仓
MA5:=MA(C,5); MA10:=MA(C,10); CROSS(MA5,MA10)&&BUYVOL=0,BK(5); EVERY(MA5>MA10,3)&&BUYVOL>0,BK(1); CROSS(MA10,MA5),SP(BUYVOL);
No
No
Image Image
赢智程序化交易系统
No Image
No Image
软件学习途径
No Image
祝交易顺利
谢谢
画线下单—对行情超快速反馈交易
画画线线开开仓仓
上 下穿穿价 买突突格 入破破上 开箱箱破 仓体体箱 成卖买体 功出入
买卖线触发规则: 画于最新价上方,最新价上穿即触发, 画于最新价下方,最新价下穿即触发。
画线止损止赢
止损止盈触发规则: 多单:下穿触发止损,上穿触发止盈 空单:上穿触发止损,1、下计穿划触突发破前止期盈高点
基本操作简介
专业的程序化交易平台
1.竖式下单
2.横式下单
1、开仓、平仓 逻辑清晰,点按
钮即可完成 2、买平、卖平 智能判断,不必 再为此浪费时间
注:止损单设置保存在本地电脑,电脑断网、断电、软件没有正常开启都会导致止损单无法触发
横式下单
1
2 3
1、开仓、平仓 逻辑清晰,点按
钮即可完成 2、买平、卖平 智能判断,不必 再为此浪费时间
赢智程序化交易系统使用说明书
赢智程序化交易系统使用说明书目录一、常用窗口基本操作在文华赢智程序化交易系统行情列表和技术分析图表窗口,鼠标右键单击分析窗口-插入内容,有14个可选操作窗口,各窗口具体操作说明如下:(一)、自选报价列表1、设置自选合约方法: 右键菜单中选入合约鼠标右键单击自选报价列表窗口——》“选入合约”,在弹出的窗口中选择市场和品种后确定即可。
2、调整报价顺序鼠标右键单击自选报价列表窗口,选择报价顺序调整,选中合约后,鼠标左键单击上移或者下移确定位置后,点击确定即可。
3、抬头格式(域)的调整第一步:鼠标右键单击自选报价列表窗口,选择抬头格式(域)调整。
第二步:在弹出的窗口中进行调整抬头格式的操作。
第三步:保存抬头模板。
可以将一些常用格式域格式保存下来,换至其他页面时可直接调用该种格式。
通过选择报价界面右键菜单中的“保存/调用抬头模板”对自定义的抬头格式域进行保存和调用4、实现多股同列鼠标右键单击自选报价列表窗口,选择多股同列,可实现分时图多股同列;选中一个合约点击多周期同列,可以实现该合约不同周期K线图同列。
5、设置价格预警鼠标右键单击自选报价列表窗口,在弹出的菜单中选择设置价格预警,在价格预警设置窗口中对合约进行警告设置。
(二)、分时走势图分时走势图也叫做即时走势图,它是把市场上的交易信息实时地用曲线在坐标上加以显示的技术图形。
坐标的横轴是交易时间,纵轴是价格。
图中:白色曲线表示该合约的分时成交价格,默认快照频率为1分钟。
黄色曲线表示均价,用价格与成交量的加权计算。
1、查看该合约的涨跌停板位置。
鼠标右键单击分时图窗口,选中“查看停板位置”,即途中出现的小黄线。
注:该功能需在交易系统已登录的前提下使用2、叠加其他合约鼠标右键单击分时图窗口,选中“叠加其他合约”。
选择合约及显示的类型。
注:如需取消叠加可按“鼠标右键单击分时图窗口——叠加其他合约——取消叠加”这一步骤进行合约叠加的取消3、使用画线功能鼠标右键单击分时图窗口,选中“画线”,可以在图表中使用画线分析。
文华“赢智程序化交易系统”培训XXXX0715
多维的效果测试功能
多维的效果测试功能
策略模型与下单组件之间的关系
下单组件——有效控制交易细节
C语言格式, 编写更自由
下单组件包括的函数
下单组件举例
程序化自动交易运行组群
多线程计算——组群后台运行
程序化日内高频交易系统
日内高频收益测算及交易回放
赢智程序化交易系统
软件学习途径
VOLMARGIN 计算当前的持仓保证金。
FEE 返回当前合约的手续费。 (用户启动模组时设置的)
Wh3模型资金管理
MA5:=MA(C,5); MA10:=MA(C,10); N:=(MONEY*0.3)/(C*MARGIN*5); CROSS(MA5,MA10)&&BUYVOL=0,BK(N); EVERY(MA5>MA10,3)&&BUYVOL>0,BK(1); CROSS(MA10,MA5),SP(BUYVOL);
支持账号 群组设置 支持批量 止损功能
6.专有多账号下单界面——跟盘炒单
基本操作简介 多样化下单界面风格
专业的程序化交易平台
MY language 编写格式:
命名部分: 支持汉字、字母、数字、划线格式命名,长度控制在31字符 内。 命名不能和已存在的公式名称重复;
参数部分: 可以设置六个参数, 首先是参数名称,然后是参数的最小值,最大值,最后是参 数的默认值。 在定义参数时要注意的是参数名称不可以重复,12个字符内
祝交易顺利
谢谢
策略模型组件——取消过滤机制
加仓减仓——有效利用可用资金
资金管理——有效控制开仓头寸
MONEY 返回虚拟资金余额。 MONEYTOT 返回当前虚拟总资金。
文华财经WH策略函数列表
2、计算方向移动:DIRECTION:=ABS(CLOSE-REF(CLOSE,9));
3、计算波动性:波动性是市场噪音的总数量,计算了时间段内价格变化的总和。
VOLATILITY:=SUM(ABS((CLOSE-REF(CLOSE,1))),9);
CONSTANT是平滑系数,用麦语言函数可以表示为:
CONSTANT:=SQUARE((ABS((CLOSE-REF(CLOSE,N))/(SUM(ABS((CLOSE-REF(CLOSE,1))),N))))*(2/(P+1)-2/(Q+1))+2/(Q+1));
算法举例:计算C在9周期的,快线频率参数为2,慢线频率参数为30的考夫曼均值。
AMACLOSE:REF(EMA(C,9),1)+CONSTANT*(C-REF(EMA(C,9),1));
ALIGN
设置文字对齐方式(左中右)。
用法:DRAWTEXT(COND,PRICE,TEXT),ALIGNX;
COND条件满足时,在PRICE的位置,标注TEXT,文字按照ALIGNX写入的方式对齐。ALIGN0,ALIGN1,ALIGN2,分别表示左对齐,居中对齐,右对齐。
2、该函数需要有五档行情授权才能取到有效值,否则返回空值。
例:
AA:ASK4;//加载到有五档授权的TICK图中,定义AA为该笔TICK的卖四价;
ASK5
ASK5取得TICK图该笔TICK的卖五价。
注:
1、该函数必须在TICK图中使用,在K线图上返回空值。
2、该函数需要有五档行情授权才能取到有效值,否则返回空值。
程序化交易高级教程文华
目录
第一章 如何优化你的交易策略...................................................................................................... 1 1.1 PANZHENG 函数,减少盘整行情中的交易次数............................................................. 1 1.2 CHECKSIG 函数,实现更具有优势进场价格................................................................. 7 1.3 MULTSIG 函数,在一根 k 线上灵活进出..................................................................... 12 1.4 TRADE_OTHER 函数,在指数交易中的应用................................................................. 17 1.5 拓展思路—结合盘口数据研发策略............................................................................ 27
5
(增加阅读软件的页面放大率可查看清晰图片) 加入 PANZHENG 函数后,代码如下 MA10:=MA(C,10); C>MA10&&PANZHENG=0,BPK;//非盘整行情中,价格大于 10 周期均线,做多 C<MA10 &&PANZHENG=0,SPK;//非盘整行情中,价格小于 10 周期均线,做空 AUTOFILTER; 如下图所示 胜率提升 14% 盈利率提升 37% 最大回撤减少 45% 年化盈利率提升 21% 单次交易盈利能力提升 40% 减少盘整行情中的交易次数后,不仅仅盈利能力得到提升,模型的稳定性同时也得到大幅度提升, 大大提高了模型的可执行性
3、文华财经程序化交易编程函数
得到 X 在 N 个周期内的移动平均,M 为权重(M 为常数)。 计算方法:SMA(N)=SMA(N-1)*(N-M)/N+X(N)*M/N。
TROUGH(X,P,M,N)
取得 ZIGZAG 前 M 个波谷的值。其中 X 为数据,P 为转折值(如果 N 为 1,这个值为百分比数,否则为价位差值绝对值),M 为大于等于 1 的整数。『未来函数』 例:TROUGH(LOW,10,1,1); 表示最低价的 10%的之字转向的上一个波谷的数值。 TROUGH (MA(LOW,34),100,1,0); 表示 34 个周期内最低价均线的 100 个价位的之字转向的上一个波谷的 数值。
PEAKBARS(X,P,M,N)
取得 ZIGZAG 前 M 个波峰到当前周期的周期数。其中 X 为数据,P 为转 折值(如果 N 为 1,这个值为百分比数,否则为价位差值绝对值),M 为大于等于 1 的整数。『未来函数』 例:PEAKBARS(HIGH,10,1,1);表示最高价的 10%的之字转向的上一个波 峰到当前的周期数。 PEAKBARS(MA(HIGH,34),100,1,0);表示 34 个周期内最高价均线的 100 个 价位的之字转向的上一个波峰到当前的周期数。
以上内容表达 MA5、MA10、MA30 三者中最大的数值。
3、编辑平台支持的函数 ⑴引用数据
AVPRICE
SETTLE
引用均价(在盘后对于国内三个期货交易所指结算 价)
引用昨天的结算价(只显示当天时间的上日结算 价。)
文华财经程序化交易初级教程
注:此教程适用于赢智Wh8和乐期Wh4。
目录第一章公式系统介绍 (1)第二章模型编写语法与规则 (4)2.1 数据引用 (4)2.2 模型编写语法 (8)2.3 模型基本结构 (14)第三章一般模型编写示例 (18)3.1 条件描述 (18)3.2 K线形态描述 (20)3.3 技术指标范例 (24)3.4 价量走势编写范例 (29)3.5 盘中动态编写范例 (31)3.6 趋势类模型编写范例 (32)3.7 振荡类模型编写范例 (36)3.8 公式条件单范例 (37)3.9 常见模型公式编写问题 (40)第四章复杂模型编写示例 (42)4.1 跨指标模型 (42)4.2 跨周期模型 (44)4.3 分组指令 (47)4.4 日内模型 (48)4.5 TICK模型 (51)4.6 止损模型 (54)第五章模型的回测 (56)5.1模型回测 (56)5.2 参数优化 (60)5.3 日志检索 (66)第六章如何优化你的策略 (67)6.1 PANZHENG函数, 减少盘整行情中的交易次数 (67)6.2 TRADE_OTHER函数,在指数交易中的应用 (73)6.3 CHECKSIG函数,实现更具有优势进场价格 (73)6.4 MULTSIG函数,在一根k线上灵活进出 (73)第七章后台程序化 (73)7.1 后台程序化工作机理 (74)7.2 页面盒子 (74)7.3 运行模组 (77)7.4 盘口模型运行池 (77)第八章多账号下单 (77)第九章套利交易 (81)第十章软件的一些基本操作 (91)附录1:麦语言趋势模型函数列表 (100)附录2:交易测评报告术语详解 (222)附录3:图表分析各图表项说明 (225)第一章公式系统介绍软件的公式系统是一套功能强大、使用方便的计算机描述系统。
可供引用的函数近500个。
可以说其它软件能做的,该软件都能做到,而且能做得更好,更贴近实盘。
用户可以通过期货交易所和证券交易所发送的实时行情数据和软件保存的历史数据按照简单、复杂的运算法则进行分析、筛选、系统测试和自动交易,在软件中提供了用于公式编写的编辑器:交易系统公式编辑器交易系统旨在建议一套完整的交易规则体系,通过该编辑器对各个相关的交易环节,包括买入的切入、卖出、止损以及整体的交易性能检验等等做出定量的规定,帮助投资者建立一套属于自己的买卖规则和理论。
文华程序交易编程指南
在15分钟图内,突破开盘后15分钟高低点的交易系统HH:=VALUEWHEN(TIME=0900,HIGH);//每天第一根15分钟K线的高点LL:=VALUEWHEN(TIME=0900,LOW); //每天第一根15分钟K线的低点CROSS(CLOSE,HH),BK; //只要价格上穿15分钟的高点,买进开仓;CROSS(LL,CLOSE),SK; //只要价格下穿15分钟的低点,卖出开仓;CROSS(CLOSE,HH)||CROSS(TIME,1444),BP; //只要价格上穿15分钟的高点,买入平仓;或时间在14:44之后平仓CROSS(LL,CLOSE)||CROSS(TIME,1444),SP; //只要价格下穿15分钟的低点,卖出平仓;或时间在14:44之后平仓在3分钟图内,突破开盘后15分钟的高低点的交易系统首先先建立一个指标就是HL.fml,然后用引用的方法#IMPORT[,MIN15,HL] AS VARHLHH1:=VARHL.HH;LL1:=VARHL.LL;CROSS(CLOSE,HH1),BK;CROSS(LL1,CLOSE),SK;CROSS(CLOSE,HH1)||CROSS(TIME,1456),BP;CROSS(LL1,CLOSE)||CROSS(TIME,1456),SP;一天只交易一次的编写方法NN:=BARSLAST(DATE<>REF(DATE,1))+1;买入开仓条件&&REF(EXIST(BB,NN),1)<1,BK;BS,SP;卖出开仓条件&&REF(EXIST(BB,NN)<1,1),SK;SS,BP;开盘交易,收盘退出DATE<>REF(DATE,1),BK;TIME>=1455,SP;周间日模型(固定金额止损)NN:=BARSLAST(DATE<>REF(DATE,1))+1;#IMPORT[,MIN15,HL] AS VARHLHH1:=VARHL.HH;LL1:=VARHL.LL;COB:=(WEEKDAY=1);CS:=(WEEKDAY=2||WEEKDAY=4);COB&&REF(EXIST(COB,NN),1)<1&&DATE<>REF(DATE,1),BK;CS&&REF(EXIST(CS,NN),1)<1&&DATE<>REF(DATE,1),SK;CROSS(TIME,1456)||CROSS(CLOSE,VALUEWHEN(TIME=0900,OPEN)+22),BP; CROSS(VALUEWHEN(TIME=0900,OPEN)-22,CLOSE)||CROSS(TIME,1456),SP;低点判断的程序编写方法RIBAO1:=(REF(LOW,1)>REF(LOW,2)&&REF(HIGH,1)<REF(HIGH,2))||(LOW>REF(LO W,1)&&HIGH<REF(HIGH,1));前一个K线低点高于前两个K线低点,同时前一个K线高点低于前两个K线高点(前一根K线被前第二个K线所包含)WAIBAO1:=(REF(LOW,1)<REF(LOW,2)&&REF(HIGH,1)>REF(HIGH,2))||(LOW<REF(L OW,1)&&HIGH>REF(HIGH,1)); 前第二根K线被前第一个K线所包含;LL:VALUEWHEN(NOT(WAIBAO1)&&NOT(RIBAO1)&&LOW>REF(LOW,1)&&REF(LOW,2)>RE F(LOW,1),REF(LOW,1));既非内孕线,也非外孕线,同时已经出现低点拐点,作为最近低点高点判断的程序编写方法RIBAO2:=(REF(LOW,1)>REF(LOW,2)&&REF(HIGH,1)<REF(HIGH,2))||(LOW>REF(LO W,1)&&HIGH<REF(HIGH,1));前一根K线被前第二个K线所包含)WAIBAO2:=(REF(LOW,1)<REF(LOW,2)&&REF(HIGH,1)>REF(HIGH,2))||(LOW<REF(L OW,1)&&HIGH>REF(HIGH,1)); 前第二根K线被前第一个K线所包含;HH:VALUEWHEN(NOT(WAIBAO2)&&NOT(RIBAO2)&&H<REF(H,1)&&REF(H,2)<REF(H,1) ,REF(H,1));既非内孕线,也非外孕线,同时已经出现高点拐点,作为最近高点利润回撤的处理1)系统发出平仓信号是需要平仓条件,没有条件系统无法发信号,2)获利回吐可以使用止赢止损编写,例如:当最高价与开仓收盘价盈利达到20—50点,回撤70%平仓。
文华赢智程序化交易(WH3)编程函数手册
赢智(WH3)算法交易编程函数手册一、引用数据某合约当前价格。
Price(Code)返回合约Code的当前价格,Code为某合约的合约代码例:V AR price;//定义一个变量priceprice=Price("m1009"); //price的值为合约m1009的当前价格某合约当前均价。
AvPrice(Code) 返回合约Code的当前均价,Code为某合约的合约代码例:V AR avprice;//定义一个变量avpriceavprice=AvPrice("m1009"); //price的值为合约m1009的当前均价某合约当前最高价。
High(Code)返回合约Code的当前最高价,Code为某合约的合约代码例:V AR high;//定义一个变量highhigh=High("m1009"); //high的值为合约m1009的当前最高价某合约当前最低价。
Low(Code)返回合约Code的当前最低价,Code为某合约的合约代码例:V AR low;//定义一个变量lowlow=Low("m1009"); //low的值为合约m1009的当前最低价某合约的买卖盘报价。
Offers(Code,strContent) 返回某合约的买卖盘报价Code为某合约的合约代码(字符串), strContent为所要取得内容,可选以下内容"bid1~5","ask1~5","bidvol1~5","askvol1~5",分别表示买1-5 卖1-5 买1量- 5量卖1量-5量。
例:V AR bid1;bid1=Offers("m1009","bid1");//bid1为豆粕1009的当前买1价某合约最小变动价位。
文华财经WH策略函数列表
CONSTANT:=SQUARE((ABS((CLOSE-REF(CLOSE,N))/(SUM(ABS((CLOSE-REF(CLOSE,1))),N))))*(2/(P+1)-2/(Q+1))+2/(Q+1));
算法举例:计算C在9周期的,快线频率参数为2,慢线频率参数为30的考夫曼均值。
出现SP/BP/CLOSEOUT等平仓指令,下一个可以是BK/SK/SPK/BPK指令任一个;
反手指令SPK和BPK交叉出现。
例:
CLOSE>OPEN,BK;
CLOSE<open,sp;
AUTOFILTER; //启用信号过滤机制</open,sp;
AVEDEV
AVEDEV(X,N):返回X在N周期内的平均绝对偏差。
例1:
ASIN(-1);//求-1的反正弦值;
例2:
ASIN(1);//求1的反正弦值;
ASK1
ASK1 取得TICK图该笔TICK的卖一价。
注:
1、该函数必须在TICK图中使用,在K线图上返回空值。
2、该函数需要有五档行情授权才能取到有效值,否则返回空值。
例:
AA:ASK1;//加载到有五档授权的TICK图中,定义AA为该笔TICK的卖一价;
例:
VV:ASK5VOL;//加载到有五档授权的TICK图中,定义VV为该笔TICK的卖五量;
ASKBIGCOUNT
ASKBIGCOUNT 取得TICK图所定义数据区主动卖大单次数的和。
注:
1、使用该函数前,必须先调用DEF_TICKDATA函数定义TICK数据区。
2、使用该函数前,必须使用SETBIGVOL函数定义大单阀值,否则该函数返回0。
WH3程序化讲解
REF(X,N) REFX(X,N) MA( 在N个周期后的值 求X在N周期内的简单移动平均。 求X在N周期内的指数加权平均.
定位K线->取值类函数 均线类函数
计算方法:EMA(X,N)=[2*X+(N-1)*EMA(X,(N-1))]/(N+1) 其中EMA(X,(N-1))为第(N-1)天的EMA值 DMA(X,N) 求X得动态移动平均
状态类函数
EXIST(X,N)
N个周期中存在满足X条件的K线
5周期高点(低点)
HH:HHV(H,5); LL:LLV(L,5); H1:REF(HH,1); L1:REF(LL,1);
一个周期前的五周期 高点(低点)
最近5个周期中存在最高价突破其前5周期高点 HH:HHV(H,5); H1:REF(HH,1); A1:=EXIST(CROSS(H,H1),5); 连续5个周期中满足最新价跌破其前5周期低点 LL:LLV(L,5); L1:REF(LL,1); B1:=EVERY(CROSS(L1,C),5);
MA5:=MA(C,5); MA10:=MA(C,10); MA20:=MA(C,20); CROSS(MA5,MA10),BK; CROSS(MA10,MA5),SP; CROSS(MA10,MA5),SK; CROSS(MA5,MA10),BP; AUTOFILTER;
练习
收盘价上穿5周期均线并且K线收阳,或者收盘价突破前10 周期高点,买平开,收盘价下穿10周期均线并且K线收阴 ,或者最新价跌破前10周期最低价,卖平开。 MA5:=MA(C,5); MA10:=MA(C,10); H1:=REF(HHV(H,10),1); L1:=REF(LLV(L,10),1); (CROSS(C,MA5)&&ISUP)||CROSS(C,H1),BPK; (CROSS(MA10,C)&&ISDOWN)||CROSS(L1,C),SPK; AUTOFILTER;
程序化交易__文华专业教程
能力扩展
摆脱繁重的盯盘 摆脱大量计算 可以交易更多的品种
当盘中价格上下波动,导致交易信号反复时,如何解决?
在Mytrader一键通2009中可以使用“全自动交易信号消失以后,自 动恢复持仓”解决指令忽闪的问题
在全自动状态下,如果指令消失,系统会自动恢复到最近的一次交易指令的状态和手数 例:使用模型自动交易沪铜0811在2008年8月22日发出卖出开仓信号,之后在2008年9月4号 发出买开并平空指令, 系统会自动将8月22日的持仓平掉并开多仓,此时如果买平开指令消失, 系统会按照8月22日的开仓方向及手数重新开空仓,并平掉多单,这样既保住了8月22日到9 月4日之间的盈利又保持了原来的趋势继续盈利.
指标 编写结构
定义需要的 变量
变量名称 :=或者: 解释 分号结尾
标注文字 画图形
DRAWTEXT 其他绘图函数
交易模型 编写结构
定义需要的 变量
变量名称 :=或者: 解释 分号结尾
形成交易条 件和指令
交易条件 逗号 BK SP SK BP 分号结尾
注意事项: 1.模型中必须使用‘:=’定义变量名称。不允许只使用‘:’。 2.容易引起歧义的条件,最好用括号把完整条件括起来在和其他条件进行对比。 3.函数不允许作为变量名称 4.结尾一定要用分号 5.不要忘记写函数,例如(CLOSE,5)是错误的 6.涉及到引用系统指标的时候,一定要记得加等号去除画线;如果有参数一定要
MA(X,N) 求X在N周期内的简单移动平均。 计算方法:MA=(A1+A2+A3+A4+A5)/5 求A在5个周期内的 简单移动平均
MA5:MA(CLOSE,5); MA10:MA(CLOSE,10),COLORYELLOW; MA30:MA(CLOSE,30),COLORGREEN; MA60:MA(CLOSE,60),COLORMAGENTA;
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
合约当前价格Price(code)返回合约code的当前价格,code为合约的合约的代码例:VAR price;//定义一个变量pricePrice=price(“m1009”);//price的值为合约m1009的当前均价某合约当前均价AvPrice(code)返回合约code的当前均价,code为合约的合约代码例:VAR Avprice 定义一个变量avpriceAvprice=avprice(“m1009”);price的值为合约m1009的当前均价某合约的当前最高价High(code)返回合约code的当前最高价,code为某合约的合约代码例:Var high;High=High(“m1009”);high值为合约当前m1009的当前最高价某合约的当前最低价Low(code)返回合约code的当前最低价,code为某合约的合约代码例:Var low;Low=low(“m1009”);low值为合约m1009的当前最低价某合约的买卖盘报价Offers(code,strContent)返回某合约的买卖盘报价code为某合约的合约代码(字符串) strContent 为所要取得内容,可选以下内容“bid1-5”,”ask1-5”,”bidvol1-5”,”askvol1-5”,分别表示买1-5,卖1-5,买1量-5量,卖1量-5量。
例:VAR bid1;Bid1=Offers(“m1009”,”bid1”);bid1为豆粕1009的当前买1价某合约最小变动价位Minprice(code)返回合约code的最小变动价位,code为某合约的合约代码例:VAR minprice;定义一个变量minpriceMinprice=minprice(“m1009”);minprice的值为合约m1009的最小变动价位二、指令状态模型某合约多头持仓。
F_BuyPosition()返回模型的多头持仓例:Var fmlBBo1;fmlBBo1=F_BuyPosition(); 定义一个变量fmlBVol,FmlBVol为模型的多头持仓。
模型某合约的空头持仓F_SellPosition()返回模型的空头持仓例:VAR fMLSVon1;FmlSVol=F_ellPosition();定义一个变量fmlSVol,fmlSVol为模型的空头持仓。
模型某合约多头持仓成本价。
F_BuyAvgPrice()返回模型多头持仓成本价例:VAR price;Price=F_BuyAvgPrice();定义一个变量price,price的值为模型多头持仓成本价模型某合约空头持仓成本价。
F_SellAvgPrice()返回模型空头持仓成本价例:VAR price;Price=F_SellAvgPrice();定义一个变量price,price的值为模型空头持仓成本价取得当前模型的合约编码。
F_DealCode()返回模型所加载K图表的合约的合约编码(字符串)例:VAR DealCode;DealCode=F_DealCode();变量DealCode的内容为模型当前合约的合约编码。
取得当前模型的周期。
F_Period();Period=F_Period(); 变量period的内容为当前模型所使用的周期。
取得已经初始化的多头持仓。
F_InitBuyVol() 返回模型初始化的多头持仓(整数)。
例:VAR initBuyVol;定义一个变量记录初始多头持仓initBuyVol=F_InitBuyVol();取出初始多头持仓赋值给initBuyVol取得已经初始化的空头持仓。
F_initSellVol 返回模型初始化的空头持仓(整数)。
例:VAR initSellVol;定义一个变量记录初始空头持仓initSellVol=F_InitSellVol(); 取出初始空头持仓赋值给initSellVol刷新当前信号。
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_SigPrice()取当前的信号发生时刻的价格。
例:IF(F_SigPrice()>3500) 如果信号发生的价格大于3500当前信号是发出的,还是消失的F_SigValid() 返回模型信号存在两种类型之一(信号发出,信号消失),返回1表示信号发出。
返回0表示信号消失。
例:IF(F_Sig()==BPK&&F_SigVolid()==1) 如果信号是BPK且不是信号消失状态当前信号的发出时间F_SigTime() 返回当前信号的发出时间(以总秒数表示),例:IF(SamePeriod(“m1009”,”min10”,LastOrderTime(),F_SigTime())) 如果取得新信号的时间与上次交易的时间是同一个周期当前信号在模型中是第几个指令的语句F_SigPos() 如果当前信号是模型中第5个含信号的语句发出的,返回5例:IF(F_SigPos()==5) 如果当前信号是第5行发出的三、下单接口最后一次下单的时间。
LastOrderTime() 返回最后一次下单的时间,以总秒数表示例:IF(LastOrderTime()-CurrentTime())=300)如果距离上次下单时间超过5分钟查询合约所属交易所的状态。
T_IsExchangeOpen(Code) 返回合约Code所属的交易所的开闭盘状态,开盘返回1,闭盘返回0,查询失败返回-1.例:VAR Status;Status=T_IsExchangeOpen(“m1009”);Status为合约m1009所属交易所当前的开盘状态。
当Status为1时,说明该交易所开盘;当Status为0时,说明该交易所闭盘;当Status 为-1时,说明当前查询失败交易系统某合约多头持仓。
T_BuyPosition(Code) 返回交易系统中合约Code的多头持仓,Code为某合约的合约代码。
例:VAR BuyVol;BuyVol=T_BuyPosition(“m1009”);BuyVol为交易系统中合约代码为m1009的合约的多头持仓。
交易系统某合约的多头盈亏。
T_BuyProFitLoss(code) 返回交易系统合约code的多头盈亏例:VAR BuyEarn;BuyEarn=T_BuyProfitLoss(“m1009”); 定义一个变量BuyEarn,Buyearn的值为交易系统合约m1009的多头盈亏交易系统某合约的空头持仓。
T_SellPosition(Code)返回交易系统中合约Code的空头持仓,Code为某合约的合约代码。
例:VAR SellVol;SellVol=T_SellPosition(“m1009”); SVol 为交易系统中合约代码为m1009的合约的空头持仓。
交易系统某合约空头持仓成本价。
T_SellAvgPrice(code)返回交易系统合约code的空头持仓成本价,code为某合约合约代码,例:VAR SellPriceSellPrice=T_SellAvgPrice(“m1009”);定义一个变量SellPrice,SellPrice的值为交易系统合约m1009空头持仓成本价交易系统某合约的空头盈亏。
T_SellProfitLoss(code)返回交易系统合约code的空头盈亏例:VAR SellEarn;SellEarn=T_SellProfitLoss(“m1009”) 定义一个变量SellEarn,SellEarn的值为交易系统合约m1009的空头盈亏发出委托。
T_Deal(Code,bs,kp,Vol,price),发出委托。
Code(字符串):合约编码,bs(整数0,1):0买1卖,bk(整数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),返回可用资金。
Type(整数0,1)0期货1股票,返回可用资金数(小数)例:VAR margin;Margin=T_freeMargin(0); 返回当前期货账户的可用资金数权益T_Equity(Type),返回权益。
Type (整数0,1)0期货1股票,返回权益(小数)例:VAR margin;Margin=T_Equity(0); 返回当前期货账户的权益数某品种最大可开仓手数。
T_MaxOpen(Code,margin,bs),某品种最大可开仓手数。
Code(字符串):合约编码,margin(小数):保证金比例bs(整数0,1):0买1卖返回该品种在当前可用资金,当前价格下的可开仓手数(整数)例:VAR vol;Vol=T_MaxOpen(“m1009”,0.1,0); 变量vol为m1009的在保证金比例为0.1下的可开仓手数查询委托状态。
T_OrderState(OrderID)根据委托唯一标识OrderID(字符串)查委托状态,返回值含义:-1查询失败0挂单1成交2被撤单3部分成交4 其它例:IF(T_OrderState(X)=0) 如果委托X是挂单查询挂单数量T_OpenOrder(Code,Type)返回未成交委托数量,Code:交易编码,Type:0所有方向;1买开;2卖平;3卖开;4买平例:IF(LastOrderTime()-CurrentTime>=300$$T_OpenOrder(ru1009,1)>0)T_OpenOrder(“ru1009”,1) 如果距离上次下单超过5分钟,且存在买开挂单,撤掉剩余买开委托合约X的未成交委托数量委托撤掉T_DeleteOrder(OrderId)根据委托唯一标识orderID(字符串)撤单,返回0撤单发出成功,返回其它失败例:IF(T_DeleteOrder(orderID)!=0)如果撤单失败委托撤单(通过合约代码)T_DeleteOrder(Code,Tyep)委托撤单。