我有使用羊驼 websocket 的这段代码,但有一个未定义的函数

I have this code using the alpaca websocket but there is a function which is not defined

from time import sleep
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import requests
plt.style.use("fivethirtyeight")
import alpaca_trade_api as tradeapi
import threading
from bs4 import BeautifulSoup
import datetime
import logging

api_key = 'YOUR API KEY'
api_secret = 'YOUR API SECRET KEY'
base_url = 'https://paper-api.alpaca.markets'
data_url = 'wss://data.alpaca.markets'
ws_url = 'wss://data.alpaca.markets'

# instantiate REST API
api = tradeapi.REST(api_key, api_secret, base_url, api_version='v2')


# init WebSocket
conn = tradeapi.stream2.StreamConn(
    api_key,
    api_secret,
    base_url=base_url,
    data_url=data_url,
    data_stream='alpacadatav1',
)

我收到错误 conn = tradeapi.stream2.StreamConn( AttributeError: 模块 'alpaca_trade_api' 没有属性 'stream2'

此代码来自 https://algotrading101.com/learn/alpaca-trading-api-guide/ 在页面末尾展示他如何制作交易算法的部分。

我是否需要导入任何额外的库,或者我在代码中的某处有误。

该教程有点过时了。 alpaca_trade_api 的较新版本正在使用 Stream class:

conn = tradeapi.stream.Stream(
    key_id=api_key,
    secret_key=api_secret,
    base_url='https://paper-api.alpaca.markets',
    data_feed='iex'
)

请注意,免费数据源是 'iex',付费数据源是 'sip'。建立连接后,您需要使用 conn.subscribe_trades()conn.subscribe_quotes() 订阅交易或报价。有关详细信息,请参阅 the github page