文华财经-半自动程序化交易使用指南101212_第1页
文华财经-半自动程序化交易使用指南101212_第2页
文华财经-半自动程序化交易使用指南101212_第3页
文华财经-半自动程序化交易使用指南101212_第4页
文华财经-半自动程序化交易使用指南101212_第5页
已阅读5页,还剩123页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PAGE128文华财经-半自动程序化交易使用指南101212程序化交易使用指南文华财经2010-11高先生办公电话q:1400493345目录一、 程序化交易基础知识 4二、 程序化交易的原理 5三、 程序化交易的启用 6㈠、一键通版本程序化交易的启用: 61、启动交易软件 62、启用交易模型(打开程序化交易窗口) 73、设置相关参数 9㈡、Webstock版本程序化交易的启用 141、启动交易软件 142、启用交易模型(打开程序化交易窗口) 143、设置相关参数 17四、 程序化交易的编写 19㈠、交易模型编写规范和一般原则 191、编辑平台支持的操作符 192、编辑平台支持的函数 20⑴引用数据 20⑵金融统计 22⑶数理统计 25⑷逻辑判断 27⑸数学运算 28⑹时间函数 30⑺绘图 303、编辑平台可以使用的常数 394、编辑平台的语法 405、编辑平台使用的交易指令 426、快速入门 43(二)、基础指标编写示范和注意事项 481、学习编写前需要明确注意的几个概念 482、如何进行基础指标的编写 48(三)、交易模型编写示范和注意事项 531、趋势类交易模型编写示范 53⑴均线类 53⑵通道类 56⑶其他类 572、振荡类交易模型编写示范 59⑴主动买与主动卖模型 59⑵ROC(变动速率)与价格趋势变动背离: 60⑶三减六日乖离模型: 603、日内交易模型编写示范 61⑴开盘价突破模型 61⑵开盘后前三十分钟最高最低价突破模型 62⑶单均线模型 624、跨合约、跨周期模型编写示范 63⑴如何将沪铜1002合约(文华码:2102)日K线的M5,M10,M25均线引用到其他合约5分钟K线图上? 63⑵跨周期均线组合模型 64⑶跨合约MACD模型 655、头寸及信号记录模型编写示范 66⑴按资金比例下单模型 66⑵资金权益模型 66⑶信号记录模型 676、LEVEL-2模型编写示范 67⑴LEVEL-2盘口模型 67⑵LEVEL-2量能模型 68⑶LEVEL-2秒周期时间模型 687、套利交易模型编写示范 698、常见编写错误 70五、 程序化交易注意事项 74㈠、效果测试的一些问题 74㈡、常见问题及解决办法 76程序化交易基础知识程序化交易是一种在计算机和网络技术的支持下,通过预先设置好交易模型,瞬间完成组合交易指令的一种新兴交易手段。

程序化交易的实质是针对单一合约的不同时间多次交易的组合,相互对冲风险实现稳定盈利。在投资实战中它不仅可以提高下单速度,而且还可以避免交易过程中情绪随机波动的影响,实现理性投资。交易模型就是交易思想的实际化,程序化交易就是致力于处理现在的交易,而不是预测未来。谁也无法明确告诉你未来会如何走,但程序化交易可以指引你现在应该怎么办。程序化交易的优点有:A、强迫交易者摆脱那些极具破坏性的交易行为,养成良好的交易习惯。B、风险和回报的定量化,同时也可以得到整个策略的风险回报比。C、程序化交易依赖于数学公式算出的技术指标,这就不需要交易者拥有非常专业的金融知识。技术分析是程序化交易的基础,让我们来复习一下技术分析的三大假设:A、价格包容反映市场一切;B、价位遵循趋势演绎推进;C、历史是会重演的程序化交易不是“ATM提款机”或者“摇钱树”,程序化交易只是一个工具,它就好比我们大家用的洗衣机一样。洗衣机工作前我们要把衣服放进去,放什么衣服进去是由我们来决定的,比方说是深色、浅色的衣服一起放啊,还是衣服、裤子一起放啊,还是内衣、外衣一起放啊等等。用什么样的洗衣粉和洗衣机也是由我们来决定的,洗衣机只是洗衣服的工具而已。衣服洗染色了,大家不能怪洗衣机吧。我觉得程序化交易也是一样,它只是一个工具,它可以提高大家的工作效率,这才是程序化交易带给大家最有用的一点。程序化交易是您思维的延续,它有一个产生、检测、修改的连续过程,所以我们才会说如果您真正的想要参与到程序化交易,您必须亲自学会编程、测试、优化等一系列技术,并熟练掌握和运用。每个人心中都有一座“交易圣杯”,这个是别人给不了您的。程序化交易的原理程序化交易原理图如下:图1客户通过程序化交易系统发出的委托指令通过一键通下单系统/金仕达/恒生远程交易系统,进入期货公司和交易所。通过程序化交易来进行下单和客户通过自助委托软件手动下单具有同等的安全性和可靠性。注意事项A、程序化交易为付费功能,使用程序化交易自动下单交易需要单独购买授权。如果您已经购买了程序化交易的授权,在程序化交易使用过程中如出现“因为您没有程序化交易的授权!盘中不会实时显示交易信号,虽然您可以对模型进行编辑和研究,单不要用于实际交易!”的提示,请您将软件关闭,重新登录一下文华软件。在重新登录时,选择网路状况良好的服务器登录,如果在重新登录后,仍出现未授权的提示,请直接与文华市场部联系查证账号授权情况。联系电话:4008113366[销售]4008113377[客服]021-510358670411-395520060755-89812890010-51652309B、使用“程序化交易”时,一定要保持文华财经行情系统、金仕达/恒生/文华mytrader自助委托程序以及程序化交易窗口均为打开状态,否则程序化交易无法工作。C、使用“程序化交易”的第一步,一定要在文华财经行情系统中点击键盘F12启动金仕达/恒生/文华mytrader自助委托程序,否则程序化交易无法工作。D、使用程序化交易下单以前,请阅读“免责声明”。E、当你离开电脑的时候,一定要把电脑锁屏,以免别人使用你的账号进行交易。程序化交易的启用㈠、一键通版本程序化交易的启用:1、启动交易软件点击程序化交易—>启动一键通下单系统F12:图2注:登录最下方的“设置第三方交易软件”以及“登录金仕达自助委托”均不能进行程序化交易交易。在弹出的界面输入交易账号与密码:图32、启用交易模型(打开程序化交易窗口)点击程序化交易-新建程序化窗口:图4在弹出的程序化交易窗口中选择交易模型,点击“加载”即可:图5交易模型每次下单的手数在程序化交易窗口右侧的“下单股数”中设置;使用的周期在程序化交易窗口的K线空白处单击右键—>分析周期,进行切换,如图6;如需更换合约,同样在程序化交易窗口的K线空白处单击右键—>品种选择:图63、设置相关参数一键通版本程序化交易中提供了强大的算法交易功能、信号确认功能和止损止盈功能,可以真正实现程序化交易半自动交易。下单方式:只显示信号:选择此项,模型满足条件发出指令后,只会在图上显示信号,不会进行下单操作。需要确认(半自动):选择此项,模型满足条件发出指令后,系统会发出提示框,提示是否下单,并有声音提示。图7半自动交易时,交易模型发出指令时弹出的提示框:图8在程序化交易窗口的右侧,点击追价下单、分批下单、超价下单后面的下拉框选择启动还是不启动即可:支持算法交易,成交更容易支持算法交易,成交更容易图9追价下单:当模型满足条件触发下单后,如果没有成交,系统会自动将挂单撤掉,重新发出委托,直到完全成交。分批下单:当模型满足条件触发下单后,系统会根据提前设置的默认分批手数将总手数分批下单,提高成交几率。超价下单:当模型满足条件触发下单后,委托价格都是以市价发出,使用超价后,系统会根据买卖方向,自动在市价基础上加减N个最小变动价位,提高成交几率。一键通版本程序化交易中提供了完美的止损和止盈功能,在程序化交易窗口右侧的止损止盈后面,点击下拉框,选择启用即可:启动止损,策略更完备启动止损,策略更完备图10信号确认时间:为避免盘中价格波动引起交易指令忽闪而导致的反复开仓,可以根据行情变化情况设置信号确认时间,可有效的过滤虚假的价格信号:信号持续时间确认,过滤虚假信息信号持续时间确认,过滤虚假信息图11使用“全自动交易信号消失以后,自动恢复持仓”功能,可有效解决因价格波动导致震仓出局:图12“全自动交易信号消失以后,自动恢复持仓”原理图:图13使用模型自动交易沪铜0811在2008年8月22日发出卖出开仓信号,之后在2008年9月4号发出买开并平空指令,系统会自动将8月22日的持仓平掉并开多仓,此时如果买平开指令消失,系统会按照8月22日的开仓方向及手数重新开空仓,并平掉多单,这样既保住了8月22日到9月4日之间的盈利又保持了原来的趋势继续盈利。注:如果程序化交易已经启动,对相关参数进行修改后,则需要重新点击“加载”,否则设置无效。㈡、Webstock版本程序化交易的启用1、启动交易软件自菜单栏中的“交易”选择“文华财经自动委托”登录金仕达/恒生交易系统:图14注:如使用恒生交易系统,在“交易”菜单栏中会出现“交易密码”,需要在登录恒生交易系统后,在“交易密码”中再次输入一遍交易密码以确认,否则程序化交易无法自动执行,此密码在同一个交易日内关闭交易软件前只需输入一次即可。2、启用交易模型(打开程序化交易窗口)图15在弹出的模型备选框中选择要使用的交易模型,点击“加载”:图16弹出程序化交易窗口:图17“按市价下单,下单手数”:模型每次下单的数量。“只进行多头交易”:选择此项设置后,模型自动过滤掉卖开和买平的交易指令,只进行多头交易。“只进行空头交易”:选择此项设置后,模型自动过滤掉买开和卖平的交易指令,只进行空头交易。“双向交易”:选择此项设置后,模型可以发出买开、卖平、卖开和买平指令,进行双向交易。“上交所平仓指令以平今仓下单”:只针对上海交易所的合约。(说明:上海交易所规定日内平仓须以“平今仓”下单)“平仓时每笔只下一手”:发出平仓指令时,模型平仓每笔只下一手。举例:如果模型下单手数是5手,选择此设置后,那么满足平仓条件时这5手平仓自动分5笔下单,每笔只下1手。“下开仓单同时埋止损单-亏

个最小变动价位自动止损”:根据触发价格,按照“亏[]个最小变动价位”自动计算止损的价格,达到止损价时提示平仓。“下开仓单同时埋止赢单-赢

个最小变动价位自动止赢”:根据触发价格,按照“赢[]个最小变动价位”自动计算止赢的价格,达到止赢价时提示平仓。更多说明:A、如果希望实现自动止盈止损,需要将交易参数设置(见‘3、设置相关参数’)中“‘价格触发自动下单’中系统自动发出每笔委托时,需要我确认”的选项打上勾,然后再重新加载交易模型。B、如果下单时已经进行过“市价下单时在市价基础上调整几个最小变动价位”的设置,那么止损/赢价是在经过几个最小变动价位调整后的价格基础上计算所得的。举例:交易模型在橡胶品种上达到开多单条件的价格为25420,止损价位设置为亏3个最小变动价位,并且设置了“市价下单时,系统在市价基础上调整2个最小变动价位”,那么当市价变为25415(25420+2*5-3*5)时,止损单就会被触发。以上内容设置完毕后,重新点击“重新加载”,提示“确认要修改改交易模型吗?”,如果确认各个选项设置无误,点击“确定”之后将程序化交易窗口最小化即可。3、设置相关参数菜单栏交易—>交易参数设置:图18图19“交易参数设置”:“默认手数”:针对“价格触发自动下单”、“画线触发自动下单”有效。“市价下单时,系统在市价基础上自动调整

个最小变动价位”:

针对所有委托类型是“市价下单”的设置都有效。举例说明:设置自动调整2个最小变动价位,以橡胶合约为例,买入时若卖盘报价18225,市价下单以18225+2*5=18235发出买入委托。卖出时若买盘报价18225,市价下单以18225-2*5=18215发出卖出委托。“反手下单时,平仓和开仓下单间的时间间隔为[]毫秒”:针对交易模型中的反手交易指令、“快捷反手”功能有效。举例说明:设置下单间的时间间隔为500毫秒,出现做多的反手交易指令时,系统会发出一笔买入平仓指令,经过500毫秒再发出一笔买入开仓指令。“启用交易直通车价格联动”:选择此项设置后,交易直通车屏幕抓价,交易直通车中的价格随实时行情一起变动。“‘交易模型自动下单’中系统自动发出每笔委托时,需要我确认”:选择此项设置后,交易模型满足下单条件时软件弹出下单提示窗口,如果客户点“下单”按钮确认,才给交易软件发出委托。选择此项时,买入对应卖盘挂单价格,卖出对应买盘挂单价格。以上三个步骤操作完毕后,程序化交易启用完毕,等待行情触发交易模型即可。程序化交易的编写㈠、交易模型编写规范和一般原则1、编辑平台支持的操作符操作符意义例+加法CLOSE+OPEN表示求收盘价及开盘价的和。-减法CLOSE-OPEN表示求收盘价及开盘价的差。*乘法CLOSE*OPEN表示求收盘价及开盘价的积。/除法CLOSE/OPEN表示求收盘价及开盘价的商。AND与(并且),也可简写为&&OR或(或者),也可简写为||>大于CLOSE>OPEN表示判断当前周期是否收阳。<小于CLOSE=OPEN表示判断当前周期是否平盘。>=大于等于<=小于等于<>不等于=等于:=只定义一个局部变量(这个变量在画图时是不画的)TMP1:=(OPEN+CLOSE)/2;

:MA(TMP1,10);

上面的公式的第一个语句定义了一个局部变量TMP1,在下面一行中引用了这个局部变量,但是要注意的是这个公式在画图的时候只画了第二条语句MA10所求出的结果。相反下面这个公式则需要画出两条线,第一条是自己定义的均价线,同时显示了均价的名称为AVP,第二条线是均价的简单移动平均线。AVP:(OPEN+CLOSE)/2;MA(AVP,10);:声明了一个变量,在画图时画出它并且按这个名字显示。2、编辑平台支持的函数⑴引用数据AVPRICE引用均价(在盘后对于国内三个期货交易所指结算价)SETTLE引用结算价(只有在日线周期盘后才能引用当日的结算价)CLOSE引用收盘价(在盘中指最新价),也可简写为CHIGH引用最高价,也可简写为H。LOW引用最低价,也可简写为L。OPEN引用开盘价,也可简写为O。OPI引用持仓量REF(X,N)引用X在N个周期前的值

例:REF(CLOSE,5);表示引用当前周期前第5个周期的收盘价REFX(X,N)引用N个周期后的数据。(N为大于等于1的整数)『未来函数』

例:REFX(CLOSE,5);表示引用自当前周期后第5个周期的收盘价VOL引用成交量,也可简写为V。GETPRICE(N)根据文华码取出某一品种的最新价。

例:GETPRICE(1209);返回文华码为1209的合约品种的最新价。PARAM

[参数名称,最小值,最大值,缺省值]在源码中定义参数。

例:PARAM[N,1,100,12]

MAN:MA(CLOSE,N);

表示参数为N,最小值为1,最大值为100,缺省值为12.#IMPORT[CODE,PERIOD,FORMULA]ASVAR(Mytrader2009和Myadvisor(赢智)支持)#IMPORT[CODE,PERIOD,FORMULA]ASVAR;

CODE文华码PERIOD周期FORMULA引用模型名

VAR

定义变量名例子:

#IMPORT[1205,MIN5,TEST]ASM1005

意思是引用[豆粕1005]五分钟图上指标[TEST.FML]的数据

使用的方法:

如当前存在一个指标TEST.FML

//TEST.FML

CL:=CLOSE;

OP:=OPEN;我想在新建的指标TEST1中引用[豆粕1005]五分钟周期上指标[TEST.FML]的数据

可以如下编写TEST1指标

//TEST1.FML

#IMPORT[1205,MIN5,TEST]ASVARTEST

DD:VARTEST.CL;

DF:VARTEST.OP;引用的约束

1.只能引用.FML文件

2.只能引用如下周期MIN1MIN3MIN5MIN10MIN15MIN30HOUR1HOUR3HOUR8DAYWEEKMONTH

3.只能短周期引用长周期比如不能日线周期上加载引用了分钟数据的指标。

4.被引用的指标中不能存在引用⑵金融统计BACKSET(X,N)若X条件成立,则将当前位置到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(X,(N-1))]/(N+1)其中EMA(X,(N-1))为第(N-1)天的EMA值EMA2(X,N)表示求X在N周期内的加权平均。(线性加权)计算方法:EMA2(X,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,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)取得ZIGZAG前M个波峰的值。其中X为数据,P为转折值(如果N为1,这个值为百分比数,否则为价位差值绝对值),M为大于等于1的整数。『未来函数』

例:PEAK(HIGH,10,1,1);表示最高价的10%的之字转向的上一个波峰的数值;PEAK(MA(HIGH,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个价位的之字转向的上一个波峰到当前的周期数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个价位的之字转向的上一个波谷的数值TROUGHBARS(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个价位的之字转向的上一个波谷到当前的周期数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/NSUM(X,N)得到X在N周期内的总和,如果N=0,则从第一个有效周期开始算起。

例:SUM(VOL,10);表示统计10周期内的成交量总和SUMBARS(X,A)得到X向前累加直到大于A时的周期数。TRMA(X,N)求X在N周期内的三角移动平均。TSMA(X,N)求X在N周期内的时间序列移动平均。

计算方法:TSMA(X,N)=FOCAST(X,N)+SLOPE(X,N)⑶数理统计AVEDEV(X,N)求X在N周期内的平均绝对偏差。DEVSQ(X,N)数据偏差平方和。FORCAST(X,N)得到X的N周期线性回归预测值。例:FORCAST(CLOSE,5);表示求5周期线性回归预测SLOPE(X,N)得到X在N周期内的线性回归的斜率例:SLOPE(CLOSE,5);表示求5周期线性回归线的斜率STD(X,N)得到X在N周期内的标准差STDP(X,N)得到X在N周期内的总体标准差VAR(X,N)得到X在N周期内的样本方差VARP(X,N)得到X在N周期内的总体样本方差数理统计举例说明:设一个数列,数列中数据的总个数为N,以今天(2005-10-14)五天内的A0605收盘价为例,N就为5。数列的内容为:{2766,2805,2814,2886,2885}。1、算术平均值MA(CLOSE,5):数据总和除以总个数N。(2766+2805+2814+2886+2885)/5=2831.20。可以用公式MA(CLOSE,5),从今天的值上看出。2、偏差:每个数据,减去算术平均值的结果。2766-2831.20=-65.2,2805-2831.20=-26.2,2814-2831.20=-17.2,2886-2831.20=54.8,2885-2831.20=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)²+(-26.2)²+(-17.2)²+(54.8)²+(53.8)²=11130.80。5、总体样本方差VARP(X,N):将偏差的平方相加,总和除以总个数N。用公式可以这样算:(-65.2)²+(-26.2)²+(-17.2)²+(54.8)²+(53.8)²/5=2226.16。6、样本方差VAR(X,N):是总体方差的N/(N-1)倍。2226.16*5/(5-1)=2782.70估算样本方差,总比总体样本方差大一点,当N够大时,两者趋于相等。7、总体标准差STDP(X,N):方差的开方。[(-65.2)²+(-26.2)²+(-17.2)²+(54.8)²+(53.8)²/5]½=47.18。8、标准差STD(X,N):估算样本方差的开方。[2226.16*5/(5-1)]½=52.75同样,估算标准差也比总体标准差大一点,当N够大时,两者趋于相等。⑷逻辑判断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日均线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个周期内一直是阳线LONGCROSS(A,B,N)如果A在前N个周期内都小于B,本周期上穿B,则返回1。否则返回0。例:LONGCROSS(CLOSE,MA(CLOSE,10),20);表示收盘线在10日均线之下持续20周期后从下向上穿过10日均线。NOFILTER交易模型买卖指令信号过滤函数。(仅适用于交易模型的过滤)交易模型公式后加“NOFILTER;”是指不需要过滤,出现任何交易指令都会执行。公式后不加“NOFILTER;”是指当连续出现同方向的交易指令时,系统只显示出第一个交易指令,其他交易指令自动被过滤。ISDOWN判断该周期是否收阴。ISEQUAL判断该周期是否平盘。ISUP判断该周期是否收阳。ISLASTBAR判断当前周期是否为最后一根K线。VALUEWHEN(COND,DATA)当条件COND满足时,取当时的DATA的值,否则取得前面一个满足条件COND的值。例:VALUEWHEN(HIGH>REF(HIGH,5),HIGH);表示当前最高价大于前五个周期最高价的最大值时返回当前最高价。⑸数学运算ABS(X)求X的绝对值例:ABS(SAR(17,0.03,0.3));返回抛物转向SAR(17,0.03,0.3)的绝对值。ACOS(X)求X的反余弦值ASIN(X)求X的反正弦值ATAN(X)求X的反正切值COS(X)返回X的余弦值EXP(X)返回e的X次幂CEILING(X)向上舍入,返回沿X数值增大方向最接近的整数。FLOOR(X)向下舍入,返回沿X数值减小方向最接近的整数。INTPART(X)取X的整数部分,返回沿X绝对值减小方向最接近的整数。LN(X)得到X的自然对数,以e为底的对数。例:LN(OPEN);求开盘价的自然对数。LOG(X)得到X的常用对数,取得X的以10为底的对数。例:LOG(OPEN);求开盘价的以10为底的对数。MAX(A,B)求A,B中的较大者。例:MAX(CLOSE-OPEN,0);表示若收盘价大于开盘价返回它们的差值,否则返回0。MIN(A,B)求A,B中的较小者。例:MIN(OPEN,CLOSE);返回开盘价和收盘价中的较小值。MOD(A,B)返回A对B得到模。例:MOD(CLOSE,OPEN);收盘价除以开盘价所得余数NOT(X)当X为0时返回1,否则返回0。例:NOT(TIME=090530);表示该周期对应的时间不是9:05:30AM。POW(A,B)得到A的B次幂。例:POW(CLOSE,2);求得收盘价的2次方。REVERSE(X)取反,返回符号相反的数值。例:REVERSE(LOW);返回-LOW。SGN(X)得到X的符号,如果X>0则返回1,如果X<0则返回-1,否则返回0。SIN(X)得到X的正弦值。SQRT(X)得到X的平方根。例:SQRT(CLOSE);收盘价的平方根。SQUARE(X)得到X的平方。例:SQUARE(CLOSE);收盘价的平方。TAN(X)得到X的正切值。⑹时间函数BARPOS取得当前K线的位置。DATE取得当前周期的日数(700101-341231)。DAY取得当前周期的日数(1-31)。HOUR取得当前周期的小时数(0-23)。MINUTE取得当前周期的分钟数(0-59)。MONTH取得当前周期的月数(1-12)。TIME取得当前周期的时间数(0-2359),秒级周期返回值范围为:0-235959。WEEKDAY取得当前周期的星期数(0-6)。YEAR取得当前周期的年数(1970-2034)。⑺绘图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,

COLOR)画斜线,当条件COND满足时,从DATA开始以每个周期相差SLOPE个点的斜率画斜线,划线长度为LEN个周期,EXPAND为线段的延长方式(0:不延伸;1:向左延伸;2:向右延伸;3:双向延伸)。

例:DRAWSL(LOW=LLV(LOW,50),LOW,5,3,2,COLORRED);表示当前最低价等于50周期内的最小值时,从当前最小值开始以每隔5个点的斜率画长度为3个周期向右延伸的斜线,颜色为红色DRAWNUMBER

(COND,DATA,NUMBER,PRECISION,COLOR)画数字。当条件COND满足时,在DATA位置写数字NUMBER(为数组),精度为PRECISION(小数点后有几位数字)。

例:DRAWNUMBER(CLOSE/OPEN>1.08,HIGH,(CLOSE-OPEN)/OPEN*100,2,COLORRED);表示当日涨幅大于8%时在最高价位置显示涨幅(相对开盘价的百分比)。FILLRGN

(COND,DATA1,DATA2,COLOR)填充区域,当条件COND满足时,填充DATA1及DATA2包围的区域。

例:FILLRGN(MA5>MA10,MA5,MA10,COLORRED);表示MA5>MA10时以红色填充MA5和MA10之间的区域。POLYLINE

(COND,DATA,COLOR)画折线,当条件COND满足时,连接各个DATA点。

例:POLYLINE(CLOSE>=HHV(CLOSE,100),CLOSE,COLORRED);表示在收盘价创100天新高点之间画折线。PARTLINE

(COND,DATA,COLOR)同POLYLINE。

例:PARTLINE(HIGH>REF(HIGH,1),HIGH,COLORRED);表示当期最高价大于前期最高价用红色绘制最高价连线线段。STICKLINE

(C,P1,P2,Color,Empty)如果条件C满足时,从P1到P2画柱线,颜色为Color,如果Empty取1,则为空心柱;如果Empty取0,则为实心柱。

例:STICKLINE(OPEN-CLOSE>0,OPEN,CLOSE,COLORCYAN,0);表示当开盘价大于收盘价时,从开盘价到收盘价画青色的实心柱,即K线阴线的实体部分。VERTLINE

(COND,COLOR)画垂直线,当条件COND满足时,画垂直线。

例:VERTLINE(HIGH>=HHV(HIGH,30),COLORRED);表示在价格创30天新高时画垂直线。RGB(R,G,B)自定义颜色函数。

R,G,B的数值范围都在0~255之间,例:RGB(225,225,225)表示白色COLORSTICK画彩色柱线VOLUMESTICK画成交量线BAMBOOLINE画竹线CIRCLEDOT画圆OPISTICK画持仓量柱线=8\*GB2⑻level-2函数(只有嬴智版本支持)L2_BKTIMES周期内多头开仓次数。

用法:L2_BKTIMES返回主动买入开仓的次数。L2_BPTIMES周期内多头平仓次数。

用法:L2_BPTIMES返回主动买入平仓的次数。L2_SKTIMES周期内空头开仓次数。

用法:L2_SKTIMES返回主动卖出开仓的次数。L2_SPTIMES周期内空头次数。

用法:L2_SPTIMES返回主动卖出平仓的次数。L2_BIDACCOUNT周期内主动买入的次数,包含买开和买平。

用法:L2_BIDACCOUNT返回买主动次数。

注:L2_BIDACCOUNT=L2_BKTIMES+L2_BPTIMESL2_ASKACCOUNT周期内主动卖出的次数,包含卖开和卖平。

用法:L2_ASKACCOUNT返回卖主动次数。

注:L2_ASKACCOUNT=L2_SKTIMES+L2_SPTIMESL2_BIDAVVOL周期内平均前五档总申买量。

用法:L2_BIDAVVOL返回周期内平均的前五档总申买量。

具体计算方法如下:求出周期内委买一至委买五价格区间内的总买量,并按其变动求出周期内平均五档总申买量。L2_ASKAVVOL周期内平均的前五档总申卖量。

用法:L2_BIDAVVOL返回周期内平均的前五档总申卖量。

具体计算方法如下:求出周期内委卖一至委卖五价格区间内的总卖量,并按其变动求出周期内平均五档总申卖量。L2_BIDAVPRICE周期内前五档申买盘的加全平均价。

用法:L2_BIDAVPRICE返回委买一至委买五价格区间内买盘的加全平均价。L2_ASKAVPRICE周期内前五档申卖盘的加全平均价。

用法:L2_ASKAVPRICE返回委卖一至委卖五价格区间内卖盘的加全平均价。L2_ASKBIGTURNOVER周期内空头大单成交额。

用法:L2_ASKBIGTURNOVER返回空头大单成交额。

注:金额大于2000万定义为大单L2_BIDBIGTURNOVER周期内多头大单成交额。

用法:L2_BIDBIGTURNOVER返回多头大单成交额。

注:金额大于2000万定义为大单L2_ASKBIGCOUNT周期内空头大单成交次数。

用法:L2_ASKBIGCOUNT返回周期内空头大单成交次数。

注:金额大于2000万定义为大单L2_BIDBIGCOUNT周期内多头大单成交次数。

用法:L2_BIDBIGCOUNT返回周期内多头大单成交次数。

注:金额大于2000万定义为大单L2_TOTALTURNOVER周期内总成交额。

用法:L2_TOTALTURNOVER返回总成交额。L2_ASKBIGENTRASTCOUNT周期内卖1委托明细大量次数。

用法:L2_ASKBIGENTRASTCOUNT返回卖1委托明细大量次数。

注:金额大于400万定义为大量L2_BIDBIGENTRASTCOUNT周期内买1委托明细大量次数。

用法:L2_BIDBIGENTRASTCOUNT返回买1委托明细大量次数。

注:金额大于400万定义为大量L2_PERIOD_DATA(TEXT)该周期最后时刻的买卖价格。

用法:L2_PERIOD_DATA(TEXT)求内容为TEXT的该周期最后盘面数据。

例子:L2_PERIOD_DATA('bid1');//取得该周期最后盘面的买1数据

TEXT的内容可为:买1-买5买1量-买5量卖1-卖5卖1量-卖5量

'bid1''bid2''bid3''bid4''bid5''ask1''ask2''ask3''ask4''ask5''bidvol1''bidvol2''bidvol3''bidvol4''bidvol5''askvol1''askvol2''askvol3''askvol4''askvol5'L2_TICK_DATA(TEXT)取每笔买卖盘数据(只能用于Tick图,每笔Tick时间间隔请设置为0)。

用法:L2_TICK_DATA(TEXT)求内容为TEXT的盘面实时数据。

例子:L2_TICK_DATA('bid1');//取得盘面最后的买1数据

TEXT的内容可为:

买1-买5卖1-卖5买1量-买5量卖1量-卖5量

bid1,bid2,bid3,bid4,bid5,ask1,ask2,ask3,ask4,ask5,

bidvol1,bidvol2,bidvol3,bidvol4,bidvol5,askvol1,askvol2,askvol3,askvol4,askvol5

总买总卖总买量总卖量

tbid,task,tbidvol,taskvol

委买1-委买10委卖1-委卖10

buy_entrust1,buy_entrust2,buy_entrust3,buy_entrust4,buy_entrust5,

buy_entrust6,buy_entrust7,buy_entrust8,buy_entrust9,buy_entrust10,

sell_entrust1,sell_entrust2,sell_entrust3,sell_entrust4,sell_entrust5,

sell_entrust6,sell_entrust7,sell_entrust8,sell_entrust9,sell_entrust10

最新价持仓量主动买卖(返回意义-1没取到,0主动买,1主动卖,2换手)成交量

newprice,opi,activity,deltavol=9\*GB2⑼头寸函数(连接文华服务器才能使用)TRD_ASSETS取出交易系统中的权益。

用法:TRD_ASSETS返回交易系统的权益。

注意:该函数只有登陆一键通下单系统才能使用。效果测试不执行此函数。TRD_CAPITAL取出交易系统中的可用资金。

用法:TRD_CAPITAL返回交易系统的可用资金。

注意:该函数只有登陆一键通下单系统才能使用。

效果测试不执行此函数。TRD_LONGSPRICE取出交易系统中的多头开仓均价。

用法:TRD_LONGSPRICE返回交易系统的多头开仓均价。

注意:该函数只有登陆一键通下单系统才能使用。

效果测试不执行此函数。TRD_SHORTSPRICE取出交易系统中的空头开仓均价。

用法:TRD_SHORTSPRICE返回交易系统的空头开仓均价。

注意:该函数只有登陆一键通下单系统才能使用。

效果测试不执行此函数。TRD_LONGSOPI取出交易系统中的多头持仓。

用法:TRD_LONGSOPI返回交易系统的多头持仓。

注意:该函数只有登陆一键通下单系统才能使用。

效果测试不执行此函数。TRD_SHORTSOPI取出交易系统中的空头持仓。

用法:TRD_SHORTSOPI返回交易系统的空头持仓。

注意:该函数只有登陆一键通下单系统才能使用。

效果测试不执行此函数。TRD_LONGSOPIREMAIN取出交易系统中的多头可平仓手数。

用法:TRD_LONGSOPIREMAIN返回交易系统的多头可平仓手数。

注意:该函数只有登陆一键通下单系统才能使用。

效果测试不执行此函数。TRD_SHORTSOPIREMAIN取出交易系统中的空头可平仓手数。

用法:TRD_SHORTSOPIREMAIN返回交易系统的空头可平仓手数。

注意:该函数只有登陆一键通下单系统才能使用。

效果测试不执行此函数。TRD_LONGSEARN取出交易系统中的多头浮动盈亏。

用法:TRD_LONGSEARN返回交易系统的多头浮动盈亏。

注意:该函数只有登陆一键通下单系统才能使用。

效果测试不执行此函数。TRD_SHORTSEARN取出交易系统中的空头浮动盈亏。

用法:TRD_SHORTSEARN返回交易系统的空头浮动盈亏。

注意:该函数只有登陆一键通下单系统才能使用。

效果测试不执行此函数。TRD_LIMITUP取出交易系统中的涨停价格。

用法:TRD_LIMITUP返回交易系统的涨停价格。

注意:该函数只有登陆一键通下单系统才能使用。

效果测试不执行此函数。TRD_LIMITDOWN取出交易系统中的跌停价格。

用法:TRD_LIMITDOWN返回交易系统的跌停价格。

注意:该函数只有登陆一键通下单系统才能使用。

效果测试不执行此函数。

SETDEALPERCENT(fPercent)设置模型每次下单按资金的比例下单。

用法:SETDEALPERCENT(fPercent)表示每次按资金的fPercent下单。

例子:SETDEALPERCENT(0.2);//每次按资金比例的%20下单

注:不可与SETDEALVOL函数同时使用

交易系统必须启动

效果测试不执行此函数

SETDEALVOL(nVol)设置模型每次下单按设置的手数下单。

用法:SETDEALVOL(nVol)表示每次模型下nVol手单。

例子:SETDEALVOL(2);//模型每次下单2手

注:不可与SETDEALPERCENT函数同时使用

交易系统必须启动

效果测试不执行此函数注:1:头寸函数只能提取最新数据,并且历史数据与最新数据保持一致。2、头寸函数不能在交易指令语句中使用=10\*GB2⑽信号记录函数(连接文华服务器才能使用)BKPRICE模型买开信号价位。

用法:BKPRICE返回上一次模型买开仓价。BARSBK上一次买开信号位置

用法:BARSBK返回上一次买开仓距离当前k线的k线数。SKPRICE模型卖开信号价位。

用法:SKPRICE返回上一次模型卖开仓价。BARSSK上一次卖开信号位置

用法:BARSSK返回上一次卖开仓距离当前k线的k线数。注:1、信号记录函数只能在模型中使用。2、信号记录函数不能与未来函数一起使用。3、信号记录函数不要在开场语句中使用。3、编辑平台可以使用的常数常数意义COLORRED红色COLORGREEN绿色COLORBLUE蓝色COLORMAGENTA红紫色COLORYELLOW黄色COLORLIGHTGREY浅灰色COLORLIGHTRED浅红色COLORLIGHTGREEN浅绿色COLORLIGHTBLUE浅蓝色COLORBLACK黑色COLORWHITE白色COLORCYAN青色COLORRED红色COLORGREEN绿色COLORBLUE蓝色COLORMAGENTA红紫色COLORYELLOW黄色COLORLIGHTGREY浅灰色注:在公式内即使你定义了某种颜色,在显示的时候也未必是此种颜色,取决于背景颜色当前页面里是否保了该指标的颜色及您是否在显示的时候改变了该指标的颜色设置。4、编辑平台的语法(1)关于公式名称:公式的名称不可以和已经存在的公式重复。(2)关于参数:每个自编公式最多可以在参数设置栏中定义四个参数,参数的定义如下,首先是参数名称,然后是参数的最小值,最大值,最后是参数的默认值。在定义参数时要注意的是参数名称不可以重复。(3)关于变量名称:变量名称不可以互相重复,不可以和参数名重复,不可以和函数名称重复。(4)关于公式内容:公式的每个语句应该以分号结束,包括最后一条语句。在数据公式的时候请您注意一定要使用半角输入。在编写公式的过程中,如果您不记得某个函数的确切写法,可以选择插入函数来插入函数。(5)如果您在编写公式之后,想给这个公式加上注释,说明之类的东西,可以使用公式说明来输入。(6)IF

ELSE:该语句只有Mytrader2009和Myadvisor(赢智)支持MA5:=MA(CLOSE,5);

MA10:=MA(CLOSE,10);

MA30:=MA(CLOSE,30);

IF(MA5>MA10)

MA5,COLORRED;

ELSE

{

IF(MA10>MA30)

MA10,COLORMAGENTA;

ELSE

MA30,COLORGREEN;

}

以上内容表达MA5、MA10、MA30三者中最大的数值。(7)IFELSE(C,A,B)

如果条件C成立则返回A值,否则返回B值

例:IFELSE(CLOSE>REF(CLOSE,1),1,0);表示若今日收盘价高于前一日收盘价,则返回1,否则返回0。5、编辑平台使用的交易指令交易模型中的交易指令如下:期货交易指令买开公式中用BK表示买平公式中用BP表示卖开公式中用SK表示卖平公式中用SP表示买平后买开新仓公式中用BPK表示卖平后卖开新仓公式中用SPK表示套利模型中的交易指令如下:第一腿买开,第二腿卖开公式中用BKSK表示第一腿卖开,第二腿买开公式中用SKBK表示第一腿买平,第二腿卖平公式中用BPSP表示第一腿卖平,第二腿买平公式中用SPBP表示股票、权证、外汇交易指令买入公式中用BUY表示卖出公式中用SELL表示注:在效果测试使用如下机制:连续的开仓指令只使用第一个指令进行开仓,开仓时使用当时的全部资金,连续的平仓指令,只有第一个有效,平掉当时的全部持仓,其他的平仓指令算做错误指令!6、快速入门★以下模型源码内容仅供编写参考使用,如用于交易使用,风险自负。⑴如何把熟悉的技术指标转换成交易模型?第一步:把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,发出买平交易指令//”//”后为文字说明,编写模型时不用写出⑵如何把自编变色K线转换成交易模型?模型说明:第一根K线变红时买,第一根K线变蓝时卖指标源码:HH1:=IF(H<REF(H,2)&&REF(H,1)<REF(H,2),REF(H,2),0);LL1:=IF(L>REF(L,2)&&REF(L,1)>REF(L,2),REF(L,2),0);HH2:=VALUEWHEN(HH1>0,HH1);LL2:=VALUEWHEN(LL1>0,LL1);K1:=IF(CLOSE>HH2,-3,IF(CLOSE<LL2,1,0));K2:=VALUEWHEN(K1<>0,K1);G:=IF(K2=1,HH2,LL2);G1:=VALUEWHEN(ISLASTBAR,G);//以上是在定义变量,转换成模型时直接引用DRAWNUMBER(L>0,G1,G1,0,COLORCYAN);//以上是在编著数值,转换成模型时直接删除W1:=K2;W2:=OPEN-CLOSE;HT:=IF(OPEN>CLOSE,OPEN,CLOSE);LT:=IF(OPEN<CLOSE,OPEN,CLOSE);//以上是在定义变量,转换成模型时直接引用DRAWLINE(W1=1,HIGH,W1=1,HT,COLORCYAN);DRAWLINE(W1=1,LOW,W1=1,LT,COLORCYAN);DRAWLINE(W1=-3,HIGH,W1=-3,HT,COLORRED);DRAWLINE(W1=-3,LOW,W1=-3,LT,COLORRED);STICKLINE(W1>0,OPEN,CLOSE,COLORCYAN,1);STICKLINE(W1<=0,OPEN,CLOSE,COLORRED,1);STICKLINE(W2>0&&W1<=0,OPEN,CLOSE,COLORRED,0);STICKLINE(W2>0&&W1>0,OPEN,CLOSE,COLORCYAN,0);DRAWLINE(W1=1&&REF(W1,1)=1,G,W1=1&&REF(W1,1)=1,REF(G,1),COLORGREEN);DRAWLINE(W1=-3&&REF(W1,1)=-3,G,W1=-3&&REF(W1,1)=-3,REF(G,1),COLORYELLOW);DRAWSL(K2=1,G,0,1,0,COLORGREEN);DRAWSL(K2=-3,G,0,1,0,COLORYELLOW);//以上是在绘图,转换成模型时直接删除,只保留判断k线颜色的逻辑语句。例如:STICKLINE(W1>0,OPEN,CLOSE,COLORCYAN,1);则保留W1>0,再加上交易指令即可改写为交易模型修改为交易模型如下:HH1:=IF(H<REF(H,2)&&REF(H,1)<REF(H,2),REF(H,2),0);LL1:=IF(L>REF(L,2)&&REF(L,1)>REF(L,2),REF(L,2),0);HH2:=VALUEWHEN(HH1>0,HH1);LL2:=VALUEWHEN(LL1>0,LL1);K1:=IF(CLOSE>HH2,-3,IF(CLOSE<LL2,1,0));K2:=VALUEWHEN(K1<>0,K1);G:=IF(K2=1,HH2,LL2);G1:=VALUEWHEN(ISLASTBAR,G);W1:=K2;W2:=OPEN-CLOSE;CROSS(W1,0)||(CROSS(W2,0)&&CROSS(W1,0)),BPK;CROSS(0,W1)||(CROSS(W2,0)&&CROSS(0,W1)),SPK;//从上面看,编写交易模型要比编写指标简单得多。⑶如何合并两个不同的交易模型?在两个模型方向相同时才开仓,两个模型指令不同时就平仓参数N:最小值0最大值100缺省值8源码:模型AX:=BARSLAST(HIGH=HHV(HIGH,N));LL:=MIN(REF(LOW,X+3),MIN(REF(LOW,X+2),MIN(REF(LOW,X),REF(LOW,X+1))));Y:=BARSLAST(LOW=LLV(LOW,N));HH:=MAX(REF(HIGH,Y+3),MAX(REF(HIGH,Y+2),MAX(REF(HIGH,Y),REF(HIGH,Y+1))));A:=BARSLAST(CLOSE>=HH);B:=BARSLAST(CLOSE<=LL);AB:=IF(A>B,HH,LL);CROSS(AB,CLOSE),SPK;CROSS(CLOSE,AB),BPK;模型BHH1:=IF(H<REF(H,2)&&REF(H,1)<REF(H,2),REF(H,2),0);LL1:=IF(L>REF(L,2)&&REF(L,1)>REF(L,2),REF(L,2),0);HH2:=VALUEWHEN(HH1>0,HH1);LL2:=VALUEWHEN(LL1>0,LL1);K1:=IF(CLOSE>HH2,-3,IF(CLOSE<LL2,1,0));K2:=VALUEWHEN(K1<>0,K1);K2=1,SPK;K2=-3,BPK;利用并且(&&)和或者(||)这些逻辑语句,将A、B模型合并为模型C:X:=BARSLAST(HIGH=HHV(HIGH,N));LL:=MIN(REF(LOW,X+3),MIN(REF(LOW,X+2),MIN(REF(LOW,X),REF(LOW,X+1))));Y:=BARSLAST(LOW=LLV(LOW,N));HH:=MAX(REF(HIGH,Y+3),MAX(REF(HIGH,Y+2),MAX(REF(HIGH,Y),REF(HIGH,Y+1))));A:=BARSLAST(CLOSE>=HH);B:=BARSLAST(CLOSE<=LL);AB:=IF(A>B,HH,LL);HH1:=IF(H<REF(H,2)&&REF(H,1)<REF(H,2),REF(H,2),0);LL1:=IF(L>REF(L,2)&&REF(L,1)>REF(L,2),REF(L,2),0);HH2:=VALUEWHEN(HH1>0,HH1);LL2:=VALUEWHEN(LL1>0,LL1);K1:=IF(CLOSE>HH2,-3,IF(CLOSE<LL2,1,0));K2:=VALUEWHEN(K1<>0,K1);CROSS(AB,CLOSE)&&K2=1,SK;CROSS(AB,CLOSE)||K2=1,SP;CROSS(CLOSE,AB)&&K2=-3,BK;CROSS(CLOSE,AB)||K2=-3,BP;(二)、基础指标编写示范和注意事项1、学习编写前需要明确注意的几个概念公式:泛指指标、模型。没有具体指向性。指标:指能够绘出图线但不发交易指令的公式。指标是一个技术分析范畴的概念。交易信号:指指标上出现的提示投资者买卖的指示,可以是图线交叉、文字、图形。投资者需要按照信号指示去手动委托下单。交易信号也是一个技术分析范畴的概念。交易模型:指能够发出BK、SP等交易指令但是不绘出图线的公式,模型还包含下单方向,交易手数,止盈止损等与交易、资金使用相关的参数设置。交易模型是一个程序化交易范畴的概念。交易指令:指交易模型自动发出的下单委托指令,可以不经过投资者确认直接下单,也可以等待投资者回车确认再下单。交易指令在K线图上以不同颜色和形状的箭头来代表。交易指令是一个程序化交易范畴的概念。2、如何进行基础指标的编写(1)、均线指标关键函数MAMA(X,N)求X在N周期内的简单移动平均。

计算方法:MA=(A1+A2+A3+A4+A5)/5求A在5个周期内的简单移动平均①五周期均线MA5:MA(CLOSE,5);②均线组合MA5:MA(CLOSE,5),COLORWHITE;MA10:MA(CLOSE,10),COLORYELLOW;MA30:MA(CLOSE,30),COLORGREEN;MA60:MA(CLOSE,60),COLORMAGENTA;③K线+均线组合MA5:MA(CLOSE,5),COLORWHITE;MA10:MA(CLOSE,10),COLORYELLOW;MA30:MA(CLOSE,30),COLORGREEN;MA60:MA(CLOSE,60),COLORMAGENTA;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)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论