通达信指标公式编写教程-高级.doc

[复制链接]
查看138 | 回复0 | 2024-12-21 15:40:34 | 显示全部楼层 |阅读模式
公式系统(高级)


1. 特殊公式脚本编写
要编写一个公式,必须要明确这个公式对应的理论知识。一套完整的理论知识且能在通达信的公式平台上做成公式还要满足如下要求:
1.        从该理论应能分析出公式启动的起始数据。如股票的开高低收价格、成交量、各财务数据、各即时数据、时间数据、一些常见的技术分析概念、其他理论的结果等,这些数据大部分是系统提供的,而最后两项则要从其他公式中得来也就是对应于公式编写中的指标引用操作(当然在这公式编写前要确保该要引用的指标已实现)。
2.        从理论中应能分析出起始数据到结果的明确运算过程。在公式平台中提供了一些系统函数,这些函数包含了部分常用的运算过程(如HHV(X,N) 可求N周期内X最高值)。如果理论中的运算过程拆解完全后,能由公式平台中的函数及允许的基本运算全部组成就可以编写成公式了。

在之前的学习当中,我们已经对公式系统、公式脚本编辑有了基本的认识。公式系统提供给我们的基本函数、系统公式,就是我们运用公式系统编写自己的公式时的基本元素。对于一些常见的技术分析概念的编写在上一章节已经给出了介绍和示例,本章节主要来介绍一下在公式脚本编写如果用系统函数及基本运算来解决一些特殊难题。

1.1在分钟周期下划分交易日

1. 均线(分钟):

指标名称:均线(分钟)
指标原理:均价=累加自当日开市到当前K线时间内的成交金额/累加自当日开市到当前K线时间内的成交量。
编写分析:
1.确定交易日内第一根K线的位置(难点);
        2.自1中确定的位置累加成交金额、成交量(由系统函数SUM实现);
        3.由成交金额、成交量求均价(由除法操作符实现)。
公式脚本:
FIRST:=IF(PERIOD=0,HOUR=9 AND MINUTE=31,
IF(PERIOD=1,HOUR=9 AND MINUTE=35,
IF(PERIOD=2,HOUR=9 AND MINUTE=45,
IF(PERIOD=3,HOUR=10 AND MINUTE=0,
IF(PERIOD=4,HOUR=10 AND MINUTE=30,0)))));
SUM(AMO,BARSLAST(FIRST)+1)/SUM(VOL,BARSLAST(FIRST)+1);

上面的公式适用于1分钟,5分钟,15分钟,30分钟,60分钟等五个周期下。将给出每个交易日中各周期下均线的走势。公式脚本编写中的重点就是First变量的确定,这也是这段脚本的亮点。First变量表示的是当日当前周期的第一根K线位置,是通过IF函数的嵌套使用结合各分钟周期的第一根K线的时间得来的。

1.2 跨周期引用数据
在同一个公式脚本中,所有变量的数据周期都是相同的,就是调用公式时设置的周期。在公式脚本中要用其它周期的数据,共有两种方式:

1)        对变量用变周期符号(#),改变其周期。这种方式有局限性,只能在小周期公式中得到大周期数据,且仅适用于一些基本数据,如close,high,low,open等。
示例脚本:
日最高价:H;
周最高价:H#WEEK;
运行示例:

2)        在公式脚本中调用其它公式以取得其它周期的数据。调用其它公式,并用#设置其周期。如,公式脚本在日线下运行时,可用Kdj.k#week;来获得kdj在周线下的k值,另属于于同一周线的日线将获得相同的K值。
示例脚本:
公式1:
公式名称:JBSJ
公式描述:基本数据
公式脚本:
JC:C;{当前周期收盘价}
JH:H;{当前周期最高价}
JL:L;{当前周期最低价}
JO:O;{当前周期开盘价}
JYC:REF(C,1);{前一个周期收盘价}

 

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则