在股票交易的世界中,信息就是金钱。虽然市面上有许多现成的指标,但往往滞后或过于通用。掌握通达信选股公式怎么写,意味着你能够将自己的交易策略转化为具体的代码,从而实现自动化选股和预警。这不仅提高了交易效率,更能帮助投资者克服人性弱点,严格执行纪律。
许多新手投资者在面对通达信公式编辑器时感到困惑,不知道从何下手。本指南将从最基础的逻辑开始,逐步深入,通过大量的示例和解析,帮助你彻底理解通达信选股公式怎么写的核心奥义。
无需人工逐一查看K线,一键筛选出符合特定条件的股票,如“金叉”、“放量突破”等。
通过编写公式,你可以对历史数据进行回测,验证策略的有效性,避免盲目实盘。
根据你的风险偏好和交易风格,定制独一无二的选股指标,如“低位企稳”、“主力吸筹”等。
要写好一个公式,首先必须理解其基本构成。通达信选股公式怎么写并非简单的数学计算,而是逻辑条件的组合。一个标准的选股公式通常由变量定义、条件判断和输出信号三部分组成。
在通达信中,你可以使用任意字母或中文作为变量名。例如,MA5 := MA(CLOSE, 5); 定义了一个名为MA5的变量,其值为收盘价5日移动平均线。注意,:=表示赋值但不输出,:表示赋值且输出。
通达信内置了丰富的函数库,这是编写公式的基础工具:
将多个条件组合在一起时,需要用到逻辑运算符:
&):同时满足。|):满足其一即可。!):取反。| 函数/符号 | 含义 | 示例 |
|---|---|---|
| CROSS | 交叉 | CROSS(MA5, MA10) 表示5日均线上穿10日均线 |
| REF | 引用历史 | REF(CLOSE, 1) 表示昨收 |
| AND | 且 | CLOSE > MA5 AND VOL > MA(VOL, 5) |
| IF | 条件判断 | IF(CLOSE>OPEN, 1, 0) 收阳为1,收阴为0 |
理论结合实践是掌握通达信选股公式怎么写的最佳途径。以下我们提供三个不同难度的实战案例,涵盖从简单到复杂的逻辑。
这是最经典的选股策略之一,适用于趋势跟踪。当短期均线上穿长期均线时,视为买入信号。
{均线金叉选股公式}
MA5 := MA(CLOSE, 5);
MA10 := MA(CLOSE, 10);
MA20 := MA(CLOSE, 20);
{定义金叉条件}
GOLDEN_CROSS := CROSS(MA5, MA10);
{输出选股信号}
XG: GOLDEN_CROSS;
解析:首先计算5日、10日和20日的移动平均线。然后使用CROSS函数判断5日均线是否从下方穿过10日均线。如果满足条件,XG变量返回1,通达信即可选出该股票。
价格突破往往伴随成交量的放大,这是主力资金介入的典型特征。此公式筛选股价突破20日均线且成交量大于5日均量1.5倍的股票。
{放量突破选股公式}
MA20 := MA(CLOSE, 20);
MAVOL5 := MA(VOL, 5);
MAVOL20 := MA(VOL, 20);
{价格突破20日线}
PRICE_BREAK := CLOSE > MA20 AND REF(CLOSE, 1) <= REF(MA20, 1);
{成交量放大:今日量大于5日均量的1.5倍}
VOL_INCREASE := VOL > MAVOL5 1.5;
{综合条件:价格突破 且 放量}
XG: PRICE_BREAK AND VOL_INCREASE;
解析:引入了REF函数比较今日和昨日的价格与均线关系,确保是“突破”而非“已在上方”。同时引入成交量判断,过滤掉无量空涨的假突破。
此公式结合KDJ指标和RSI指标,寻找超卖后的反弹机会。适用于短线抄底策略。
{底部企稳选股公式}
{计算KDJ}
RSV := (CLOSE - LLV(LOW, 9)) / (HHV(HIGH, 9) - LLV(LOW, 9)) 100;
K := SMA(RSV, 3, 1);
D := SMA(K, 3, 1);
J := 3 K - 2 D;
{计算RSI}
RSI6 := SMA(MAX(CLOSE - REF(CLOSE, 1), 0), 6, 1) / SMA(ABS(CLOSE - REF(CLOSE, 1)), 6, 1) 100;
{条件1:KDJ低位金叉}
KDJ_JC := CROSS(K, D) AND K < 50;
{条件2:RSI未超买}
RSI_NORMAL := RSI6 < 50;
{条件3:股价小幅反弹}
REBOUND := CLOSE > REF(CLOSE, 1);
{综合输出}
XG: KDJ_JC AND RSI_NORMAL AND REBOUND;
解析:这是一个多指标共振的策略。不仅要求KDJ低位金叉,还要求RSI处于中性偏低位,且当日股价必须上涨,确保反弹的有效性。
当掌握了基础语法后,如何让你的公式更精准、更高效?以下是一些进阶技巧。
有时我们只想在特定板块(如“创业板”或“沪深300”)内选股。可以使用FINANCE函数或自定义板块条件。例如,筛选股价大于20元的股票:PRICE_FILTER := CLOSE > 20;。
为了规避风险,通常需要在选股公式中排除ST股。可以使用NAMELIKE函数:NOT(NAMELIKE('S') OR NAMELIKE('S'));。
在编写复杂公式时,避免重复计算。将常用的中间变量定义为局部变量,可以显著提高公式运行速度。例如,不要多次调用MA(CLOSE, 5),而是先定义MA5 := MA(CLOSE, 5);,然后在后续逻辑中使用MA5。
在纸上画出你的交易策略,明确买入和卖出的具体条件。例如:5日均线上穿10日均线,且成交量放大。
将文字逻辑转化为通达信函数。如“上穿”对应CROSS,“成交量”对应VOL。
在公式编辑器中输入代码,注意变量命名清晰,注释详细。
使用“测试公式”功能检查语法错误。然后使用“选股器”进行历史回测,观察选股结果是否符合预期。
A: XG是“选股”的拼音缩写。在条件选股公式中,通常将最终满足选股条件的变量命名为XG,通达信会自动识别该变量为选股信号。如果变量名不是XG,需要在公式设置中指定输出变量。
A: 可能有以下几个原因:1. 条件过于苛刻,同时满足多个条件的股票极少;2. 逻辑错误,如使用了错误的比较符号;3. 数据问题,当前市场确实没有符合该条件的股票。建议逐步简化条件进行测试。
A: 通达信主要依赖内部行情数据。如果需要外部数据(如财务数据、新闻情绪),通常需要通过“扩展数据”功能或外挂程序实现,标准公式语法不支持直接读取外部文本文件。
A: 支持。可以使用FOR...NEXT语句进行循环。但需注意,循环次数不宜过多,以免影响选股速度。例如:FOR I := 1 TO 10; ... NEXT;