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

Python调用雅虎财经绘制阻力线时报int与timedelta相加类型错误

错误根因分析
  1. 初始值设置错误导致dates列表混入int类型值
    你初始化dateRange为包含10个0的列表,前9次循环遍历K线数据时,dateRange中还残留初始的int类型0值。触发支点判断逻辑时,取到的lastDate可能是初始的0而非datetime类型的日期,后续执行0 + timedelta操作就触发了类型错误。
  2. plt.plot_date参数传参错误
    plot_date要求第一个参数为x轴(时间)序列,第二个参数为y轴(价格)序列,你的代码把时间的两个值和价格的两个值全部塞到了第一个参数的列表中,即使类型问题修复也无法正常绘制线段。
  3. 语法缩进问题
    你提供的完整代码中,while stock !="quit":后的所有业务逻辑没有缩进,会直接触发Python语法错误,无法正常运行。
修复方案

按照以下步骤修改代码即可正常运行:

  1. 修改Range和dateRange的初始值,避免前几轮循环误判支点
# 替换原来的初始值设置
Range = [float('inf')] * 10
dateRange = [None] * 10
  1. 修正plot_date的传参结构,拆分x、y序列
# 替换原来的绘制代码
plt.plot_date([dates[index], dates[index]+timeD], 
              [pivots[index], pivots[index]], 
              linestyle="-", linewidth=2, marker="none")
  1. 修正while块的缩进,将循环内的所有代码缩进4格
  2. 可选:增加类型校验,过滤非法值避免偶发报错
for index in range(len(pivots)):
    current_date = dates[index]
    # 过滤非datetime类型的异常日期
    if not isinstance(current_date, dt.datetime):
        continue
    print(f"{pivots[index]}: {current_date}")
    plt.plot_date([current_date, current_date + timeD], 
                  [pivots[index], pivots[index]], 
                  linestyle="-", linewidth=2, marker="none")

内容的提问来源于stack exchange,提问作者Mreazy

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 06:24:06