.. _formula-examples: 指标示例 ============================================================ 共 91 个可运行公式。通过顶部搜索查找指标、函数或公式内容。 “添加自编指标”菜单依次提供 **新建指标** 、 **指标示例** 和 **指标管理** ,分隔线下单独展示客户已同步到清单的指标。 内置示例是 **只读模板** ,在“指标示例”中显示的名称不附加“(示例)”。编辑示例并保存时生成 **新 ID 的自编指标** ,当前图表使用新指标,原示例和其他图表中的示例保持不变。 保存只编译当前编辑框中的公式。其他已保存公式的源码错误不会阻止本次保存。指标文件的结构或元数据损坏时会拒绝覆盖。 “同步到自编指标清单”决定副本是否加入客户清单,默认不勾选。“指标管理”只管理客户指标,支持改名、排序和从清单删除。旧版已保存的用户覆盖定义继续作为客户指标保留。 扩展示范新增 Squeeze、WaveTrend、Stoch RSI、HMA 趋势、唐奇安突破、肯特纳通道、VWAP 标准差通道、市场结构基础和 FVG+OB 基础。参数集中在源码开头,默认不发声、不下单。 市场结构在确认当根标记,不回填拐点。FVG+OB 基础仅演示当前周期的三根结构识别,不含区域方框、向右延伸、回补管理或多周期叠加。最新未收盘 K 线上的标记可能随行情变化。 .. _example-group-overlay: 主图指标 ------------------------------------------------------------ .. _formula-example-FORMULA_BOLL: .. container:: formula-example **BOLL** 原始 BOLL 指标的公式复刻 .. code-block:: text NAME = "BOLL"; PLACEMENT = MAIN; N=26; UP=2; DOWN=2; MID_VALUE := MA(CLOSE, N); DEV := STDP(CLOSE, N); UPPER: MID_VALUE + UP * DEV, COLORCYAN, LINETHICK1; MID: MID_VALUE, COLORYELLOW, LINETHICK1; LOWER: MID_VALUE - DOWN * DEV, COLORMAGENTA, LINETHICK1; .. _formula-example-FORMULA_MA: .. container:: formula-example **MA** 原始 MA 指标的公式复刻 .. code-block:: text PLACEMENT = MAIN; N=30; MA: MA(CLOSE, N), COLORYELLOW, LINETHICK1; .. _formula-example-FORMULA_PUBU: .. container:: formula-example **PUBU** 原始瀑布线指标的公式复刻 .. code-block:: text NAME = "PUBU"; PLACEMENT = MAIN; M1=4; M2=6; M3=9; M4=13; M5=18; M6=24; PB1: (EMA(CLOSE, M1) + MA(CLOSE, M1 * 2) + MA(CLOSE, M1 * 4)) / 3, COLORWHITE, LINETHICK1; PB2: (EMA(CLOSE, M2) + MA(CLOSE, M2 * 2) + MA(CLOSE, M2 * 4)) / 3, COLORYELLOW, LINETHICK1; PB3: (EMA(CLOSE, M3) + MA(CLOSE, M3 * 2) + MA(CLOSE, M3 * 4)) / 3, COLORCYAN, LINETHICK1; PB4: (EMA(CLOSE, M4) + MA(CLOSE, M4 * 2) + MA(CLOSE, M4 * 4)) / 3, COLORMAGENTA, LINETHICK1; PB5: (EMA(CLOSE, M5) + MA(CLOSE, M5 * 2) + MA(CLOSE, M5 * 4)) / 3, COLORGREEN, LINETHICK1; PB6: (EMA(CLOSE, M6) + MA(CLOSE, M6 * 2) + MA(CLOSE, M6 * 4)) / 3, COLORRED, LINETHICK1; .. _formula-example-FORMULA_MIDPOINT: .. container:: formula-example **MIDPOINT** 原始 MIDPOINT 指标的公式复刻 .. code-block:: text PLACEMENT = MAIN; N=14; MIDPOINT: (HHV(CLOSE, N) + LLV(CLOSE, N)) / 2, COLORYELLOW, LINETHICK1; .. _formula-example-FORMULA_MIDPRICE: .. container:: formula-example **MIDPRICE** 原始 MIDPRICE 指标的公式复刻 .. code-block:: text PLACEMENT = MAIN; N=14; MIDPRICE: (HHV(HIGH, N) + LLV(LOW, N)) / 2, COLORYELLOW, LINETHICK1; .. _formula-example-FORMULA_CHL: .. container:: formula-example **CHL** 原始收高低线组合指标的公式复刻 .. code-block:: text NAME = "CHL"; PLACEMENT = MAIN; CLOSE_LINE: CLOSE, COLORYELLOW, LINETHICK1; HIGH_LINE: HIGH, COLORRED, LINETHICK1; LOW_LINE: LOW, COLORGREEN, LINETHICK1; .. _formula-example-FORMULA_DC: .. container:: formula-example **DC** 原始唐奇安通道指标的公式复刻 .. code-block:: text NAME = "DC"; PLACEMENT = MAIN; N=20; UPPER_VALUE := HHV(HIGH, N); LOWER_VALUE := LLV(LOW, N); UPPER: UPPER_VALUE, COLORRED, LINETHICK1; MIDDLE: (UPPER_VALUE + LOWER_VALUE) / 2, COLORYELLOW, LINETHICK1; LOWER: LOWER_VALUE, COLORGREEN, LINETHICK1; .. _formula-example-FORMULA_DEMA: .. container:: formula-example **DEMA** 原始双重指数移动平均线指标的公式复刻 .. code-block:: text PLACEMENT = MAIN; N=30; EMA1 := EMA(CLOSE, N); EMA2_VALUE := EMA(EMA1, N); DEMA: 2 * EMA1 - EMA2_VALUE, COLORYELLOW, LINETHICK1; .. _formula-example-FORMULA_EMA: .. container:: formula-example **EMA** 原始指数移动平均线指标的公式复刻 .. code-block:: text PLACEMENT = MAIN; N=30; EMA: EMA(CLOSE, N), COLORYELLOW, LINETHICK1; .. _formula-example-FORMULA_TEMA: .. container:: formula-example **TEMA** 原始三重指数移动平均线指标的公式复刻 .. code-block:: text PLACEMENT = MAIN; N=30; EMA1 := EMA(CLOSE, N); EMA2_VALUE := EMA(EMA1, N); EMA3_VALUE := EMA(EMA2_VALUE, N); TEMA: 3 * EMA1 - 3 * EMA2_VALUE + EMA3_VALUE, COLORYELLOW, LINETHICK1; .. _formula-example-FORMULA_TRIMA: .. container:: formula-example **TRIMA** 原始三角移动平均线指标的公式复刻 .. code-block:: text PLACEMENT = MAIN; N=30; P1=FLOOR((N + 1) / 2); P2=N - P1 + 1; FIRST_MA := MA(CLOSE, P1); TRIMA: MA(FIRST_MA, P2), COLORYELLOW, LINETHICK1; .. _formula-example-FORMULA_WMA: .. container:: formula-example **WMA** 原始线性加权移动平均线指标的公式复刻 .. code-block:: text PLACEMENT = MAIN; N=30; WMA: WMA(CLOSE, N), COLORYELLOW, LINETHICK1; .. _formula-example-FORMULA_KAMA: .. container:: formula-example **KAMA** 原始考夫曼自适应移动平均线指标的公式复刻 .. code-block:: text PLACEMENT = MAIN; N=30; KAMA: KAMA(CLOSE, N), COLORYELLOW, LINETHICK1; .. _formula-example-FORMULA_SAR: .. container:: formula-example **SAR** 原始抛物线转向指标及多空点位分色的公式复刻 .. code-block:: text NAME = "SAR"; PLACEMENT = MAIN; ACC=0.02; MAXACC=0.20; SAR_LONG: SAR_LONG(HIGH, LOW, ACC, MAXACC), COLORRED, POINTDOT, LINETHICK2; SAR_SHORT: SAR_SHORT(HIGH, LOW, ACC, MAXACC), COLORGREEN, POINTDOT, LINETHICK2; .. _formula-example-FORMULA_MAMA: .. container:: formula-example **MAMA** 原始 MESA 自适应移动平均线指标的公式复刻 .. code-block:: text NAME = "MAMA"; PLACEMENT = MAIN; FAST=0.9; SLOW=0.1; MAMA: MAMA(CLOSE, FAST, SLOW), COLORYELLOW, LINETHICK1; FAMA: FAMA(CLOSE, FAST, SLOW), COLORCYAN, LINEDASH; .. _formula-example-FORMULA_HT_TRENDLINE: .. container:: formula-example **HT_TRENDLINE** 原始 Hilbert 瞬时趋势线指标的公式复刻 .. code-block:: text PLACEMENT = MAIN; HT_TRENDLINE: HT_TRENDLINE(CLOSE), COLORYELLOW, LINETHICK1; .. _example-group-volume: 成交量与持仓 ------------------------------------------------------------ .. _formula-example-FORMULA_OBV: .. container:: formula-example **OBV** 原始 OBV 指标的公式复刻 .. code-block:: text PLACEMENT = SUB; OBV: OBV(CLOSE, VOLUME), COLORYELLOW, LINETHICK1; .. _formula-example-FORMULA_OI: .. container:: formula-example **OI** 原始持仓量指标的公式复刻 .. code-block:: text PLACEMENT = SUB; OPEN_INTEREST: OPI, COLORRED, LINETHICK1; .. _formula-example-FORMULA_AD: .. container:: formula-example **AD** 原始累积量价指标的公式复刻 .. code-block:: text PLACEMENT = SUB; PRICE_RANGE := HIGH - LOW; FLOW := IFELSE(PRICE_RANGE == 0, 0, ((CLOSE - LOW) - (HIGH - CLOSE)) * VOLUME / PRICE_RANGE); AD: SUM(FLOW, 0), COLORYELLOW, LINETHICK1; .. _formula-example-FORMULA_ADOSC: .. container:: formula-example **ADOSC** 原始 Chaikin 累积量振荡器指标的公式复刻 .. code-block:: text PLACEMENT = SUB; FAST=3; SLOW=10; PRICE_RANGE := HIGH - LOW; FLOW := IFELSE(PRICE_RANGE == 0, 0, ((CLOSE - LOW) - (HIGH - CLOSE)) * VOLUME / PRICE_RANGE); AD_VALUE := SUM(FLOW, 0); FAST_EMA := SMA(AD_VALUE, FAST + 1, 2); SLOW_EMA := SMA(AD_VALUE, SLOW + 1, 2); READY := MA(AD_VALUE, SLOW); ADOSC: IFELSE(READY == READY, FAST_EMA - SLOW_EMA, READY), COLORYELLOW, LINETHICK1; .. _formula-example-FORMULA_VOL: .. container:: formula-example **VOL** 原始成交量指标及涨跌分色的公式复刻 .. code-block:: text PLACEMENT = SUB; VOL_UP: IFELSE(CLOSE >= OPEN, VOLUME, DRAWNULL), COLORRED, STICK; VOL_DOWN: IFELSE(CLOSE < OPEN, VOLUME, DRAWNULL), COLORGREEN, STICK; .. _formula-example-FORMULA_CCL: .. container:: formula-example **CCL** 原始持仓异动指标及价格方向分色的公式复刻 .. code-block:: text PLACEMENT = SUB; LC := REF(CLOSE, 1); DELTA_OI := OI - REF(OI, 1); CCL_UP: IFELSE(CLOSE >= LC, DELTA_OI, DRAWNULL), COLORRED, STICK; CCL_DOWN: IFELSE(CLOSE < LC, DELTA_OI, DRAWNULL), COLORGREEN, STICK; .. _formula-example-FORMULA_VOLUME_OI: .. container:: formula-example **VOL+OI (示例)** 成交量单输出按K线涨跌边框色绘实心柱,平盘用上涨色;持仓折线独立缩放,保留真实数值 .. code-block:: text PLACEMENT=SUB; VOL:#VOL,IF(#CLOSE>=#OPEN,COLORUP,COLORDOWN),STICK2; OI:#OI,COLORYELLOW,LINETHICK2,INDEPENDENTSCALE; .. _example-group-momentum: 趋势与动量 ------------------------------------------------------------ .. _formula-example-FORMULA_KDJ: .. container:: formula-example **KDJ** 原始 KDJ 指标的公式复刻 .. code-block:: text NAME = "KDJ"; PLACEMENT = SUB; N=9; M1=3; M2=3; HH := HHV(HIGH, N); LL := LLV(LOW, N); RANGE := HH - LL; RSV := IFELSE(RANGE == 0, 0, 100 * (CLOSE - LL) / RANGE); K: EMA(RSV, M1), COLORYELLOW, LINETHICK1; D: EMA(K, M2), COLORCYAN, LINETHICK1; J: 3 * K - 2 * D, COLORMAGENTA, LINETHICK1; .. _formula-example-FORMULA_MACD: .. container:: formula-example **MACD** 原始 MACD 指标的公式复刻 .. code-block:: text NAME = "MACD"; PLACEMENT = SUB; FAST=12; SLOW=26; SIGNAL=9; FAST_EMA := EMA(CLOSE, FAST, SLOW); SLOW_EMA := EMA(CLOSE, SLOW); DIF: FAST_EMA - SLOW_EMA, COLORWHITE, LINETHICK1; DEA: EMA(DIF, SIGNAL), COLORYELLOW, LINETHICK1; MACD: 2 * (DIF - DEA), COLORSTICK; .. _formula-example-FORMULA_DMI: .. container:: formula-example **DMI** 原始 DMI 指标的公式复刻 .. code-block:: text NAME = "DMI"; PLACEMENT = SUB; N=14; LC := REF(CLOSE, 1); TR_VALUE := MAX(MAX(HIGH - LOW, ABS(HIGH - LC)), ABS(LOW - LC)); HD := HIGH - REF(HIGH, 1); LD := REF(LOW, 1) - LOW; PDM := MAX(HD, 0) * (HD > LD); MDM := MAX(LD, 0) * (LD > HD); TR_SMOOTH := WILDERSUM(TR_VALUE, N); PDM_SMOOTH := WILDERSUM(PDM, N); MDM_SMOOTH := WILDERSUM(MDM, N); PDI_VALUE := IFELSE(TR_SMOOTH == 0, 0, 100 * PDM_SMOOTH / TR_SMOOTH); MDI_VALUE := IFELSE(TR_SMOOTH == 0, 0, 100 * MDM_SMOOTH / TR_SMOOTH); DI_SUM := PDI_VALUE + MDI_VALUE; DX := IFELSE(DI_SUM == 0, 0, 100 * ABS(PDI_VALUE - MDI_VALUE) / DI_SUM); ADX_VALUE := WILDER(DX, N); ADXR_VALUE := (ADX_VALUE + REF(ADX_VALUE, N - 1)) / 2; PDI: PDI_VALUE, COLORYELLOW, LINETHICK1; MDI: MDI_VALUE, COLORCYAN, LINETHICK1; ADX: ADX_VALUE, COLORWHITE, LINETHICK1; ADXR: ADXR_VALUE, COLORMAGENTA, LINETHICK1; .. _formula-example-FORMULA_TRIX: .. container:: formula-example **TRIX** 原始 TRIX 指标的公式复刻 .. code-block:: text PLACEMENT = SUB; N=30; TR1 := EMA(CLOSE, N); TR2 := EMA(TR1, N); TR3 := EMA(TR2, N); BASE := REF(TR3, 1); TRIX: IFELSE(BASE == 0, 0, 100 * (TR3 - BASE) / BASE), COLORYELLOW, LINETHICK1; .. _formula-example-FORMULA_RSI: .. container:: formula-example **RSI** 原始 RSI 指标的公式复刻 .. code-block:: text NAME = "RSI"; PLACEMENT = SUB; N1=7; N2=14; CHANGE := CLOSE - REF(CLOSE, 1); GAIN := MAX(CHANGE, 0); LOSS := MAX(-CHANGE, 0); GAIN1 := WILDER(GAIN, N1, N2); LOSS1 := WILDER(LOSS, N1, N2); GAIN2 := WILDER(GAIN, N2); LOSS2 := WILDER(LOSS, N2); TOTAL1 := GAIN1 + LOSS1; TOTAL2 := GAIN2 + LOSS2; RSI1: IFELSE(TOTAL1 == 0, 0, 100 * GAIN1 / TOTAL1), COLORYELLOW, LINETHICK1; RSI2: IFELSE(TOTAL2 == 0, 0, 100 * GAIN2 / TOTAL2), COLORCYAN, LINETHICK1; .. _formula-example-FORMULA_BIAS: .. container:: formula-example **BIAS** 原始 BIAS 指标的公式复刻 .. code-block:: text NAME = "BIAS"; PLACEMENT = SUB; N1=6; N2=12; N3=24; MA1 := MA(CLOSE, N1); MA2 := MA(CLOSE, N2); MA3 := MA(CLOSE, N3); BIAS1: IFELSE(MA1 == 0, 0, 100 * (CLOSE - MA1) / MA1), COLORYELLOW, LINETHICK1; BIAS2: IFELSE(MA2 == 0, 0, 100 * (CLOSE - MA2) / MA2), COLORCYAN, LINETHICK1; BIAS3: IFELSE(MA3 == 0, 0, 100 * (CLOSE - MA3) / MA3), COLORMAGENTA, LINETHICK1; .. _formula-example-FORMULA_CCI: .. container:: formula-example **CCI** 原始 CCI 指标的公式复刻 .. code-block:: text PLACEMENT = SUB; N=14; TYP := (HIGH + LOW + CLOSE) / 3; AVERAGE := MA(TYP, N); DEVIATION := 0.015 * AVEDEV(TYP, N); CCI: IFELSE(DEVIATION == 0, 0, (TYP - AVERAGE) / DEVIATION), COLORYELLOW, LINETHICK1; .. _formula-example-FORMULA_ROC: .. container:: formula-example **ROC** 原始 ROC 指标的公式复刻 .. code-block:: text PLACEMENT = SUB; N=10; BASE := REF(CLOSE, N); ROC: IFELSE(BASE == 0, 0, 100 * (CLOSE - BASE) / BASE), COLORYELLOW, LINETHICK1; .. _formula-example-FORMULA_MOM: .. container:: formula-example **MOM** 原始动量指标的公式复刻 .. code-block:: text PLACEMENT = SUB; N=10; MOM: CLOSE - REF(CLOSE, N), COLORYELLOW, LINETHICK1; .. _formula-example-FORMULA_ROCR: .. container:: formula-example **ROCR** 原始价格比率指标的公式复刻 .. code-block:: text PLACEMENT = SUB; N=10; BASE := REF(CLOSE, N); ROCR: IFELSE(BASE == 0, 0, CLOSE / BASE), COLORYELLOW, LINETHICK1; .. _formula-example-FORMULA_APO: .. container:: formula-example **APO** 原始绝对价格振荡器指标的公式复刻 .. code-block:: text PLACEMENT = SUB; FAST=12; SLOW=26; FAST_MA := MA(CLOSE, FAST); SLOW_MA := MA(CLOSE, SLOW); APO: FAST_MA - SLOW_MA, COLORYELLOW, LINETHICK1; .. _formula-example-FORMULA_PPO: .. container:: formula-example **PPO** 原始百分比价格振荡器指标的公式复刻 .. code-block:: text PLACEMENT = SUB; FAST=12; SLOW=26; FAST_MA := MA(CLOSE, FAST); SLOW_MA := MA(CLOSE, SLOW); PPO: IFELSE(SLOW_MA == 0, 0, 100 * (FAST_MA - SLOW_MA) / SLOW_MA), COLORYELLOW, LINETHICK1; .. _formula-example-FORMULA_ADX: .. container:: formula-example **ADX** 原始平均趋向指标的公式复刻 .. code-block:: text NAME = "ADX"; PLACEMENT = SUB; N=14; LC := REF(CLOSE, 1); TR_VALUE := MAX(MAX(HIGH - LOW, ABS(HIGH - LC)), ABS(LOW - LC)); HD := HIGH - REF(HIGH, 1); LD := REF(LOW, 1) - LOW; PDM := MAX(HD, 0) * (HD > LD); MDM := MAX(LD, 0) * (LD > HD); TR_SMOOTH := WILDERSUM(TR_VALUE, N); PDM_SMOOTH := WILDERSUM(PDM, N); MDM_SMOOTH := WILDERSUM(MDM, N); PDI_VALUE := IFELSE(TR_SMOOTH == 0, 0, 100 * PDM_SMOOTH / TR_SMOOTH); MDI_VALUE := IFELSE(TR_SMOOTH == 0, 0, 100 * MDM_SMOOTH / TR_SMOOTH); DI_SUM := PDI_VALUE + MDI_VALUE; DX_VALUE := IFELSE(DI_SUM == 0, 0, 100 * ABS(PDI_VALUE - MDI_VALUE) / DI_SUM); ADX_VALUE := WILDER(DX_VALUE, N); PDI: PDI_VALUE, COLORYELLOW, LINETHICK1; MDI: MDI_VALUE, COLORCYAN, LINETHICK1; ADX: ADX_VALUE, COLORWHITE, LINETHICK1; .. _formula-example-FORMULA_AROONOSC: .. container:: formula-example **AROONOSC** 原始阿隆振荡器指标的公式复刻 .. code-block:: text PLACEMENT = SUB; N=14; HIGH_BARS := HHVBARS(HIGH, N + 1); LOW_BARS := LLVBARS(LOW, N + 1); AROONOSC: 100 * (LOW_BARS - HIGH_BARS) / N, COLORYELLOW, LINETHICK1; .. _formula-example-FORMULA_BOP: .. container:: formula-example **BOP** 原始力量均衡指标的公式复刻 .. code-block:: text PLACEMENT = SUB; PRICE_RANGE := HIGH - LOW; BOP: IFELSE(PRICE_RANGE == 0, 0, (CLOSE - OPEN) / PRICE_RANGE), COLORYELLOW, LINETHICK1; .. _formula-example-FORMULA_WILLR: .. container:: formula-example **WILLR** 原始威廉指标的公式复刻 .. code-block:: text PLACEMENT = SUB; N=14; HH := HHV(HIGH, N); LL := LLV(LOW, N); PRICE_RANGE := HH - LL; WILLR: IFELSE(PRICE_RANGE == 0, 0, -100 * (HH - CLOSE) / PRICE_RANGE), COLORYELLOW, LINETHICK1; .. _formula-example-FORMULA_CMO: .. container:: formula-example **CMO** 原始钱德动量摆动指标的公式复刻 .. code-block:: text PLACEMENT = SUB; N=14; CHANGE := CLOSE - REF(CLOSE, 1); GAIN := MAX(CHANGE, 0); LOSS := MAX(-CHANGE, 0); GAIN_AVERAGE := WILDER(GAIN, N); LOSS_AVERAGE := WILDER(LOSS, N); TOTAL := GAIN_AVERAGE + LOSS_AVERAGE; CMO: IFELSE(TOTAL == 0, 0, 100 * (GAIN_AVERAGE - LOSS_AVERAGE) / TOTAL), COLORYELLOW, LINETHICK1; .. _formula-example-FORMULA_DX: .. container:: formula-example **DX** 原始趋向指数指标的公式复刻 .. code-block:: text PLACEMENT = SUB; N=14; LC := REF(CLOSE, 1); TR_VALUE := MAX(MAX(HIGH - LOW, ABS(HIGH - LC)), ABS(LOW - LC)); HD := HIGH - REF(HIGH, 1); LD := REF(LOW, 1) - LOW; PDM := MAX(HD, 0) * (HD > LD); MDM := MAX(LD, 0) * (LD > HD); TR_SMOOTH := WILDERSUM(TR_VALUE, N); PDM_SMOOTH := WILDERSUM(PDM, N); MDM_SMOOTH := WILDERSUM(MDM, N); PDI_VALUE := IFELSE(TR_SMOOTH == 0, 0, 100 * PDM_SMOOTH / TR_SMOOTH); MDI_VALUE := IFELSE(TR_SMOOTH == 0, 0, 100 * MDM_SMOOTH / TR_SMOOTH); DI_SUM := PDI_VALUE + MDI_VALUE; DX: IFELSE(DI_SUM == 0, 0, 100 * ABS(PDI_VALUE - MDI_VALUE) / DI_SUM), COLORYELLOW, LINETHICK1; .. _formula-example-FORMULA_MFI: .. container:: formula-example **MFI** 原始资金流量指标的公式复刻 .. code-block:: text PLACEMENT = SUB; N=14; TYP := (HIGH + LOW + CLOSE) / 3; RAW_FLOW := TYP * VOLUME; CHANGE := TYP - REF(TYP, 1); POSITIVE_FLOW := IFELSE(CHANGE > 0, RAW_FLOW, 0); NEGATIVE_FLOW := IFELSE(CHANGE < 0, RAW_FLOW, 0); POSITIVE_SUM := SUM(POSITIVE_FLOW, N); NEGATIVE_SUM := SUM(NEGATIVE_FLOW, N); TOTAL_FLOW := POSITIVE_SUM + NEGATIVE_SUM; READY_SOURCE := IFELSE(CHANGE == CHANGE, RAW_FLOW, CHANGE); READY := MA(READY_SOURCE, N); MFI_VALUE := IFELSE(TOTAL_FLOW < 1, 0, 100 * POSITIVE_SUM / TOTAL_FLOW); MFI: IFELSE(READY == READY, MFI_VALUE, READY), COLORYELLOW, LINETHICK1; .. _formula-example-FORMULA_MINUS_DI: .. container:: formula-example **MINUS_DI** 原始负向指标的公式复刻 .. code-block:: text PLACEMENT = SUB; N=14; LC := REF(CLOSE, 1); TR_VALUE := MAX(MAX(HIGH - LOW, ABS(HIGH - LC)), ABS(LOW - LC)); HD := HIGH - REF(HIGH, 1); LD := REF(LOW, 1) - LOW; MDM := MAX(LD, 0) * (LD > HD); TR_SMOOTH := WILDERSUM(TR_VALUE, N); MDM_SMOOTH := WILDERSUM(MDM, N); MINUS_DI: IFELSE(TR_SMOOTH == 0, 0, 100 * MDM_SMOOTH / TR_SMOOTH), COLORYELLOW, LINETHICK1; .. _formula-example-FORMULA_MINUS_DM: .. container:: formula-example **MINUS_DM** 原始负向动向指标的公式复刻 .. code-block:: text PLACEMENT = SUB; N=14; HD := HIGH - REF(HIGH, 1); LD := REF(LOW, 1) - LOW; MDM := MAX(LD, 0) * (LD > HD); MINUS_DM: WILDERSUM(MDM, N, N - 1), COLORYELLOW, LINETHICK1; .. _formula-example-FORMULA_PLUS_DI: .. container:: formula-example **PLUS_DI** 原始正向指标的公式复刻 .. code-block:: text PLACEMENT = SUB; N=14; LC := REF(CLOSE, 1); TR_VALUE := MAX(MAX(HIGH - LOW, ABS(HIGH - LC)), ABS(LOW - LC)); HD := HIGH - REF(HIGH, 1); LD := REF(LOW, 1) - LOW; PDM := MAX(HD, 0) * (HD > LD); TR_SMOOTH := WILDERSUM(TR_VALUE, N); PDM_SMOOTH := WILDERSUM(PDM, N); PLUS_DI: IFELSE(TR_SMOOTH == 0, 0, 100 * PDM_SMOOTH / TR_SMOOTH), COLORYELLOW, LINETHICK1; .. _formula-example-FORMULA_PLUS_DM: .. container:: formula-example **PLUS_DM** 原始正向动向指标的公式复刻 .. code-block:: text PLACEMENT = SUB; N=14; HD := HIGH - REF(HIGH, 1); LD := REF(LOW, 1) - LOW; PDM := MAX(HD, 0) * (HD > LD); PLUS_DM: WILDERSUM(PDM, N, N - 1), COLORYELLOW, LINETHICK1; .. _formula-example-FORMULA_KD: .. container:: formula-example **KD** 原始随机指标的公式复刻 .. code-block:: text NAME = "KD"; PLACEMENT = SUB; N=9; M1=3; M2=3; HH := HHV(HIGH, N); LL := LLV(LOW, N); PRICE_RANGE := HH - LL; RSV := IFELSE(PRICE_RANGE == 0, 0, 100 * (CLOSE - LL) / PRICE_RANGE); K_VALUE := EMA(RSV, M1); D_VALUE := EMA(K_VALUE, M2); K: K_VALUE, COLORYELLOW, LINETHICK1; D: D_VALUE, COLORCYAN, LINETHICK1; .. _formula-example-FORMULA_STOCHF: .. container:: formula-example **STOCHF** 原始快速随机指标的公式复刻 .. code-block:: text NAME = "STOCHF"; PLACEMENT = SUB; N=9; M=3; HH := HHV(HIGH, N); LL := LLV(LOW, N); PRICE_RANGE := HH - LL; FASTK_VALUE := IFELSE(PRICE_RANGE == 0, 0, 100 * (CLOSE - LL) / PRICE_RANGE); FASTD_VALUE := MA(FASTK_VALUE, M); FASTK: FASTK_VALUE, COLORYELLOW, LINETHICK1; FASTD: FASTD_VALUE, COLORCYAN, LINETHICK1; .. _formula-example-FORMULA_ULTOSC: .. container:: formula-example **ULTOSC** 原始终极振荡器指标的公式复刻 .. code-block:: text PLACEMENT = SUB; N1=7; N2=14; N3=28; LC := REF(CLOSE, 1); TRUE_LOW := MIN(LOW, LC); BUYING_PRESSURE := CLOSE - TRUE_LOW; TRUE_RANGE := MAX(MAX(HIGH - LOW, ABS(HIGH - LC)), ABS(LOW - LC)); BP1 := SUM(BUYING_PRESSURE, N1); BP2 := SUM(BUYING_PRESSURE, N2); BP3 := SUM(BUYING_PRESSURE, N3); TR1 := SUM(TRUE_RANGE, N1); TR2 := SUM(TRUE_RANGE, N2); TR3 := SUM(TRUE_RANGE, N3); RATIO1 := IFELSE(TR1 == 0, 0, BP1 / TR1); RATIO2 := IFELSE(TR2 == 0, 0, BP2 / TR2); RATIO3 := IFELSE(TR3 == 0, 0, BP3 / TR3); READY := MA(TRUE_RANGE, N3); ULTOSC_VALUE := 100 * (4 * RATIO1 + 2 * RATIO2 + RATIO3) / 7; ULTOSC: IFELSE(READY == READY, ULTOSC_VALUE, READY), COLORYELLOW, LINETHICK1; .. _formula-example-FORMULA_AROON: .. container:: formula-example **AROON** 原始阿隆指标双线及虚线样式的公式复刻 .. code-block:: text NAME = "AROON"; PLACEMENT = SUB; N=14; AROONDOWN: 100 * (N - LLVBARS(LOW, N + 1)) / N, COLORCYAN, LINEDASH; AROONUP: 100 * (N - HHVBARS(HIGH, N + 1)) / N, COLORYELLOW, LINETHICK1; .. _example-group-volatility: 波动率 ------------------------------------------------------------ .. _formula-example-FORMULA_ATR: .. container:: formula-example **ATR** 原始 ATR 指标的公式复刻 .. code-block:: text NAME = "ATR"; PLACEMENT = SUB; N=14; LC := REF(CLOSE, 1); TR_VALUE := MAX(MAX(HIGH - LOW, ABS(HIGH - LC)), ABS(LOW - LC)); ATR_VALUE := WILDER(TR_VALUE, N); TR: TR_VALUE, COLORWHITE, LINETHICK1; ATR: ATR_VALUE, COLORYELLOW, LINETHICK1; .. _formula-example-FORMULA_NATR: .. container:: formula-example **NATR** 原始标准平均真实波幅指标的公式复刻 .. code-block:: text PLACEMENT = SUB; N=14; LC := REF(CLOSE, 1); TR_VALUE := MAX(MAX(HIGH - LOW, ABS(HIGH - LC)), ABS(LOW - LC)); ATR_VALUE := WILDER(TR_VALUE, N); NATR: IFELSE(CLOSE == 0, 0, 100 * ATR_VALUE / CLOSE), COLORYELLOW, LINETHICK1; .. _formula-example-FORMULA_TR: .. container:: formula-example **TR** 原始真实波幅指标的公式复刻 .. code-block:: text PLACEMENT = SUB; LC := REF(CLOSE, 1); TR: MAX(MAX(HIGH - LOW, ABS(HIGH - LC)), ABS(LOW - LC)), COLORYELLOW, LINETHICK1; .. _example-group-price: 价格变换 ------------------------------------------------------------ .. _formula-example-FORMULA_AVGPRICE: .. container:: formula-example **AVGPRICE** 原始平均价格指标的公式复刻 .. code-block:: text PLACEMENT = MAIN; AVGPRICE: (OPEN + HIGH + LOW + CLOSE) / 4, COLORYELLOW, LINETHICK1; .. _formula-example-FORMULA_MEDPRICE: .. container:: formula-example **MEDPRICE** 原始中位价格指标的公式复刻 .. code-block:: text PLACEMENT = MAIN; MEDPRICE: (HIGH + LOW) / 2, COLORYELLOW, LINETHICK1; .. _formula-example-FORMULA_TYPPRICE: .. container:: formula-example **TYPPRICE** 原始典型价格指标的公式复刻 .. code-block:: text PLACEMENT = MAIN; TYPPRICE: (HIGH + LOW + CLOSE) / 3, COLORYELLOW, LINETHICK1; .. _formula-example-FORMULA_WCLPRICE: .. container:: formula-example **WCLPRICE** 原始加权收盘价格指标的公式复刻 .. code-block:: text PLACEMENT = MAIN; WCLPRICE: (HIGH + LOW + 2 * CLOSE) / 4, COLORYELLOW, LINETHICK1; .. _example-group-cycle: 周期指标 ------------------------------------------------------------ .. _formula-example-FORMULA_HT_DCPERIOD: .. container:: formula-example **HT_DCPERIOD** 原始 Hilbert 主导周期指标的公式复刻 .. code-block:: text PLACEMENT = SUB; HT_DCPERIOD: HT_DCPERIOD(CLOSE), COLORYELLOW, LINETHICK1; .. _formula-example-FORMULA_HT_DCPHASE: .. container:: formula-example **HT_DCPHASE** 原始 Hilbert 主导周期相位指标的公式复刻 .. code-block:: text PLACEMENT = SUB; HT_DCPHASE: HT_DCPHASE(CLOSE), COLORYELLOW, LINETHICK1; .. _formula-example-FORMULA_HT_PHASOR: .. container:: formula-example **HT_PHASOR** 原始 Hilbert 相量同相与正交分量指标的公式复刻 .. code-block:: text NAME = "HT_PHASOR"; PLACEMENT = SUB; INPHASE: HT_INPHASE(CLOSE), COLORYELLOW, LINETHICK1; QUADRATURE: HT_QUADRATURE(CLOSE), COLORCYAN, LINEDASH; .. _formula-example-FORMULA_HT_SINE: .. container:: formula-example **HT_SINE** 原始 Hilbert 正弦波与领先正弦波指标的公式复刻 .. code-block:: text NAME = "HT_SINE"; PLACEMENT = SUB; SINE: HT_SINE(CLOSE), COLORYELLOW, LINETHICK1; LEADSINE: HT_LEADSINE(CLOSE), COLORCYAN, LINEDASH; .. _example-group-statistics: 统计指标 ------------------------------------------------------------ .. _formula-example-FORMULA_BETA: .. container:: formula-example **BETA** 原始贝塔系数指标默认输入的公式复刻 .. code-block:: text PLACEMENT = SUB; N=5; X := CLOSE; Y := CLOSE; X_BASE := REF(X, 1); Y_BASE := REF(Y, 1); X_RETURN := IFELSE(X_BASE == 0, 0, (X - X_BASE) / X_BASE); Y_RETURN := IFELSE(Y_BASE == 0, 0, (Y - Y_BASE) / Y_BASE); SUM_X := SUM(X_RETURN, N); SUM_Y := SUM(Y_RETURN, N); SUM_XX := SUM(X_RETURN * X_RETURN, N); SUM_XY := SUM(X_RETURN * Y_RETURN, N); DENOMINATOR := N * SUM_XX - SUM_X * SUM_X; READY := MA(X_RETURN, N); BETA_VALUE := IFELSE(DENOMINATOR == 0, 0, (N * SUM_XY - SUM_X * SUM_Y) / DENOMINATOR); BETA: IFELSE(READY == READY, BETA_VALUE, READY), COLORYELLOW, LINETHICK1; .. _formula-example-FORMULA_STDDEV: .. container:: formula-example **STDDEV** 原始总体标准差指标的公式复刻 .. code-block:: text PLACEMENT = SUB; N=5; DEVIATIONS=1; STDDEV_VALUE := STDP(CLOSE, N); STDDEV: STDDEV_VALUE * DEVIATIONS, COLORYELLOW, LINETHICK1; .. _formula-example-FORMULA_VAR: .. container:: formula-example **VAR** 原始总体方差指标的公式复刻 .. code-block:: text PLACEMENT = SUB; N=5; DEVIATIONS=1; VAR_VALUE := VARP(CLOSE, N); VAR: VAR_VALUE * DEVIATIONS * DEVIATIONS, COLORYELLOW, LINETHICK1; .. _formula-example-FORMULA_LINEARREG: .. container:: formula-example **LINEARREG** 原始线性回归指标的公式复刻 .. code-block:: text PLACEMENT = MAIN; N=14; LINEARREG: LINEARREG(CLOSE, N), COLORYELLOW, LINETHICK1; .. _formula-example-FORMULA_LINEARREG_ANGLE: .. container:: formula-example **LINEARREG_ANGLE** 原始线性回归角度指标的公式复刻 .. code-block:: text PLACEMENT = SUB; N=14; LINEARREG_ANGLE: LINEARREG_ANGLE(CLOSE, N), COLORYELLOW, LINETHICK1; .. _formula-example-FORMULA_LINEARREG_INTERCEPT: .. container:: formula-example **LINEARREG_INTERCEPT** 原始线性回归截距指标的公式复刻 .. code-block:: text PLACEMENT = SUB; N=14; LINEARREG_INTERCEPT: LINEARREG_INTERCEPT(CLOSE, N), COLORYELLOW, LINETHICK1; .. _formula-example-FORMULA_LINEARREG_SLOPE: .. container:: formula-example **LINEARREG_SLOPE** 原始线性回归斜率指标的公式复刻 .. code-block:: text PLACEMENT = SUB; N=14; LINEARREG_SLOPE: LINEARREG_SLOPE(CLOSE, N), COLORYELLOW, LINETHICK1; .. _formula-example-FORMULA_TSF: .. container:: formula-example **TSF** 原始时序预测指标的公式复刻 .. code-block:: text PLACEMENT = SUB; N=14; TSF: TSF(CLOSE, N), COLORYELLOW, LINETHICK1; .. _example-group-extended: 扩展示范 ------------------------------------------------------------ .. _formula-example-FORMULA_EXPMA: .. container:: formula-example **EXPMA** 双周期指数移动平均线 .. code-block:: text NAME = "EXPMA"; PLACEMENT = MAIN; SHORT=12; LONG=50; EXP1: EMA(CLOSE, SHORT), COLORYELLOW, LINETHICK1; EXP2: EMA(CLOSE, LONG), COLORCYAN, LINETHICK1; .. _formula-example-FORMULA_BBI: .. container:: formula-example **BBI** 多空指标平均线 .. code-block:: text PLACEMENT = MAIN; N1=3; N2=6; N3=12; N4=24; BBI: (MA(CLOSE, N1) + MA(CLOSE, N2) + MA(CLOSE, N3) + MA(CLOSE, N4)) / 4, COLORYELLOW, LINETHICK2; .. _formula-example-FORMULA_WR: .. container:: formula-example **WR** 威廉指标 .. code-block:: text PLACEMENT = SUB; N=14; HH := HHV(HIGH, N); LL := LLV(LOW, N); RANGE := HH - LL; WR: IFELSE(RANGE == 0, 0, 100 * (HH - CLOSE) / RANGE), COLORYELLOW, LINETHICK1; .. _formula-example-FORMULA_MA_MULTI: .. container:: formula-example **MA组 (示例)** 四周期简单移动平均线示范 .. code-block:: text PLACEMENT = MAIN; M1=5; M2=10; M3=20; M4=60; MA1: MA(CLOSE, M1), COLORYELLOW, LINETHICK1; MA2: MA(CLOSE, M2), COLORCYAN, LINETHICK1; MA3: MA(CLOSE, M3), COLORMAGENTA, LINETHICK1; MA4: MA(CLOSE, M4), COLORWHITE, LINETHICK1; .. _formula-example-FORMULA_OBV_MA: .. container:: formula-example **OBV+MA** OBV 与均线组合示范 .. code-block:: text NAME = "OBV+MA"; PLACEMENT = SUB; M=30; OBV_VALUE := OBV(CLOSE, VOLUME); OBV: OBV_VALUE, COLORYELLOW, LINETHICK1; MAOBV: MA(OBV_VALUE, M), COLORCYAN, LINETHICK1; .. _formula-example-FORMULA_RSI_MULTI: .. container:: formula-example **RSI 三周期** 三周期 RSI 平滑算法示范 .. code-block:: text NAME = "RSI多周期"; PLACEMENT = SUB; N1=6; N2=12; N3=24; CHANGE := CLOSE - REF(CLOSE, 1); ABS_CHANGE := ABS(CHANGE); RSI1: IFELSE(SMA(ABS_CHANGE, N1, 1) == 0, 0, 100 * SMA(MAX(CHANGE, 0), N1, 1) / SMA(ABS_CHANGE, N1, 1)), COLORYELLOW, LINETHICK1; RSI2: IFELSE(SMA(ABS_CHANGE, N2, 1) == 0, 0, 100 * SMA(MAX(CHANGE, 0), N2, 1) / SMA(ABS_CHANGE, N2, 1)), COLORCYAN, LINETHICK1; RSI3: IFELSE(SMA(ABS_CHANGE, N3, 1) == 0, 0, 100 * SMA(MAX(CHANGE, 0), N3, 1) / SMA(ABS_CHANGE, N3, 1)), COLORMAGENTA, LINETHICK1; .. _formula-example-FORMULA_TRIX_SIGNAL: .. container:: formula-example **TRIX+信号线** TRIX 与信号线组合示范 .. code-block:: text NAME = "TRIX+信号线"; PLACEMENT = SUB; N=12; M=9; TR1 := EMA(CLOSE, N); TR2 := EMA(TR1, N); TR3 := EMA(TR2, N); BASE := REF(TR3, 1); TRIX_VALUE := IFELSE(BASE == 0, 0, 100 * (TR3 - BASE) / BASE); TRIX: TRIX_VALUE, COLORYELLOW, LINETHICK1; MATRIX: MA(TRIX_VALUE, M), COLORCYAN, LINETHICK1; .. _formula-example-FORMULA_ROC_SIGNAL: .. container:: formula-example **ROC+MA** ROC 与均线组合示范 .. code-block:: text NAME = "ROC+MA"; PLACEMENT = SUB; N=12; M=6; BASE := REF(CLOSE, N); ROC_VALUE := IFELSE(BASE == 0, 0, 100 * (CLOSE - BASE) / BASE); ROC: ROC_VALUE, COLORYELLOW, LINETHICK1; MAROC: MA(ROC_VALUE, M), COLORCYAN, LINETHICK1; .. _formula-example-FORMULA_VWAP_TRADING_DAY: .. container:: formula-example **VWAP(交易日)** 四价均值按成交量加权,夜盘与下一交易日日盘合并;零成交量保持前值,起点不完整时为空值,不含报警 .. code-block:: text PLACEMENT=MAIN; // 四价均值估算 VWAP,按交易日重置,夜盘并入下一交易日日盘 PRICE_VALUE:=(OPEN+HIGH+LOW+CLOSE)/4; VOL_SAFE:=IF(ISNULL(VOLUME),0,MAX(VOLUME,0)); WEIGHT:=IF(ISNULL(PRICE_VALUE),0,VOL_SAFE); WEIGHTED_PRICE:=IF(WEIGHT>0,PRICE_VALUE*WEIGHT,0); TOTAL_VOLUME:=SUM(WEIGHT,0); TOTAL_PRICE:=SUM(WEIGHTED_PRICE,0); DAY_VOLUME:=TOTAL_VOLUME-REF(TOTAL_VOLUME,DAYBARPOS); DAY_PRICE:=TOTAL_PRICE-REF(TOTAL_PRICE,DAYBARPOS); VWAP_EST:=VALUEWHEN(DAY_VOLUME>0,DAY_PRICE/DAY_VOLUME); INTRADAY_BAR:=BARTYPE=1 OR BARTYPE=2 OR BARTYPE=8 OR BARTYPE=10; VWAP_VALUE:=IF(INTRADAY_BAR,VWAP_EST,PRICE_VALUE); VWAP:IF(VWAP_VALUE<>0,VWAP_VALUE,NULL),COLORYELLOW,LINETHICK2; .. _formula-example-FORMULA_CONDITIONAL_ATTRIBUTES: .. container:: formula-example **逐根属性切换** 成交量按K线边框色显示,阳线和平盘较宽、阴线更细;持仓折线逐根切换线宽和线型,独立缩放且保留真实数值 .. code-block:: text PLACEMENT=SUB; VOL:#VOL,IF(#CLOSE>=#OPEN,COLORUP,COLORDOWN),IF(#CLOSE>=#OPEN,STICK1,STICK4); 持仓量:#OI,COLORYELLOW,INDEPENDENTSCALE,IF(#CLOSE>=#OPEN,LINETHICK2,LINETHICK1),IF(#CLOSE>=#OPEN,SOLIDLINE,DOT); .. _formula-example-FORMULA_NINE_TURN: .. container:: formula-example **神奇九转(完整组示例)** 历史满9根后显示完整1~9;最右侧正在形成的序列即时显示,未满9根中断后隐藏,9用黄色突出 .. code-block:: text NAME="神奇九转"; PLACEMENT=MAIN; //与各自前4根K线的收盘价比较,相等或缺失会中断计数 前收:=REF(CLOSE,4); 有效:=ISNULL(CLOSE)=0 AND ISNULL(前收)=0; 上涨:=IF(有效,CLOSE>前收,0); 下跌:=IF(有效,CLOSE<前收,0); 上计数:=BARSLAST(上涨=0); 下计数:=BARSLAST(下跌=0); //历史只显示满9根的完整组 完整上涨:=BACKSET(上涨 AND 上计数=9,9); 完整下跌:=BACKSET(下跌 AND 下计数=9,9); //最右侧未完成的序列即时显示,历史中断位置不补显 正在上涨:=BACKSET(ISLASTBAR AND 上涨 AND 上计数<9,9) AND BACKSET(上涨=0,9)=0; 正在下跌:=BACKSET(ISLASTBAR AND 下跌 AND 下计数<9,9) AND BACKSET(下跌=0,9)=0; 上涨显示:=完整上涨 OR 正在上涨; 下跌显示:=完整下跌 OR 正在下跌; 间距:=MAX((HIGH-LOW)*0.25,IF(ISNULL(MINPRICE),ABS(CLOSE)*0.0001,MINPRICE*2)); //上涨序列在K线上方,下跌序列在K线下方,9用黄色突出 DRAWNUMBER(上涨显示 AND 上计数>=1 AND 上计数<=8,HIGH+间距,上计数,0,COLORRED),FONTSIZE14,VALIGN2; DRAWNUMBER(上涨显示 AND 上计数=9,HIGH+间距,9,0,COLORYELLOW),FONTSIZE18,VALIGN2; DRAWNUMBER(下跌显示 AND 下计数>=1 AND 下计数<=8,LOW-间距,下计数,0,COLORGREEN),FONTSIZE14,VALIGN0; DRAWNUMBER(下跌显示 AND 下计数=9,LOW-间距,9,0,COLORYELLOW),FONTSIZE18,VALIGN0; .. _formula-example-FORMULA_OPTION_ASSISTANT: .. container:: formula-example **期权助手 (示例)** 在期权主图展示标的价与行权价的价差,看涨看跌自动适配 .. code-block:: text SYMBOL=UNDERLYING; PLACEMENT=MAIN; 标的价格:IF(ISCALL OR ISPUT,IF(ISPUT,STRIKEPRICE-CLOSE,CLOSE-STRIKEPRICE),NULL),COLORYELLOW; .. _formula-example-FORMULA_SQUEEZE: .. container:: formula-example **Squeeze 挤压动量 (示例)** 布林带位于肯特纳通道内时标记收缩,四色柱展示线性回归动量;不预判释放方向,不含声音 .. code-block:: text NAME="Squeeze"; PLACEMENT=SUB; // 参数:布林周期/倍率、肯特纳周期/倍率、动量周期 BB_N=20; BB_M=2; KC_N=20; KC_M=1.5; MOM_N=20; 前收:=REF(CLOSE,1); 真实波幅:=IF(ISNULL(前收),HIGH-LOW,MAX(HIGH-LOW,MAX(ABS(HIGH-前收),ABS(LOW-前收)))); 布林中轨:=MA(CLOSE,BB_N); 布林宽度:=BB_M*STDP(CLOSE,BB_N); 肯特中轨:=MA(CLOSE,KC_N); 肯特宽度:=KC_M*MA(真实波幅,KC_N); 收缩:=布林中轨-布林宽度>肯特中轨-肯特宽度 AND 布林中轨+布林宽度<肯特中轨+肯特宽度; 基准:=((HHV(HIGH,MOM_N)+LLV(LOW,MOM_N))/2+MA(CLOSE,MOM_N))/2; 动量值:=LINEARREG(CLOSE-基准,MOM_N); 动量:动量值,NODRAW; 挤压状态:0,IF(收缩,COLORYELLOW,COLORGRAY),POINTDOT,LINETHICK3,NOTEXT; // 正负柱分别切换颜色,增强为亮色,减弱为暗色 STICKLINE(动量值>=0,动量值,0,3,0),IF(动量值>REF(动量值,1),COLORRED,RGB(128,0,0)); STICKLINE(动量值<0,动量值,0,3,0),IF(动量值上限,WT1,'下穿'),COLORGREEN,VALIGN2; .. _formula-example-FORMULA_STOCH_RSI: .. container:: formula-example **Stoch RSI (示例)** Wilder RSI 再随机化为 0~100 双线,默认 14/14/3/3;平价及零振幅返回中性值 50 .. code-block:: text NAME="Stoch RSI"; PLACEMENT=SUB; RSI_N=14; STOCH_N=14; K_N=3; D_N=3; 变化:=CLOSE-REF(CLOSE,1); 平均涨:=WILDER(MAX(变化,0),RSI_N); 平均跌:=WILDER(MAX(-变化,0),RSI_N); RSI值:=IF(ISNULL(平均涨) OR ISNULL(平均跌),NULL,IF(平均跌=0,IF(平均涨=0,50,100),100-100/(1+平均涨/平均跌))); 最高RSI:=HHV(RSI值,STOCH_N); 最低RSI:=LLV(RSI值,STOCH_N); 随机值:=IF(最高RSI=最低RSI,50,100*(RSI值-最低RSI)/(最高RSI-最低RSI)); K:MA(随机值,K_N),COLORWHITE,LINETHICK2; D:MA(K,D_N),COLORYELLOW; 上限:80,COLORGRAY,DOT,NOTEXT; 下限:20,COLORGRAY,DOT,NOTEXT; .. _formula-example-FORMULA_HMA_TREND: .. container:: formula-example **HMA 趋势 (示例)** Hull 均线按斜率方向变色,在方向跨越零轴时标记转强、转弱;不含其他 Hull 变体 .. code-block:: text NAME="HMA趋势"; PLACEMENT=MAIN; N=55; 比较根数=2; HULL:=HMA(CLOSE,N); 斜率:=HULL-REF(HULL,比较根数); 趋势线:HULL,IF(斜率>=0,COLORUP,COLORDOWN),LINETHICK2; DRAWTEXT(CROSS(斜率,0),HULL,'转强'),COLORRED,VALIGN0; DRAWTEXT(CROSS(0,斜率),HULL,'转弱'),COLORGREEN,VALIGN2; .. _formula-example-FORMULA_DONCHIAN_BREAKOUT: .. container:: formula-example **Donchian 唐奇安突破 (示例)** 以前 N 根且不含当前根的最高最低构造通道,标记收盘价突破;与文档原始 DC 的含当前窗口口径不同 .. code-block:: text NAME="唐奇安突破"; PLACEMENT=MAIN; N=20; 上轨:HV(HIGH,N),COLORRED; 下轨:LV(LOW,N),COLORGREEN; 中轨:(上轨+下轨)/2,COLORYELLOW; 上破:=CLOSE>上轨 AND REF(CLOSE,1)<=上轨; 下破:=CLOSE<下轨 AND REF(CLOSE,1)>=下轨; DRAWTEXT(上破,LOW,'上破'),COLORRED,VALIGN0; DRAWTEXT(下破,HIGH,'下破'),COLORGREEN,VALIGN2; .. _formula-example-FORMULA_KELTNER: .. container:: formula-example **Keltner 肯特纳通道 (示例)** EMA 中轨加减 Wilder ATR,默认中轨 20、ATR 10、倍率 2 .. code-block:: text NAME="肯特纳通道"; PLACEMENT=MAIN; 中轨周期=20; 波幅周期=10; 倍率=2; 前收:=REF(CLOSE,1); 真实波幅:=IF(ISNULL(前收),HIGH-LOW,MAX(HIGH-LOW,MAX(ABS(HIGH-前收),ABS(LOW-前收)))); 波幅:=WILDER(真实波幅,波幅周期); 中轨:EMA(CLOSE,中轨周期),COLORYELLOW; 上轨:中轨+倍率*波幅,COLORRED; 下轨:中轨-倍率*波幅,COLORGREEN; .. _formula-example-FORMULA_VWAP_BANDS: .. container:: formula-example **VWAP 标准差通道 (示例)** 按交易日累计成交量加权均值和总体标准差,绘制 ±1、±2、±2.5 倍通道;夜盘并入下一交易日 .. code-block:: text NAME="VWAP通道"; PLACEMENT=MAIN; 一级倍率=1; 二级倍率=2; 三级倍率=2.5; 价格:=(OPEN+HIGH+LOW+CLOSE)/4; 日基准:=VALUEWHEN(DAYBARPOS=1,价格); 安全量:=IF(ISNULL(VOLUME),0,MAX(VOLUME,0)); 权重:=IF(ISNULL(价格) OR ISNULL(日基准) OR ISNULL(DAYBARPOS),0,安全量); 偏移:=价格-日基准; 累计量:=SUM(权重,0); 累计一阶:=SUM(IF(权重>0,偏移*权重,0),0); 累计二阶:=SUM(IF(权重>0,偏移*偏移*权重,0),0); 日量:=累计量-REF(累计量,DAYBARPOS); 日一阶:=累计一阶-REF(累计一阶,DAYBARPOS); 日二阶:=累计二阶-REF(累计二阶,DAYBARPOS); 均值:=VALUEWHEN(日量>0,日基准+日一阶/日量); 标准差:=VALUEWHEN(日量>0,SQRT(MAX(日二阶/日量-POW(日一阶/日量,2),0))); 日内:=BARTYPE=1 OR BARTYPE=2 OR BARTYPE=8 OR BARTYPE=10; VWAP:IF(日内,均值,价格),COLORWHITE,LINETHICK2; 上1:IF(日内,均值+一级倍率*标准差,NULL),COLORGREEN; 下1:IF(日内,均值-一级倍率*标准差,NULL),COLORGREEN; 上2:IF(日内,均值+二级倍率*标准差,NULL),RGB(170,128,0); 下2:IF(日内,均值-二级倍率*标准差,NULL),RGB(170,128,0); 上2_5:IF(日内,均值+三级倍率*标准差,NULL),RGB(160,80,80); 下2_5:IF(日内,均值-三级倍率*标准差,NULL),RGB(160,80,80); .. _formula-example-FORMULA_MARKET_STRUCTURE: .. container:: formula-example **市场结构基础 (示例)** 以已确认摆动高低点标记 BOS、CHoCH;每个拐点只取首次收盘突破,标记在确认当根 .. code-block:: text NAME="市场结构"; PLACEMENT=MAIN; 左侧根数=3; 右侧根数=3; 高点:=PIVOTHIGH(HIGH,左侧根数,右侧根数); 低点:=PIVOTLOW(LOW,左侧根数,右侧根数); 确认高:=ISNULL(高点)=0; 确认低:=ISNULL(低点)=0; 最近高:=VALUEWHEN(确认高,高点); 最近低:=VALUEWHEN(确认低,低点); 高点ID:=VALUEWHEN(确认高,BARID-右侧根数); 低点ID:=VALUEWHEN(确认低,BARID-右侧根数); 上破条件:=CLOSE>最近高 AND HV(CLOSE,BARID-高点ID)<=最近高; 下破条件:=CLOSE<最近低 AND LV(CLOSE,BARID-低点ID)>=最近低; 上破:=IF(ISNULL(上破条件),0,上破条件); 下破:=IF(ISNULL(下破条件),0,下破条件); 方向:=VALUEWHEN(上破 OR 下破,IF(上破,1,-1)); 前方向:=REF(方向,1); 上破类型:=IF(上破,IF(ISNULL(前方向),1,IF(前方向<0,2,1)),0); 下破类型:=IF(下破,IF(ISNULL(前方向),1,IF(前方向>0,2,1)),0); 结构方向:IF(ISNULL(方向),0,方向),NODRAW,PRECIS0; 压力:最近高,COLORRED,DOT; 支撑:最近低,COLORGREEN,DOT; DRAWTEXT(上破类型=1,HIGH,'BOS上'),COLORRED,VALIGN2; DRAWTEXT(下破类型=1,LOW,'BOS下'),COLORGREEN,VALIGN0; DRAWTEXT(上破类型=2,HIGH,'CHoCH上'),COLORYELLOW,VALIGN2; DRAWTEXT(下破类型=2,LOW,'CHoCH下'),COLORYELLOW,VALIGN0; .. _formula-example-FORMULA_FVG_OB_BASIC: .. container:: formula-example **FVG+OB 基础 (示例)** 三根 K 线缺口识别与紧邻反向 K 线 OB 的基础演示;仅当根标记,不含区域方框、延伸或回补管理 .. code-block:: text NAME="FVG+OB基础"; PLACEMENT=MAIN; // 仅演示当前周期的三根结构;不绘制或管理持续区域 完整:=COUNT(ISNULL(OPEN)=0 AND ISNULL(HIGH)=0 AND ISNULL(LOW)=0 AND ISNULL(CLOSE)=0,3)=3; 多缺口:=IF(完整,LOW>REF(HIGH,2),0); 空缺口:=IF(完整,HIGHREF(HIGH,2); 空订单块:=空缺口 AND REF(CLOSE,2)>REF(OPEN,2) AND CLOSE=MAX(OPEN,CLOSE) AND LOW<=MIN(OPEN,CLOSE); 开价:=IF(ISLASTBAR OR 有效=0,NULL,OPEN); 高价:=IF(ISLASTBAR OR 有效=0,NULL,HIGH); 低价:=IF(ISLASTBAR OR 有效=0,NULL,LOW); 收价:=IF(ISLASTBAR OR 有效=0,NULL,CLOSE); 前收:=REF(收价,1); 真实波幅:=IF(ISNULL(前收),高价-低价,MAX(高价-低价,MAX(ABS(高价-前收),ABS(低价-前收)))); ATR值:=WILDER(真实波幅,ATR周期); 下穿价:=IF(OB失效依据=0,LOW,CLOSE); 上穿价:=IF(OB失效依据=0,HIGH,CLOSE); //-----OB波动与解析价格:与EQ/FVG的ATR14独立-----// OB高价:=IF(有效,HIGH,NULL); OB低价:=IF(有效,LOW,NULL); OB收价:=IF(有效,CLOSE,NULL); OB前收:=REF(OB收价,1); OB真波幅:=IF(ISNULL(OB前收),OB高价-OB低价,MAX(OB高价-OB低价,MAX(ABS(OB高价-OB前收),ABS(OB低价-OB前收)))); OB波幅:=IF(OB波动过滤=0,WILDER(OB真波幅,OB波动周期),IF(COUNT(1,0)>1,SUM(IF(ISNULL(OB前收),0,OB真波幅),0)/(COUNT(1,0)-1),NULL)); OB大波幅:=IF(ISNULL(OB波幅),0,OB高价-OB低价>=2*OB波幅); OB解析高:=IF(OB大波幅,OB低价,OB高价); OB解析低:=IF(OB大波幅,OB高价,OB低价); //-----结构独立行情:不改变EQ/FVG的ATR14-----// 结构可算:=有效 AND (结构收盘确认=0 OR ISLASTBAR=0); 结构缺口:=有效=0 AND ISLASTBAR=0; 结构开价:=IF(结构可算,OPEN,NULL); 结构高价:=IF(结构可算,HIGH,NULL); 结构低价:=IF(结构可算,LOW,NULL); 结构收价:=IF(结构可算,CLOSE,NULL); // 汇合过滤默认关闭;启用时保留官方原式,不把它改写为上下影线对称比较。 结构多合流:=结构高价-MAX(结构收价,结构开价)>MIN(结构收价,结构开价-结构低价); 结构空合流:=结构高价-MAX(结构收价,结构开价)HHV(结构高价,摆动周期),0); 摆动低触发:=IF(结构可算 AND COUNT(结构可算,摆动周期+1)=摆动周期+1,REF(结构低价,摆动周期)HHV(结构高价,内部周期),0); 内部低触发:=IF(结构可算 AND COUNT(结构可算,内部周期+1)=内部周期+1,REF(结构低价,内部周期)摆动最近高 AND (内部汇合过滤=0 OR 结构多合流)),0); 内部下候选:=IF(结构可算 AND ISNULL(内部最近低)=0,CROSS(内部最近低,结构收价) AND (ISNULL(摆动最近低)=0 AND 内部最近低<>摆动最近低 AND (内部汇合过滤=0 OR 结构空合流)),0); 内部上计数:=COUNT(内部上候选,0); 内部下计数:=COUNT(内部下候选,0); 内部高基数:=VALUEWHEN(内部确认高,内部上计数); 内部低基数:=VALUEWHEN(内部确认低,内部下计数); 内部上破:=内部上候选 AND 内部上计数-IF(ISNULL(内部高基数),0,内部高基数)=1; 内部下破:=内部下候选 AND 内部下计数-IF(ISNULL(内部低基数),0,内部低基数)=1; 内部原向:=VALUEWHEN(IF(结构缺口,NULL,内部上破 OR 内部下破),IF(内部下破,-1,1)); 内部方向:=IF(ISNULL(内部原向),0,内部原向); 内部前向:=IF(ISNULL(REF(内部方向,1)),0,REF(内部方向,1)); 内部多BOS:=内部上破 AND 内部前向<>-1; 内部空BOS:=内部下破 AND 内部上破=0 AND 内部前向<>1; 内部多CHoCH:=内部上破 AND 内部前向=-1; 内部空CHoCH:=内部下破 AND (内部上破 OR 内部前向=1); 内部最后事件:=VALUEWHEN(内部上破 OR 内部下破,BARID); 画内部:=显示内部结构 AND IF(历史模式,1,BARID=CONST(内部最后事件)); //-----摆动突破:候选计数只锁定首次有效穿越,新拐点重置锁定-----// 摆动上候选:=IF(结构可算 AND ISNULL(摆动最近高)=0,CROSS(结构收价,摆动最近高),0); 摆动下候选:=IF(结构可算 AND ISNULL(摆动最近低)=0,CROSS(摆动最近低,结构收价),0); 摆动上计数:=COUNT(摆动上候选,0); 摆动下计数:=COUNT(摆动下候选,0); 摆动高基数:=VALUEWHEN(摆动确认高,摆动上计数); 摆动低基数:=VALUEWHEN(摆动确认低,摆动下计数); 摆动上破:=摆动上候选 AND 摆动上计数-IF(ISNULL(摆动高基数),0,摆动高基数)=1; 摆动下破:=摆动下候选 AND 摆动下计数-IF(ISNULL(摆动低基数),0,摆动低基数)=1; 摆动原向:=VALUEWHEN(IF(结构缺口,NULL,摆动上破 OR 摆动下破),IF(摆动下破,-1,1)); 摆动方向:=IF(ISNULL(摆动原向),0,摆动原向); 摆动前向:=IF(ISNULL(REF(摆动方向,1)),0,REF(摆动方向,1)); 摆动多BOS:=摆动上破 AND 摆动前向<>-1; 摆动空BOS:=摆动下破 AND 摆动上破=0 AND 摆动前向<>1; 摆动多CHoCH:=摆动上破 AND 摆动前向=-1; 摆动空CHoCH:=摆动下破 AND (摆动上破 OR 摆动前向=1); 摆动最后事件:=VALUEWHEN(摆动上破 OR 摆动下破,BARID); 画摆动:=显示摆动结构 AND IF(历史模式,1,BARID=CONST(摆动最后事件)); DRAWSEG(画内部 AND 内部多BOS AND (内部多头类型=0 OR 内部多头类型=1),内部高ID,内部最近高,BARID,内部最近高,COLORRED),LABEL('BOS'),LABELPOS(0),ALIGN0,FONTSIZE(大字号),VALIGN2,NOAUTOSCALE; DRAWSEG(画内部 AND 内部多CHoCH AND (内部多头类型=0 OR 内部多头类型=2),内部高ID,内部最近高,BARID,内部最近高,COLORYELLOW),LABEL('CHoCH'),LABELPOS(0),ALIGN0,FONTSIZE(大字号),VALIGN2,NOAUTOSCALE; DRAWSEG(画内部 AND 内部空BOS AND (内部空头类型=0 OR 内部空头类型=1),内部低ID,内部最近低,BARID,内部最近低,COLORGREEN),LABEL('BOS'),LABELPOS(0),ALIGN0,FONTSIZE(大字号),VALIGN0,NOAUTOSCALE; DRAWSEG(画内部 AND 内部空CHoCH AND (内部空头类型=0 OR 内部空头类型=2),内部低ID,内部最近低,BARID,内部最近低,COLORYELLOW),LABEL('CHoCH'),LABELPOS(0),ALIGN0,FONTSIZE(大字号),VALIGN0,NOAUTOSCALE; // 内部订单块:突破拐点至突破前一根,解析极值同价取最早,不限制K线方向。 内部多左:=RANGELOWID(OB解析低,IF(显示内部OB AND 内部上破,内部高ID,NULL),BARID-1,1); 内部空左:=RANGEHIGHID(OB解析高,IF(显示内部OB AND 内部下破,内部低ID,NULL),BARID-1,1); 内部多顶:=REF(OB解析高,BARID-内部多左); 内部多底:=REF(OB解析低,BARID-内部多左); 内部空顶:=REF(OB解析高,BARID-内部空左); 内部空底:=REF(OB解析低,BARID-内部空左); 内部多OB:=显示内部OB AND 内部上破 AND ISNULL(内部多左)=0; 内部空OB:=显示内部OB AND 内部下破 AND ISNULL(内部空左)=0; DRAWZONE(IF(有效,内部多OB OR 内部空OB,NULL),IF(内部多OB,内部多左,内部空左),IF(内部多OB,内部多顶,内部空顶),LASTBARID,IF(内部多OB,内部多底,内部空底),下穿价,上穿价,IF(内部多OB,1,2),内部OB数量,OB多头色),RESERVE(100),CREATEFIRST,RAWBOUNDS,IF(内部多OB,OB多头色,OB空头色),ALPHA(80),NOAUTOSCALE; DRAWSEG(画摆动 AND 摆动多BOS AND (摆动多头类型=0 OR 摆动多头类型=1),摆动高ID,摆动最近高,BARID,摆动最近高,COLORRED),LABEL('BOS'),LABELPOS(0),ALIGN0,FONTSIZE(大字号),VALIGN2,NOAUTOSCALE; DRAWSEG(画摆动 AND 摆动多CHoCH AND (摆动多头类型=0 OR 摆动多头类型=2),摆动高ID,摆动最近高,BARID,摆动最近高,COLORYELLOW),LABEL('CHoCH'),LABELPOS(0),ALIGN0,FONTSIZE(大字号),VALIGN2,NOAUTOSCALE; DRAWSEG(画摆动 AND 摆动空BOS AND (摆动空头类型=0 OR 摆动空头类型=1),摆动低ID,摆动最近低,BARID,摆动最近低,COLORGREEN),LABEL('BOS'),LABELPOS(0),ALIGN0,FONTSIZE(大字号),VALIGN0,NOAUTOSCALE; DRAWSEG(画摆动 AND 摆动空CHoCH AND (摆动空头类型=0 OR 摆动空头类型=2),摆动低ID,摆动最近低,BARID,摆动最近低,COLORYELLOW),LABEL('CHoCH'),LABELPOS(0),ALIGN0,FONTSIZE(大字号),VALIGN0,NOAUTOSCALE; // 摆动订单块:突破拐点至突破前一根,解析极值同价取最早,不限制K线方向。 摆动多左:=RANGELOWID(OB解析低,IF(显示摆动OB AND 摆动上破,摆动高ID,NULL),BARID-1,1); 摆动空左:=RANGEHIGHID(OB解析高,IF(显示摆动OB AND 摆动下破,摆动低ID,NULL),BARID-1,1); 摆动多顶:=REF(OB解析高,BARID-摆动多左); 摆动多底:=REF(OB解析低,BARID-摆动多左); 摆动空顶:=REF(OB解析高,BARID-摆动空左); 摆动空底:=REF(OB解析低,BARID-摆动空左); 摆动多OB:=显示摆动OB AND 摆动上破 AND ISNULL(摆动多左)=0; 摆动空OB:=显示摆动OB AND 摆动下破 AND ISNULL(摆动空左)=0; DRAWZONE(IF(有效,摆动多OB OR 摆动空OB,NULL),IF(摆动多OB,摆动多左,摆动空左),IF(摆动多OB,摆动多顶,摆动空顶),LASTBARID,IF(摆动多OB,摆动多底,摆动空底),下穿价,上穿价,IF(摆动多OB,1,2),摆动OB数量,OB多头色),RESERVE(100),CREATEFIRST,RAWBOUNDS,IF(摆动多OB,OB多头色,OB空头色),ALPHA(80),NOAUTOSCALE; //-----强弱高低点:按官方顺序先追踪/绘制,再应用当前根的新拐点与方向-----// DRAWSEG(显示摆动点 AND 摆动确认高,摆动高ID,摆动高点,摆动高ID,摆动高点,COLORRED),LABEL('H'),FONTSIZE(小字号),VALIGN2,NOAUTOSCALE; DRAWSEG(显示摆动点 AND 摆动确认低,摆动低ID,摆动低点,摆动低ID,摆动低点,COLORGREEN),LABEL('L'),FONTSIZE(小字号),VALIGN0,NOAUTOSCALE; 摆动高确认ID:=VALUEWHEN(摆动确认高,BARID); 摆动低确认ID:=VALUEWHEN(摆动确认低,BARID); 追高重置ID:=REF(摆动高确认ID,1); 追低重置ID:=REF(摆动低确认ID,1); 追高重置价:=REF(摆动最近高,1); 追低重置价:=REF(摆动最近低,1); 追踪高输入:=IF(有效,HIGH,NULL); 追踪低输入:=IF(有效,LOW,NULL); 重置后最高:=HHV(追踪高输入,BARID-追高重置ID); 重置后最低:=LLV(追踪低输入,BARID-追低重置ID); 追踪高价:=IF(有效 AND ISNULL(追高重置ID)=0,MAX(追高重置价,重置后最高),NULL); 追踪低价:=IF(有效 AND ISNULL(追低重置ID)=0,MIN(追低重置价,重置后最低),NULL); 追踪高ID:=IF(ISNULL(追踪高价),NULL,IF(重置后最高>=追高重置价,VALUEWHEN(有效 AND HIGH=重置后最高,BARID),REF(摆动高ID,1))); 追踪低ID:=IF(ISNULL(追踪低价),NULL,IF(重置后最低<=追低重置价,VALUEWHEN(有效 AND LOW=重置后最低,BARID),REF(摆动低ID,1))); 追踪前向:=IF(ISNULL(REF(摆动方向,1)),0,REF(摆动方向,1)); DRAWSEG(ISLASTBAR AND 显示强弱高低点 AND 追踪前向<>-1,追踪高ID,追踪高价,LASTBARID,追踪高价,COLORRED),LABEL('弱高'),FONTSIZE(大字号),VALIGN2,NOAUTOSCALE; DRAWSEG(ISLASTBAR AND 显示强弱高低点 AND 追踪前向=-1,追踪高ID,追踪高价,LASTBARID,追踪高价,COLORRED),LABEL('强高'),FONTSIZE(大字号),VALIGN2,NOAUTOSCALE; DRAWSEG(ISLASTBAR AND 显示强弱高低点 AND 追踪前向<>1,追踪低ID,追踪低价,LASTBARID,追踪低价,COLORGREEN),LABEL('弱低'),FONTSIZE(大字号),VALIGN0,NOAUTOSCALE; DRAWSEG(ISLASTBAR AND 显示强弱高低点 AND 追踪前向=1,追踪低ID,追踪低价,LASTBARID,追踪低价,COLORGREEN),LABEL('强低'),FONTSIZE(大字号),VALIGN0,NOAUTOSCALE; //-----EQH/EQL:确认周期独立于内部/摆动周期-----// 等高点:=PIVOTHIGH(高价,等价确认,等价确认); 等低点:=PIVOTLOW(低价,等价确认,等价确认); 等高确认:=IF(ISLASTBAR,0,IF(有效,ISNULL(等高点)=0 AND 等高点>REF(HHV(高价,等价确认),等价确认+1),NULL)); 等低确认:=IF(ISLASTBAR,0,IF(有效,ISNULL(等低点)=0 AND 等低点0,ATR值/ABS(收价)*50,0)); 缺口门槛:=IF(FVG自动阈值,IF(ISNULL(ATR值),IF(MINPRICE>0,3*MINPRICE,0),缺口倍率*ATR值),0); 三根完整:=COUNT(ISNULL(开价)=0,3)=3; 多FVG:=IF(ISLASTBAR,0,IF(有效,显示FVG AND 三根完整 AND 低价>REF(高价,2) AND 低价-REF(高价,2)>=缺口门槛,0)); 空FVG:=IF(ISLASTBAR,0,IF(有效,显示FVG AND 三根完整 AND 高价=缺口门槛,0)); DRAWZONE(IF(ISLASTBAR,0,IF(有效,多FVG OR 空FVG,NULL)),BARID-0.5,IF(多FVG,低价,REF(低价,2)),BARID+FVG延伸,IF(多FVG,REF(高价,2),高价),LOW,HIGH,IF(多FVG,1,2),FVG保留上限,FVG多头色),IF(多FVG,FVG多头色,FVG空头色),ALPHA(60),REPLACEOVERLAP,LABEL('FVG'),LABELPOS(1),ALIGN0,VALIGN1,FONTSIZE(小字号),IF(显示FVG文字,TEXT,NOTEXT),NOAUTOSCALE;