简介:这份资源是一份文华财经(文华公式)指标公式文档,面向使用文华财经软件进行期货行情分析、希望借助成熟指标判断趋势与关键转折的交易者与公式编写爱好者。文档由一位被称为顶尖期货高手的使用者整理,核心围绕局部高低点识别、缺口判断与保留逻辑展开,公式中大量运用BACKSET、BARSLAST、LOWRANGE、TOPRANGE等函数,通过多轮迭代筛出高保留与低保留信号,可用于趋势跟踪、波段高低点标记及信号过滤,属于进阶公式源码类参考材料。压缩包内仅1个doc文档,约58KB,体量轻便,打开即可查看完整公式源码与变量注释,便于在文华财经公式编辑器中逐段调试、复现与二次修改。目前已有133人学习下载。读者可从中获取一整套编写简洁、逻辑清晰的指标源码结构,理解多周期高低点与缺口条件的组合思路,并以此为模板改造出契合自身交易节奏的自定义指标。
1. 一份 .doc 里的文华财经指标公式,粘进编辑器为什么常常既报错又不发信号
交易室里流传最广的交接方式往往不是代码仓库,而是一个 .doc:某位做了十几年期货的老手留下「价格站上三根均线、量能饱和度打到 1.00 以上画圈、回调不破前低进场」这类描述,底下附几行格式已经乱掉的公式片段。整段复制进文华财经的公式编辑器,语法检查能过,图表上却没有信号,或者信号位置和文档描述完全对不上。问题不在软件,而在文档写的是交易思路,不是可执行规格:周期没交代、参数的默认区间没交代、成交量算单手还是双边没交代、有没有引用未来数据也没交代。下面按语法骨架、逐句翻译、参数化过滤、跨平台排错的顺序,把这类 .doc 变成能挂上实盘图表的文华财经指标公式,手头攒着几十份期货指标文档的人可以照着改。
2. 文华财经麦语言指标公式的最小骨架与三条语法红线
麦语言是文华财经的公式语言,写法接近 C,但所有变量都是序列——每一根 K 线都会算一遍,得到的是一串值而不是一个数。这是理解指标公式的第一道门槛:写下AA:=MA(C,5)时,AA不是「一条均线」,而是「每根 K 线上那条均线的值组成的数组」。后面所有条件判断、画线、画图标,都是在这串数组上做逐根比较。想清楚这一点,后面那些「明明条件写对了却不显示」的问题,九成能自己定位。
2.1 冒号和冒号等号:决定指标能不能画出来的那一行
麦语言用:和:=区分输出与赋值,这两个符号混用是新手最常踩的坑。带冒号的变量会作为输出线画在图表上,带冒号等号的只在后台算,画不出来。
// 文华财经麦语言:输出与赋值的区别 MA5:MA(C,5),COLORWHITE; // 冒号:输出变量,图表上会画出一条线 MA10:=MA(C,10); // 冒号等号:中间变量,只参与计算 MA10X:MA10,COLORYELLOW; // 想把中间变量画出来,必须再输出一次逻辑上,第二行的MA10只是给MA(C,10)起了个名字,节省后面重复书写;第三行把它挂到MA10X这个输出变量上,图表才有反应。
参数说明:C是收盘价序列,麦语言内置,不用声明;MA(X,N)是 N 周期简单移动平均;COLORWHITE、COLORYELLOW是线色修饰符,跟在输出语句末尾;LINETHICK2用来加粗;如果只想让变量参与条件判断、连数值都不想显示,末尾加NODRAW。同一条输出语句里修饰符可以叠加,比如MA5:MA(C,5),COLORRED,LINETHICK2;。
提示:调试阶段把所有中间条件都用带冒号的方式输出一遍,先看数值再看图形,比盯着 K 线猜条件哪里写错快得多。
2.2 能直接跑通的三均线模型指标公式
三均线模型是被搜索最多的文华公式形态,它的骨架足够简单,又覆盖了输出、比较、交叉、文字标注四类操作,适合当模板改。
// 文华财经三均线模型:主图叠加 // 参数在公式属性面板填:N1=5, N2=10, N3=20 MA1:MA(C,5),COLORWHITE,LINETHICK1; MA2:MA(C,10),COLORYELLOW,LINETHICK1; MA3:MA(C,20),COLORMAGENTA,LINETHICK1; MULTI:=MA1>MA2 AND MA2>MA3; // 多头排列 GOLD:=CROSS(MA1,MA2) AND MULTI; // 金叉且已具备多头排列 DEAD:=CROSS(MA2,MA1); // 死叉 DRAWTEXT(GOLD,L*0.997,'多'),COLORRED; DRAWTEXT(DEAD,H*1.003,'空'),COLORGREEN;逻辑说明:先把三条均线画出来当作观察基准,再用MULTI描述排列状态。CROSS(A,B)判断 A 是否从下方向上穿过 B,返回的是逐根成立的逻辑序列,成立那根为真。把CROSS和一个趋势条件用AND组合,等于给金叉加了一层「大方向已经向上」的确认,能砍掉不少震荡区间里的来回打脸。
参数说明:L*0.997和H*1.003是把标注位置压在最低价下方、最高价上方各 0.3%,避免文字糊在 K 线上;DRAWTEXT(条件, 位置, 文本)的第一个参数必须是逻辑序列,第二个参数是价格位置,第三个参数是显示内容。均线周期不当常量写死,是为了后面调参方便——把5/10/20换成参数名之后,改一次参数面板就全部生效。
2.3 参数面板、跨周期引用与未来函数这条红线
文华财经的参数不是写在代码里,而是在公式编辑器旁边的参数页里逐条填「名称、最小值、最大值、默认值」。填完之后,代码里直接用参数名即可,比如参数名写成N1,代码里就写MA(C,N1)。默认值决定你第一次打开图表看到什么,最小值最大值决定别人拿到这份公式后能调到多离谱,建议把范围收窄,避免有人把快线周期调成 1 之后得到一个满屏噪声的指标。
跨周期引用是另一个容易翻车的地方。常见的做法是用C#DAY这类写法取日线收盘,把大周期方向和小周期入场拼在同一个公式里。周期代号在不同版本里不完全一致,敲完之后看编辑器有没有报错,没报错再去图表上验证数值是否和对应周期对得上。
注意:
ZIG、PEAK、TROUGH这类基于转折点回溯的函数,以及REF(X,-N)这种取未来 N 根数据的写法,都会让历史信号事后变漂亮、实时信号当场漂移。一份文档里的指标如果用到它们,先判断它到底是「交易信号」还是「事后标注」,不要直接拿去做盘中提醒。
3. 把 .doc 里的自然语言逐句翻译成可执行的文华公式
一份写得再含糊的指标文档,通常也能拆出三到五类信息:状态描述、触发条件、过滤条件、显示方式。翻译的过程就是把这四类信息分别映射到麦语言的不同语法结构上,缺哪一类都要回头去找作者原话,而不是自己脑补。
3.1 拆句规则:一句话拆成几个原子条件
以「价格站上三根均线且量能放大,回调不破前低时进场」为例,这句话里其实藏了四个独立判断。拆句的原则是每个原子条件只包含一个可比较的量,拆完再去组合。
| .doc 里的原话 | 拆出的原子条件 | 麦语言写法 |
|---|---|---|
| 价格站上三根均线 | 收盘价同时大于三条均线 | C>MA1 AND C>MA2 AND C>MA3 |
| 量能放大 | 成交量超过 N 周期均量的阈值倍 | V/MA(V,20)>=SAT_TH |
| 回调不破前低 | 最低价高于上一个分形低点 | L>REF(LOWP,BARSLAST(LOWP<>REF(LOWP,1))) |
| 时进场 | 上述条件在同一根 K 线上同时成立 | 用AND串起来 |
拆完之后先别急着加DRAWTEXT,把每个原子条件单独输出成数值观察几天,确认它的取值区间和常识一致——比如成交量条件在某些品种上会长期大于 1,那就是单位口径的问题,不是逻辑问题。
3.2 量能饱和度圆圈 1.00 指标公式的写法
量能饱和度是文档里最常出现的自造名词,本质就是「当前量能相对某个基准的倍数」,基准取近 N 根均量是最省事也最稳的做法。圆圈标记则用画图标函数实现。
// 量能饱和度:当前量相对近 20 根均量的倍数 VMA:=MA(V,20); SAT:V/VMA,NODRAW; // 饱和度数值,只显示值不画线 // 达到 1.00 倍时,在最高价上方画图标提示 DRAWICON(SAT>=1.00,H*1.005,1); // 想同时看到 1.00 这条基准线,可以单独输出一条水平参考 BASE:1.00,COLORGRAY,DOTLINE;逻辑说明:SAT是逐根计算的比值序列,DRAWICON(条件, 位置, 图标号)在条件为真的好那根 K 线上、指定价格位置打一个图标。把阈值写进判断而不是画进曲线,是为了后面能把它变成一个可调参数SAT_TH,默认 1.00,允许在 0.8 到 1.5 之间调。
参数说明:V是成交量序列;NODRAW让SAT只以数值形式出现在鼠标提示里,不占用副图空间;DOTLINE是虚线线型,和COLORGRAY一起使用时能明显区别于信号线。图标编号在不同终端上对应的形状不完全一致,改完之后先在图表上看一眼实际效果。
注意:不同品种的成交量单位口径不一致,有的按单边算,有的按双边算,也可能存在手与股的换算差异。同一份公式在螺纹钢和股指上跑出来的饱和度数值量级可能差一倍,阈值必须按品种分别校准。
3.3 分形指标高低点:REF 取负值与重绘风险
分形指标的判定逻辑是拿当前 K 线跟左右各两根比较,常见写法如下。
// 分形高低点:以当前K线为中心,左右各两根 UPF:=H>REF(H,1) AND H>REF(H,2) AND H>REF(H,-1) AND H>REF(H,-2); DOWNF:=L<REF(L,1) AND L<REF(L,2) AND L<REF(L,-1) AND L<REF(L,-2); DRAWICON(UPF,H*1.003,2); DRAWICON(DOWNF,L*0.997,3);逻辑说明:前两个条件比较的是历史两根,后两个条件比较的是未来两根,也就是REF(H,-1)和REF(H,-2)。这意味着一根 K 线是不是分形高点,要等它后面两根走完才能确定。图表上看历史分形非常干净漂亮,实盘里最后一根永远在变,今天标出来的高点到明天可能就消失了。
参数说明:REF(X,N)的 N 为正表示往前取 N 根,为负表示往后取 N 根;UPF、DOWNF都是中间变量,末尾没有画线修饰符。如果策略里要用分形低点做止损参考,建议把判定条件整体往前平移两根,用「已经确认的分形」而不是「正在形成的分形」。
4. 参数化与信号过滤:让高手指标在期货实盘里可调可用
拿到一份能跑出信号的公式,离能用的指标还差两步:参数得有合理区间,信号得去重。这两步不做,回测看着漂亮,实盘就会被频繁的重复提示拖垮。
4.1 参数区间怎么定:周期、阈值、确认根数
参数不是拍脑袋填的,每个参数对应一个明确的物理含义,区间就该围绕这个含义来收。下面这张表是三均线加量能过滤这套结构里最常出现的几个参数。
| 参数 | 含义 | 建议区间 | 默认值 | 取值的后果 |
|---|---|---|---|---|
| N1 | 快线周期 | 3 ~ 8 | 5 | 太小噪声密集,太大失去灵敏度 |
| N2 | 中线周期 | 8 ~ 15 | 10 | 与 N1 太近会频繁交叉 |
| N3 | 慢线周期 | 20 ~ 60 | 20 | 决定趋势过滤的严格程度 |
| SAT_TH | 量能饱和度阈值 | 0.8 ~ 1.5 | 1.00 | 过低遍地信号,过高长期无信号 |
| KEEP | 信号保留根数 | 1 ~ 5 | 3 | 决定同一波行情提示几次 |
参数填好之后,代码里就要用参数名替换硬编码的常数,否则调参面板只是摆设。改完的写法是MA1:MA(C,N1),配合面板里的最小值和最大值约束,能挡住绝大多数误操作。
4.2 用 CROSS、BARSLAST、FILTER 压掉重复信号
一波行情连续提示五六次,是文档指标最常见的毛病,因为文档只写了「出现信号时进场」,没写「信号只报一次」。麦语言里FILTER(X,N)的意思是:条件成立后 N 根 K 线内不再输出信号。配上量能和趋势过滤,可以写成这样。
// 三均线 + 量能 + 趋势过滤,并做信号去重 RAW:=CROSS(MA1,MA2) AND MA1>MA3; // 金叉且快线已在慢线上方 WITHVOL:=RAW AND V/MA(V,20)>=SAT_TH; // 叠加量能确认 TREND:=WITHVOL AND C>MA(C,N3); // 叠加收盘价位置确认 ONLY:=FILTER(TREND,KEEP); // KEEP 根内只保留第一个信号 DRAWICON(ONLY,L*0.995,1); DRAWTEXT(ONLY,L*0.990,'入场'),COLORRED; // 顺便记录距上次信号过了几根K线,便于复盘 LASTN:BARSLAST(ONLY),NODRAW;逻辑说明:RAW负责形态,WITHVOL负责量能,TREND负责大方向,三层递进式过滤,每一层都可以单独输出验证贡献度。FILTER放在最后,避免把前面的中间条件也一起压掉。BARSLAST(ONLY)返回上一次信号成立到当前的 K 线数,复盘时用它统计信号间隔,能直观看出参数是不是把节奏压得太死。
参数说明:CROSS只在穿越那一根为真,本身不会连续成立,重复提示通常来自后面的组合条件;FILTER的第二个参数就是面板里的KEEP;BARSLAST的返回值在从未出现过信号时是一个很大的数,参与判断前记得加边界处理。
4.3 图表对齐与 K 线回放:确认信号没跑偏
公式写完之后必须做一次回放验证,光看历史图上的箭头是不够的。文华财经里常见做法是用 K 线回放逐根推进,重点观察三件事:同一根 K 线上图标是否出现又消失、信号出现的位置是否晚于文档描述的入场点、参数调到区间边界时信号数量是否发生断崖式变化。第三点尤其关键,如果只把慢线周期从 20 调到 21,信号数量就少了一半,说明系统处在一个非常脆弱的参数点上,实盘换个品种大概率失效。
图表上的另一个常见偏差是复权设置。同一份公式在复权和不复权的数据上跑,均线位置会整体偏移,跨月合约尤其明显。验证时固定一种复权口径,并且和后面回测用的口径保持一致,否则前面调出来的参数字等于白调。
5. 文华财经指标公式跨平台迁移与排错清单
同一份指标公式经常要在文华财经、通达信、同花顺期货通之间来回搬。三家的语法骨架高度相似,但细节差异足以让一个能跑的公式在另一个平台上报错或者静默失效,迁移前先对照下表确认一遍能省不少时间。
5.1 文华、通达信、同花顺期货通的写法差异
| 功能 | 文华财经 | 通达信 | 同花顺期货通 |
|---|---|---|---|
| 均线 | MA(C,N) | MA(C,N) | MA(C,N) |
| 交叉判断 | CROSS(A,B) | CROSS(A,B) | CROSS(A,B) |
| 输出与赋值 | A:/A:= | A:/A:= | 同左 |
| 画图标 | DRAWICON | DRAWICON | 常见做法是DRAWICON |
| 跨周期取数 | C#DAY | C#DAY | 视版本而定 |
| 不画线输出 | NODRAW | NODRAW | 部分版本支持 |
| 信号去重 | FILTER(X,N) | FILTER(X,N) | 需实测 |
迁移时最容易出问题的是三类函数:画图类(图标编号含义不同,形状对不上)、跨周期类(周期代号写法不同)、统计类(部分版本缺少BARSLAST的同名实现)。做法是先把公式里的条件逻辑单独剥出来,只保留MA、CROSS、REF这几个通用函数,确认条件本身没写错,再逐个把画图部分贴回去。
5.2 三个高频故障的定位顺序
按下面的顺序排查,基本能在十分钟内定位到问题区间。
第一步,确认条件不是恒假。把所有中间条件改成带冒号的输出加NODRAW,看数值序列。如果某个条件从头到尾都是 0,问题在它的比较逻辑或者参数默认值上——参数面板填了默认值 0 是最常见的原因。
第二步,确认没有未来函数在捣乱。把公式里所有REF(X,-N)、ZIG、PEAK找出来,临时替换成只取历史数据的等价写法,看信号是否还成立。不成立就说明原公式依赖了未来信息,不能用于盘中提醒。
第三步,确认单位与复权口径。成交量、持仓量的单位在不同品种、不同终端上不一致,比值类指标的分母要跟着换。复权设置不一致则会让价格类条件的成立位置整体平移,这类偏差在图上看起来不明显,在统计信号数量时却很致命。
最后分享一个实用技巧:把DRAWICON改成三层提醒结构——图表上保留图标负责复盘,DRAWTEXT负责看清方向文字,再配一个条件选股或条件预警把同一份逻辑挂到盘中扫描。三层用的是同一份条件代码,任何一层出问题都能用另外两层交叉验证,比盯着一个箭头反复怀疑人生高效得多。
本文还有配套的精品资源,点击获取