官方教程内容
在同一个公式脚本中,所有变量的数据周期都是相同的,就是调用公式时设置的周期。在公式脚本中要用其它周期的数据,共有两种方式:
跨周期引用符号
"#"后可用MIN1,MIN5,MIN15,MIN30,MIN60,DAY,WEEK,MONTH,SEASON,YEAR
- 例如:
TMP1:=CLOSE#WEEK;
- 非指标引用时只可用于OPEN,HIGH,LOW,CLOSE,VOL,AMOUNT,VOLINSTK等,切勿对此外的数据直接使用变周期转换!
- 当前周期可用MIN1,MIN5,MIN15,MIN30,MIN60,DAY,WEEK,MONTH,SEASON,YEAR,不支持多秒线,多分钟线和多日线,
- 引用周期必须要高于当前周期,5秒线只支持引用1分钟线和5分钟线,周期数据转换得到
TMP2:=KDJ.K#WEEK;
- 跨周期指标引用,引用品种的对应周期的数据必须要先下载到本地
- 跨周期指标引用不支持带参数
- 提示:跨周期时,可能会引用到未来数据
使用跨周期引用数据时注意点:
- 切勿对大周期内跑的数据使用小周期转换!无论是开高低收等基本数据、还是自定义变量,都无法从大周期数据直接转换成小周期数据,只能通过公式引用来获得小周期数据。
1.对变量用变周期符号(#),改变其周期。
这种方式有局限性,只能在小周期公式中得到大周期数据,且仅适用于一些基本数据,如close,high,low,open等。
- 示例1:
公式1: 公式名称:BARH 公式脚本:
周期最高价:H; 周最高价:H#WEEK; 月最高价:H#MONTH;
- 运行示例1:
2.在公式脚本中调用其它公式以取得其它周期的数据。调用其它公式,并用#设置其周期。
- 示例2:公式脚本在日线下运行时,可用BAR.BARH#WEEK;来获得BAR公式在周线下的BARH值。
公式1: 公式名称:BAR
BARC:C;{当前周期收盘价} BARH:H;{当前周期最高价} BARL:L;{当前周期最低价} BARO:O;{当前周期开盘价}
公式2: 公式名称:BARREF
日线开盘价:BAR.BARH#DAY; 周线开盘价:BAR.BARH#WEEK; 月线开盘价:BAR.BARH#MONTH;
- 运行示例2:
- 示例3:
公式1: 公式名称:TMP
REF(OPEN,1); {此指标用于分钟周期线,同时在昨开盘价的位置上画一根线。}
公式2: 公式名称:DFDF
E:=CURRBARSCOUNT; E1:=DAY!=REF(DAY,1); E2:=BARSLAST(E1)+1; E3:=MA(C,E2); E4:=SUM(AMO,E2)/SUM(VOL,E2)/100; E5:=IF(CAPITAL>0,E4,E3); 昨开:IF(E<=CONST(E2),TMP#DAY,DRAWNULL),COLORCYAN,LINETHICK3;
- 运行示例3:
日内周期引用日周期数据
ZQ:=IF(PERIOD=0,240, IF(PERIOD=1,48, IF(PERIOD=2,16, IF(PERIOD=3,8, IF(PERIOD=4,4, IF(PERIOD=5,1,1)))))); 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))))); {确定交易日内第一根K线的位置} RNZQ:=IF(PERIOD=5,1,BARSLAST(FIRST)+1); {确定交易日内的K线的位置,日周期确定为1根K线} DIN9:REF(HHV(HIGH,ZQ*9),RNZQ),COLORCYAN; {过去9个交易日最高价,适用于日内周期和日周期} DI9:REF(LLV(LOW,ZQ*9),RNZQ),COLORMAGENTA; {过去9个交易日最低价,适用于日内周期和日周期}
- 运行实例:
官方来源:通达信公式平台
本站详细讲解
这类教程适合边看边在通达信里做一遍,重点不是背概念,而是把官方步骤变成自己的可测试公式。
- 先按官方步骤走 把菜单位置、调用方式和截图对应起来,确认自己能打开同一个功能。
- 再写一个小公式 用最少变量复现页面里的核心概念,确认公式能通过测试。
- 最后改成自己的规则 根据交易周期、信号位置和过滤条件,把示例扩展成自己的指标或选股公式。