如何用脚本写跨周期引用数据(股票公式高级教程)

跨周期引用数据

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


对变量用变周期符号(#),改变其周期。这种方式有局限性,只能在小周期公式中得到大周期数据,且仅适用于一些基本数据,如close,high,low,open等。

示例脚本:

日最高价:H;

周最高价:H#WEEK;

运行示例:

在公式脚本中调用其它公式以取得其它周期的数据。调用其它公式,并用#设置其周期。

比如,公式脚本在日线下运行时,可用Kdj.k#week;来获得kdj在周线下的k值,另属于于同一周线的日线将获得相同的K值。

示例脚本:

公式1:

公式名称:JBSJ

公式描述:基本数据

公式脚本:

JC:C;{当前周期收盘价}

JH:H;{当前周期最高价}

JL:L;{当前周期最低价}

JO:O;{当前周期开盘价}

JYC:REF(C,1);{前一个周期收盘价}


公式2:

公式名称:TEST049

公式脚本:

日线开盘价:JBSJ.JO#DAY;

周线开盘价:O;

月线开盘价:JBSJ.JO#MONTH;

运行示例:

公式3:

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;


TMP的指标源码如下:

REF(OPEN,1);

此指标用于分钟周期线,同时在昨开盘价的位置上画一根线。

运行示例:

使用跨周期引用数据时注意点
  

可供引用的周期类型有:
  MIN1,MIN5,MIN15,MIN30,MIN60,DAY,WEEK,MONTH
  分别表示将1,5,15,30,60分钟K线数据,以及日,周,月K线数据,代入被引用的公式,进行运算。
  
  {非指标引用时只可用于OPEN,HIGH,LOW,CLOSE,VOL,AMOUNT,VOLINSTK等,当前周期不支持多秒线,多分钟线和多日线,并且引用周期必须要高于当前周期,5秒线只支持引用1分钟线和5分钟线,周期数据转换得到}


TMP2:=KDJ.K#WEEK;

{跨周期指标引用,引用品种的对应周期的数据必须要先下载到本地}

跨周期指标引用不支持带参数

提示:跨周期时,可能会引用到未来数据

发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章