首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使字典仅由最大值(implied_volatility)输出?

如何使字典仅由最大值(implied_volatility)输出?
EN

Stack Overflow用户
提问于 2020-06-17 17:29:44
回答 2查看 41关注 0票数 1

因此,名为“options”的字典显示了strike_price、ask_price、delta和implied_volatility下面的结果(可交易选项)。但我不需要它来说出所有可交易的选择。我只想让输出显示一个具有最高implied_volatility (IV)的可交易选项,因此,例如,结果应该只显示具有最高IV的选项:

罢工价格: 43.0000,要求: 0.030000,出价: 0.000000,三角洲: 0.008705,IV: 1.449510 -因为IV是从整个产量以下的最高。

我该怎么做?

代码语言:javascript
复制
import config 
import robin_stocks as r 

r.login(config.USERNAME,config.PASSWORD)


#specify criteria to search for options of a given symbol and its exp date
symbol = 'GDX'
expirationDate = '2020-06-19'


search_option = r.find_options_for_stock_by_expiration(symbol,expirationDate,optionType='call')


for option in search_option:

        print("Strike Price: {}, Ask: {}, Bid: {}, Delta: {}, IV: {}".format(option['strike_price'],option['ask_price'],option['bid_price'],option['delta'], option['implied_volatility']))


**OUTPUT**:
Strike Price: 42.0000, Ask: 0.030000, Bid: 0.000000, Delta: 0.009354, IV: 1.335719
Strike Price: 43.0000, Ask: 0.030000, Bid: 0.000000, Delta: 0.008705, IV: 1.449510
Strike Price: 35.5000, Ask: 0.060000, Bid: 0.040000, Delta: 0.073395, IV: 0.634361
Strike Price: 36.5000, Ask: 0.030000, Bid: 0.020000, Delta: 0.041370, IV: 0.743600
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-06-17 17:58:23

替换代码的for循环,替换这个循环。

代码语言:javascript
复制
highest_IV, highest_idx = 0, None
for idx, option in enumerate(search_option):
    if option['implied_volatility'] and highest_IV < float(option['implied_volatility']):
        highest_IV = float(option['implied_volatility'])
        highest_idx = idx
if highest_idx is not None:
    print("Strike Price: {strike_price}, Ask: {ask_price}, Bid: {bid_price}, Delta: {delta}, IV: {implied_volatility}".format(**search_option[highest_idx]))

在这里,您可能需要考虑search_option为空的情况。

我希望这能帮到你。

票数 1
EN

Stack Overflow用户

发布于 2020-06-17 17:49:08

您可以在最高的IV执行如下操作时返回该选项:

代码语言:javascript
复制
def find_highest_iv(search_option):
    max_iv = max([option['implied_volatility'] for option in search_option ])
    for option in search_option:
        for k,v in option.items():
            if k == 'implied_volatility' and v == max_iv:
                return option

如果有两个具有相同IV的选项,这将返回在search_options中找到的第一个选项。也许还有一种更多的节能型速记方法可以做到这一点,但这应该是可行的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62434946

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档