第一篇——为什么要学编写通达信指标公式(从零起步编写通达信指标公式系列)
内容提要
了解什么是指标公式以及为什么要学编写指标公式
一、什么是指标公式?
指标公式是通达信、同花顺、大智慧等软件内置的一种公式编程语言,主要用于编写股票、期货市场的技术指标、选股公式、交易系统等功能。指标公式具有简单易学、功能强大、使用灵活等特点,它提供了丰富的函数和指标库,比如常见的MA均线、MACD、KDJ、RSI、BOLL等指标,以及常用的数学、逻辑、字符串等函数。投资者可以根据自己的需求和习惯来自定义变量和函数对其进行扩展,也可以用于实现自己的交易策略。
- 技术指标画图: 通过对数据采取一定的运算,将技术指标输出结果直观的显现在分析图上,方便投资者研判行情
- 条件选股: 利用条件选股公式可以把符合一定技术形态的个股选出来,输出目标个股列表
- 交易系统: 用于指示买入点、卖出点。符合要求的指标公式,还可以用来进行回测
- 五彩k线:将满足条件的连续K线形态赋予颜色,区别于其它的K线颜色
有朋友估计想问了, 既然已经有了python,为什么还要了解指标公式?原因主要有:
- 通达信、同花顺、大智慧、东方财富、文华等众多软件都支持指标公式
- 网上有大量优秀的策略是用指标公式来实现的,了解后可以更加方便学习交流
- 相比python,指标公式会更简单直接很多,适合没有编程基础的朋友
- 一些量化系统也支持直接调用指标公式来进行量化交易,比如qmt等
为了方便用户使用,通达信、同花顺、大智慧、东方财富、文华等支持的指标公式都差不了多少, 下面以通达信公式为例进行说明。 通达信公式系统提供了很多可以在策略中调用的函数,其支持的函数分类包括行情函数、财务函数、计算函数、交易函数和其他函数几大类。
具体分类如下:
- 序列行情函数: 如HIGH/H表示最高价
- 即时行情函数:如DYNAINFO(28) 表示买一价
- 资金流向函数:如TRADENUM表示总成交单数
- 形态函数: 如COST(10)表示10%获利盘的价格是多少
- 板块函数: 如CODE返回品种代码
- 指数标的函数:如INDEXA表示大盘的成交额
- 专业财务函数:如FINVALUE表示专业财务数据(序列)
- 关联财务函数:如FINANCE(1)表示总股本(万股)
- 逻辑函数: 如CROSS(A,B) 表示当A从下方向上穿过B时返回1,否则返回0;
- 选择函数:如IF表示条件判断
- 数学函数: 如COS(X)返回X的余弦值,MAX表示求最大值
- 统计函数: 如STD(X,N)返回估算标准差
- 操作符函数: 如+、-、*等
- 交易信号函数:如BUY表示买入开仓
- 账号函数:如TOTALPOSITION表示总持仓
- 时间函数: 如DATE表示日期
- 引用函数: 如COUNT(X,N)表示统计满足条件的周期数; REF(X,A)表示引用A周期前的X值
- 绘图函数: 如DRAWKLINE 绘制K线
- 线形和颜色属性: 如COLORBLUE 画蓝色
指标公式示例
以均线多头排列指标公式为示例说明。均线多头排列是指从短周期到长周期均线,从上而下的依次排列,下面是代码实现,代码里面每行分号后面的是注释, 使用{ 我是注释 }来实现。 注意:同花顺公式注释方法不同,需要使用//注释
AA:=MA(CLOSE,5); {短周期均线}
BB:=MA(CLOSE,10); {中周期均线}
CC:=MA(CLOSE,30); {长周期均线}
T1:=AA>BB AND BB>CC; {中周期均线大于短周期均线 且 长周期均线大于中周期均线}
COUNT(T1,4)=4; {COUNT(X,N)表示统计在N天内满足条件X的有几天}
可以看出来,指标公式实现的均线多头排列是非常简单的。 执行后过一会就能看到选股结果了,点第一个结果进去看确实是均线连续4天多头排列,结果符合预期。
二、为什么要学编写通达信指标呢?
编写通达信指标可以解决投资过程中的一些问题:
1、通达信自带的指标可能不能满足自己的要求,通过对指标进行改编,可以实现更多功能。比如加入颜色、醒目的提示甚至声音提醒等。
2、网上下载的指标或者复制的指标公式,只知道大概的功能,但是不知道指标的具体原理。学会了编写指标,可以读懂代码的逻辑,发现其中的是否存在漏洞或者错误,并可以吸收消化交易方法。
3、别人的指标公式不一定符合自己的交易理念、交易习惯,这样就不可能有效执行交易信号。可以通过学习消化,打造属于自己的指标体系。
4、学会了编写指标,可以把指标公式改写成选股公式。先粗选大体符合自己要求的股票,然后再人工分析,毕竟全市场四千多只股票,全部分析一遍会很耗时间。
5、可以对历史行情进行回测,通过分析收益、亏损、胜率、盈亏比等评测指标,评估指标是否有效。
6、通过编写通达信指标,能够加深对指标的认识,更好地利用指标。有些书上讲怎样根据指标信号买入卖出,但是却不讲指标背后的原理。单纯按照书上讲的方法来操作,可能结果不如人意。学会了编写指标,从指标的逻辑出发,可以更好的用来判断行情。
三、编写通达信指标难吗?
编写通达信指标有一定的难度,但也不是非常难。为什么怎么说呢?因为通达信的编程语言很多函数都是封装好的,相当于模块化了。就像盖房子,如果让你用砖、水泥、沙子直接去砌墙盖房子,那难度太大了。不过现在有装配式建筑,墙板、阳台、预制板等都是在工厂造好了,运到工地就可以组装,这样难度就大大降低。通达信编写指标公式就相当于装配式建筑。
编写指标肯定需要花时间和精力去学习,并且通过一些练习掌握函数的使用方法,这样才能熟练使用。经常使用的函数也就三四十个,初期记不住,可以使用通达信自带的函数库,根据分类查找或者搜索使用。
四、举例
下面介绍两个简单的例子,看看编写指标可以实现哪些功能。为了方便展示,只以技术指标为例。作为初学者,下面的公式代码可能看不懂,先不管,后面会讲到的。
1、变色均线:60日均线向上的时候红色,拐头向下的时候变为绿色。
MA60:MA(C,60),COLORRED,LINETHICK2;
IF(MA60>=REF(MA60,1),MA60,DRAWNULL),COLORRED,LINETHICK2;
IF(MA60<REF(MA60,1),MA60,DRAWNULL),COLORGREEN,LINETHICK2;
2、变色K线:收盘价在60日均线上方时,画K线为阳线;收盘价在60日均线下方时,画K线为阴线。
MA60:MA(C,60);
STICKLINE(C>=MA60,H,L,0,1),COLORRED;
STICKLINE(C<MA60,H,L,0,0),COLORFFFF00;
STICKLINE(C>=MA60,C,O,3,1),COLORRED;
STICKLINE(C<MA60,C,O,3,0),COLORFFFF00;
其实变色K线有更简单的写法,那就是使用五彩K线公式。上面用技术指标写了五条语句,而五彩K线公式一句就可以解决。不过因为五彩K线公式只有1个输出,均线需要另外叠加技术指标。此外K线空心还是实心也有区别。
五彩K线公式变色K线代码:
BSKX:C>=MA(C,60);
五、最后说一句
其实编写指标不是最难的,难的是选股的思路、交易的方法,这关系到能不能盈利,不是轻轻松松就能学会的。
本文来自技术Pie
关注博主,学习更多通达信指标公式编写知识。