首页 > 解决方案 > 在 python 中进行 API 调用的项目结构

问题描述

我正在做我的第一个个人项目,但我不知道构建我的项目的最佳方式是什么。它是创建一个 pennystock 筛选器,筛选一夜之间跳空的股票,然后根据市值、上市前交易量、价格、公众持股量等对其进行过滤。

现在我已经编写了单独的函数,每个函数都有自己的小事。我有一个连接到 REST 端点以检索数据的函数,该函数使用数据返回差距超过 50% 的股票列表,然后是过滤差距上升列表并返回过滤代码字典的函数(例如股票代码名称,它的浮动,是否满足过滤器的条件)。然后我会使用该字典中的值来创建另一个过滤器(例如基于我存储在浮点字典中的浮点值的浮点旋转)。最后,我有一个 main 函数,它可以获取满足所有条件的最终库存清单。

问题是我不知道如何更好地构建项目。我现在所拥有的效率非常低。以下面的代码片段为例:对于股票名称,我需要调用 connect rest 函数,然后对于最大赢家,我正在调用股票名称。然后对于浮动过滤器,我称其为最大赢家。对于浮动旋转过滤器,我需要调用浮动过滤器函数。最后使用 main 函数,我需要调用所有内容......我在每个函数中进行 api 调用。它发出了太多请求,我想在发出请求后存储数据。

我不知道是使用嵌套函数,还是制作全局变量,或者将函数写在单独的文件中然后导入。另外,我对是否需要创建类感到困惑。

def connect_REST(data):
    return data


def get_ticker_names(ticker_names, US_listed):
    data = []
    data = connect_REST(data)
    return ticker_names, US_listed

#filter by percent change since last close to get top gainers(>= 50% gap-up pre market)
def get_top_gainer(top_gainer_list):
    return top_gainer_list


# Condition 2: Float > 2M and < 30M
def filter_SharesFloat(floatData, backup_list2):
    top_gainer_list = []
    top_gainer_list = get_top_gainer(top_gainer_list)
    floatData = {}
    backup_list2 = []
    print(floatData)
    print("Float data not available: ", backup_list2)
    return floatData, backup_list2


def filter_float_rotation():
    top_gainer_list = []
    predicted_intra_volume = []
    predicted_intra_volume = get_predicted_intra_volume()
    top_gainer_list = get_top_gainer(top_gainer_list)
    floatData = {}
    floatData = filter_SharesFloat(floatData)

    for ticker in top_gainer_list:
        floatRotations = predictedVolume / floatData[ticker]['float']
        if floatRotations < 1:
            cond_5 = True
        else:
            cond_5 = False
    return floatRotationData

def main():

#get ticker that satisfies condition 1, 2, 3, 4, 5

标签: pythonstructureproject

解决方案


推荐阅读