filter函数通达信:通达信filter函数,用法详解与实战技巧
在通达信软件中,filter 函数是一个非常实用且强大的工具,尤其在编写自定义指标、选股公式和条件选股时频繁使用,它的主要作用是将条件判断的结果转换为二进制逻辑值(0 或 1),从而实现对数据的筛选和过滤,本文将详细解析 filter 函数的语法、应用场景及实战案例,帮助你更高效地使用通达信进行技术分析。
filter 函数的基本语法
filter 函数的语法结构如下:
filter(条件表达式, 逻辑值)
- 条件表达式:可以是任何返回布尔值(
true或false)的表达式,通达信中通常用 定义变量,再通过比较运算符(如>、<、 等)构建条件。 - 逻辑值:可选参数,用于指定当条件为真时返回的值(默认为 1,假则为 0),如果不指定,则默认返回 1 或 0。
示例:
A := C > 10; // 定义变量 A,当收盘价大于 10 时为真 B := filter(A, 1); // 将 A 转换为 filter 函数,返回 1 或 0
filter 函数的作用与优势
逻辑值转换
filter函数将布尔值(true/false)转换为数值(1/0),便于后续计算或条件判断。连续性处理
在通达信中,某些条件可能连续多日满足,但filter函数可以确保条件只在满足的那一天返回 1,其余为 0,避免逻辑混乱。条件叠加
可以通过filter函数将多个条件进行“与”或“或”运算,实现复杂的选股逻辑。
实战案例
案例 1:股价突破年线选股

假设我们要筛选出股价突破 5 日均线的股票,公式如下:
MA5 := MA(CLOSE, 5); // 计算 5 日均线 突破 := C > MA5; // 收盘价大于均线,条件为真 选股条件 := filter(突破, 1); // 转换为 filter 函数 选股条件
案例 2:连续三日上涨
筛选出连续三日收盘价上涨的股票:
上涨 := C > REF(C, 1); // 当日收盘价大于昨日收盘价 连续上涨3日 := filter(上涨, 3); // 连续三日满足条件 选股条件 := 连续上涨3日 > 0; // 判断是否满足条件 选股条件
案例 3:成交量异常放大

筛选出成交量较前一日放大 1.5 倍以上的股票:
VOL := V; // 当日成交量 REFVOL := REF(V, 1); // 昨日成交量 异常放量 := VOL / REFVOL > 1.5; 选股条件 := filter(异常放量, 1); 选股条件
常见问题与技巧
filter与BARSLAST的结合使用
可以通过filter函数计算条件满足后的持续时间,条件满足 := filter(C > 10, 1); 持续时间 := BARSLAST(条件满足);
避免重复选股
在选股公式中,使用filter函数可以避免同一只股票在多日满足条件时重复出现。与
WINNER函数结合filter可以与WINNER(预测未来买入意愿)结合,筛选出主力资金关注的股票:主力关注 := filter(WINNER(CLOSE) > 0.2, 1); 主力关注
filter 函数是通达信公式编写中的核心工具之一,它不仅能简化逻辑判断,还能有效处理连续性条件,掌握 filter 的用法,可以让你在技术分析、选股和指标开发中更加得心应手,希望本文能帮助你更好地理解和应用 filter 函数,提升你的股票分析效率!
互动话题:
你有没有在使用 filter 函数时遇到过什么难题?欢迎在评论区留言交流!
文章已关闭评论!










