.. _formula-guide: 使用说明 ============================================================ .. _formula-quick: 快速开始 ------------------------------------------------------------ 使用本程序的指标公式语法。每条语句以半角分号 ``;`` 结束;周期参数直接在公式开头赋值;尚不支持 ``INPUT`` / ``PARAM`` 参数声明。 .. code-block:: text NAME = "我的均线"; N=20; MID:MA(CLOSE,N),COLORYELLOW,LINETHICK2; ``FAST=12;`` 定义常量或内部变量,不绘图 ``TEMP:=(OPEN+CLOSE)/2;`` 定义内部计算序列,不绘图 ``MID:MA(CLOSE,20);`` 定义输出序列并在图表绘制 .. _formula-syntax: 语句与运算 ------------------------------------------------------------ .. list-table:: :header-rows: 1 :widths: 28 72 :class: formula-table formula-table-reference * - 写法 - 用途 * - ``SYMBOL="rb2701";`` - 指定整个指标的数据合约,不写则跟随图表主合约,周期仍跟随图表。 合约简写须唯一匹配,找不到或匹配不唯一时检查/保存失败;不自动猜选。 行情、成交量、持仓量和 UNIT、MINPRICE、PRICEPRECISION 等合约属性均取指定合约,按时间对齐,缺失位置为空值。 保存、重启后保留;SYMBOL 仅可声明一次,值为双引号合约代码或 UNDERLYING;组合图表可用 LEG1/LEG2 引用两腿。 * - ``NAME`` ="我的指标"; - 展示名称 NAME(有输出标题时可选),显示在各输出之前; 各输出保留自己的名称和数值。 不写则只显示各输出,单输出通常不必设置。 支持中文,最多 128 个字符,去除首尾空白后不能为空,不参与计算; 与顶部指标名称独立。 * - ``OFFSET`` =10; - 仅叠加主图时整体上移 10 个价格单位; 负数向下,支持小数,默认 0,副图忽略。 仅影响绘图和标题数值,柱体基线同步移动,不改变内部计算。 OFFSET=AUTO 按可见区首根K线收盘价自动对齐,拖动和缩放后更新;锚点缺失时按零偏移。 只能声明一次,支持有限数值、AUTO 或 -STRIKEPRICE。 * - ``XOFFSET`` =5; - 仅主图生效,向右平移 5 根 ``K`` 线,负数向左,默认 0。 只接受 -10000 到 10000 的整数,只能声明一次,可与 ``OFFSET`` 组合。 标题与十字光标按平移后的显示位置取值,不改变内部计算或生成未来行情。 * - ``PLACEMENT`` = ``MAIN`` ; - 可选位置声明, ``AUTO`` 自动判断、 ``MAIN`` 主图、 ``SUB`` 副图,只能声明一次,源码优先。不写时新建默认自动判断,已有指标保留当前位置。 * - ``N`` =表达式; - 定义常量或内部变量。 * - ``TEMP`` :=表达式; - 定义内部序列,不作为绘图输出。 * - ``#VOL`` / ``#CLOSE`` - ``Q73N`` 扩展:只读引用原始系统字段,不允许定义、赋值或引用自定义变量。 ``VOL`` : ``MA`` ( ``#VOL`` ,5); 定义后,后续 ``VOL`` 使用自定义输出; ``#VOL`` 始终为原始成交量,其他别名不受影响。 * - ``VALUE`` :表达式,样式; - 定义绘图输出;多个样式使用逗号分隔。 * - // 注释 - 从双斜杠到当前行末均为注释。 运算符 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ``+ - * /`` 算术; ``> >= < <= = == != <>`` 比较; ``AND / &&`` 逻辑与, ``OR / ||`` 逻辑或。表达式中单等号和双等号都表示相等,语句开头的 ``N=20;`` 仍表示赋值。比较结果为 1 或 0,可继续参与公式计算。 .. _formula-axis: 指标位置、名称与坐标 ------------------------------------------------------------ .. list-table:: :header-rows: 1 :widths: 28 72 :class: formula-table formula-table-reference * - 指标位置 - 显示与坐标 * - 自动判断 - 新建自编指标的默认选项。所有可见输出都随价格整体平移时放入主图;无法判断或混合了非价格输出时放入副图。 * - 副图指标 - 显示在独立副图,使用独立坐标,并根据当前可见数据自动缩放。 * - ``K`` 线附属指标 - 叠加到主图,与 ``K`` 线共用价格坐标。 指标位置通过 ``PLACEMENT = AUTO / MAIN / SUB;`` 声明。不写时,新建默认自动判断,已有指标保留当前位置。编辑器顶部指标名称用于列表与保存,可直接修改,允许重名;去除首尾空白后不能为空,最多 128 个字符。指标按独立 ID 保存。源码中的 ``NAME = "我的展示名称";`` 仅控制展示名称,不修改顶部指标名称;不写则只显示各输出。只有绘图/声音语句,或所有输出均为 ``NOTEXT`` 且没有 ``NAME`` 时,检查及保存会提示补充展示名称 ``NAME="展示名称";`` 。 ``NODRAW`` 仍保留标题数值;条件 ``TEXT`` / ``NOTEXT`` 至少有一个 ``TEXT`` 分支即可。校验不依赖当前行情值,已有公式加载不受影响。保存时检查公式,也可按 Ctrl+Enter 主动检查。新建时顶部指标名称留空,请填写指标名称;添加菜单仅显示指标名称。当前不支持 ``AA^^表达式`` 和 ``AA..表达式`` 这两种输出操作符,请使用 ``PLACEMENT`` 声明指标位置。 .. _formula-data: 内置行情数据 ------------------------------------------------------------ .. list-table:: :header-rows: 1 :widths: 28 22 50 :class: formula-table formula-table-data * - 名称 - 别名 - 含义 * - ``OPEN`` - ``O`` - 开盘价 * - ``HIGH`` - ``H`` - 最高价 * - ``LOW`` - ``L`` - 最低价 * - ``CLOSE`` - ``C`` - 收盘价 * - ``VOLUME`` - ``VOL`` / ``V`` - 成交量 * - ``OI`` - ``OPI`` - 持仓量 * - ``DRAWNULL`` - ``NULL`` - 空值;用于条件不成立时不绘制 * - ``DATE`` - \- - ``YYMMDD`` 自然日期;夜盘不是下一交易日日期 * - ``BARID`` - \- - 当前 K 线绝对 ID;显式 SYMBOL 时为原始合约 ID * - ``VIEWLEFTID / VIEWRIGHTID`` - \- - 可见首末实际 K 线 ID,排除空白;拖动、缩放后自动重算 * - ``DAYSTARTID`` - \- - 当前 K 线所属交易日起始 ID;夜盘合并,起点未知或缺失时为空;日线及以上为自身 ID * - ``DAYBARPOS`` - \- - 交易日内从 1 开始的位置;首段开盘不明时为空 * - ``ISLASTBAR`` - \- - 实际行情最后一根为 1,其余为 0 * - ``PERIOD`` - \- - - **分钟周期:** 1=1 分钟,2=3 分钟,3=5 分钟,4=10 分钟,5=15 分钟,6=30 分钟 - **小时周期:** 7=1 小时,12=2 小时,13=3 小时,14=4 小时 - **日、周周期:** 8=日线,9=周线 - **Tick / 秒周期:** 16=Tick,17=5 秒,18=10 秒,19=15 秒,20=30 秒 - **其他周期:** 21=其他整分钟,22=其他整小时,23=其他整日 * - ``BARTYPE`` / ``BARINTERVAL`` - \- - 周期类型及单位数量。 日/分/时/周/秒/Tick 类型为 0/1/2/4/8/10; 例如 5 分钟为 (1,5),2 小时为 (2,2)。 不是 ``PERIOD`` 编号; 月、季、年尚无数据源 * - ``PRICEPRECISION`` - \- - 当前合约价格小数位数,直接读取合约元数据;缺失为空, ``#PRICEPRECISION`` 为只读系统引用。 * - ``UNIT`` / ``MINPRICE`` - \- - 当前合约乘数及最小价格变动;缺失或非正数时为空 检查与自动位置推断默认采用 1 分钟上下文,实际运行采用当前图表周期。交易日边界沿用现有夜盘和周末规则,尚未接入完整节假日日历。标题数值默认固定显示两位小数并保留末尾 0;显式 ``PRECIS`` 、百分比格式及 ``DRAWNUMBER`` 仍按指定规则显示。 .. _formula-style: 输出样式 ------------------------------------------------------------ .. list-table:: :header-rows: 1 :widths: 20 80 :class: formula-table formula-table-styles * - 类型 - 可用写法 * - 颜色 - ``COLORRED`` 、 ``COLORGREEN`` 、 ``COLORBLUE`` 、 ``COLORYELLOW`` 、 ``COLORMAGENTA`` 、 ``COLORCYAN`` 、 ``COLORWHITE`` 、 ``COLORBLACK`` 、 ``COLORGRAY`` 、 ``RGB`` (r,g,b)、 ``COLORRRGGBB`` (六位十六进制) 命名颜色及默认配色随背景适配,深色背景按原色 85%、背景色 15% 混合,浅色背景使用深色版本,白色显示为深灰;RGB 和六位十六进制保留原色。线条、条件颜色、绘图文字、标题数值及水平线价格标签同步更新。 * - 跟随 ``K`` 线颜色 - ``COLORUP`` 使用当前 ``K`` 线上涨边框色, ``COLORDOWN`` 使用下跌边框色; 绘图和标题随配色变化。 可用于数值输出及绘图语句的条件颜色后缀,与固定颜色、彼此及 ``COLORSTICK`` 互斥; 与 ``STICK`` 组合仍为实心柱,不使用 ``K`` 线空心填充背景色。 * - 条件颜色 - ``IF`` (条件,颜色,颜色) / ``IFELSE`` :逐根选择固定色或 ``COLORUP`` / ``COLORDOWN`` 。 可引用前面变量和当前输出,不增加数值输出; 与其他颜色样式及 ``COLORSTICK`` 互斥。 条件缺失时不绘该点,标题保留真实数值。 也支持逐根柱宽、线宽、线型、显示和标题显隐; 文字绘图支持字号及对齐。 两个分支必须同类,同类固定样式与条件样式不能重复。 * - 条件属性示例 - .. code-block:: text VOL:#VOL,IF(#C>=#O,COLORUP,COLORDOWN),IF(#C>=#O,STICK1,STICK4); 线型: ``IF`` (条件, ``SOLIDLINE`` , ``DOT`` );显隐: ``IF`` (条件, ``DRAW`` , ``NODRAW`` );标题: ``IF`` (条件, ``TEXT`` , ``NOTEXT`` )。 ``DRAWTEXT`` / ``DRAWNUMBER`` 的逗号后可使用 ``IF`` (条件, ``FONTSIZE18`` , ``FONTSIZE12`` )、 ``IF`` (条件, ``ALIGN0`` , ``ALIGN2`` )、 ``IF`` (条件, ``VALIGN0`` , ``VALIGN2`` )。不同属性可并列;空值不绘对应点,隐藏不影响原始数值。名称、主副图位置和独立缩放为整体属性。 * - 百分比显示(扩展) - ``PRECIS0`` %~ ``PRECIS6`` %:仅标题及十字光标对应标题显示时乘以 100、保留对应位数并追加 %; 0.0223 使用 ``PRECIS2`` % 显示为 2.23%。 计算、引用、绘图和缩放保持原值。 与普通 ``PRECIS`` 互斥,不支持 % ``PRECIS2`` 或条件切换, ``DRAWNUMBER`` 精度不变。 **示例** .. code-block:: text 涨幅:CLOSE/REF(CLOSE,1)-1,NODRAW,PRECIS2%; 公式内不必再乘以100。 * - 表达式精度 - ``PRECISION`` ( ``PRICEPRECISION`` +1):引用当前合约价格小数位数和此前公式常量,四舍五入取整数并限制在 0~6 位,随合约切换更新; 元数据缺失或上下文无法求值时默认两位。 只控制标题,不改变计算和绘图。 不能引用行情序列,不能重复精度属性,不支持 ``PRECISION`` (表达式)%。 **示例** .. code-block:: text N=1; 均线:MA(CLOSE,20),PRECISION(PRICEPRECISION+N); * - 显示精度 - ``PRECIS0`` ~ ``PRECIS6`` :标题及十字光标对应标题固定显示 0~6 位小数,保留末尾零,只显示时四舍五入; 不影响计算、后续引用、曲线和坐标范围。 未指定时固定两位小数、保留末尾零。 每项只能指定一次,不支持条件切换。 ``DRAWNUMBER`` 仍由自身精度参数控制。 **示例** .. code-block:: text CJL:VOL,VOLSTICK,PRECIS0; MAVOL5:MA(VOL,5),COLORWHITE,PRECIS2; CCLOPI:OPI,NODRAW,PRECIS0; * - 线宽 - ``LINETHICK1`` 到 ``LINETHICK7`` * - 涨跌柱线 - ``COLORSTICK`` (正值红色、负值绿色) * - 成交量柱 - ``VOLSTICK`` :正常宽度实心柱,阳线和平盘使用 ``K`` 线上涨边框色,阴线使用下跌边框色; 切换配色同步生效。 开收盘价有效时等价于 ``STICK`` , ``IF`` ( ``#CLOSE`` >= ``#OPEN`` , ``COLORUP`` , ``COLORDOWN`` ),不能叠加其他颜色或形状,可组合 ``NOTEXT`` 、 ``INDEPENDENTSCALE`` 。 开收盘价缺失时不绘该点。 **示例** .. code-block:: text MA5=5; CJL:VOL,VOLSTICK; MAVOL5:MA(VOL,MA5),COLORWHITE; CCLOPI:OPI,NODRAW; CCLOPI_CHG:OPI-REF(OPI,1),NODRAW,COLORYELLOW; * - 固定色柱体 - ``STICK`` 保持正常宽度; ``STICK0`` 到 ``STICK4`` 越来越细, ``STICK4`` 为 1 像素。可与颜色及独立缩放样式组合。 * - 点状输出 - ``POINTDOT`` * - 虚线输出 - ``LINEDASH`` ; ``DOT`` 为点状虚线,与 ``POINTDOT`` 独立圆点不同; ``SOLIDLINE`` 为实线 * - 独立缩放 - ``INDEPENDENTSCALE`` :主图和副图均按当前可见区间映射到坐标范围内侧 10%~90%,不参与主坐标范围计算; 常量位于中间,空值断开,隐藏点不参与缩放。 仅改变绘图,标题和十字光标保留真实值; 副图只有独立缩放输出时使用 0~1 归一化坐标。 可与线、点、柱样式组合。 * - 隐藏 - ``NODRAW`` (保留计算和标题数值,但不绘图); ``NOTEXT`` (隐藏该项标题名称及数值,可与 ``NODRAW`` 组合) .. code-block:: text MID:MA(CLOSE,20),COLORYELLOW,LINETHICK2; MACD:2*(DIF-DEA),COLORSTICK; UPVOL:IFELSE(CLOSE>=OPEN,VOLUME,DRAWNULL),COLORRED,STICK; REFLINE:CLOSE,NODRAW; .. _formula-sounds: 声音提醒 ------------------------------------------------------------ .. code-block:: text CROSS(M1,M2),SOUND('A'); PLAYSOUND(CROSS(M2,M1),'B'); 默认声音 ``A`` 为 ``voice_market_reached.wav`` ,播报“行情到达”。客户已保存的声音设置继续优先,不强制覆盖。 默认声音映射 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. list-table:: :header-rows: 1 :widths: 10 23 12 55 :class: formula-table formula-table-sounds * - 编号 - 内容 - 类型 - 文件 * - A - 行情到达 - 女声 - ``voice_market_reached.wav`` * - B - 指标触发 - 女声 - ``voice_indicator_triggered.wav`` * - C - 行情下跌 - 女声 - ``voice_market_falling.wav`` * - D - 行情上涨 - 女声 - ``voice_market_rising.wav`` * - E - 行情到达 - 男声 - ``voice_market_reached_male.wav`` * - F - 指标触发 - 男声 - ``voice_indicator_triggered_male.wav`` * - G - 行情下跌 - 男声 - ``voice_market_falling_male.wav`` * - H - 行情上涨 - 男声 - ``voice_market_rising_male.wav`` * - I - success2.wav - 提示音 - ``success2.wav`` * - J - success3.wav - 提示音 - ``success3.wav`` 客户已保存的映射仍优先;以上为未自定义时的默认值。 可选人声资源 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. list-table:: :header-rows: 1 :widths: 22 39 39 :class: formula-table formula-table-resources * - 播报内容 - 女声 - 男声 * - 报单已成交 - ``voice_order_traded.wav`` - ``voice_order_traded_male.wav`` * - 下单成功 - ``voice_order_success.wav`` - ``voice_order_success_male.wav`` * - 下单失败 - ``voice_order_failed.wav`` - ``voice_order_failed_male.wav`` * - 行情到达 - ``voice_market_reached.wav`` - ``voice_market_reached_male.wav`` * - 指标触发 - ``voice_indicator_triggered.wav`` - ``voice_indicator_triggered_male.wav`` * - 行情下跌 - ``voice_market_falling.wav`` - ``voice_market_falling_male.wav`` * - 行情上涨 - ``voice_market_rising.wav`` - ``voice_market_rising_male.wav`` 男女声资源并存,可在声音设置中选择。更换声音需在声音设置中选择并保存。 支持 ``A`` 到 ``J`` 。公式中包含发声语句即启用提醒,不需要额外开关;以前保存的声音开关不再限制发声。在本章节的“声音设置”中选择 ``WAV`` 音频并试听,确认后保存音效映射。 最新 ``K`` 线刷新时条件满足即可提醒,不要求成交量增加;最新 ``K`` 线的价格修正也可触发。首次加载、仅历史 ``K`` 线重算、拖动图表和公式检查保持静默。同一条语句在同根 ``K`` 线最多提醒一次,新 ``K`` 线可再次提醒。多个指标同时触发时合并播放,间隔至少 500 毫秒,不排队。 .. _formula-errors: 常见错误 ------------------------------------------------------------ .. list-table:: :header-rows: 1 :widths: 28 72 :class: formula-table formula-table-reference * - 错误片段 - 检查方向 * - 绘图语句 - ``DRAWLINE`` 同根 ``K`` 线连接两个价格; ``STICKLINE`` 画空心或实心柱,第四参数可为颜色或常量柱宽(颜色用尾缀); ``DRAWSL`` 画斜线/水平线。 ``DRAWTEXT`` 、 ``DRAWNUMBER`` 显示文字和数字,支持 ``FONTSIZE8`` ..72。 日内图支持直接引用 " ``DAY`` $1$ ``H`` "/" ``DAY`` $1$ ``L`` " 上一交易日日线高低点; ``DATE`` 为 ``YYMMDD`` 自然日期, ``ISLASTBAR`` 标记实际行情最后一根。 所有绘图函数直接作为独立语句,不能赋值; ``REF`` / ``HV`` / ``LV`` / ``HHV`` / ``LLV`` 支持动态周期; ``DAYBARPOS`` 返回交易日内位置, ``SUMBARS`` 支持累计定位; ``DRAWCOLORKLINE`` 重绘整根 ``K`` 线(0 实心、非零空心); ``HV`` / ``LV`` 不含当前 ``K`` 线; ``IF`` / ``NULL`` / ``ISNULL`` 、 ``BARSLAST`` 以及 ``ALIGN0`` ..2、 ``VALIGN0`` ..2 已支持。 详细参数见函数清单。 * - 账户实际持仓 - ``POSLONGPRICE()`` / ``POSSHORTPRICE()`` :多空开仓均价; ``POSLONGVOL()`` / ``POSSHORTVOL()`` :多空总手数。均为无参函数,取当前账户、图表合约,包含手动持仓;主连取当前主力,SYMBOL/LEG 不改变对象。账户未就绪为空,无仓时手数为 0、均价为空。持仓回报触发重算,历史 K 线也返回当前快照,不能还原历史持仓;断线保留本地快照。 * - SuperTrend - ``SUPERTREND(H,L,C,N,M)`` 返回趋势价格线, ``SUPERTREND_DIR(H,L,C,N,M)`` 返回方向(1 上涨、-1 下跌)。Wilder ATR,N 为整数常量、M 为正数常量;第 N 根起输出,初始下跌,收盘严格突破才反转;缺口后重新预热。内置 SuperTrend 示例包含线条配色和买卖文字,不自动下单。 * - 半透明矩形 - ``DRAWRECT(COND,LEFTID,TOP,RIGHTID,BOTTOM,COLOR)`` :ID 使用 BARID 坐标,价格为上下沿,反向端点自动归一化,空值或零面积不绘制。 ``ALPHA(0..255)`` 为不透明度(默认64), ``BORDER`` 加同色实线边框, ``LINETHICK1..7`` 控制边框宽度;支持条件颜色、线宽、显隐及 ``NOAUTOSCALE`` ,不支持 DOT 或条件透明度。先裁剪至可见区,再混合填充;固定复用一只画刷和一支画笔,跨合约投影保留真实边界,裁剪处不画额外边框。条件每根成立会生成多个矩形并叠色;最多前后各搜索10000根触发历史。 .. code-block:: text DRAWRECT(ISLASTBAR,BARID-9,HHV(HIGH,10),BARID,LLV(LOW,10),COLORGREEN),ALPHA(48),BORDER,NOAUTOSCALE; * - 线段和区域标签 - ``DRAWSEG`` 连接两个指定的 K 线 ID 和价格。 ``DRAWZONE`` 保留未击穿区域, ``KEEP`` 控制显示数量,也支持 ``ALPHA`` 和 ``BORDER`` 。两者均可加 ``LABEL`` 、 ``LABELPOS(0/1/2)`` 和 ``FONTSIZE(字号)`` 。线段的标签位置依次为左端、中点、右端,区域则是右边缘的下端、中点、上端。公式绘图文字默认使用宋体。颜色常量先定义再引用,可用于绘图颜色参数或条件配色的两支。 .. code-block:: text NAME="区域标注"; 区域色=RGB(76,141,255); 字号=10; DRAWZONE(CLOSE>OPEN,BARID,HIGH,LASTBARID,LOW,LOW,HIGH,1,5,区域色),ALPHA(80),LABEL('区域'),LABELPOS(1),VALIGN1,FONTSIZE(字号),NOAUTOSCALE; * - 可见区间水平线 - ``RANGEHIGHID(X,L,R)`` / ``RANGELOWID(X,L,R)`` 返回闭区间极值 ID,默认同价取最右,可选第四参数FIRST=1取最左(须为整数常量),空区间或超出计算窗口为空;可读取右侧数据。独立绘图尾缀 ``NOAUTOSCALE`` 保持真实价格但不参与坐标自动缩放。 ``DRAWSL`` 可加 ``SHOWPRICE`` 为水平线在图内右侧显示价格,颜色随线、格式随价格轴。内置“两高两低 (示例)”可直接使用。 * - unknown series - 变量不存在,或变量名称大小写不一致。 * - period must be an integer - 周期不是公式中可确定的有效整数。 * - formula has no output series - 公式中没有单冒号数值输出或独立绘图语句。 * - duplicate series - 同一变量被重复定义。 未来函数支持 BACKSET,以及可读取右侧数据的 RANGEHIGHID / RANGELOWID;其他未来函数和交易指令暂不支持。可用 SYMBOL 整体指定合约,组合图表可用 LEG1/LEG2 引用两腿,其他任意多合约混合引用暂不支持。日内图支持上一交易日日线高低点引用, ``REF`` / ``HV`` / ``LV`` / ``HHV`` / ``LLV`` 支持动态整数周期, ``SUMBARS`` 支持动态阈值。 ``N`` =0 的累计函数在连续有效计算区段内累计;最多额外回溯 10000 根,单次图表计算最多 40000 根。 组合行情的两腿引用 ------------------------------------------------------------ **LEG1(X)** 、 **LEG2(X)** 分别读取当前组合定义的第一腿、第二腿,周期跟随图表,单腿身份按当前图表的组合定义,不随 SYMBOL 改变。支持交易所组合和自定义组合,返回原始单腿数据,不自动乘价格系数或手数比例。 先在单腿原始 K 线序列计算,再按时间绑定对齐: **LEG1(MA(CLOSE,5))** 是第一腿自身的 5 周期均线; **MA(LEG1(CLOSE),5)** 按对齐后的图表序列计算。 参数可使用该腿的行情字段、数值函数和前面定义的数值常量,不引用组合图表自定义序列、不嵌套单腿函数、不引用其他周期。UNIT、MINPRICE、PRICEPRECISION 等属性取该腿。两腿之间的运算放在函数外。 非组合图表、数据未加载或没有时间匹配时返回空值,不沿用旧行情。两腿行情更新、历史修正、绑定调整及切换组合后更新结果,只准备公式实际用到的单腿数据。 .. code-block:: text PLACEMENT=SUB; N=5; 第一腿:=LEG1(CLOSE); 第二腿:=LEG2(CLOSE); 价差:第一腿-第二腿,COLORYELLOW; 第一腿均线:LEG1(MA(CLOSE,N)),COLORWHITE; 量比:LEG1(VOL)/LEG2(VOL),NODRAW; 可见区自动对齐 OFFSET=AUTO ------------------------------------------------------------ 仅在主图生效,按当前可见区域首根 K 线的收盘价减去对应位置指标原始值,得到整组输出及绘图的平移量。拖动、缩放或历史修正后重新对齐。数值计算、后续引用和声音条件保持原始值。 按源码顺序选择该位置第一个有效、可绘制且非独立缩放的输出为锚点。NODRAW、条件隐藏及独立缩放输出不作为锚点。收盘价或候选指标值不可用时暂按零偏移,不借用后续柱子;仅有绘图而没有数值输出时也按零偏移。与 XOFFSET 同用时取水平平移后显示在该位置的样本。 .. code-block:: text SYMBOL=UNDERLYING; PLACEMENT=MAIN; OFFSET=AUTO; 标的价格:IF(ISCALL OR ISPUT,IF(ISPUT,STRIKEPRICE-CLOSE,CLOSE-STRIKEPRICE),NULL),COLORYELLOW; 对齐目标来自当前图表合约的收盘价,标的计算仍使用源合约数据。期权方向由 ISPUT 判断控制。 期权标的走势 ------------------------------------------------------------ SYMBOL 先在指定合约的完整 K 线序列上计算,再按时间对齐到主图。MA、REF 等使用源合约柱子计数;中间柱子的历史修正也会更新结果。缺少对齐数据时曲线留空、绘图分段,并保留展示名称 NAME(未声明时使用指标名称)作为编辑、删除入口。 **ISCALL** :当前图表为看涨期权时为1,否则为0。 **ISPUT** :当前图表为看跌期权时为1,否则为0。 **STRIKEPRICE** :当前图表期权行权价,非期权或不可用时为空值。设置 SYMBOL 后仍读取当前图表期权信息,行情变量则读取指定合约。 .. code-block:: text SYMBOL=UNDERLYING; PLACEMENT=MAIN; 标的价格:IF(ISCALL OR ISPUT,IF(ISPUT,STRIKEPRICE-CLOSE,CLOSE-STRIKEPRICE),NULL),COLORYELLOW; 直接计算价差,无需 OFFSET。输出和后续引用均为价差。非期权图表静默跳过,仅保留标题供编辑、删除;切换到期权后正常计算。