You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Indie枢轴点脚本return语句返回Color类型报错,咨询带透明度颜色的正确定义位置

Indie枢轴点脚本return语句返回Color类型报错,咨询带透明度颜色的正确定义位置

嗨,这个问题的核心原因很明确:你错误地把color.rgba()放到了return语句里,而Indie要求Main函数的返回值只能是要绘制的数值(float/int)或者Line对象,不能直接返回Color类型,这就是报错的根源。

正确的做法:把带透明度的颜色定义在@plot.line装饰器里

Indie的@plot.line装饰器本身就是用来配置每条绘图线的样式(包括颜色、透明度、线宽等)的,你不需要在返回值里传递颜色,只需要把color.rgba()直接写到对应的装饰器参数里就行。

给你修改好的代码示例:

# indie:lang_version = 5
from indie import indicator, plot, color

@indicator('Pivot Points', overlay_main_pane=True)
@plot.line(id='plot_0', color=color.YELLOW)
@plot.line(id='plot_1', color=color.GREEN)
@plot.line(id='plot_2', color=color.rgba(255, 0, 0, 0.5))  # 这里设置半透明红色
@plot.line(id='plot_3', color=color.GREEN)
@plot.line(id='plot_4', color=color.RED)
@plot.line(id='plot_5', color=color.GREEN)
@plot.line(id='plot_6', color=color.RED)
def Main(self):
    pivot = (self.high[1] + self.low[1] + self.close[1]) / 3
    support1 = (2 * pivot) - self.high[1]
    resistance1 = (2 * pivot) - self.low[1]
    support2 = pivot - (self.high[1] - self.low[1])
    resistance2 = pivot + (self.high[1] - self.low[1])
    support3 = self.low[1] - 2 * (self.high[1] - pivot)
    resistance3 = self.high[1] + 2 * (pivot - self.low[1])

    # 只返回要绘制的数值,顺序和上面的@plot.line一一对应
    return pivot, support1, resistance1, support2, resistance2, support3, resistance3

补充说明

  • 每个@plot.line装饰器对应return里的一个返回值,顺序是严格对应的(第一个装饰器对应第一个返回值,以此类推)
  • 如果需要给多条线设置带透明度的颜色,只需要在对应的@plot.line里替换color参数为color.rgba()即可
  • return语句的作用只是传递要绘制的数据,样式配置全部交给装饰器完成

备注:内容来源于stack exchange,提问作者Pavlito

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.13 19:23:11