用 Python 计算不同时间范围内股票的 200 EMA

问题描述 投票:0回答:1

我正在尝试使用不同时间范围(1 小时、4 小时、12 小时和 1 天)分析一些股票的指数移动平均线 (EMA)。具体来说,我需要:

计算这些时间范围内每只股票的 200 EMA。 确定每只股票在各自时间范围内是否高于 200 EMA。 显示每只股票的结果。 我正在使用 yfinance 库获取股票价格。但是,我不确定数据获取方面。例如,要计算 12 小时时间范围内的 200 EMA,我是否需要以 12 小时间隔获取数据,或者我可以使用 1 小时间隔数据并以某种方式聚合它吗?

这是我到目前为止所做的:

import yfinance as yf

tickers = "AAPL MSFT GOOGL AMZN TSLA"
period = "2mo"
interval = '1h'

data = yf.download(tickers=tickers, period=period, interval=interval, auto_adjust=True, prepost=False, threads=True, proxy=None)
df  = data['Close'][tickers.split()]

def fetch_stock_info(tickers):
    stock_info = {}
    for ticker in tickers.split():
        stock = yf.Ticker(ticker)
        stock_info[ticker] = {
            'Name': stock.info.get('longName'),
            'MarketCap': stock.info.get('marketCap'),
        }
    return stock_info

stock_info = fetch_stock_info(tickers)

如何修改此代码以在不同的指定时间范围内执行 EMA 分析?任何帮助将不胜感激。

python pandas dataframe quantitative-finance
1个回答
0
投票

无论时间段如何,EMA 计算都是相同的。最常见的是最后一种情况,即当天 200 EMA。所以基本上,在这种情况下,您需要 200 天的收盘价,之后,您的 EMA 将开始填充。

同样,在每小时 EMA 计算的情况下,您需要一个收盘价(例如每小时、每 4 小时...)并且需要 200 个这样的数据点。因此,根据您的问题,您需要每小时的定价,您可以将其用于每小时、4 小时和 12 小时的计算。 1 天计算的 EOD 收盘价。

您必须考虑计算 EMA 所需的数据点,并根据时间段获取这些数据点。

© www.soinside.com 2019 - 2024. All rights reserved.