做算法的最好方式,就是遍寻评论区里网友为我留下的一道道作业题,请看: ![]() 网友需求---我的作业 网友的需求是,如何取得开盘后10分钟的成交量总和。 非常简单,无需太用力,因为有了昨天的文章《获取09:33至09:45内的最高价》里的思路与函数罗列,一切变得轻而易举。 思路步骤
算法建立 1. 首先限定时间区间为09:30~09:40: RANGE(TIME2,092959,094101) 2. 取得上述时间区间内的成交量: 区间V:=IF(RANGE(TIME2,092959,094101),VOL,DRAWNULL) 3. 计算上述时间区间内的成交量的总和: SUM(区间V,10) 4. 如果是进行副图标注,进行柱线绘制: STICKLINE(CURRBARSCOUNT=FROMOPEN+1,0,CONST(REF(SUM(区间V,10),FROMOPEN-10)),3,0)COLORMAGENTA 在这里,输出柱线的位置可以任意定义,本例的输出位置取位在上一个交易日的最后1分钟“FROMOPEN+1”处。 另外,REF函数的应用是必须的,起到数据的时间位置“固化”、“特指”的作用。 5. 如果是引用这一成交量的总和,只需要进行赋值即可,如下: 区间V和:= CONST(REF(SUM(区间V,10),FROMOPEN-10)); 在任何的所需要的地方,只需要引用这一变量的名称“区间V和”即可。 副图指标的完整代码 {1分钟周期 日内9:30-9:40成交量总和的副图标注算法} VOLUME:VOL,VOLSTICK; STICKLINE(CURRBARSCOUNT=FROMOPEN+1,0,CONST(REF(SUM(IF(RANGE(TIME2,092959,094101),VOL,DRAWNULL),10),FROMOPEN-10)),3,0),COLORMAGENTA; 引用这一成交量总和 在这里起个变量的名字即可:= CONST(REF(SUM(IF(RANGE(TIME2,092959,094101),VOL,DRAWNULL),10),FROMOPEN-10)); 赋值完成之后,在所需之处只要引用所起的这个变量名字即可。 计算创造价值,分享助你成功。文中代码均可运行。 江丰鱼的文章只在今日头条首发; |
|