通达信PERIOD周期类型使用详解

在通达信公式系统中,PERIOD函数是用于判断当前K线周期类型的关键函数,其返回值对应不同时间周期。以下是其核心用法及场景示例:


一、PERIOD函数返回值

在通达信公式系统中,PERIOD函数返回值与周期的对应关系如下:


返回值

对应周期类型

0

1分钟线

1

5分钟线

2

15分钟线

3

30分钟线

4

60分钟线(即小时线)

5

日线

6

周线

7

月线

8

多分钟线(自定义分钟数)

9

多日/季/年线

12

5秒线/多秒线

>=13

自定义周期


补充说明:
未定义的返回值
10和11在官方标准列表中未被明确分配周期类型13,可能为保留值或特定版本扩展用途。

自定义周期应用
当返回值≥13时,周期参数需通过软件手动设置(如特定分钟数、小时组合等),非系统预设标准周期17。

典型代码应用
// 仅在日线周期下显示10日均线
十日线: IF(PERIOD=5, MA(C,10), DRAWNULL);

二、典型应用场景


1. 周期条件筛选
在指标公式中动态控制显示内容,例如仅在日线周期下绘制10日均线:

十日线: IF(PERIOD=5, MA(C,10), DRAWNULL);

此时,非日线周期(如周线、分钟线)下该均线不显示。

2. 跨周期数据引用
结合#符号引用更高周期数据(需注意仅支持从低周期引用高周期):

周线收盘价 := CLOSE#WEEK; // 在日线周期下引用周线收盘价

但需确保本地已下载对应周期数据,且避免直接转换非基本数据(如自定义变量)。

3. 流程控制优化
通过TESTSKIP中断无关周期计算,提升公式效率:

N := IF(PERIOD=0,1, IF(PERIOD=1,5, IF(PERIOD=2,15, ... ))); // 根据周期设定参数
CTRL := TESTSKIP(N=0); // 仅在非分钟周期下中断后续计算

此方法可减少冗余计算。

4.时间窗口动态计算
根据当前周期类型动态调整计算逻辑。例如,在分钟周期中计算交易日内的成交均价走势:

FIRST:=IF(PERIOD=0, HOUR=9 AND MINUTE=31, // 1分钟周期首根K线时间
IF(PERIOD=1, HOUR=9 AND MINUTE=35, ...));// 5分钟周期首根K线时间
当日均价:SUM(AMO,BARSLAST(FIRST)+1)/SUM(VOL,BARSLAST(FIRST)+1)/100; // 动态起点计算}


5.条件触发式策略
根据不同周期执行差异化交易策略。例如,在小时线及以上周期启用趋势跟踪策略,分钟线启用短线信号:

趋势策略: IF(PERIOD>=4 AND PERIOD<=7, 趋势条件, 0); // 周期4-7为小时/日/周/月线
短线信号: IF(PERIOD<=3, 突破条件, 0); // 周期0-3为分钟线

注意事项
周期兼容性
跨周期引用需遵循“高级别周期引用低级别周期”原则(如日线可引用分钟线数据,反之需谨慎处理)5。
自定义周期处理
当PERIOD≥13时,需手动配置软件中的自定义参数(如特殊分钟数或混合周期)7。
未来数据风险
在多周期叠加场景中,避免直接引用未完整周期的数据导致信号漂移5。


三、注意事项


周期一致性
公式内所有变量默认继承调用时设置的周期,跨周期引用需严格遵循“低周期引用高周期”规则。

未来数据风险
跨周期引用可能引入未来数据(如周线引用在日线中),需在策略回测中验证逻辑有效性。

返回值扩展性
自定义周期(返回值≥13)需通过软件设置实现,常规公式中较少直接使用。


四、综合案例


构建一个仅在周线周期显示20日均线,并在日线周期引用周线数据的指标:

周均线显示: IF(PERIOD=6, MA(C,20), DRAWNULL);
日线引用周线收盘价: CLOSE#WEEK;


{ 转载自好运哒哒指标源码网:【函数详解】通达信PERIOD周期类型使用详解|
https://www.haoyundada.com/8003.html}

{==========================================================================================}

原文链接:,转发请注明来源!