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

如何处理TradingView历史数据,仅保留开高低收价格字段?

解决方案

首先,tv.get_hist()返回的是pandas DataFrame,你之前把它赋值给str变量是错误的(str是Python内置类型,会引发冲突),而且直接打印整个DataFrame会包含多余列。我们可以通过DataFrame的列选择和格式化输出实现需求:

修改后的完整代码

from pandas import set_option
from tvDatafeed import TvDatafeed, Interval

tv = TvDatafeed()
set_option('display.max_rows', None)

# 获取数据并赋值给合理的变量名
data = tv.get_hist('NAS100','PEPPERSTONE',interval=Interval.in_daily,n_bars=100)

# 提取开盘、最高、最低、收盘价这四列
ohlc_data = data[['open', 'high', 'low', 'close']]

# 按要求格式逐行打印
for _, row in ohlc_data.iterrows():
    print(f"{row['open']}  {row['high']}  {row['low']}  {row['close']}")

代码说明

  1. 变量名修正:把str改为data,避免覆盖Python内置的字符串类型。
  2. 列选择:通过data[['open', 'high', 'low', 'close']]直接提取需要的四列,tvDatafeed返回的DataFrame默认列名就是这四个(对应你输出里的第三到第六个数值)。
  3. 格式化输出:用iterrows()遍历每行数据,用f-string按空格分隔的格式打印四个价格值,完全匹配你要的输出样式。

如果需要一次性打印所有行(不逐行循环),也可以用以下方式:

print(ohlc_data.to_string(header=False, index=False, col_space=6))

这个方法会自动对齐列,输出格式同样符合要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 01:14:53