Py学习  »  Python

使用Python和YFinance从列访问单个投标价格

Paul • 3 年前 • 478 次点击  

提前感谢您的时间和关注。任何帮助都将不胜感激。

我涉足期权交易和计算机编程。两者都没有什么经验。

我想做的是使用Python与NumPy和YFinance模块一起,向雅虎发送一系列按字母顺序排列的股票代码,并请求提供当前CALL期权合同的BID价格,该价格是低于股票当前价格的最高罢工价格,但需遵守价格筛选标准。我想得到那个单一的BID,并用它做一些计算。

例如,如果XYZ股票的售价为1004美元,而XYZ低于1004美元的最高CALL期权罢工价格为10.00美元,我想得到下一个到期的10美元CALL期权的投标价格。

有了下面的代码,我有很多工作。我发送股票代码列表,雅虎根据我的定价标准对其进行过滤,并返回符合我定价标准的代码。我还可以让雅虎在下一个截止日期之前回复电话。调用数据以某种类似列表、类似数组的结构返回。我可以列出一列BIDS(涵盖所有罢工价格)。我可以把它列为罢工专栏。我可以让它同时打印这两列。

但我似乎做不到的是,让这台该死的计算机从BID列中选择与STRIKE列中特定STRIKE价格匹配的特定BID。我看到Column看起来像是一个包含元素的列表或数组。

我只想让程序找到正确的STRIKE价格,并使用该值在(list?array?table?)的同一行中获得与STRIKE价匹配的BID,无论是由YFinance调用=op.get_calls(x)。在输出(张贴在底部)中,这将是具有罢工价格(15.0)的行中元素[03]的BID(0.12)。一旦我有了BID,我想存储到一个变量中,裸体跳舞,快乐生活。

这是我写的代码:

从yahoo_fin导入选项作为操作

以yf形式进口融资 导入时间 进口熊猫作为pd 将numpy导入为np

# Open list of ticker symbols from a text file

打开(“WeeklyList.txt”,“r”)作为文件: #读取列表以读取不带新行的行`

readline=file.read().splitlines()

# Roll through list of symbols

对于读取行中的x:

ticker = yf.Ticker(x).info # get Stock info
previous_close_price = ticker['regularMarketPreviousClose']
floor = int(previous_close_price) # Calculate highest option less than stock price
margin = previous_close_price - floor # Calculate difference between stock and option price

# Limit returns of ticker symbols to stocks that are within 5 cents of strike price

if previous_close_price < 50:
`

#` 这是我无法正常工作的代码 ``

    if margin < 0.05:
        print(x)
        print('Previous Close Price:', previous_close_price)
        strike_price = floor
        print(strike_price)
        calls = op.get_calls(x)
        print([calls.Bid], [calls.Strike])
        

# If I can make the section above work, I will be able to make this section work
elif margin>0.49和margin<0.56: strike_price=地板+0.50 打印(x) 打印('上次收盘价:',Previous_Close_Price)

这是该程序的输出示例。先打印Ticker符号。然后是之前的收盘价。BID列。终于罢工了。

贝克 上一收盘价:15.0 15 [0 2.12 1 0.72 2 0.32 3 0.12 4 0.02 5 0.00 6 0.00 7 0.00 8 0.00 9 0.00 10 0.00 11 0.00 12 0.00 名称:投标书,数据类型:float64][0 12.5 1 14.0 2 14.5 3 15.0 4 15.5 5 16.0 6 16.5 7 17.0 8 17.5 9 18.0 10 18.5 11 19.0 12 19.5 名称:Strike,数据类型:float64]

enter image description here

还没试过把电脑炸了。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/159553