
通达信公式语法指南
通达信是一款广泛使用的股票分析软件,它允许用户通过编写自定义的公式来进行高级的技术分析和策略制定。以下是一份详细的通达信公式语法指南,旨在帮助用户更好地理解和使用这一功能。
一、基本语法规则
变量命名:
- 变量名必须以字母开头,可以包含字母、数字和下划线(_)。
- 避免使用通达信的内置函数名作为变量名。
运算符:
- 算术运算符:+、-、*、/、%(取余)
- 关系运算符:>、<、>=、<=、=、<>(不等于)
- 逻辑运算符:AND、OR、NOT
括号:
- 使用圆括号()来明确运算顺序。
赋值语句:
- 在公式中可以使用“:=”进行赋值操作。
注释:
- 使用双斜杠“//”添加单行注释。
- 多行注释可以使用/* ... */格式。
二、常用函数
数学函数:
- ABS(x):返回x的绝对值。
- MAX(a, b):返回a和b中的较大值。
- MIN(a, b):返回a和b中的较小值。
- SQRT(x):返回x的平方根。
- POW(x, y):返回x的y次幂。
统计函数:
- AVG(array):计算数组的平均值。
- SUM(array):计算数组的总和。
- STDDEV(array):计算数组的标准差。
时间函数:
- DATE:返回当前日期的序列号。
- YEAR(date):从日期中提取年份。
- MONTH(date):从日期中提取月份。
- DAY(date):从日期中提取日。
引用函数:
- REF(X, N):引用N周期前的X值。
- HIGH(N):返回过去N个周期内的最高价。
- LOW(N):返回过去N个周期内的最低价。
- CLOSE(N):返回过去N个周期的收盘价。
- VOL(N):返回过去N个周期的成交量。
三、条件判断与循环
IF语句:
IF(condition, trueValue, falseValue)WHILE循环: 通达信中不支持直接的WHILE循环,但可以通过递归或多次调用公式的方式实现类似效果。
FOR循环: 同样地,通达信也不支持FOR循环的直接写法,但可以借助其他方法模拟循环逻辑。
四、公式编写示例
简单均线公式:
MA5:MA(CLOSE, 5); // 计算5日均线 MA10:MA(CLOSE, 10); // 计算10日均线带条件的买卖信号:
BUY := CLOSE > REF(HIGH, 10) AND VOL > REF(VOL, 10); // 当收盘价高于10天前最高价且成交量大于10天前成交量时发出买入信号 SELL := CLOSE < REF(LOW, 5) AND VOL < REF(VOL, 5); // 当收盘价低于5天前最低价且成交量小于5天前成交量时发出卖出信号MACD指标:
DIFF := EMA(CLOSE, 12) - EMA(CLOSE, 26); DEA := EMA(DIFF, 9); MACD := (DIFF - DEA) * 2;
五、注意事项
- 确保公式的语法正确,避免遗漏分号或其他必要的符号。
- 在测试新公式时,最好先在历史数据上进行回测,以验证其有效性。
- 注意公式的计算效率和性能,避免使用过于复杂的表达式导致软件运行缓慢。
通过以上指南,您可以开始编写自己的通达信公式,用于更深入地分析市场趋势和制定交易策略。随着经验的积累,您将能够不断优化和完善您的公式,提高投资分析的准确性和效率。
