返回

TradingView 自定义数据提要故障排除:图表显示问题无法解决?

vue.js

TradingView 自定义数据提要疑难解答:图表显示问题

问题

在使用自定义数据提要时,TradingView 终端无法显示图表。然而,使用示例数据提要时,图表可以正常显示。

根源探究

根据代码分析和信息收集,导致该问题的原因可能包括:

  • 不正确的数据提要请求(例如,硬编码 action 参数)
  • 缺少 countback 参数(指定要返回多少个数据点)
  • 服务器响应问题(例如,无法处理数据提要请求)

解决方案

为了解决此问题,请采取以下步骤:

检查数据提要请求

确保 action 参数是动态的,并且 countback 参数包含在 /history 请求中。

检查服务器响应

使用网络工具或外部工具(例如,cURL 或 Postman)测试服务器对数据提要请求的响应。确认响应中包含正确的 JSON 格式和所需的数据。

排除其他错误

检查控制台日志中是否存在任何错误或警告消息,以识别潜在的附加问题。

代码更新

以下是更新后的代码,解决了上述潜在问题:

TradingView.vue

import datafeed from '../../lib/datafeed';

const widgetOptions = {
  // ...其他选项
  datafeed: {
    onReady: callback => {
      setTimeout(() => callback(configurationData), 0);
    },
    searchSymbols: (userInput, exchange, symbolType, onResultReadyCallback) => {
      // ...搜索符号实现
    },
    resolveSymbol: (symbolName, onSymbolResolvedCallback, onResolveErrorCallback) => {
      // ...解析符号实现
    },
    getBars: (symbolInfo, resolution, periodParams, onHistoryCallback, onErrorCallback) => {
      // ...获取条形图实现
    },
  },
  // ...其他选项
};

datafeed.js

const constructApiUrl = (actionPath, additionalParams = {}) => {
  let baseUrl = `${BASE_URL}?access=${ACCESS_CODE}&_id=${USER_ID}&token=${USER_TOKEN}`;

  // ...构建 action 参数

  return `${baseUrl}&${actionParam}`;
};

export default {
  onReady: (callback) => {
    // ...
  },

  searchSymbols: async (userInput, exchange, symbolType, onResultReadyCallback) => {
    // ...
  },

  resolveSymbol: async (symbolName, onSymbolResolvedCallback, onResolveErrorCallback) => {
    const action = '/symbols';
    const additionalParams = {
      symbol: symbolName,
      resolution: '1D',
    };

    const url = constructApiUrl(action, additionalParams);

    // ...
  },

  getBars: async (symbolInfo, resolution, periodParams, onHistoryCallback, onErrorCallback) => {
    const { from, to } = periodParams;

    // ...
    const additionalParams = {
      symbol: symbolInfo.name,
      resolution: resolution,
      from: from.toString(),
      to: to.toString(),
      countback: 2,
    };

    const url = constructApiUrl(actionPath, additionalParams);

    // ...
  },
};

确保服务器可以正确处理数据提要请求并返回适当的 JSON 响应。

常见问题解答

1. 为什么使用自定义数据提要而不是示例数据提要?

自定义数据提要使您能够连接到您自己的数据源,这可以为您的图表提供更多定制和控制。

2. 如何调试自定义数据提要?

使用控制台日志和外部工具(例如,cURL 或 Postman)来检查数据提要请求和响应。

3. 有哪些其他原因可能导致图表显示问题?

  • 互联网连接问题
  • 防火墙或代理问题
  • 浏览器扩展或插件干扰

4. 如何提高自定义数据提要的性能?

  • 缓存数据
  • 优化服务器响应时间
  • 减少不必要的数据请求

5. 我在哪里可以获得其他帮助?

TradingView 社区论坛和支持团队是获取帮助的有用资源。

结论

遵循上述步骤并解决潜在问题将使您能够在 TradingView 终端中成功显示来自自定义数据提要的图表。通过自定义数据提要,您可以解锁更强大的功能和定制选项,以增强您的图表分析体验。