首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Td Ameritrade用endDate startDate下载历史数据

Td Ameritrade用endDate startDate下载历史数据
EN

Stack Overflow用户
提问于 2022-02-01 16:15:31
回答 2查看 709关注 0票数 0

我不知道如何获得一天的数据。使用代码中的年度行,我知道给定日期的毫秒值。

1612159200000.00 AAPL 2/1/2021 6:00

1612418400000.00 AAPL 2/4/2021 6:00

但是将这些值放入代码中是行不通的

代码语言:javascript
复制
data=get_price_history(symbol=i, endDate=1612418400000 , startDate=1612159200000,  frequency=1, frequencyType='daily')
代码语言:javascript
复制
import requests
import pandas as pd
import time
import datetime

# tickers_list= ['AAPL', 'AMGN', 'AXP']
# print(len(tickers_list))

key = '****'

def get_price_history(**kwargs):

    url = 'https://api.tdameritrade.com/v1/marketdata/{}/pricehistory'.format(kwargs.get('symbol'))
    params = {}
    params.update({'apikey': key})

    for arg in kwargs:
        parameter = {arg: kwargs.get(arg)}
        params.update(parameter)

    return requests.get(url, params=params).json()

tickers_list= ['AAPL', 'AMGN','WMT']
for i in tickers_list:

    # get data 1 year 1 day frequency -- good
    # data=get_price_history(symbol=i, period=1, periodType='year', frequency=1, frequencyType='daily')
    
    data=get_price_history(symbol=i, endDate=1612418400000 , startDate=1612159200000,  frequency=1, frequencyType='daily') 

    historical['date'] = pd.to_datetime(historical['datetime'], unit='ms')
    info=pd.DataFrame(data['candles'])

    historical=pd.concat([historical,info])

historical
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-02-01 17:50:12

来自美国价格历史API文档

6个月/1天,包括今天的数据:https://api.tdameritrade.com/v1/marketdata/XYZ/pricehistory?periodType=month&frequencyType=daily&endDate=1464825600000注意到指定periodType=month是因为默认的periodType是与frequencyType日报不兼容的日期

因此,您的代码中的这一行似乎:

代码语言:javascript
复制
data=get_price_history(symbol=i, endDate=1612418400000 , startDate=1612159200000,  frequency=1, frequencyType='daily')

缺少有效的periodType参数。尝试:

代码语言:javascript
复制
data=get_price_history(symbol=i, endDate=1612418400000 , startDate=1612159200000, frequency=1, periodType='month', frequencyType='daily')
票数 0
EN

Stack Overflow用户

发布于 2022-10-01 04:48:27

step1:您需要一个有效的会话。step2:您可以使用tda api get_price_history() (参见示例),该示例成功地用于在给定开始日期和结束日期的情况下获取日常数据

代码语言:javascript
复制
from tda.auth import easy_client
 
# need a valid refresh token to use easy_client
Client = easy_client(
        api_key='APIKEY',
        redirect_uri='https://localhost',
        token_path='/tmp/token.json')

# getting the daily data given a a date 

# get daily data given start and end dat 
resp = Client.get_price_history('AAPL',
        period_type=Client.PriceHistory.PeriodType.YEAR,     
        start_datetime= datetime(2019,9,30),
        end_datetime= datetime(2019,10,30)  , 
        frequency_type=Client.PriceHistory.FrequencyType.DAILY,
        frequency=Client.PriceHistory.Frequency.DAILY)

assert resp.status_code == httpx.codes.OK
history = resp.json()

aapl = pd.DataFrame(history)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70943850

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档