-> 无法解析股票代码页面:finviz api 无

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

我正在尝试从 Marioriostoev 的 Finviz api 获取股票,但出现解析错误。看起来它没有找到正确的领域。这个程序曾经运行得很完美。但现在却不是了。我不知道它发生在哪个模块中,该程序应该采用过滤器获取与过滤器匹配的 stkcs,将它们放入 Excel 文件中并将其图表图像放入文件夹中

#!/usr/bin/python3
!pip install finviz~=1.4.6
from finviz.screener import Screener

from finviz.screener import Screener

import os
import datetime
Current_Date = datetime.datetime.today().strftime ('%d-%b-%Y')

# Input
valperiod = input('Enter Type of Graphic d,w,m: ')

if valperiod == "w" or "m":
     valta ="0"
else:
     valta = "1"

# Create the Folder where the data ancharts are going to be stores
newpath = 'D:\\Users\\Jose Mizrahi\\Documents\\finviz-master\\finviz-master\\'+'Breakout1 '+str(Current_Date)+'\\'
if not os.path.exists(newpath):
    os.makedirs(newpath)

# Get dict of available filters
# filters dict contains the corresponding filter tags
filters = Screener.load_filter_dict()

filters = [
    "cap_small",
    "fa_sales5years_pos",
    "sh_curvol_o200",
    "sh_relvol_o1",
    "ta_highlow52w_b0to10h",
    "ty=c&p=w&tas=0",
    "ta_volatility_mo3&ft=4&o=ticker"
]
stock_list = Screener(filters=filters, table="Performance")

print(stock_list)



# Monthly, Candles, Large, No Technical Analysis
if valperiod == "d":
    stock_list.get_charts(period="d", chart_type='c', size='l', ta="1")
else:
    stock_list.get_charts(period=valperiod, chart_type='c', size='l', ta="0")   

# period='d' > daily
# period='w' > weekly
# period='m' > monthly

# chart_type='c' > candle
# chart_type='l' > lines

# size='m' > small
# size='l' > large

# ta='1' > display technical analysis
# ta='0' > ignore technical analysis


print("Retrieving stock data...")
stock_data = stock_list.get_ticker_details()
print(stock_data)

os.chdir(newpath)

# Export the screener results to CSV file
stock_list.to_csv("JosyBreakout1.csv")

# Create a SQLite database
# stock_list.to_sqlite("sp500.sqlite")
python parsing stock
1个回答
0
投票

股票列表不会偶然包含 NONE 或 NULL 吗?我确实发现,如果你尝试查找具有这些名称的股票,一些 API 会让人大吃一惊。我认为没有一次出现在我的一个表中,如果我现在通过 API 查找它,它会给出“未找到该请求的安全定义”,但在过去它实际上关闭了 API 连接,而 IB 本身股票从显示屏上消失,IB 与其服务器之间的连接也关闭了。

如果你让它打印“检索股票数据...”然后出错,则说明 get_ticker_details 的线路有问题。如果在此之前出错,我想获取数据来绘制图表就会出现问题。

我会注意到Python中的NoneType在转换为字符串时是“None”。如果返回 stock_list 的行得到一个空的股票列表,也许是返回 NoneType 而不是空列表?然后当你去图表时它会崩溃。我会首先查看您的过滤器,看看它们是否太严格,或者如果您在假期或周末运行它,可能只是一个空结果,否则它会运行良好。

我自己不是 finviz 的用户,但是当然,API 中的某些内容总是有可能发生更改,您必须稍微更改这些过滤器(或者只是在“pip install finviz”行上使用更新版本) .)

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