简介:这份文档收录了一套文华财经期货软件指标公式,由一位资深期货交易者编写,面向使用文华财经平台、希望借助程序化指标辅助研判行情的期货投资者与量化爱好者。文件为单个doc文档,压缩包约58KB,内容以公式源码与逻辑注释为主,可直接导入软件进行编译与调试。从节选代码看,公式围绕局部高低点预选、缺口判断、距前高天与距前低天、小值周期与大值周期等变量层层递进,构建低保留、高保留、预判与判断等信号,用于识别趋势转折与关键支撑压力位,逻辑结构完整,适合研究其算法思路并二次修改。目前已有133人学习下载,可作为学习文华公式编写、理解高低点识别与信号过滤机制的参考素材,帮助读者在实盘中验证并优化自己的交易策略。
1. 一份把“局部高低点”写进公式的文档:它到底在算什么
如果你做期货日内或者波段,大概率经历过这种场景:行情走完一段,回头看图上那些转折点清清楚楚,可盘中就是抓不住。这份文档里的指标公式,核心目标只有一个——把“局部高点”和“局部低点”用可复现的规则标出来,而不是靠眼睛去猜。它基于文华财经的公式语法,用BACKSET、BARSLAST、LLV、HHV这些函数,把高低点的确认、缺口判断、保留逻辑串成一条链。适合谁?适合已经能看懂基础公式、想研究一套完整转折点识别逻辑的人。它不是拿来直接挂上就能盈利的“圣杯”,而是一份可以拆开、改参数、做二次开发的公式文档。你拿到手,先别急着跑,先看懂它怎么定义“前高”“前低”和“保留”。
2. 拆解公式骨架:从局部预选到极点保留的四层逻辑
2.1 第一层:局部高低点预选,用 BACKSET 做“事后确认”
公式开头那段局部低点预选A和局部高点预选A,是整个体系的起点。它用BACKSET(条件, 4)把满足条件的K线往前标记4根。什么意思?就是当LLV(L,5) < REF(LLV(L,4),1)成立时,说明最近5根的最低价创了新低,于是把当前K线往前数4根都标记为“预选低点”。这不是实时信号,而是等行情走完几根之后才回填的确认逻辑。
{局部低点预选A} A:=BACKSET(LLV(L,5)<REF(LLV(L,4),1),4); {局部低点预选B:找A从0变1的那根} B:=BACKSET(A=0 AND REF(A,1)=1,2); {局部低点预选C:只在B=1且前一根B=0时输出-1} C:=IF(B=1 AND REF(B,1)=0,-1,0);逻辑说明:BACKSET是文华公式里典型的“未来函数”类操作,它会把满足条件的K线往回标记。参数4表示回填4根,2表示回填2根。这里的关键是C只在B从0变1的那一根输出-1,相当于给低点打一个唯一标记。参数怎么改?如果你做更短的周期,可以把LLV(L,5)改成LLV(L,3),回填根数从4改成2,但要注意:回填越短,信号越灵敏,假信号也越多。
2.2 第二层:缺口判断与距离计算,把“前高前低”量化
有了预选高低点,下一步是算“距前高天”和“距前低天”。公式里用BARSLAST(局部高点预选C=1)来统计距离上一次高点标记的K线数。同时引入缺口判断:IF(L>REF(H,1),1,IF(H<REF(L,1),-1,0)),向上跳空记1,向下跳空记-1,没有缺口记0。
{缺口判断} 缺口:=IF(L>REF(H,1),1,IF(H<REF(L,1),-1,0)); {距前高天、距前低天} 距前高:=BARSLAST(局部高点预选C=1); 距前低:=BARSLAST(局部低点预选C=-1); {小值周期、大值周期} 小周期:=LOWRANGE(L); 大周期:=TOPRANGE(H);这里LOWRANGE和TOPRANGE是文华特有的周期函数,分别返回当前K线在近期低点和高点区间中的位置。参数说明:LOWRANGE(L)默认统计最近10根,如果你想拉长到20根,可以写成LOWRANGE(L,20)。这一步的作用是把“前高前低”从抽象概念变成可比较的数值,后面所有保留逻辑都依赖这两个距离。
2.3 第三层:低保留与高保留,用嵌套 IF 做条件过滤
公式最核心的部分是低保留AA、低保留AB、低保留S这一串。它要解决的问题是:预选出来的低点,到底值不值得保留?条件包括:距前高天是否大于距前低天、LLV(L,距前高天+1)是否继续创新低、缺口方向是否配合。只有同时满足,才输出-1表示保留。
{低保留AA:距前高天大于距前低天,且低点继续下移} 低保留AA:=IF(局部低点预选C=-1 AND REF(距前高天,1)>REF(距前低天,1) AND LLV(L,距前高天+1)<REF(LLV(L,距前高天+1),1),-1,0); {低保留AB:距前高天小于等于距前低天,但满足缺口或周期条件} 低保留AB:=IF(局部低点预选C=-1 AND REF(距前高天,1)<=REF(距前低天,1) AND (距前高天>=4 OR LLV(缺口判断,距前高天)=-1 OR LLV(L,距前低天+2)<REF(LLV(L,距前低天+1),1)),-1,0); {低保留S:最终确认,价格必须低于前高对应的价格} 低保留S:=IF((低保留AA=-1 OR 低保留AB=-1) AND L<REF(H,距前高天+1),-1,0);逻辑说明:REF(距前高天,1)是取上一根K线的距离值,避免用当前未完成的数据。LLV(缺口判断,距前高天)是在距离区间内找是否存在向下缺口。参数怎么调?距前高天>=4这个阈值可以改,改成>=3会更宽松,改成>=5更严格。我一般会先用默认值跑一遍,看信号密度,再决定要不要放宽。
2.4 第四层:极点保留与画线,把信号落到图表上
经过前面三层,公式已经能输出高保留和低保留的标记。最后一步是AAAD和极点保留:当高保留和低保留同时出现,且价格突破前高或跌破前低时,输出1或-1。然后用DRAWLINE和DRAWICON把极点连成蓝色线段,并在低点画1号图标、高点画2号图标。
{极点保留:同时满足高保留和低保留,且价格突破} AAAD:=IF(高保留YX=1 AND 低保留YX=-1 AND H>REF(H,REF(距前高天YA,1)+2),1, IF(高保留YX=1 AND 低保留YX=-1 AND L<REF(L,REF(距前低天YA,1)+2),-1,0)); {极点保留:如果AAAD为0,就用高保留+低保留} 极点保留:=IF(AAAD=0,高保留YX+低保留YX,AAAD); {画线} 局部极点:IF(极点保留=-1,L,IF(极点保留=1,H,DRAWNULL)),CIRCLEDOT,COLORYELLOW; DRAWLINE(极点保留=-1,局部极点,极点保留=1,局部极点,0),COLORBLUE; DRAWLINE(极点保留=1,局部极点,极点保留=-1,局部极点,0),COLORBLUE; DRAWICON(极点保留=-1,L-0.03,1); DRAWICON(极点保留=1,H+0.03,2);参数说明:DRAWLINE的最后一个参数0表示线段不延伸,1表示向右延伸。DRAWICON里的L-0.03是图标偏移量,如果你觉得图标离K线太远,可以改成L-0.01。这一步做完,图表上就能看到黄色的极点和蓝色的连线,直观判断转折结构。
3. 把公式装进文华:从新建指标到参数调试的完整步骤
3.1 新建公式并粘贴代码
打开文华财经客户端,进入“公式管理器”,选择“新建指标”,类型选“主图指标”。把文档里的代码整段复制进去,注意去掉多余的空格和换行。文华公式对中文变量名支持没问题,但变量名里不能有空格,比如低保留 AA要写成低保留AA。粘贴后点“测试公式”,如果提示BACKSET未定义,说明你的版本不支持这个函数,需要升级到较新的版本。
{操作路径} 公式管理器 -> 新建 -> 主图指标 -> 粘贴代码 -> 测试公式 -> 保存 {常见报错} 错误1:变量名重复 -> 检查是否有两个同名变量 错误2:括号不匹配 -> 用编辑器的括号匹配功能逐行检查 错误3:函数不支持 -> 确认版本是否支持 BACKSET、LOWRANGE逻辑说明:文华的公式编辑器对语法要求严格,尤其是嵌套IF的括号。我一般会先把代码粘贴到外部编辑器,用括号高亮检查一遍,再贴回去。保存时给公式起个名字,比如“局部极点V1”,方便后续调用。
3.2 参数调试:三个关键阈值
公式里有三个地方需要根据你的交易周期调整。第一个是BACKSET的回填根数,默认是4和2。第二个是距前高天>=4里的阈值4。第三个是HHV(H,120)和LLV(L,120)里的120周期。如果你做的是5分钟短线,120周期就是10小时,差不多两个交易日;如果你做日线,120周期就是半年。
| 参数 | 默认值 | 短线建议 | 中线建议 | 作用 |
|---|---|---|---|---|
| BACKSET回填 | 4/2 | 3/1 | 5/3 | 控制信号灵敏度 |
| 距前高天阈值 | 4 | 3 | 5 | 过滤近端噪音 |
| HHV/LLV周期 | 120 | 60 | 240 | 定义高低点区间 |
调整方法:在公式编辑器里直接改数字,改完点“测试公式”,然后应用到图表上看信号变化。注意,改完参数后历史信号会全部重算,不要被突然增多的信号吓到。
3.3 叠加到主图并观察信号
保存后,在K线图上右键“叠加指标”,选择你刚建的公式。如果信号太多,可以在公式里加一个FILTER函数过滤重复信号,比如FILTER(极点保留=-1,5)表示5根K线内只保留第一个低点信号。这一步是实战中最常用的优化手段。
{过滤重复信号} 极点保留过滤:=FILTER(极点保留=-1,5); DRAWICON(极点保留过滤,L-0.03,1);逻辑说明:FILTER的第一个参数是条件,第二个参数是周期数。参数越大,信号越少。我一般会先用FILTER(...,3)跑一遍,看看信号密度是否合适,再决定要不要加大。
4. 避坑与排查:这份公式文档里最容易翻车的五个地方
4.1 现象:信号忽多忽少,同一段行情两次加载结果不一样
原因:BACKSET是未来函数,它会根据后续K线回填标记。如果你在盘中加载公式,最后一根K线还没走完,回填结果会随价格变化。解决:只在收盘后或者K线走完后再看信号,盘中不要依赖最后一根K线的标记。我一般会在公式里加CURRBARSCOUNT>1来屏蔽最后一根K线的信号。
4.2 现象:图表上只有高点没有低点,或者反过来
原因:高保留和低保留的条件不对称,尤其是距前高天>=4和距前低天>=4这两个阈值。如果行情单边上涨,低点条件很难满足。解决:检查低保留AB里的LLV(缺口判断,距前高天)=-1是否被触发,如果行情没有向下缺口,这个条件永远为假。可以临时把缺口条件去掉,只保留周期条件。
4.3 现象:公式测试通过,但图表上不显示画线
原因:DRAWLINE和DRAWICON需要至少两个极点才能连线。如果当前图表加载的K线数量太少,或者极点保留没有输出1和-1,画线就不会出现。解决:把图表缩放到足够多的K线,至少200根以上。另外检查极点保留是否被AAAD覆盖,如果AAAD一直为0,就用高保留YX+低保留YX的输出。
4.4 现象:变量名冲突导致公式无法保存
原因:文华公式里变量名不能重复,也不能和内置函数同名。比如你定义了MA5,又定义了MA5,就会报错。解决:把所有自定义变量加前缀,比如V_MA5、V_低保留。另外注意中文变量名里不要有空格,低保留 AA要写成低保留AA。
4.5 现象:信号出现后价格继续反向走,止损被打掉
原因:这份公式识别的是“局部极点”,不是“趋势反转”。局部低点出现后,价格可能继续下跌,形成新的低点。解决:不要把极点信号当成入场信号,而是当成结构参考。我一般会结合均线或者成交量过滤,比如只在C>MA(C,20)时关注高点信号,只在C<MA(C,20)时关注低点信号。
5. 进阶用法:把极点信号改成可回测的选股条件
5.1 从画线信号到条件选股
原始公式是主图指标,输出的是画线和图标。如果你想做回测或者选股,需要把极点保留转成条件。比如低点信号出现时,输出1,否则输出0。然后把这个条件放到文华的“条件选股”里,筛选出最近出现低点信号的品种。
{低点信号条件} 低点信号:IF(极点保留=-1,1,0); {高点信号条件} 高点信号:IF(极点保留=1,1,0); {选股条件:最近3根内出现低点信号} 选股:COUNT(低点信号,3)>=1;逻辑说明:COUNT(低点信号,3)>=1表示最近3根K线里至少出现一次低点信号。参数3可以改成5或者10,取决于你的交易频率。注意,选股条件里不能用DRAWICON和DRAWLINE,只能输出数值。
5.2 结合成交量过滤假信号
公式本身没有成交量条件,但实战中极点信号配合缩量更可靠。我一般会加一个V<MA(V,5)的条件,过滤掉放量下跌产生的低点信号。
{缩量低点信号} 缩量低点:IF(极点保留=-1 AND V<MA(V,5),1,0); {放量高点信号} 放量高点:IF(极点保留=1 AND V>MA(V,5),1,0);参数说明:MA(V,5)是5周期均量,你可以改成10周期。缩量条件在震荡市里效果更好,在单边市里可能会漏掉信号。
5.3 验证方法:用历史数据跑一遍
把公式加载到不同品种的日线图上,从最近一年往前翻,统计低点信号出现后5根K线的涨跌情况。如果上涨概率超过55%,说明信号有参考价值;如果低于50%,说明需要调整参数或者加过滤条件。我一般会拿三个品种分别跑,避免过拟合。
| 验证项 | 方法 | 合格标准 |
|---|---|---|
| 信号密度 | 统计每100根K线的信号数 | 5-15个 |
| 方向准确率 | 信号后5根K线涨跌统计 | >55% |
| 最大回撤 | 连续错误信号的最大亏损 | <5% |
5.4 一个我踩过的坑
最早我把这份公式直接挂在5分钟图上跑,信号密密麻麻,一天能出几十个。后来发现BACKSET的回填根数在短周期上太敏感,把4改成6之后信号少了一半,但准确率明显提升。从那以后我每次拿到新公式,都强制先跑一遍不同周期的信号密度统计,再决定用哪个周期。希望这份拆解能帮你少走点弯路,把这份文档里的逻辑真正用起来。
本文还有配套的精品资源,点击获取