python - 在 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
解决方案
推荐阅读
- node.js - 使用 Node.js 和 TypeScript 从标准输入获取值
- css - 随着窗口大小减小到 500 像素,滑块向左拉
- python - 将浮点数转换为二进制的函数中的解包错误
- git - IntelliJ IDEA 2019+ Git“提交目录”显示排除的 Maven 目标文件夹
- r - 在 R 中使用 cat 函数打印矢量 - 如何避免丢失元素名称
- c# - UWP 树视图崩溃
- g1ant - 什么是 val 函数,这个 ‴return $('#q').val();‴ 在这段代码中是什么意思?
- python - 如何要求端点的“fask_restplus”两个字段之一
- symmetricds - 如何修复 SymmetricDS 中的 unicode 数据错误
- c++ - 计算直到十月还有多少个月,除了 cout 之外不使用任何东西