3、文华财经程序化交易编程函数
文华财经函数大全
文华财经函数大全1、引用数据AVPRICE引用均价(在盘后对于国内三个期货交易所指结算价)SETTLE引用结算价(如果用在周期小于'日'的K线上如5分钟K线,一小时k 线,每根k线返回的值表示这根k线当日开盘时到这根k线的为止的结算价(均价)如果用在周期大于等于'日'的K线上,返回当根K线结束时间所在日的结算价.)CLOSE引用收盘价(在盘中指最新价),也可简写为C。
HIGH引用最高价,也可简写为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的合约品种的最新价。
2、金融统计BACKSET(X,N)若X条件成立,则将当前位置到N周期前的数值设为1。
『未来函数』例:BACKSET(CLOSE>OPEN,3);表示当K线收阳时,自当前位置到3周期前的数值设为1该函数参数支持变量计算如BACKSET(CLOSE>OPEN,VAR1);//VAR1是变量BARSLAST(X)求上一次条件成立到当前的周期数。
例:BARSLAST(X):上一次满足X条件到现在的K线根数。
如果本根K线满足X条件,则BARSLAST(X)返回0.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的次数。
已破解的交易策略源码[文华财经公式]
已破解的交易策略源码:DIRECTION:=CLOSE-REF(CLOSE,10);VOLATILITY:=SUM(ABS((CLOSE-REF(CLOSE,1))),10);ER:=ABS(DIRECTION/VOLATILITY);FASTSC:=2/(2 + 1);SLOWSC:=2/(30 + 1);SSC:=ER*(FASTSC-SLOWSC)+SLOWSC;:c,nodraw;CONSTANT:=SSC*SSC;AMAHIGH:=REF(EMA(HIGH,100),1)+CONSTANT*(HIGH- EMA(HIGH,100)); AMACLOSE:=REF(EMA(CLOSE,100),1)+CONSTANT*(CLOSE- REF(EMA(CLOSE,100),1)); AMALOW:=REF(EMA(LOW,100),1)+CONSTANT*(LOW- EMA(LOW,100));REF(LOW>AMAHIGH,1),BK;REF(CLOSE<AMACLOSE OR CLOSE<=0.995*BKPRICE,1),SP;REF(HIGH<AMALOW,1),SK;REF(CLOSE>AMACLOSE OR CLOSE>=1.005*SKPRICE,1),BP;AUTOFILTER;源码解析:DIRECTION赋值:收盘价-10日前的收盘价VOLATILITY赋值:(收盘价-昨收)的绝对值的10日累和ER赋值:DIRECTION/VOLATILITY的绝对值FASTSC赋值:2/(2 + 1)SLOWSC赋值:2/(30 + 1)SSC赋值:ER*(FASTSC-SLOWSC)+SLOWSC输出:收盘价,NODRAWCONSTANT赋值:SSC*SSCAMAHIGH赋值:昨日最高价的100日指数移动平均+CONSTANT*(最高价- 最高价的100日指数移动平均)AMACLOSE赋值:昨日收盘价的100日指数移动平均+CONSTANT*(收盘价- 昨日收盘价的100日指数移动平均)AMALOW赋值:昨日最低价的100日指数移动平均+CONSTANT*(最低价- 最低价的100日指数移动平均)昨日最低价>AMAHIGH,BK昨日收盘价<AMACLOSEORCLOSE<=0.995*BKPRICE,SP昨日最高价<AMALOW,SK昨日收盘价>AMACLOSEORCLOSE>=1.005*SKPRICE,BPAUTOFILTER。
文华财经函数大全
文华财经函数大全1、引用数据AVPRICE 引用均价(在盘后对于国内三个期货交易所指结算价)SETTLE 引用结算价(如果用在周期小于'日'的K线上如5分钟K线,一小时k线,每根k 线返回的值表示这根k线当日开盘时到这根k线的为止的结算价(均价)如果用在周期大于等于'日'的K线上,返回当根K线结束时间所在日的结算价.)CLOSE 引用收盘价(在盘中指最新价),也可简写为C。
HIGH 引用最高价,也可简写为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的合约品种的最新价。
2、金融统计BACKSET(X,N) 若X条件成立,则将当前位置到N周期前的数值设为1。
『未来函数』例:BACKSET(CLOSE>OPEN,3);表示当K线收阳时,自当前位置到3周期前的数值设为1该函数参数支持变量计算如BACKSET(CLOSE>OPEN,VAR1);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,N) 返回X的动态移动平均,其中N必须介于0及1之间。
计算方法:DMA(N)=DMA(N-1)*(1-A)+X(N)*A其中DMA(N-1)为第(N-1)天的DMA值。
文华财经编程规则
⽂华财经编程规则⽂华财经编程规则⽬录⼀、操作符: (1)⼆、语法: (2)三、函数和常量 (3)1.引⽤数据 (3)2.⾦融统计 (4)3.数理统计 (6)4.逻辑判断 (7)5.数学运算 (8)6.时间函数 (9)7.绘图 (10)8、颜⾊常数 (11)9、level-2函数(只有嬴智版本⽀持) (11)10、头⼨函数(连接⽂华服务器才能使⽤) (14)11、信号记录函数(连接⽂华服务器才能使⽤) (15)四、交易指令 (15)五、编程举例: (16)⼀、操作符:操作符意义例+加法 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.关于参数:每个⾃编公式最多可以定义四个参数,参数的定义如下,⾸先是参数名称,然后是参数的最⼩值,最⼤值,最后是参数的默认值。
文华财经一些函数的用法和意义
加权移动均线
EMA2
跟踪趋势更加灵敏
/
优点:跟踪趋势不错。
缺点:克服不了噪音;买卖信号平凡。
/
// JDEMA2
// N1 1 1000 5, N2 1 1000 10, N3 1 1000 20, N4 1 1000 35
PARAM[N5, 1, 1000, 50]
MA1:EMA2(CLOSE, N1), COLORWHITE;
//快速:percentage=0.1
//慢速:percentage=1.0
FIL:= STD(AMA - REF(AMA, 1), 20); // 20个周期内的标准差
LOWEST:= AMA - LLV(AMA, 3); //距前3天最低值的波动大小
HIGHEST:= HHV(AMA, 3) - AMA; //距前3天最高值的波动大小
趋势指标:MA、EMA2、AMA、GMMA、PUBU、DMI、RVAI、BOLL。
名称
特点
使用
优缺点
副图取值
公式
解释
简单移动均线
MA
跟踪趋势
期货市场使用:5、10、20、30、60或者5、10、20、30、50。
/
优点:跟踪趋势不错。
缺点:克服不了噪音;买卖信号平凡。
/
文华财经
// JDMA
// N1 1 1000 5, N2 1 1000 10, N3 1 1000 20, N4 1 1000 35
VOLATILITY:= SUM(ABS((CLOSE - REF(CLOSE, 1))), N); {价格变化总和}
ER:= DIRECTION / VOLATILITY; {效率系数(范围:0~1)}
交易开拓者函数一览表(文华对照)
交易开拓者函数一览表(文华对照)交易开拓者函数一览表(文华对照)交易开拓者文华数学函数绝对值Abs ABS(X) 反余弦值Acos ACOS(X) 反双曲余弦值Acosh反正弦值Asin ASIN(X) 反双曲正弦值Asinh反正切值Atan ATAN(X) 给定的X及Y坐标值的反正Atan2切值反双曲正切值Atanh沿绝对值增大方向按基数Ceiling舍入从给定数目的对象集合中Combin提取若干对象的组合数余弦值Cos COS(X) 双曲余弦值Cosh余切值Ctan沿绝对值增大方向取整后Even最接近的偶数e的N次幂Exp EXP(X) 数的阶乘Fact沿绝对值减少的方向去尾Floor舍入实数舍入后的小数值FracPart实数舍入后的整数值IntPart自然对数Ln LN(X)对数Log LOG(X) 余数Mod MOD(A,B) 负绝对值Neq指定数值舍入后的奇数Odd返回PI Pi给定数字的乘幂Power POW(A,B) 随机数Rand按指定位数舍入Round靠近零值,舍入数字RoundDown远离零值,舍入数字RoundUp数字的符号Sign SGN(X) 正弦值Sin双曲正弦值Sinh SIN(X)平方Sqr SQUARE(X)正平方根Sqrt SQRT(X)正切值Tan TAN(X)双曲正切值Tanh取整Trunc INTPART(X)字符串函数测试是否相同Exact返回字符串中的字符数Len大写转小写Lower数字转化为字符串Text取出文本两边的空格Trim小写转大写Upper文字转化为数字Value颜色函数黑色Black COLORBLACK蓝色Blue COLORBLUE青色Cyan COLORCYAN茶色DarkBrown深青色DarkCyan深灰色DarkGray深绿色DarkGreen深褐色DarkMagenta深红色DarkRed默认颜色DefaultColor绿色Green COLORGREEN浅灰色LightGray COLORLIGHTGREY 紫红色Magenta COLORMAGENTA 红色Red COLORRED自定义颜色Rgb Rgb白色White COLORWHITE黄色Yellow COLORYELLOW时间函数当前日期CurrentDate当前时间CurrentTime日期时间值转化为字符串DateTimeToString类型日期值转化为字符串类型DateToString获得当前bar的日信息Day DAY获得星期一值Monday获得星期二值Tuesday获得星期三值Wednesday获得星期四值Thursday获得星期五值Friday获得星期六值Saturday获得星期日值Sunday获得当前bar的小时信息Hour HOUR将参数生成日期值MakeDate将参数生成日期时间值MakeDateTime将参数生成时间值MakeTime获得当前bar的分钟信息Minute MINUTE 获得当前bar的月信息Month MONTH 获得当前bar的秒信息Second将字符串转化为日期StringToDate将字符串转化为日期时间StringToDateTime将字符串转化为时间StringToTime获得交易开拓者平台的当SystemDateTime前日期时间将时间值转化为字符串类TimeToString型获得当前bar的周信息Weekday WEEKDAY 获得当前bar的年信息Year YEAR数据函数当前商品数据的bar总数BarCount当前商品当前bar的状态BarStatus值当前bar收盘价 C当前bar收盘价Close CLOSE 当前商品当前bar的索引CurrentBar BARPOS 值当前bar日期 D当前bar日期Date当前bar的最高价H当前bar的最高价High HIGH当前历史数据是否有效HistoryDataExist当前bar的最低价L当前bar的最低价Low LOW下一个bar的收盘价(未来NextClose函数)下一个bar的最高价(未来NextHigh函数)下一个bar的最低价(未来NextLow函数)下一个bar的开盘价(未来NextOpen函数)下一个bar的持仓量(未来NextOpenInt函数)下一个bar的成交量(未来NextVol函数)当前bar的开盘价O当前bar的开盘价Open OPEN当前bar的持仓量OpenInt OPI当前bar的时间T当前bar的时间Time当前bar的成交量V当前bar的成交量Vol VOL属性函数当前商品的时间周期数值BarInterval当前商品的时间周期类型BarType当前商品数据的买卖盘个BidAskSize数当前商品的一个整数点价BigPointValue值是否支持市价委托CanMarketOrder是否支持做空CanShortTrade是否支持Stop委托CanStopOrder是否可以交易CanTrade当前商品合约大小ContractSize每张合约包含基本单位ContractUnit当前商品交易的货币名称CurrencyName当前商品交易的货币符号CurrencySymbol当前商品的交易所名称ExchangeName当前商品的初始保证金InitialMargin当前商品的维持保证金MaintenanceMargin当前商品的默认保证金MarginRatio当前商品单笔交易限量MaxSingleTradeSize当前商品最小变动量MinMove当前商品的计数单位PriceScale当前商品的点差Spread当前商品的代码Symbol当前商品的名称SymbolName当前商品的类型SymbolType行情函数(交易开拓者行情函数只对最后一个bar有效)最新卖盘价格Q_AskPrice最新卖盘量Q_AskVol实时均价Q_AvgPrice AVPRICE 卖盘价格变化标志Q_AskPriceFlag最新买盘价格Q_BidPrice买盘价格变化标志Q_BidPriceFlag最新买盘量Q_BidVol当日收盘价Q_Close CLOSE当日最高价Q_High HIGH 历史最高价Q_HisHigh历史最低价Q_HisLow内盘Q_InsideVol最新价Q_Last最新价变化标志Q_LastFlag最新成交时间Q_LastTime商品的现手Q_LastVol当日最低价Q_Low LOW当日跌停板价Q_LowerLimit当日开盘价Q_Open OPEN 当日持仓量Q_OpenInt OPI持仓量变化标志Q_OpenIntFlag当前商品的振幅Q_Oscillation当前商品的外盘Q_OutsideVol当前商品的昨日持仓量Q_PreOpenInt当前商品的昨日结算价Q_PreSettlePrice SETTLE 当日涨跌Q_PriceChg当日涨跌幅Q_PriceChgRatio当前商品的最新笔升跌Q_TickChg当日开仓量Q_TodayEntryVol当日平仓量Q_TodayExitVol当日成交量Q_TodayVol VOL成交金额Q_TurnOver当日涨停板价Q_UpperLimit行情数据是否有效QuoteDataExist账户函数(交易开拓者账户函数只对最后一个bar有效)交易账户ID A_AccountID对应交易商ID A_BrokerID当前账户下当前商品买入A_BuyAvgPrice持仓均价当前账户的买入冻结A_BuyFreeze当前账户的买入保证金A_BuyMargin当前账户的买入持仓A_BuyPosition当前账户的买入持仓盈亏A_BuyProfitLoss当前账户的动态权益A_CurrentEquity撤单指令A_DeleteOrder当前账户的可用资金A_FreeMargin返回当前商品最后一个未A_GetLastOpenOrderIndex成交单的索引返回当前商品的最后一个A_GetLastOrderIndex当日委托单索引返回当前商品的未成交委A_GetOpenOrderCount托单数量返回当前商品的当日委托A_GetOrderCount单数量返回当前商品的未成交委A_OpenOrderBuyOrSell 托单买卖类型返回当前账户当前商品的A_OpenOrderContractNo 某个委托单合同号当前账户当前商品某个未A_OpenOrderEntryOrExit 成交委托单的开平仓状态当前账户当前商品的某个A_OpenOrderFilledPrice 未成交委托单的成交价格当前账户当前商品的某个A_OpenOrderLot未成交委托单的委托数量当前账户当前商品的某个A_OpenOrderPrice未成交委托单的委托价格当前账户当前商品的某个A_OpenOrderStatus未成交委托单状态当前账户当前商品的某个A_OpenOrderTime未成交委托单的委托时间当前账户当前商品的某个A_OrderBuyOrSell交委托单的买卖类型当前账户当前商品的某个A_OrderContractNo交委托单的合同号当前账户当前商品的某个A_OrderCanceledLot交委托单的撤单数量返回当前公式应用的帐户A_OrderEntryOrExit下当前商品的某个委托单的开平仓状态。
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%平仓。
文华WH8量化交易软件算法交易模型操作符及语法及常用函数及语法举例
二、基本语法1. 算法组件构成:全局变量定义、主函数定义、自定义函数定义。
注:a.全局变量定义要在主函数和自定义函数之外,主函数和自定义函数定义不分先后顺序。
b.运行原理:先读取全局变量,后直接运行主函数,在主函数运行过程中如果遇到自定义函数,在跳出主函数运行自定义函数。
2、变量定义与赋值:利用VAR函数对变量进行定义,定义好的变量可以对其进行赋值,让变量有具体的意义。
VAR N1; -----------------------//定义变量N1VAR N2; -----------------------//定义变量N2VAR N3; -----------------------//定义变量N3N1=3000; -----------------------//整型赋值N2=88.888; -----------------------//浮点型赋值N3=“股指期货”; -----------------------//字符串型赋值N4[0] = 1; -----------------------//数组型赋值N4[1] = 2; -----------------------//数组型赋值N4[2] = 3; -----------------------//数组型赋值3、主函数定义:VOID/VAR MAIN() -----------------------//定义主函数{主函数内容}例:VAR N; -----------------------//定义变量NVOID MAIN() -----------------------//定义主函数{N=“文华财经”; -----------------------//对N赋值MessageOut(N); -----------------------//输出N}4、自定义函数定义A、带返回值的函数VAR BDEAL() -----------------------//带返回值的函数{RETURN(10); -----------------------//返回值}例:带返回值函数定义VAR BDEAL(A,B) -----------------------//带返回值的函数{VAR M; -----------------------//定义变量MM=A+B;RETURN(M); -----------------------//返回值}……S=BDEAL(15,20) ; -----------------------//使用函数……B、不带返回值的函数VOID BDEAL() -----------------------//不带返回值函数{…}例:不带返回值函数定义VOID BDEAL() -----------------------//不带返回值的函数{T_Deal(“IF1312”,0,0,1,0);}……IF(…) -----------------------//当条件成立{BDEAL() -----------------------//运行函数}C、有返回值有参数的自定义函数定义例:VAR ADDTEST(VAR a,VAR b){VAR x;VAR y;x=a+b;y=a-b;MessageOut(x);MessageOut(y);RETURN(x*y);}5、循环语句while的用法:6、循环语句FOR的用法三、常用函数判断函数:IF,ELSE IFIF (F_Sig()==BK) -----------------------//如果当前是BK信号{BKDeal(); -----------------------//运行开多仓函数}ELSE IF (F_Sig()==SK) -----------------------//如果当前是SK信号{SKDeal(); -----------------------//运行开空仓函数}信号函数:F_FreshSig():取一个新信号(如果模型已经发出了多个信号,取最近发出的信号,信号消失也是一种新信号)返回1表示取到新信号,返回0表示失败即已经没有新信号可取。
文华财经程序化指标
(一)简介(二)函数分类1、引用数据A VPRIC E引用均价(在盘后对于国内三个期货交易所指结算价)SETTLE引用结算价(如果用在周期小于'日'的K线上如5分钟K线,一小时k线,每根k线返回的值表示这根k线当日开盘时到这根k线的为止的结算价(均价)如果用在周期大于等于'日'的K线上,返回当根K线结束时间所在日的结算价.)CLOSE引用收盘价(在盘中指最新价),也可简写为C。
HIGH 引用最高价,也可简写为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的合约品种的最新价。
2、金融统计BACKSE T(X,N) 若X条件成立,则将当前位置到N周期前的数值设为1。
『未来函数』例:BACKSE T(CLOSE>OPEN,3);表示当K线收阳时,自当前位置到3周期前的数值设为1该函数参数支持变量计算如BACK SET(CLOSE>OPEN,V AR1);//V AR1是变量BARSLA ST(X) 求上一次条件成立到当前的周期数。
例:BARSLA ST(X):上一次满足X条件到现在的K线根数。
如果本根K线满足X条件,则BARS L A ST(X)返回0.COUNT(X,N) 表示统计在N周期内满足X条件的周期数。
文华财经程序化交易应用指南
一、WH8(8.1.203)程序化交易应用指南我们把程序化应用,从初级应用到高级应用,分成6个级别来介绍wh8的程序化功能。
(一)一级:信号预警盒子信号预警盒子是一种为程序化半自动下单的用户提供的功能,客户可以在信号预警盒子自己设定预警的模型,在条件满足的时候,系统能够会弹出弹出预警窗口,确认就可以直接下单了。
这个功能类似以前版本的半自动,但是增加了显示加载模型运行情况的列表,我们叫做盒子。
盒子还可以后台运行,加载了信号预警以后,可以做看盘等其他操作,不影响模型出信号的。
信号预警盒子的主要功能:1、点击盒子列表中的一行,可以打开k线图上查看设定预警模型的信号。
2、支持设置信号持续时间和信号消失确认时间(二)二级:公式条件单公式条件单是为只按照某种特定条件进行交易的用户,提供的一种灵活的程序化执行方式。
公式条件单让条件单不再停留在简单的价格条件和时间条件上,可以利用文华麦语言编写出思路更广的条件。
客户可以在组群中加载条件单模组,系统根据写入的条件进行自动交易。
公式条件单的主要功能:1、只写开仓条件,按照条件自动开仓;2、只写平仓条件,将初始化带入模组的持仓自动平掉;3、信号独立,没有过滤机制。
4、可以随意进行主观干预。
5、可以后台运行。
公式条件单在WH8中的运行规则,请参考下面链接/popwin/tiaojiandan-sm.htm(三)三级:趋势跟踪策略(过滤模型)为有完整交易策略的投资者提供的全自动程序化交易。
交易策略中一开一平,且交易手数开平对应,不会出现锁仓和加仓的情况。
客户自己在组群中加载模组后,出现信号按照信号执行方式确认后自动下单交易。
趋势跟踪策略的主要功能:1、可以通过麦语言,编写各类技术分析指标、形态、止损止盈等策略;2、模型中必须加入AUTOFILTER函数以实现交易指令的开平对应;3、可以主观干预。
4、可以后台运行。
不加仓模型在WH8中的运行规则,请参考下面链接/popwin/guolvmx.htm(四)四级:加仓资金管理策略(非过滤模型)为资金量较大,且交易周期跨度较大的投资者提供的全自动程序化交易。
6-0文华程序化交易使用指南
文华程序化交易使用指南目录一、程序化交易的原理 (3)二、程序化交易的启用 (3)㈠、一键通版本程序化交易的启用: (4)1、启动交易软件............................ 错误!未定义书签。
2、启用交易模型(打开程序化交易窗口) (4)3、设置相关参数 (6)㈡、Webstock版本程序化交易的启用 (7)1、启动交易软件 (7)2、启用交易模型(打开程序化交易窗口) (8)3、设置相关参数 (11)三、程序化交易的编写 (13)㈠、交易模型编写规范和一般原则 (13)1、编辑平台支持的操作符 (13)2、编辑平台支持的函数 (14)⑴引用数据 (14)⑵金融统计 (15)⑶数理统计 (18)⑷逻辑判断 (19)⑸数学运算 (21)⑹时间函数 (22)⑺绘图 (23)3、编辑平台可以使用的常数 (25)4、编辑平台的语法 (26)5、编辑平台使用的交易指令 (26)6、快速入门 (27)(二)、交易模型编写示范和注意事项 (32)1、趋势类交易模型编写示范 (32)⑴均线类 (32)⑵通道类 (34)⑶其他类 (35)2、振荡类交易模型编写示范 (37)⑴主动买与主动卖模型 (37)⑵ROC(变动速率)与价格趋势变动背离: (37)⑶三减六日乖离模型: (38)3、日内交易模型编写示范 (38)⑴开盘价突破模型 (38)⑵开盘后前三十分钟最高最低价突破模型 (39)⑶单均线模型。
(40)4、套利交易模型编写示范 (40)5、常见编写错误............................ 错误!未定义书签。
一、程序化交易的原理“程序化交易”为文华财经和金仕达/恒生联合开发。
原理图如下:图1从以上原理图可以看出,程序化交易是文华财经软件和金仕达/恒生自助委托软件协同工作来实现的。
客户通过程序化交易系统发出的委托指令仍然是通过金仕达/恒生远程交易系统进入期货公司和交易所的撮合中心的。
文华赢智程序化交易(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价某合约最小变动价位。
文华财经主要函数学习
文华财经主要函数学习金融统计函数BARSLAST(COND):上一次条件COND成立到当前的周期数注:1、条件成立的当根k线上BARSLAST(COND)的返回值为02、本函数运算量很大,将占用很多的CPU资源,导致行情刷新速度变慢,请谨慎使用!例1:BARSLAST(OPEN>CLOSE); //上一根阴线到现在的周期数。
例2:N:=BARSLAST(DATE<>REF(DATE,1))+1;//分钟周期,当日k线数。
//由于条件成立的当根k线上BARSLAST(COND)的返回值为0,所以“+1”才是当日k线根数。
COUNT(COND,N):统计N周期中满足COND条件的周期数。
注:1、若N为0则从第一个有效值算起;2、当N为有效值,但当前的k线数不足N根,从第一根统计到当前周期。
3、N 为空值时返回值为空值。
例1:N:=BARSLAST(DATE<>REF(DATE,1))+1;//分钟周期,当日k线数。
M:COUNT(ISUP,N);//统计分钟周期上开盘以来阳线的根数。
例2:MA5:=MA(C,5);//定义5周期均线MA10:=MA(C,10);//定义10周期均线M:COUNT(CROSSUP(MA5,MA10),0);//统计从申请到的行情数据以来到当前这段时间内,5周期均线上穿10周期均线的次数。
DMA(X,A):求X的动态移动平均,其中A必须小于1大于0。
计算公式:DMA(N)=DMA(N-1)*(1-A)+X(N)*A 其中DMA(N-1)为第(N-1)天的DMA值例1:DMA3:=DMA(C,0.3);//计算结果为REF(DMA3,1)*(1-0.3)+C*0.3 EMA(X,N):求N周期X值的指数移动平均(平滑移动平均)。
注:1、对距离当前较近的k线赋予了较大的权重。
2、当N为有效值,但当前的k线数不足N根,按实际根数计算。
3、N为0或空值时返回值为空值。
文华财经代码函数编写
文华财经代码函数编写文华财经代码函数编写文华代码编写第三章一般模型编写示例软件提供扩展性更为强大的程式化交易模式,为此提供了一系列的功能和众多交易函数。
这些函数用户可以在【公式】菜单下的函数列表里找到。
程序化交易系统既可以实盘运行策略,又可以对历史数据进行回测。
实盘运行策略的载体有两个,分别是页面盒子(点击查看介绍)和运行模组(点击查看介绍)。
一些基础的策略模型需要在每根K线走完的时候按照出现的信号方向下单,我们把这种模型叫做收盘价模型。
页面盒子是运行收盘价策略模型的功能载体,适合需要部分手动辅助或结合图表分析的程序化用户。
运行模组则实现了更丰富的量化策略,例如头寸管理,指令价交易等。
这部分会在程序化交易高级教程中详细介绍。
3.1条件描述阶段涨幅:N日收盘价的差值的百分比。
(CLOSE-REF(CLOSE,N))/REF(CLOSE,N)*100再创新高:所谓再创新高就是指今日最高价是N日以来的最高价HIGH=HHV(HIGH,N)该函数在当日最高价创N日新高时为1,否者为0。
放量上攻:指价格上扬,成交量剧增价格上扬可以描述为:CLOSE/REF(CLOSE,5)>1.2;表示5日上涨20%成交量剧增可描述为:VOL>MA(VOL,5)*3;表示成交量超过5日均量的3倍所以公式可写成为:CLOSE/REF(CLOSE,5)>1.2ANDVOL>MA(VOL,5)*3窄幅整理:就是指近一段时期价格维持在一定幅度之内(HHV(CLOSE,20)-LLV(CLOSE,20))/CLOSE<0.08;HHV(CLOSE,20)-LLV(CLOSE,20)表示20日收盘价振幅,即20日内价格振幅在8%以内波动。
均线多头排列:移动平均线(MA)是将一段时间的股票价格用数理统计的方法加以平均,再将这些平均价标于图上并用线连接起来即可。
它可以用来观察股价的趋势。
均线多头排列可以看做是上升趋势行情的表现。
文华财经函数大全
文华财经函数大全1、引用数据A VPRICE 引用均价(在盘后对于国内三个期货交易所指结算价)SETTLE 引用结算价(如果用在周期小于'日'的K线上如5分钟K线,一小时k线,每根k 线返回的值表示这根k线当日开盘时到这根k线的为止的结算价(均价)如果用在周期大于等于'日'的K线上,返回当根K线结束时间所在日的结算价.)CLOSE 引用收盘价(在盘中指最新价),也可简写为C。
HIGH 引用最高价,也可简写为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的合约品种的最新价。
2、金融统计BACKSET(X,N) 若X条件成立,则将当前位置到N周期前的数值设为1。
『未来函数』例:BACKSET(CLOSE>OPEN,3);表示当K线收阳时,自当前位置到3周期前的数值设为1 该函数参数支持变量计算如BACKSET(CLOSE>OPEN,V AR1);//V AR1是变量BARSLAST(X) 求上一次条件成立到当前的周期数。
例:BARSLAST(X):上一次满足X条件到现在的K线根数。
如果本根K线满足X条件,则BARSLAST(X)返回0.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的次数。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
图时是不画的) 上面的公式的第一个语句定义了一个局部变量 TMP1,在的是这个公式在画图的时候只
声明了一个 画了第二条语句所求出的结果。
变量,
相反下面这个公式则需要画出两条线,第一条是自己定义的均价
在画图时画 线,同时显示了均价的名称为 AVP,第二条线是均价的简单移动平均 : 出它并且按 线。
引用成交量,也可简写为 V 。
GETPRICE(N)
根据文华码取出某一品种的最新价。 例:GETPRICE(1209);返回文华码为 1209 的合约品 种的最新价。
PARAM [参数名称,最小值,最大值,缺省值]
在源码中定义参数。 例:PARAM[N,1,100,12] MAN:MA(CLOSE,N); 表示参数为 N,最小值为 1,最大值为 100,缺省 值为 12.
3. 关于变量名称。变量名称不可以互相重复,不可以和参数名重复,不可以和函数名称 重复。
4. 关于公式内容。公式的每个语句应该以分号结束,包括最后一条语句。在数据公式的 时候请您注意一 定要使用半角输入。在编写公式的过程中,如果您不记得某个函数的确切 写法,可以选择插入函数来插入函数。
5. 如果您在编写公式之后,想给这个公式加上注释,说明之类的东西,可以使用公式说 明来输入。
这个名字显 AVP:(OPEN+CLOSE)/2;
示。
MA(AVP,10);
2、编辑平台支持的自编语法
1. 关于公式名称。公式的名称不可以和已经存在的公式重复。
2. 关于参数。每个自编公式最多可以定义四个参数,参数的定义如下,首先是参数名称, 然后是参数 的最小值,最大值,最后是参数的默认值。在定义参数时要注意的是参数名 称不可以重复。
VOL
引用收盘价(在盘中指最新价),也可简写为 C。 引用最高价,也可简写为 H。 引用最低价,也可简写为 L。 引用开盘价,也可简写为 O。 引用成交量,也可简写为 V。 引用持仓量 引用 X 在 N 个周期前的值 例:REF(CLOSE,5); 表示引用当前周期前第 5 个周期的收盘价 引用 N 个周期后的数据。(N 为大于等于 1 的整数) 『未来函数』 例:REFX(CLOSE,5); 表示引用自当前周期后第 5 个周期的收盘价
支持)
[TEST.FML] 的数据 使用的方法:
如当前存在一个指标 TEST.FML
//TEST.FML
CL:=CLOSE;
OP:=OPEN;
我想在新建的指标 TEST1 中 引用[豆粕 1005] 五
分钟周期 上指标[TEST.FML] 的数据 可以如下编写 TEST1 指标 //TEST1.FML #IMPORT [1205,MIN5,TEST] AS VARTEST DD:VARTEST.CL; DF:VARTEST.OP; 引用的约束 1.只能引用 .FML 文件 2.只能引用如下周期 MIN1 MIN3 MIN5 MIN10 MIN15 MIN30 HOUR1 HOUR3 HOUR8 DAY WEEK MONTH 3.只能短周期引用长周期 比如不能日线周期上加 载引用了分钟数据的指标。 4.被引用的指标中不能存在引用
文华财经程序化交易编程函数
1、编辑平台支持的操作符
操作符 意义
例
+ 加法
CLOSE+OPEN 表示求收盘价及开盘价的和。
- 减法
CLOSE-OPEN 表示求收盘价及开盘价的差。
* 乘法
CLOSE*OPEN 表示求收盘价及开盘价的积。
/ 除法
CLOSE/OPEN 表示求收盘价及开盘价的商。
AND
与(并且),也可 简写为&&
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)
以上内容表达 MA5、MA10、MA30 三者中最大的数值。
3、编辑平台支持的函数 ⑴引用数据
AVPRICE
SETTLE
引用均价(在盘后对于国内三个期货交易所指结算 价)
引用昨天的结算价(只显示当天时间的上日结算 价。)
CLOSE HIGH LOW OPEN VOL OPI REF(X,N)
REFX(X,N)
#IMPORT[CODE,PERIOD,FORMULA]
AS VAR;
CODE 文华码 PERIOD 周期
FORMULA 引用模型名 VAR 定义变量名 例子:
#IMPORT [CODE,PERIOD,FORMULA] AS #IMPORT [1205,MIN5,TEST] AS M1005
VAR(Mytrader2009 和 Myadvisor(赢智)意思是引用[豆粕 1005] 五分钟图 上指标
⑵金融统计
BACKSET(X,A)
若 X 条件成立,则将当前位置到 A 周期前的数值设为 1。其中 A 为常数, 不支持变量。『未来函数』 例:BACKSET(CLOSE>OPEN,3); 表示当 K 线收阳时,自当前位置到 3 周期前的数值设为 1。
BARSLAST(X)
求上一次条件成立到当前的周期数。
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; }
或(或者), 也可 OR 简写为||
> 大于 < 小于 >= 大于等于 <= 小于等于 <> 不等于
CLOSE>OPEN 表示判断当前周期是否收阳。 CLOSE=OPEN 表示判断当前周期是否平盘。
= 等于
只定义一个局
:=
部变量
TMP1:=(OPEN+CLOSE)/2;
(这个变量在画 MA(TMP1,10);