gpt4 book ai didi

excel - DDE:Excel 分析中的时间序列

转载 作者:行者123 更新时间:2023-12-04 20:17:29 24 4
gpt4 key购买 nike

概括:
我需要使用 DDE 存储/分析进入 Excel 中 1 个单元格的实时时间序列。
问题:
因为它是 1 个不断变化的单元格,所以我不知道如何获取更新值的每个实例,以便我可以在其他公式、绘图等中使用它。所以它在 Excel 电子表格中的 1 个单元格每毫秒更改一次,我想获得实际的时间序列(t、t-1、t-2、t-3 等)。我不知道如何存储为时间序列。
细节:
我正在使用 MetaTrader 4 (MT4) 进行一些分析。导入实时价格的代码如下所示:

=MT4|BID!EURUSD
=MT4|ASK!EURUSD
=MT4|HIGH!EURUSD
=MT4|LOW!EURUSD
=MT4|TIME!EURUSD
我希望能够使用各种公式中的时间序列来实时计算和更新绘图。如果我可以将实时数据发送到 MATLAB,那也会很有帮助。但这一切都必须是实时分析的实时数据。

最佳答案

如果您愿意接受 VBA 解决方案,您可以使用 Workbook.SetLinkOnData传入数据更改时调用 Sub 的方法。

我建议只响应 TIME 上的更改主题,并一次性复制所有相关数据

基于此数据布局

Based on this data layout

设置打开事件的监视器(将它放在 ThisWorkbook 模块中)

Sub Workbook_Open()
Dim wb As Workbook
Dim Links As Variant
Dim i As Long

Set wb = ThisWorkbook
Links = wb.LinkSources(xlOLELinks)

For i = LBound(Links) To UBound(Links)
If Left$(Links(i), 8) = "MT4|TIME" Then
wb.SetLinkOnData Links(i), "MT4_OnUpdate"
End If
Next
End Sub

并在普通模块中编写数据处理程序

Sub MT4_OnUpdate()
' DDE Updated TIME, copy data
Dim ws As Worksheet
Dim Source As Range
Dim Dest As Range

Set ws = Worksheets("Your DDE Data Sheet")

With ws
Set Source = ws.Range("A2:E2")
Set Dest = .Cells(.Rows.Count, 1).End(xlUp).Offset(1, 0).Resize(1, Source.Columns.Count)
End With

Dest.Value = Source.Value
End Sub

这将复制单元格 A2:E2到历史数据列表的底部,每次 A2 (来自 MT4 的时间戳)更改。

注意:您在 OP 中说要每毫秒更新一次。这不可能发生,因为 MT4|TIME正在返回一个分辨率为 1 秒的 DateTime 序列。即使它可能发生,Excel 处理的数据也太多了

关于excel - DDE:Excel 分析中的时间序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19340809/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com