提前感谢您的时间和关注。任何帮助都将不胜感激。
我涉足期权交易和计算机编程。两者都没有什么经验。
我想做的是使用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
还没试过把电脑炸了。