在同一个公式脚本中,所有变量的数据周期都是相同的,就是调用公式时设置的周期。在公式脚本中要用其它周期的数据,共有两种方式:
# 跨周期引用符号
"#"后可用MIN1,MIN5,MIN15,MIN30,MIN60,DAY,WEEK,MONTH,SEASON,YEAR
- 例如:
TMP1:=CLOSE#WEEK;
1
- 非指标引用时只可用于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
- 跨周期指标引用,引用品种的对应周期的数据必须要先下载到本地
- 跨周期指标引用不支持带参数
- 提示:跨周期时,可能会引用到未来数据
使用跨周期引用数据时注意点:
- 切勿对大周期内跑的数据使用小周期转换!无论是开高低收等基本数据、还是自定义变量,都无法从大周期数据直接转换成小周期数据,只能通过公式引用来获得小周期数据。
# 1.对变量用变周期符号(#),改变其周期。
这种方式有局限性,只能在小周期公式中得到大周期数据,且仅适用于一些基本数据,如close,high,low,open等。
- 示例1:
公式1:
公式名称:BARH
公式脚本:
周期最高价:H;
周最高价:H#WEEK;
月最高价:H#MONTH;
1
2
3
2
3
- 运行示例1:
# 2.在公式脚本中调用其它公式以取得其它周期的数据。调用其它公式,并用#设置其周期。
- 示例2:公式脚本在日线下运行时,可用BAR.BARH#WEEK;来获得BAR公式在周线下的BARH值。
公式1:
公式名称:BAR
BARC:C;{当前周期收盘价}
BARH:H;{当前周期最高价}
BARL:L;{当前周期最低价}
BARO:O;{当前周期开盘价}
1
2
3
4
2
3
4
公式2:
公式名称:BARREF
日线开盘价:BAR.BARH#DAY;
周线开盘价:BAR.BARH#WEEK;
月线开盘价:BAR.BARH#MONTH;
1
2
3
2
3
运行示例2:
示例3:
公式1:
公式名称:TMP
REF(OPEN,1); {此指标用于分钟周期线,同时在昨开盘价的位置上画一根线。}
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;
1
2
3
4
5
6
7
2
3
4
5
6
7
- 运行示例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个交易日最低价,适用于日内周期和日周期}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
- 运行实例:
← 在分钟周期下划分交易日 引用其他公式指标 →