微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在每笔交易中生成指标值,金融研究,定量交易,向量化回测

如何解决如何在每笔交易中生成指标值,金融研究,定量交易,向量化回测

我正在制定一种交易策略,其中需要为每个刻度线计算一个bollinger波段指标。格式,日期-出价-卖价。

我的目标是为数据框中的每个刻度线(行)填充每个bollinger带(低,中,高)的列,以便我可以对策略进行进一步的测试。

根据我的研究,计算波林格带的步骤为:

  1. 计算回溯窗口的平均值
  2. 计算标准偏差
  3. 上限=平均值+ STD,下限=平均值-STD,中段=平均值

bollinger带指示器使用20分钟的回溯(20x1分钟的蜡烛)窗口。

我的问题是:如何计算回溯期的指标值。我是要计算报价的平均价格,还是需要预先将报价数据重新采样到OHLC 1分钟蜡烛数据?

这是我到目前为止没有重采样的代码

LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WParaM wParam,LParaM lParam)
{
    static HWND hButton;
    switch (message)
    {
    case WM_CREATE:
        hButton = CreateWindow(TEXT("Button"),TEXT("OK"),WS_VISIBLE | WS_CHILD | BS_PUSHBUTTON,50,hwnd,NULL,NULL);
        return 0;
    case WM_SIZE:
    {
        int cxClient = LOWORD(lParam);
        int cyClient = HIWORD(lParam);
        SetwindowPos(hButton,cxClient / 3,cyClient / 4,cxClient / 5,cyClient / 2,SWP_SHOWWINDOW);
        return 0;
    }
    case WM_DESTROY:
        PostQuitMessage(0);
        return 0;
    }
    return DefWindowProc(hwnd,message,wParam,lParam);
}

解决方法

您可以使用现有的库。这是一个:https://pypi.org/project/pandas-ta/

,

您还可以利用熊猫的直接功能。例如,如果您只想计算波林格带,则可以尝试以下方法:

df["mid_band"] = df.bid.rolling(20).mean()
df["upper"],df["lower"] = df.mid_band+df.mid_band.rolling(20).std(),df.mid_band-df.mid_band.rolling(20).std()

如果您使用的蜡烛是100万个,那么我建议您将蜡烛重新采样到1分钟或下载1分钟的蜡烛。如果您使用的是其他聚合类型,则创建OHLC蜡烛并运行上面的代码。

您可能想尝试探索的其他东西是现有的库,例如TA-LIB或@Jonathan Leon提到的库。

顺便说一句,要在end_date循环中获取iterrows参数,为什么不使用row.date

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。