【问题标题】:DDE: Time series in Excel analysisDDE:Excel 分析中的时间序列
【发布时间】:2013-10-20 20:55:34
【问题描述】:

总结: 我需要使用 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,那也会很有帮助。但这一切都必须是实时分析的实时数据。

【问题讨论】:

    标签: excel matlab time-series dde algorithmic-trading


    【解决方案1】:

    如果您对 VBA 解决方案持开放态度,则可以在传入数据更改时使用 Workbook.SetLinkOnData 方法调用 Sub。

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

    基于此数据布局

    在 Open 事件上设置监视器(将其放在 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 也无法处理太多数据

    【讨论】:

    • 这真的很有帮助。我有一段时间没有使用 VBA,但我会试一试,看看我是怎么做的。非常感谢详细的回复。
    • 您愿意为此付费吗?我无法让它工作。
    • 我认为你现在应该坚持 SO。发布另一个问题,请务必follow the guidlines 特别发布您尝试过的代码并解释它如何不符合您的要求。包括显示输入和输出样本数据的样本数据集。如果可以的话我会帮忙的。
    【解决方案2】:

    我建议你试试 FxOne.com 的平台。
    您可以免费试用 30 天。 如果您是 FXCM 的客户,则完全免费。

    它比 excel 更强大,因为它不使用 VBA,而是使用非常适合算法交易的 C++。 VBA 非常适合分析,但不适用于交易。我试图做到底在寻找什么,每次 Excel 崩溃。有了这个平台,一切都非常顺利。

    【讨论】:

    • 感谢您的推荐。这是一个非常酷的平台,我一定会更详细地查看它。
    猜你喜欢
    • 2011-12-26
    • 2014-07-10
    • 1970-01-01
    • 2020-06-03
    • 2016-08-12
    • 2013-09-08
    • 2018-03-11
    • 2019-07-15
    • 2020-09-23
    相关资源
    最近更新 更多