.. _formula-functions: 函数参考 ============================================================ 函数名不区分大小写。周期可使用常量或函数明确支持的动态整数序列,具体以参数约束为准;行情缺失及预热规则见各函数。 持仓 ------------------------------------------------------------ .. _formula-function-poslongprice: .. container:: formula-function **POSLONGPRICE** ``POSLONGPRICE()`` 当前账户、图表合约的多头开仓均价 约束:实时持仓快照; 无多仓或账户未就绪为空; 不随 ``SYMBOL`` 切换 .. code-block:: text POSLONGPRICE() .. _formula-function-posshortprice: .. container:: formula-function **POSSHORTPRICE** ``POSSHORTPRICE()`` 当前账户、图表合约的空头开仓均价 约束:按剩余持仓手数加权; 不是结算成本或历史持仓 .. code-block:: text POSSHORTPRICE() .. _formula-function-poslongvol: .. container:: formula-function **POSLONGVOL** ``POSLONGVOL()`` 当前账户、图表合约的多头总持仓手数 约束:含今昨仓、冻结仓及不同投保类别; 无多仓为 0,账户未就绪为空 .. code-block:: text POSLONGVOL() .. _formula-function-posshortvol: .. container:: formula-function **POSSHORTVOL** ``POSSHORTVOL()`` 当前账户、图表合约的空头总持仓手数 约束:多空分别统计,包含手动开仓; 不等于可平手数 .. code-block:: text POSSHORTVOL() 行情 ------------------------------------------------------------ .. _formula-function-leg1: .. container:: formula-function **LEG1** ``LEG1(X)`` 获取当前组合第一腿的表达式结果 约束:先在单腿当前周期计算,再对齐图表; 缺失及非组合返回空值; 不自动乘组合系数 .. code-block:: text LEG1(MA(CLOSE,5)) .. _formula-function-leg2: .. container:: formula-function **LEG2** ``LEG2(X)`` 获取当前组合第二腿的表达式结果 约束:支持行情字段、数值表达式和先前定义的常量; 两腿顺序按组合定义 .. code-block:: text LEG2(CLOSE) 声音 ------------------------------------------------------------ .. _formula-function-sound: .. container:: formula-function **SOUND** ``COND,SOUND('A'..'J')`` 条件成立时申请声音提醒 约束:最新 ``K`` 线刷新时提醒; 首次加载及历史 ``K`` 线重算静默,同根去重 .. code-block:: text CROSS(CLOSE,OPEN),SOUND('A'); .. _formula-function-playsound: .. container:: formula-function **PLAYSOUND** ``PLAYSOUND(COND,'A'..'J')`` ``SOUND`` 条件动作的兼容写法 约束:支持 ``A`` 到 ``J`` ; 编辑器声音设置中选择 ``WAV`` 音效及试听 .. code-block:: text PLAYSOUND(CROSS(CLOSE,OPEN),'A'); 绘图 ------------------------------------------------------------ .. _formula-function-drawcolorkline: .. container:: formula-function **DRAWCOLORKLINE** ``DRAWCOLORKLINE(COND,COLOR,EMPTY)`` 按条件重绘整根 ``K`` 线及影线 约束: ``EMPTY`` =0 实心、非零空心; ``COLOR`` 支持 ``RGB`` (r,g,b) .. code-block:: text DRAWCOLORKLINE(CLOSE>OPEN,COLORRED,1); .. _formula-function-stickline1: .. container:: formula-function **STICKLINE1** ``STICKLINE1(COND,P1,P2,WIDTH,EMPTY)`` 按指定宽度在两个价格间画柱体,颜色使用尾缀 约束: ``WIDTH`` =0..9 常量,0 为细线、3 为主图柱宽; ``EMPTY`` 非零空心 .. code-block:: text STICKLINE1(CLOSE>OPEN,OPEN,CLOSE,3,1),COLORRED; .. _formula-function-partline: .. container:: formula-function **PARTLINE** ``PARTLINE(COND,DATA,COLOR)`` 连接连续满足条件的相邻数据点,不跨越条件中断或空值 约束:孤立有效点画一个周期内的短横线; 支持 ``LINETHICK`` 和 ``DOT`` .. code-block:: text PARTLINE(REF(CLOSE,1)>CLOSE,CLOSE,COLORBLUE),LINETHICK2; .. _formula-function-drawnumber: .. container:: formula-function **DRAWNUMBER** ``DRAWNUMBER(COND,DATA,NUMBER,PRECISION,COLOR)`` 条件成立时在 ``DATA`` 位置显示 ``NUMBER`` ,默认水平居中、垂直下对齐 约束: ``PRECISION`` 为 0..8 公式常量整数; 支持 ``FONTSIZE8`` ..72,显式 ``ALIGN`` / ``VALIGN`` 优先 .. code-block:: text DRAWNUMBER(ISLASTBAR,CLOSE,CLOSE,2,COLORGREEN); .. _formula-function-drawtext: .. container:: formula-function **DRAWTEXT** ``DRAWTEXT(COND,DATA,TEXT)`` 条件成立时在 ``DATA`` 位置显示文字 约束: ``TEXT`` 为单引号或双引号字符串; 支持颜色和 ``FONTSIZE8`` ..72 .. code-block:: text DRAWTEXT(CLOSE>OPEN,LOW,'买多'),COLORYELLOW,FONTSIZE22; .. _formula-function-drawline: .. container:: formula-function **DRAWLINE** ``DRAWLINE(C1,P1,C2,P2,COLOR)`` 同一根 ``K`` 线两个条件同时成立时连接 ``P1`` 、 ``P2`` 约束:独立语句,支持 ``DOT`` 、 ``LINETHICK1`` ..7 .. code-block:: text DRAWLINE(CLOSE>OPEN,HIGH,CLOSE>OPEN,LOW,COLORRED); .. _formula-function-stickline: .. container:: formula-function **STICKLINE** ``STICKLINE(COND,P1,P2,COLOR,EMPTY) / STICKLINE(COND,P1,P2,WIDTH,EMPTY)`` 条件成立时在两个价格间画柱体 约束:第四参数为颜色常量,或 0..9 常量柱宽(颜色用尾缀); ``EMPTY`` =0 实心、非零空心 .. code-block:: text STICKLINE(CLOSE>OPEN,OPEN,CLOSE,COLORRED,0); .. _formula-function-drawrect: .. container:: formula-function **DRAWRECT** ``DRAWRECT(COND,LEFTID,TOP,RIGHTID,BOTTOM,COLOR)`` 在指定 ``K`` 线 ``ID`` 和价格边界间画半透明矩形 约束: ``ID`` 使用 ``BARID`` 坐标; ``ALPHA`` (0..255) 默认64,可加 ``BORDER`` 、 ``LINETHICK`` 、 ``NOAUTOSCALE`` ; 零面积或空值不绘制 .. code-block:: text DRAWRECT(ISLASTBAR,BARID-10,HIGH,BARID,LOW,COLORGREEN),ALPHA(48),BORDER,NOAUTOSCALE; .. _formula-function-drawseg: .. container:: formula-function **DRAWSEG** ``DRAWSEG(COND,LEFTID,P1,RIGHTID,P2,COLOR)`` 按任意两个 ``K`` 线 ``ID`` 和价格画线段 约束: ``ID`` 使用 ``BARID`` 坐标; ``LABELPOS`` (0/1/2)选择标签左端/中点/右端,默认2; ``ALIGN`` 独立控制文字对齐; 不延长端点 .. code-block:: text DRAWSEG(ISLASTBAR,BARID-5,CLOSE,BARID,CLOSE,COLORRED),NOAUTOSCALE; .. _formula-function-drawzone: .. container:: formula-function **DRAWZONE** ``DRAWZONE(COND,LEFTID,TOP,RIGHTID,BOTTOM,LOWTEST,HIGHTEST,MODE,KEEP,COLOR)`` 保留未被击穿的矩形区域,实时检查删除与数量上限 约束: ``MODE`` =0不删除/1下穿底部/2上穿顶部/3任一; ``KEEP`` =0..2000常量; 可加 ``RESERVE`` (0..2000)保留更多候选、 ``CREATEFIRST`` 先创建后删除、 ``RAWBOUNDS`` 按原始上下沿删除、 ``REPLACEOVERLAP`` 新区域替换二维重叠旧区域; ``LABEL`` 可选, ``IF`` (条件, ``TEXT`` , ``NOTEXT`` )只控制区域标签 .. code-block:: text DRAWZONE(CLOSE>OPEN,BARID,HIGH,LASTBARID,LOW,LOW,HIGH,1,5,COLORRED),ALPHA(80),BORDER,NOAUTOSCALE; .. _formula-function-drawsl: .. container:: formula-function **DRAWSL** ``DRAWSL(COND,DATA,SLOPE,LEN,EXPAND,COLOR)`` 从 ``DATA`` 画每周期变化 ``SLOPE`` 的线段 约束: ``LEN`` 为 1..10000 常量; ``EXPAND`` 为 0 不延长、1 左、2 右、3 双向; 最多前后各 10000 根触发历史 .. code-block:: text DRAWSL(CLOSE>OPEN,CLOSE,0,1,0,COLORGREEN),DOT; .. _formula-function-drawcolorline: .. container:: formula-function **DRAWCOLORLINE** ``DRAWCOLORLINE(COND,DATA,COLOR1,COLOR2)`` 条件双色线 约束:当前端点条件选择线段颜色; 空值断开 .. code-block:: text DRAWCOLORLINE(CLOSE>OPEN,CLOSE,COLORRED,COLORGREEN); 统计 ------------------------------------------------------------ .. _formula-function-sumbars: .. container:: formula-function **SUMBARS** ``SUMBARS(X,A)`` 向前累加 ``X`` 到大于等于 ``A`` ,返回包含当前的周期数 约束: ``A`` 必须为正数; 不足或空值返回空值 .. code-block:: text SUMBARS(DATE<>REF(DATE,1),5) .. _formula-function-hv: .. container:: formula-function **HV** ``HV(X,N)`` 不包含当前 ``K`` 线的前 ``N`` 周期最高值 约束: ``N`` =0..100000,可为序列; 0 为全部已加载历史,空值周期返回空值 .. code-block:: text HV(HIGH,10) .. _formula-function-lv: .. container:: formula-function **LV** ``LV(X,N)`` 不包含当前 ``K`` 线的前 ``N`` 周期最低值 约束: ``N`` =0..100000,可为序列; 0 为全部已加载历史,空值周期返回空值 .. code-block:: text LV(LOW,10) .. _formula-function-wildersum: .. container:: formula-function **WILDERSUM** ``WILDERSUM(X,N[,ALIGN])`` ``TA`` -Lib 方向指标使用的 Wilder 累计平滑; 可指定首次输出所需的有效值数量 约束: ``N`` =1..100000; ``ALIGN`` >= ``MAX`` (1, ``N`` -1),默认 ``ALIGN`` = ``N`` .. code-block:: text WILDERSUM(CLOSE,14) .. _formula-function-sum: .. container:: formula-function **SUM** ``SUM(X,N)`` ``N`` 周期求和; ``N`` =0 时从首个有效值累计 约束: ``N`` =0..100000,必须是公式常量 .. code-block:: text SUM(VOLUME,20) .. _formula-function-count: .. container:: formula-function **COUNT** ``COUNT(COND,N)`` 统计 ``N`` 周期内条件成立次数; ``N`` =0 时累计统计 约束: ``N`` =0..100000,必须是公式常量 .. code-block:: text COUNT(CLOSE>OPEN,10) .. _formula-function-hhv: .. container:: formula-function **HHV** ``HHV(X,N)`` ``N`` 周期最高值; ``N`` =0 时从首个有效值计算 约束: ``N`` =0..100000,支持动态整数周期; 缺失周期返回空值 .. code-block:: text HHV(HIGH,20) .. _formula-function-llv: .. container:: formula-function **LLV** ``LLV(X,N)`` ``N`` 周期最低值; ``N`` =0 时从首个有效值计算 约束: ``N`` =0..100000,支持动态整数周期; 缺失周期返回空值 .. code-block:: text LLV(LOW,20) .. _formula-function-hhvbars: .. container:: formula-function **HHVBARS** ``HHVBARS(X,N)`` ``N`` 周期最高值距当前的周期数 约束: ``N`` =0..100000,必须是公式常量 .. code-block:: text HHVBARS(HIGH,20) .. _formula-function-llvbars: .. container:: formula-function **LLVBARS** ``LLVBARS(X,N)`` ``N`` 周期最低值距当前的周期数 约束: ``N`` =0..100000,必须是公式常量 .. code-block:: text LLVBARS(LOW,20) .. _formula-function-rangehighid: .. container:: formula-function **RANGEHIGHID** ``RANGEHIGHID(X,L,R[,FIRST])`` 指定 ``ID`` 闭区间内最大值所在的 ``K`` 线 ``ID`` 约束: ``FIRST`` =0默认同值取最右,1取最左,须为整数常量; 空区间或超出计算窗口返回空值; 结果可回填历史位置 .. code-block:: text RANGEHIGHID(HIGH,VIEWLEFTID,VIEWRIGHTID) .. _formula-function-rangelowid: .. container:: formula-function **RANGELOWID** ``RANGELOWID(X,L,R[,FIRST])`` 指定 ``ID`` 闭区间内最小值所在的 ``K`` 线 ``ID`` 约束: ``FIRST`` =0默认同值取最右,1取最左,须为整数常量; 空区间或超出计算窗口返回空值; 结果可回填历史位置 .. code-block:: text RANGELOWID(LOW,VIEWLEFTID,VIEWRIGHTID) .. _formula-function-avedev: .. container:: formula-function **AVEDEV** ``AVEDEV(X,N)`` ``N`` 周期平均绝对偏差 约束: ``N`` =1..100000,必须是公式常量 .. code-block:: text AVEDEV(CLOSE,14) .. _formula-function-var: .. container:: formula-function **VAR** ``VAR(X,N)`` ``N`` 周期样本方差 约束: ``N`` =2..100000,分母为 ``N`` -1 .. code-block:: text VAR(CLOSE,20) .. _formula-function-varp: .. container:: formula-function **VARP** ``VARP(X,N)`` ``N`` 周期总体方差 约束: ``N`` =1..100000,分母为 ``N`` .. code-block:: text VARP(CLOSE,20) .. _formula-function-std: .. container:: formula-function **STD** ``STD(X,N)`` ``N`` 周期样本标准差 约束: ``N`` =2..100000,等于 ``SQRT`` ( ``VAR`` ( ``X`` , ``N`` )) .. code-block:: text STD(CLOSE,20) .. _formula-function-stdp: .. container:: formula-function **STDP** ``STDP(X,N)`` ``N`` 周期总体标准差 约束: ``N`` =1..100000,等于 ``SQRT`` ( ``VARP`` ( ``X`` , ``N`` )) .. code-block:: text STDP(CLOSE,20) .. _formula-function-stddev: .. container:: formula-function **STDDEV** ``STDDEV(X,N)`` ``STDP`` 的 ``Q73N`` 兼容名称 约束:同 ``STDP`` .. code-block:: text STDDEV(CLOSE,20) 逻辑 ------------------------------------------------------------ .. _formula-function-if: .. container:: formula-function **IF** ``IF(COND,A,B)`` ``IFELSE`` 的兼容别名 约束:三个参数,与 ``IFELSE`` 相同 .. code-block:: text IF(CLOSE>OPEN,HIGH,LOW) .. _formula-function-isnull: .. container:: formula-function **ISNULL** ``ISNULL(X)`` 空值返回 1,否则返回 0 约束:支持 ``NULL`` 和 ``DRAWNULL`` .. code-block:: text ISNULL(REF(CLOSE,1)) .. _formula-function-filter: .. container:: formula-function **FILTER** ``FILTER(COND,N)`` 保留一次信号,将其后 ``N`` 根 ``K`` 线的信号过滤为 0 约束: ``N`` =0..10000 整数常量; 被过滤信号不延长屏蔽期; 条件缺失返回空值但仍计入周期 .. code-block:: text FILTER(CLOSE>OPEN,3) 引用 ------------------------------------------------------------ .. _formula-function-backset: .. container:: formula-function **BACKSET** ``BACKSET(X,N)`` 条件成立时,将包含当前在内的前 ``N`` 根标为 1,否则为 0 约束:未来函数,会回填历史; ``N`` =0..10000 整数,可为序列,0 或缺失返回空值; 不足 ``N`` 根按已有根数 .. code-block:: text BACKSET(CLOSE>OPEN,3) .. _formula-function-barslast: .. container:: formula-function **BARSLAST** ``BARSLAST(COND)`` 上一次条件成立到当前的周期数,当根成立返回 0 约束:首次触发前及条件缺失后未再触发时为空; 图表最多额外回溯 10000 根 .. code-block:: text BARSLAST(CLOSE>OPEN) .. _formula-function-const: .. container:: formula-function **CONST** ``CONST(X)`` 将当前计算窗口最后一根的值广播到整个序列 约束:用于历史展示筛选,会改变历史显示,不用于无未来数据的交易判断 .. code-block:: text CONST(CLOSE) .. _formula-function-ref: .. container:: formula-function **REF** ``REF(X,N)`` 引用 ``N`` 个周期前的值 约束: ``N`` =0..100000,可为逐根变化的整数序列,周期或目标值缺失时返回空值 .. code-block:: text REF(CLOSE,1) 均线 ------------------------------------------------------------ .. _formula-function-ma: .. container:: formula-function **MA** ``MA(X,N)`` ``N`` 周期简单移动平均 约束: ``N`` =0..100000,必须是公式常量; 0 返回空值 .. code-block:: text MA(CLOSE,20) .. _formula-function-ema: .. container:: formula-function **EMA** ``EMA(X,N) / EMA(X,N,ALIGN)`` 指数移动平均; 三参数形式按 ``ALIGN`` 指定首个输出位置,并重新选择 ``N`` 个初始种子数据 约束: ``N`` =0..100000,0 返回空值; ``ALIGN`` >= ``N`` ; 三参数形式改变初始值及后续结果,并非只隐藏前段输出 .. code-block:: text EMA(CLOSE,12,26) .. _formula-function-sma: .. container:: formula-function **SMA** ``SMA(X,N,M)`` 权重为 ``M`` 的扩展指数移动平均 约束: ``N`` >=1,1<= ``M`` <= ``N`` , ``N`` 和 ``M`` 必须是公式常量 .. code-block:: text SMA(CLOSE,6,1) .. _formula-function-ema2: .. container:: formula-function **EMA2** ``EMA2(X,N)`` ``N`` 周期线性加权平均 约束: ``N`` =1..100000,必须是公式常量 .. code-block:: text EMA2(CLOSE,10) .. _formula-function-hma: .. container:: formula-function **HMA** ``HMA(X,N)`` Hull 移动平均 约束: ``N`` =1..100000 整数常量; 半周期与平方根周期向下取整,最小 1; 预热 ``N`` +floor(sqrt( ``N`` ))-2 .. code-block:: text HMA(CLOSE,20) .. _formula-function-wma: .. container:: formula-function **WMA** ``WMA(X,N)`` ``EMA2`` 的兼容别名 约束:同 ``EMA2`` .. code-block:: text WMA(CLOSE,10) .. _formula-function-dma: .. container:: formula-function **DMA** ``DMA(X,A)`` 动态移动平均 约束: ``A`` =(0,1],必须是公式常量; 最多回看 10000 根 .. code-block:: text DMA(CLOSE,0.2) .. _formula-function-wilder: .. container:: formula-function **WILDER** ``WILDER(X,N[,ALIGN])`` Wilder 平滑,首值为前 ``N`` 个有效值的简单平均 约束: ``N`` =1..100000; ``ALIGN`` >= ``N`` ,可按较长周期对齐起点 .. code-block:: text WILDER(CLOSE,14) .. _formula-function-kama: .. container:: formula-function **KAMA** ``KAMA(X,N)`` 考夫曼自适应移动平均线 约束: ``N`` =2..100000,必须是公式常量 .. code-block:: text KAMA(CLOSE,30) 回归 ------------------------------------------------------------ .. _formula-function-linearreg: .. container:: formula-function **LINEARREG** ``LINEARREG(X,N)`` ``N`` 周期线性回归终点值 约束: ``N`` =2..100000,必须是公式常量 .. code-block:: text LINEARREG(CLOSE,14) .. _formula-function-linearreg_angle: .. container:: formula-function **LINEARREG_ANGLE** ``LINEARREG_ANGLE(X,N)`` ``N`` 周期线性回归斜率角度 约束: ``N`` =2..100000,单位为度 .. code-block:: text LINEARREG_ANGLE(CLOSE,14) .. _formula-function-linearreg_intercept: .. container:: formula-function **LINEARREG_INTERCEPT** ``LINEARREG_INTERCEPT(X,N)`` ``N`` 周期线性回归截距 约束: ``N`` =2..100000,必须是公式常量 .. code-block:: text LINEARREG_INTERCEPT(CLOSE,14) .. _formula-function-linearreg_slope: .. container:: formula-function **LINEARREG_SLOPE** ``LINEARREG_SLOPE(X,N)`` ``N`` 周期线性回归斜率 约束: ``N`` =2..100000,必须是公式常量 .. code-block:: text LINEARREG_SLOPE(CLOSE,14) .. _formula-function-tsf: .. container:: formula-function **TSF** ``TSF(X,N)`` ``N`` 周期线性回归向前预测一个周期 约束: ``N`` =2..100000,必须是公式常量 .. code-block:: text TSF(CLOSE,14) 趋势 ------------------------------------------------------------ .. _formula-function-supertrend: .. container:: formula-function **SUPERTREND** ``SUPERTREND(H,L,C,N,M)`` Wilder ``ATR`` 超级趋势线,逐根继承最终上下轨 约束: ``N`` =1..100000 整数常量; ``M`` >0 且不超过 3e37,必须是公式常量; 缺口后重新预热 .. code-block:: text SUPERTREND(HIGH,LOW,CLOSE,4,1) .. _formula-function-supertrend_dir: .. container:: formula-function **SUPERTREND_DIR** ``SUPERTREND_DIR(H,L,C,N,M)`` 超级趋势方向:1 上涨、-1 下跌,预热期为空 约束:与 ``SUPERTREND`` 参数相同且共用计算; 首个有效点初始化为下跌,收盘突破才反转 .. code-block:: text SUPERTREND_DIR(HIGH,LOW,CLOSE,4,1) .. _formula-function-sar_long: .. container:: formula-function **SAR_LONG** ``SAR_LONG(H,L,ACC,MAXACC)`` 抛物线转向指标的多头支撑点 约束: ``ACC`` 、 ``MAXACC`` =0..3e37,必须是公式常量 .. code-block:: text SAR_LONG(HIGH,LOW,0.02,0.2) .. _formula-function-sar_short: .. container:: formula-function **SAR_SHORT** ``SAR_SHORT(H,L,ACC,MAXACC)`` 抛物线转向指标的空头压力点 约束: ``ACC`` 、 ``MAXACC`` =0..3e37,必须是公式常量 .. code-block:: text SAR_SHORT(HIGH,LOW,0.02,0.2) 自适应 ------------------------------------------------------------ .. _formula-function-mama: .. container:: formula-function **MAMA** ``MAMA(X,FAST,SLOW)`` ``MESA`` 自适应移动平均线 约束: ``FAST`` 、 ``SLOW`` =0.01..0.99,必须是公式常量 .. code-block:: text MAMA(CLOSE,0.9,0.1) .. _formula-function-fama: .. container:: formula-function **FAMA** ``FAMA(X,FAST,SLOW)`` ``MAMA`` 的跟随移动平均线 约束: ``FAST`` 、 ``SLOW`` =0.01..0.99,必须是公式常量 .. code-block:: text FAMA(CLOSE,0.9,0.1) 周期 ------------------------------------------------------------ .. _formula-function-ht_trendline: .. container:: formula-function **HT_TRENDLINE** ``HT_TRENDLINE(X)`` Hilbert 瞬时趋势线 约束:固定回看 63 根 .. code-block:: text HT_TRENDLINE(CLOSE) .. _formula-function-ht_dcperiod: .. container:: formula-function **HT_DCPERIOD** ``HT_DCPERIOD(X)`` Hilbert 主导周期 约束:固定回看 32 根 .. code-block:: text HT_DCPERIOD(CLOSE) .. _formula-function-ht_dcphase: .. container:: formula-function **HT_DCPHASE** ``HT_DCPHASE(X)`` Hilbert 主导周期相位 约束:固定回看 63 根,单位为度 .. code-block:: text HT_DCPHASE(CLOSE) .. _formula-function-ht_inphase: .. container:: formula-function **HT_INPHASE** ``HT_INPHASE(X)`` Hilbert 相量同相分量 约束:固定回看 32 根 .. code-block:: text HT_INPHASE(CLOSE) .. _formula-function-ht_quadrature: .. container:: formula-function **HT_QUADRATURE** ``HT_QUADRATURE(X)`` Hilbert 相量正交分量 约束:固定回看 32 根 .. code-block:: text HT_QUADRATURE(CLOSE) .. _formula-function-ht_sine: .. container:: formula-function **HT_SINE** ``HT_SINE(X)`` Hilbert 正弦波 约束:固定回看 63 根 .. code-block:: text HT_SINE(CLOSE) .. _formula-function-ht_leadsine: .. container:: formula-function **HT_LEADSINE** ``HT_LEADSINE(X)`` Hilbert 领先正弦波 约束:固定回看 63 根 .. code-block:: text HT_LEADSINE(CLOSE) 条件 ------------------------------------------------------------ .. _formula-function-ifelse: .. container:: formula-function **IFELSE** ``IFELSE(COND,A,B)`` 条件成立返回 ``A`` ,否则返回 ``B`` 约束: ``COND`` 非零表示成立 .. code-block:: text IFELSE(CLOSE>OPEN,1,0) .. _formula-function-valuewhen: .. container:: formula-function **VALUEWHEN** ``VALUEWHEN(COND,VALUE[,N])`` 获取倒数第 ``N`` +1 次条件成立时的值,省略 ``N`` 等价于 0 约束: ``N`` =0..10000 整数常量; 记录不足返回空值; 条件缺失清空记录; 图表最多额外回溯 10000 根历史 .. code-block:: text VALUEWHEN(H1>0,H1,1) .. _formula-function-cross: .. container:: formula-function **CROSS** ``CROSS(A,B)`` ``A`` 从下方向上穿过 ``B`` 约束:交叉当根返回 1,否则返回 0 .. code-block:: text CROSS(MA(CLOSE,5),MA(CLOSE,20)) .. _formula-function-crossup: .. container:: formula-function **CROSSUP** ``CROSSUP(A,B)`` ``CROSS`` 的兼容别名 约束:同 ``CROSS`` .. code-block:: text CROSSUP(CLOSE,MA(CLOSE,20)) .. _formula-function-crossdown: .. container:: formula-function **CROSSDOWN** ``CROSSDOWN(A,B)`` ``A`` 从上方向下穿过 ``B`` 约束:交叉当根返回 1,否则返回 0 .. code-block:: text CROSSDOWN(CLOSE,MA(CLOSE,20)) .. _formula-function-every: .. container:: formula-function **EVERY** ``EVERY(COND,N)`` ``N`` 周期内条件始终成立 约束: ``N`` =1..100000,必须是公式常量 .. code-block:: text EVERY(CLOSE>OPEN,3) .. _formula-function-exist: .. container:: formula-function **EXIST** ``EXIST(COND,N)`` ``N`` 周期内至少一次条件成立 约束: ``N`` =1..100000,必须是公式常量 .. code-block:: text EXIST(CLOSE>MA(CLOSE,20),5) .. _formula-function-between: .. container:: formula-function **BETWEEN** ``BETWEEN(A,B,C)`` 判断 ``A`` 是否位于 ``B`` 与 ``C`` 之间 约束:包含上下边界, ``B`` 和 ``C`` 可交换 .. code-block:: text BETWEEN(CLOSE,LOW,HIGH) 拐点 ------------------------------------------------------------ .. _formula-function-pivothigh: .. container:: formula-function **PIVOTHIGH** ``PIVOTHIGH(X,L,R) / PIVOTHIGH(L,R)`` 等待右侧 ``R`` 根后确认局部高点,返回确认当根对应的拐点价格 约束:简写默认 ``HIGH`` ; ``L`` / ``R`` 为 0..10000 整数常量且 ``L`` + ``R`` <=10000; 同价取最右,完整窗口内有空值则不确认 .. code-block:: text PIVOTHIGH(HIGH,3,3) .. _formula-function-pivotlow: .. container:: formula-function **PIVOTLOW** ``PIVOTLOW(X,L,R) / PIVOTLOW(L,R)`` 等待右侧 ``R`` 根后确认局部低点,返回确认当根对应的拐点价格 约束:简写默认 ``LOW`` ; ``L`` / ``R`` 为 0..10000 整数常量且 ``L`` + ``R`` <=10000; 未确认或历史不足为空,不回填历史 .. code-block:: text PIVOTLOW(LOW,3,3) 数学 ------------------------------------------------------------ .. _formula-function-abs: .. container:: formula-function **ABS** ``ABS(X)`` 绝对值 约束: ``X`` 可为数值或序列表达式 .. code-block:: text ABS(CLOSE-REF(CLOSE,1)) .. _formula-function-max: .. container:: formula-function **MAX** ``MAX(A,B)`` ``A`` 与 ``B`` 的较大值 约束: ``A`` 、 ``B`` 可为数值或序列表达式 .. code-block:: text MAX(CLOSE-OPEN,0) .. _formula-function-min: .. container:: formula-function **MIN** ``MIN(A,B)`` ``A`` 与 ``B`` 的较小值 约束: ``A`` 、 ``B`` 可为数值或序列表达式 .. code-block:: text MIN(OPEN,CLOSE) .. _formula-function-pow: .. container:: formula-function **POW** ``POW(A,B)`` ``A`` 的 ``B`` 次幂 约束:定义域外返回空值 .. code-block:: text POW(CLOSE,2) .. _formula-function-sqrt: .. container:: formula-function **SQRT** ``SQRT(X)`` 平方根 约束: ``X`` <0 时返回空值 .. code-block:: text SQRT(VARP(CLOSE,20)) .. _formula-function-exp: .. container:: formula-function **EXP** ``EXP(X)`` e 的 ``X`` 次幂 约束:溢出时返回空值 .. code-block:: text EXP(1) .. _formula-function-ln: .. container:: formula-function **LN** ``LN(X)`` 自然对数 约束: ``X`` <=0 时返回空值 .. code-block:: text LN(CLOSE) .. _formula-function-log: .. container:: formula-function **LOG** ``LOG(X)`` 以 10 为底的常用对数 约束: ``X`` <=0 时返回空值 .. code-block:: text LOG(VOLUME) .. _formula-function-ceiling: .. container:: formula-function **CEILING** ``CEILING(X)`` 向上舍入 约束:返回不小于 ``X`` 的最小整数 .. code-block:: text CEILING(CLOSE) .. _formula-function-round: .. container:: formula-function **ROUND** ``ROUND(X,N)`` 四舍五入到 ``N`` 位小数 约束: ``N`` 为 -12..12 的整数; 中点远离零 .. code-block:: text ROUND(CLOSE,2) .. _formula-function-floor: .. container:: formula-function **FLOOR** ``FLOOR(X)`` 向下舍入 约束:返回不大于 ``X`` 的最大整数 .. code-block:: text FLOOR(CLOSE) .. _formula-function-intpart: .. container:: formula-function **INTPART** ``INTPART(X)`` 截去小数部分 约束:向零取整 .. code-block:: text INTPART(CLOSE) .. _formula-function-mod: .. container:: formula-function **MOD** ``MOD(A,B)`` ``A`` 对 ``B`` 取模 约束: ``B`` =0 时返回空值 .. code-block:: text MOD(VOLUME,100) .. _formula-function-sgn: .. container:: formula-function **SGN** ``SGN(X)`` 返回数值符号 约束:正数为 1,负数为 -1,零为 0 .. code-block:: text SGN(CLOSE-OPEN) .. _formula-function-not: .. container:: formula-function **NOT** ``NOT(X)`` 逻辑非 约束: ``X`` =0 返回 1,否则返回 0 .. code-block:: text NOT(CLOSE>OPEN) 合约 ------------------------------------------------------------ .. _formula-function-expiredate: .. container:: formula-function **EXPIREDATE** ``EXPIREDATE('')`` 当前可交易合约到期日期 约束:返回 ``YYYYMMDD`` ; 缺少真实到期信息时为空值,仅支持当前合约 .. code-block:: text LDATE:EXPIREDATE(''),NODRAW; .. _formula-function-daystoexpired: .. container:: formula-function **DAYSTOEXPIRED** ``DAYSTOEXPIRED('')`` 距当前合约到期的自然日数 约束:以每根 ``K`` 线交易日为基准,包含到期日,过期为 0; 仅支持当前合约 .. code-block:: text DAYS:DAYSTOEXPIRED(''),NODRAW; 成交量 ------------------------------------------------------------ .. _formula-function-obv: .. container:: formula-function **OBV** ``OBV(X,VOLUME)`` 按 ``X`` 的涨跌方向累计成交量,首值为首根成交量 约束:两个参数必须是等长序列 .. code-block:: text OBV(CLOSE,VOLUME) 三参数 EMA:初始化起点对齐 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ``EMA(X,N,ALIGN)`` 在每段连续有效数据中先跳过 ``ALIGN-N`` 个数据,再使用随后 ``N`` 个数据的简单平均值作为 ``EMA`` 初始值。因此第一笔结果出现在该段第 ``ALIGN`` 个数据位置,之后按 ``2/(N+1)`` 的权重继续递推。 例如 ``EMA(CLOSE,12,26)`` 会跳过前 14 个数据,以第 15~26 个数据的平均值初始化 12 周期 ``EMA`` ,并从第 26 个数据开始输出,使它与 ``EMA(CLOSE,26)`` 具有相同的首个输出位置。 **注意:** 三参数形式会改变初始化窗口及后续数值,不等同于计算普通 ``EMA(CLOSE,12)`` 后隐藏前段结果。它主要用于复刻 ``TA`` -Lib 中多个不同周期 ``EMA`` 共用输出起点的指标,目前用于精确复刻 ``MACD`` ; ``KDJ`` 使用普通二参数 ``EMA`` 。