本文还有配套的精品资源,点击获取 menu-r.4af5f7ec.gif

简介:本挑战聚焦于应用VBA分析历史股票市场数据,涵盖财务建模、数据分析与编程技巧。VBA在Excel中用于数据导入、计算、清洗和复杂数据分析,同时需注意错误处理、用户界面设计及代码组织。完成这个项目,你将提升VBA编程技能,学习解决金融问题的实用方法。 VBA-Challenge:VBA代码,用于分析历史股票市场数据

1. VBA在股票数据分析中的应用

在金融市场中,数据的分析对于制定投资策略至关重要。VBA(Visual Basic for Applications)作为一种高效的编程工具,能够在Excel环境中自动化执行复杂的股票数据分析任务,从而大大提高工作效率和准确性。从基本的股票数据获取到深度的金融分析,VBA都能发挥其强大的作用。

1.1 VBA基础知识

在探讨VBA在股票数据分析中的应用之前,首先需要掌握VBA的基础知识。VBA是一种事件驱动的编程语言,内嵌于Microsoft Office应用程序中,使得用户能够通过编程来控制这些应用程序的功能。编写VBA代码通常是在Excel的“开发者”选项卡下的Visual Basic编辑器中进行。

1.2 VBA在股票数据分析中的优势

使用VBA进行股票数据分析的优势在于它能够直接与Excel中的数据交互。这意味着可以利用Excel强大的表格、图表和函数库,同时通过VBA来自动化重复性高的任务,如数据采集、清洗、分析和报告生成。这不仅节省了时间,而且减少了人为错误的可能性,使得分析师可以更加专注于策略的制定和决策。

1.3 实际应用案例

例如,一家投资公司可能会使用VBA来自动化构建一个股票投资组合的业绩追踪系统。VBA可以编程定期从金融数据API获取最新的股票价格和交易量数据,然后计算投资组合的总体回报率、风险指标等关键性能指标,并将结果格式化输出到Excel报表中供分析师使用。

以上章节内容为入门级概述,为后续更深入的内容做好铺垫。在第二章我们将详细讨论如何从外部源获取历史股票价格数据。

2. 从外部源获取历史股票价格数据

数据是金融分析的核心,获取准确和及时的数据对于股票交易策略的制定至关重要。VBA作为一种强大的编程语言,可以用来从各种外部源自动获取历史股票价格数据,进而进行进一步的分析。本章将介绍如何选择合适的数据源、了解API使用方法及其限制,并详细讲解使用VBA连接数据源的技术。

2.1 数据源的选择与接入

在股票分析过程中,正确的数据源选择是获得高质量分析结果的前提。本节将简要介绍一些常见的公开股票数据平台,并重点探讨如何使用API接入这些数据源。

2.1.1 公开股票数据平台简介

公开股票数据平台是股票交易分析的宝贵资源。它们提供实时或历史的股票价格、交易量、财务报表等数据,使分析者能够进行深入的市场研究。一些著名的数据源包括雅虎财经(Yahoo Finance)、谷歌财经(Google Finance)、Alpha Vantage等。这些平台通常提供免费服务,也有付费服务提供更多高级功能。通过它们的API,我们可以编写VBA代码以程序化的方式访问和下载数据。

2.1.2 API的使用方法和限制

API(应用程序编程接口)是数据平台与外部应用程序通信的接口。使用API时,通常需要注册并获取一个API密钥(API Key),这个密钥用于验证你的请求,确保你的应用有权限获取数据。大多数API有访问频率限制,例如每分钟或每天的请求次数,超出限制可能会导致请求被拒绝。了解这些限制是非常重要的,因为不遵守API使用协议可能会导致账号被封禁。

以Alpha Vantage为例,其API使用RESTful接口,允许用户通过HTTP请求获取JSON或CSV格式的数据。要使用Alpha Vantage API,首先在官网注册账号,然后获取API密钥。在VBA中,可以通过WinHttp对象发送HTTP请求并获取响应。

2.2 VBA与数据源的连接技术

要将VBA与网络数据源连接起来,可以使用多种方法。在本节中,我们将详细介绍如何使用WinHttp对象获取网络数据,以及如何处理从API获取的JSON和XML格式数据。

2.2.1 使用WinHttp对象获取网络数据

VBA中的WinHttp对象提供了访问HTTP服务的功能。它允许我们发送请求并接收数据,非常适合用于获取API数据。以下是一个基本的代码示例,展示如何使用WinHttp对象获取数据:

Sub GetStockData()
    Dim http As Object, url As String, apiKey As String, json As String
    ' API Key and URL
    apiKey = "YOUR_API_KEY_HERE"
    url = "https://www.alphavantage.co/query?function=TIME_SERIES_DAILY&symbol=IBM&apikey=" & apiKey
    ' Create WinHttp object
    Set http = CreateObject("WinHttp.WinHttpRequest.5.1")
    ' Open and send request
    http.Open "GET", url, False
    http.Send
    ' Check status
    If http.Status = 200 Then
        json = http.ResponseText
        ' Process json data...
    Else
        MsgBox "Error: " & http.Status
    End If
    ' Clean up
    Set http = Nothing
End Sub

在这个例子中,我们创建了一个WinHttp对象,设置了请求的URL(包含了API Key和股票代码),然后发送了GET请求。如果服务器响应状态码为200(HTTP OK),则表示请求成功,数据存储在 http.ResponseText 中。最后,我们检查了响应状态码,并在成功的情况下处理数据。

2.2.2 处理JSON和XML格式的数据

获取到数据后,VBA需要对这些数据进行解析。JSON和XML是常用的两种数据格式,它们都有自己的解析方法。对于JSON数据,可以使用第三方库如JSONConverter进行解析,而XML数据则可以使用MSXML库。

在解析JSON数据时,通常需要将JSON字符串转换为VBA可以理解的对象或字典结构,这样才能方便地访问所需的信息。解析XML数据时,需要使用MSXML库中的XMLHTTP对象来加载和解析XML文件,然后通过节点和属性访问具体数据。

以下是一个解析JSON数据的示例代码:

' Assume json variable is the JSON string from previous step
Dim jsonParser As Object, objData As Object
Set jsonParser = CreateObject("MSXML2.DOMDocument")
jsonParser.Async = False
jsonParser.LoadJSON(json)

Set objData = jsonParser.selectSingleNode("//TimeSeries")

' Now objData is a dictionary-like object which we can use to extract data

在此代码片段中,我们首先创建了一个MSXML的DOMDocument对象,然后加载了JSON字符串。通过 selectSingleNode 方法,我们提取了数据部分。之后可以进一步迭代 objData ,访问各个日期的数据。

2.3 本章小结

通过本章的学习,我们了解了如何选择和接入数据源,以及如何在VBA中使用WinHttp对象获取网络数据。我们还探索了如何处理JSON和XML格式的数据,为将数据用于分析打下了基础。在接下来的章节中,我们将深入学习如何使用Excel对象模型处理和分析这些数据,使我们能够更准确地理解和利用股票市场信息。

3. 使用Excel对象模型处理和分析数据

在深入探讨如何利用Excel对象模型对数据进行处理和分析之前,先对Excel对象模型的基本概念有一个总体的了解是至关重要的。本章节将从Excel对象模型的基础开始,逐步深入到数据处理和分析的技巧,使读者能够熟练运用这些技术来增强工作效率。

3.1 Excel对象模型概述

3.1.1 工作簿、工作表和单元格对象

Excel对象模型建立在三个主要对象之上:工作簿(Workbook)、工作表(Worksheet)和单元格(Cell)。工作簿是整个Excel文件,它可以包含一个或多个工作表。每个工作表代表电子表格的一个单独的"页面",而单元格则是构成工作表的基本数据单元。

'示例代码:打开一个工作簿,并设置当前活动工作表
Dim wbk As Workbook
Set wbk = Workbooks.Open("C:\Data\StockData.xlsx") '打开工作簿
wbk.Activate '使工作簿成为活动工作簿

Dim ws As Worksheet
Set ws = wbk.Sheets("Sheet1") '获取名为"Sheet1"的工作表
ws.Activate '使工作表成为活动工作表

3.1.2 使用Range对象进行数据操作

Range对象代表工作表中的一个或多个单元格。通过Range对象,我们可以访问和操作单元格的值、格式以及其他属性。Range对象是Excel VBA中使用最频繁的,因为它可以让我们对数据进行各种各样的处理。

'示例代码:设置单元格A1的值为"Hello, World!"
Range("A1").Value = "Hello, World!"

'示例代码:将B2到B4的单元格值设置为变量的内容
Dim stockPrice As Double
stockPrice = 100
Range("B2:B4").Value = stockPrice

'示例代码:更改C3单元格的背景颜色为红色
Range("C3").Interior.Color = RGB(255, 0, 0)

3.2 数据处理技巧

3.2.1 数据排序、筛选和分类汇总

在处理股票数据分析时,我们经常需要对数据进行排序和筛选来找出关键信息。此外,分类汇总可以帮助我们对数据进行分组和计算,以得到更深层次的洞察。

'示例代码:对A列的股票数据按降序排序
Range("A2:A100").Sort Key1:=Range("A2"), Order1:=xlDescending, Orientation:=xlTopToBottom

'示例代码:使用AutoFilter方法对数据进行筛选
Range("A1:F100").AutoFilter Field:=1, Criteria1:="AAPL" '假设AAPL是我们要筛选的股票代码

'示例代码:在G列旁边创建分类汇总
Sub CreatePivotTable()
    Dim pt As PivotTable
    Set pt = ActiveSheet.PivotTables.Add( _
        SourceType:=xlDatabase, _
        SourceData:=Range("A1:F100"), _
        TableDestination:=Range("G1"), _
        HasAutoFormat:=True _
    )
    With pt
        .PivotFields("StockCode").Orientation = xlRowField
        .PivotFields("Price").Orientation = xlDataField
        .PivotFields("Price").Function = xlSum
    End With
End Sub

3.2.2 动态数据表和图表的创建

动态数据表可以基于单元格数据的变化自动更新,而图表则能以图形形式直观展示数据。这些功能在股票数据分析中非常有用,能够帮助用户快速识别趋势和模式。

'示例代码:创建一个动态的数据表
Sub CreateDynamicTable()
    Dim tbl As ListObject
    Set tbl = ActiveSheet.ListObjects.Add(xlSrcRange, Range("$A$1:$F$100"), , xlYes)
    tbl.Name = "StockDataTable"
End Sub

'示例代码:基于数据表创建一个图表
Sub CreateChart()
    Dim tbl As ListObject
    Set tbl = ActiveSheet.ListObjects("StockDataTable")
    Dim chtObj As ChartObject
    Set chtObj = ActiveSheet.ChartObjects.Add(Left:=200, Width:=375, Top:=50, Height:=225)
    With chtObj.Chart
        .SetSourceData Source:=tbl.Range
        .ChartType = xlLine
    End With
End Sub

在本章节中,我们详细探讨了Excel对象模型的基础知识,介绍了如何使用Range对象进行数据操作,以及执行了数据排序、筛选、分类汇总等操作,并且演示了动态数据表和图表的创建方法。这些技术能够帮助我们在Excel中有效地管理和分析股票数据。在后续的内容中,我们将深入学习如何利用VBA进行数据计算与统计分析,以及如何进行数据清洗与预处理,进一步提升我们在金融数据分析方面的专业技能。

4. VBA实现数据计算与统计分析

在第四章,我们将深入探讨如何使用VBA(Visual Basic for Applications)进行数据的计算和统计分析。VBA作为一种编程语言,为Excel用户提供了强大的自动化数据处理和分析能力。通过利用VBA中的函数和算法,可以有效地完成从基本的数学运算到复杂的金融分析的各种任务。

4.1 VBA中的数学和统计函数

4.1.1 常用统计函数的应用

在Excel中,我们经常需要计算平均值、中位数、最大值、最小值等统计量。VBA提供了丰富的内置函数来帮助我们进行这些计算。例如:

Function CalculateAverage(dataRange As Range) As Double
    CalculateAverage = Application.WorksheetFunction.Average(dataRange)
End Function

以上代码定义了一个名为 CalculateAverage 的函数,它接受一个范围(Range)作为参数,并使用 WorksheetFunction.Average 方法来计算该范围内的平均值。

Sub FindMedian()
    Dim medianValue As Double
    medianValue = Application.WorksheetFunction.Median(Range("A1:A10"))
    MsgBox "The median value is: " & medianValue
End Sub

这段代码则展示了如何使用 WorksheetFunction.Median 方法来找到一组数据的中位数,并通过消息框显示结果。

4.1.2 自定义函数进行复杂计算

有时,内置函数并不能满足我们的需求,此时我们可以自定义函数。自定义函数允许我们编写自己的算法来处理数据。例如,以下代码展示了如何自定义一个计算标准差的函数:

Function CustomStandardDeviation(dataRange As Range) As Double
    Dim sum As Double
    Dim mean As Double
    Dim variance As Double
    Dim i As Integer
    Dim n As Integer
    ' 计算平均值
    mean = Application.WorksheetFunction.Average(dataRange)
    ' 计算方差
    For i = 1 To dataRange.Count
        sum = sum + (dataRange.Cells(i).Value - mean) ^ 2
    Next i
    variance = sum / (dataRange.Count - 1)
    ' 返回标准差
    CustomStandardDeviation = Sqr(variance)
End Function

在这个例子中,我们使用了自定义的循环来计算方差,然后通过开平方根来获取标准差值。

4.2 金融分析中的高级计算

4.2.1 投资回报率的计算

投资回报率是金融分析中经常用到的一个指标。在Excel中,我们可以使用VBA编写函数来计算年化回报率,以下是计算年化回报率的函数示例:

Function CalculateAnnualReturn(values As Range) As Double
    Dim irrValue As Double
    irrValue = Application.WorksheetFunction.IRR(values, 0.1)
    CalculateAnnualReturn = irrValue
End Function

在这个函数中,我们使用了 WorksheetFunction.IRR 方法计算内部回报率(Internal Rate of Return,IRR),并将其作为年化回报率返回。这里假设了10%作为IRR的猜测值。

4.2.2 风险评估和波动率分析

风险评估是金融分析的另一个重要方面。波动率是用来衡量资产价格变动程度的一个指标,可以通过标准差来计算。以下是一个计算年化波动率的自定义函数:

Function CalculateAnnualVolatility(prices As Range) As Double
    Dim dailyVolatility As Double
    Dim annualVolatility As Double
    Dim dailyReturns As Range
    ' 计算日收益率
    Set dailyReturns = prices.Offset(1, 0).Resize(prices.Rows.Count - 1, 1) _
        .Evaluate("=LN(" & dailyReturns.Address & "/" & prices.Offset(1, 0).Address & ")")
    ' 计算日波动率
    dailyVolatility = Application.WorksheetFunction.StDev_S(dailyReturns)
    ' 计算年波动率
    annualVolatility = dailyVolatility * Sqr(252)
    CalculateAnnualVolatility = annualVolatility
End Function

在此代码中,首先计算了日收益率,然后使用标准差函数 StDev_S 来得到日波动率,最后将其转换为年化波动率。这里假定市场一年有252个交易日。

接下来的章节将继续深入VBA在数据清洗、错误处理、代码组织与模块化方面的应用,以及如何通过学习资源和案例分析来进一步提升VBA编程和金融问题解决能力。

5. 数据清洗与预处理技巧

在金融数据分析领域,数据的质量是决定分析结果准确性的关键因素之一。数据清洗与预处理是确保数据质量的重要步骤,它涉及对原始数据进行一系列转换、整理,以便数据分析工具能够更有效地处理。VBA(Visual Basic for Applications)提供了强大的数据处理能力,使得在Excel环境中进行数据清洗和预处理成为可能。本章我们将探讨如何使用VBA进行缺失值处理、数据格式化和标准化等预处理技巧。

5.1 识别和处理缺失值

5.1.1 缺失值的影响和识别方法

缺失值在数据集中是常见问题,可能因为数据录入错误、传输故障或其他原因产生。它们会对数据的分析和计算结果产生负面影响,包括但不限于:偏差分析结果、降低预测模型的准确性、影响数据的完整性等。

在Excel中,可以通过以下几种方法来识别缺失值:

  • 使用条件格式标记缺失值:在Excel中,你可以使用条件格式工具来高亮显示空白单元格,从而快速识别哪些单元格是空的。
  • 利用VBA进行识别:VBA可以遍历数据集,检查每个单元格的值,并根据需要标记或记录缺失值。

下面的代码示例展示了如何使用VBA检查指定范围内的单元格,并将检测到的空白单元格标记为红色背景:

Sub HighlightBlankCells()
    Dim rng As Range
    Dim cell As Range
    ' 设置要检查的数据范围
    Set rng = Sheet1.Range("A1:A100")
    ' 遍历范围内的每个单元格
    For Each cell In rng
        If IsEmpty(cell.Value) Then
            ' 如果单元格为空,则将背景设置为红色
            cell.Interior.Color = RGB(255, 0, 0)
        End If
    Next cell
End Sub

5.1.2 缺失值的填充技术

处理缺失值的一个常见方法是填充,即用其他值替代空白单元格。在Excel中可以通过填充句柄、使用“定位条件”功能,或者应用VBA代码来自动化这一过程。

VBA代码可以在遍历数据集时根据需要对缺失值进行填充,例如使用平均值、中位数、众数,或者基于某些逻辑条件来填充。下面是一个使用平均值填充特定列缺失值的VBA示例:

Sub FillMissingValuesWithAverage()
    Dim ws As Worksheet
    Dim rngToCheck As Range
    Dim rngToFill As Range
    Dim avgValue As Double
    Dim cell As Range
    ' 设置工作表和要检查及填充的范围
    Set ws = Sheet1
    Set rngToCheck = ws.Range("B1:B100")
    Set rngToFill = rngToCheck.Offset(0, 1) ' 假设缺失值在相邻的下一列
    ' 计算非空单元格的平均值
    avgValue = Application.Average(rngToCheck)
    ' 遍历范围,用平均值填充空白单元格
    For Each cell In rngToFill
        If IsEmpty(cell.Value) Then
            cell.Value = avgValue
        End If
    Next cell
End Sub

5.2 数据格式化和标准化

5.2.1 日期和时间数据的处理

日期和时间数据通常需要特别处理以确保格式统一,便于后续分析。不同的数据源可能使用不同的日期时间格式,VBA可以通过自定义格式和转换函数将日期和时间标准化。

在处理日期和时间数据时,首先要确保所有日期时间数据都被识别为Excel日期格式,然后统一格式以便分析。以下是一个将文本格式的日期转换为标准Excel日期格式的VBA示例:

Sub ConvertTextToDate()
    Dim rng As Range
    Dim cell As Range
    Dim textDate As String
    Dim dateValue As Date
    ' 设置要转换的日期数据范围
    Set rng = Sheet1.Range("A1:A100")
    ' 遍历范围中的每个单元格
    For Each cell In rng
        textDate = cell.Value
        If IsNumeric(textDate) Then
            ' 如果文本是数字,则直接转换
            dateValue = textDate
        Else
            ' 如果是文本格式的日期,使用VBA的转换函数
            dateValue = DateSerial(Left(textDate, 4), Mid(textDate, 5, 2), Right(textDate, 2))
        End If
        ' 将转换后的日期值设置回单元格
        cell.Value = dateValue
    Next cell
End Sub

5.2.2 文本数据的清洗与转换

文本数据可能包含多余的空格、不可见字符、不同格式的日期和时间字符串等。在进行数据分析之前,我们需要对这些文本进行清洗,包括:

  • 去除多余的空格和不可见字符。
  • 统一日期时间的格式。
  • 标准化文本的大小写。

使用VBA进行文本清洗可以提高效率,下面是一个去除字符串两端空格并转换为小写的VBA函数示例:

Function CleanAndLower(str As String) As String
    CleanAndLower = Trim$(str) ' 去除字符串两端的空格
    CleanAndLower = LCase$(CleanAndLower) ' 转换为小写
End Function

Sub ApplyTextCleaning()
    Dim rng As Range
    Dim cell As Range
    Dim cleanedText As String
    ' 设置要清洗的文本数据范围
    Set rng = Sheet1.Range("C1:C100")
    ' 遍历范围中的每个单元格
    For Each cell In rng
        If Not IsEmpty(cell.Value) Then
            cleanedText = CleanAndLower(cell.Value)
            cell.Value = cleanedText
        End If
    Next cell
End Sub

通过上述VBA代码,我们可以批量处理Excel中的一列文本数据,清洗它们并转换为统一的格式,为后续的数据分析工作做准备。

数据清洗和预处理是金融数据分析流程中不可或缺的一环,而VBA作为一种灵活的编程工具,可以大大简化和自动化这一过程。通过本章节介绍的技巧和方法,数据分析师可以更有效地准备数据集,确保分析结果的准确性和可靠性。

6. 错误处理和用户界面设计

在编写任何程序时,错误处理和用户界面设计都是两个不可或缺的方面。它们确保了代码的健壮性和用户交互的友好性,特别是在使用VBA进行数据处理和分析时。本章将详细探讨如何在VBA中实现错误处理机制,以及如何设计一个直观且用户友好的界面。

6.1 VBA中的错误处理机制

VBA允许开发者使用一系列语句和函数来管理在程序执行过程中可能出现的错误。这样,即使发生错误,程序也能够优雅地恢复,甚至提供错误信息给用户。

6.1.1 常见错误类型及处理策略

在VBA中,错误可以分为三类:编译时错误(语法错误)、运行时错误和逻辑错误。编译时错误在编写代码时就被识别,而运行时错误和逻辑错误则需要在执行过程中被发现和处理。

常见的运行时错误包括除零错误、文件未找到错误或对象不支持某个操作的错误。对于这些错误,VBA提供了一种名为“错误处理程序”的机制,它由四个关键字组成: On Error Resume Next On Error GoTo Resume Err 对象。

下面是一个简单的错误处理例子:

On Error GoTo ErrorHandler
' 正常代码执行
MsgBox "正常执行,没有错误"
Exit Sub

ErrorHandler:
' 错误处理代码
MsgBox "发生了一个错误:" & Err.Description
Exit Sub

在上面的代码中, On Error GoTo ErrorHandler 表示当遇到任何运行时错误时,程序将跳转到标签 ErrorHandler 下的代码块,而不是中断执行并显示常规的错误消息。之后,你可以使用 Err.Description 来获取具体的错误描述,并通过自定义的错误消息通知用户。

6.1.2 使用错误捕获和调试技巧

错误捕获和调试是确保程序可靠运行的关键步骤。在VBA中,你可以利用 Debug.Print 语句输出调试信息到立即窗口,使用 Stop 语句在执行到某行代码时暂停程序,以帮助你检查程序状态。

在更复杂的情况下,VBA 提供了调试工具,比如断点、单步执行和调用栈窗口,这些工具可以用来逐步跟踪代码的执行,并检查变量值。

6.2 用户界面的设计原则

用户界面(UI)是用户与程序进行交互的视觉部分。良好的UI设计能够提高用户体验,使用户能够更容易地使用程序和理解其功能。

6.2.1 创建友好的交互界面

在设计VBA用户界面时,需要注意以下几点:

  • 简洁性 :避免使用过于复杂或不直观的元素。
  • 一致性 :在全应用中保持UI元素的风格和布局一致。
  • 易用性 :确保用户可以轻松地找到和使用功能。
  • 反馈 :对用户的操作提供即时的反馈,如消息框、颜色变化等。

使用VBA的表单(Form)可以创建强大的交互式用户界面,允许你添加各种控件,比如按钮、文本框、列表框和选项卡等。

6.2.2 事件驱动的用户界面交互

在VBA中,用户界面通常基于事件驱动编程模型。控件的事件(如点击、按键、改变值等)触发了特定的代码执行。例如,一个按钮的点击事件可能会触发一个宏运行:

Private Sub CommandButton1_Click()
    MsgBox "按钮被点击了!"
End Sub

在上面的代码中, CommandButton1_Click 是一个事件处理程序,它会在用户点击按钮时被调用。

对于更复杂的交互,可以编写更详细和逻辑更丰富的事件处理代码,以实现复杂功能。

请注意,本章内容是VBA编程中关键的两个方面,它们能够极大地提升程序的可靠性和用户体验。在下一章中,我们将探讨如何组织和模块化代码,以及代码的测试与维护策略。

本文还有配套的精品资源,点击获取 menu-r.4af5f7ec.gif

简介:本挑战聚焦于应用VBA分析历史股票市场数据,涵盖财务建模、数据分析与编程技巧。VBA在Excel中用于数据导入、计算、清洗和复杂数据分析,同时需注意错误处理、用户界面设计及代码组织。完成这个项目,你将提升VBA编程技能,学习解决金融问题的实用方法。

本文还有配套的精品资源,点击获取 menu-r.4af5f7ec.gif

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐