社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

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

Paul • 1 年前 • 255 次点击  

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

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

我想做的是使用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
 
255 次点击