예제 #1
0
파일: mktData.py 프로젝트: rrajan/fin
def get_options(sym, expiry, above_below=0):
    opt = Options(sym, 'yahoo')
    now = datetime.datetime.now()
    opt_data = opt.get_options_data(expiry=expiry)
    if (above_below > 0):
        opt_data = opt.get_near_stock_price(expiry=expiry, put=True, above_below=above_below)
    now2 = datetime.datetime.now()
    print 'get_options():', now2-now
    return (now2, opt_data)
예제 #2
0
import pandas as pd, datetime
from pandas_datareader import data

# Stocks
start=datetime.datetime(2013, 1, 1)
end=datetime.datetime(2015, 9, 30)
s = data.DataReader("SSW", 'yahoo', start, end)
print s.head()

# Options

from pandas.io.data import Options

aapl = Options('AAPL',"yahoo")
df = aapl.get_options_data()
print df.head()
"""
  Name     : 4375OS_10_34_get_option_data_given_year_month.py
  Book     : Python for Finance
  Publisher: Packt Publishing Ltd. 
  Author   : Yuxing Yan
  Date     : 12/26/2013
  email    : [email protected]
             [email protected]
"""

from pandas.io.data import Options
ticker='IBM'
month=2
year=2014
x = Options(ticker,'yahoo')
puts,calls = x.get_options_data(month,year)

print puts.head()

예제 #4
0
    for i in range(10000):
        sigma=0.0001*(i+1)
        d1=(log(S/X)+(r+sigma*sigma/2.)*T)/(sigma*sqrt(T))
        d2 = d1-sigma*sqrt(T)
        c2=S*stats.norm.cdf(d1)-X*exp(-r*T)*stats.norm.cdf(d2)
        abs_diff=abs(c2-c)
        #print 'i=',i,'c=', c,'c2=',c2,'abs_diff=',abs_diff,'min_value=',min_value
        if abs_diff<min_value:
            min_value=abs_diff
            implied_vol=sigma
            k=i
    return implied_vol
    
ticker='IBM'
m=2
y=2014
s=185.08
r=0.0003
T=2./12.0
x = Options(ticker,'yahoo')
puts,calls = x.get_options_data(month=m,year=y)
print 'done'

n=len(calls.Strike)
for i in range(n):
    x=calls.Strike[i]
    c=(calls.Bid[i]+calls.Ask[i])/2.0
    if c >0:
        vol=implied_vol_call_min(s,x,T,r,c)
        print x,c,vol
    
def get_option_data(tickrr, exp_date):
    x = Options(ticker, 'yahoo')
    puts, calls = x.get_options_data(expiry=exp_date)
    return puts, calls
"""
  Name     : 4375OS_10_33_option_data_Yahoo.py
  Book     : Python for Finance
  Publisher: Packt Publishing Ltd. 
  Author   : Yuxing Yan
  Date     : 12/26/2013
  email    : [email protected]
             [email protected]
"""

from pandas.io.data import Options
x = Options('IBM', 'yahoo')
puts, calls = x.get_options_data()

print calls.head()
def get_option_data(tickrr,exp_date):
    x = Options(ticker,'yahoo')
    puts,calls = x.get_options_data(expiry=exp_date)
    return puts, calls
"""
  Name     : 4375OS_10_33_option_data_Yahoo.py
  Book     : Python for Finance
  Publisher: Packt Publishing Ltd. 
  Author   : Yuxing Yan
  Date     : 12/26/2013
  email    : [email protected]
             [email protected]
"""

from pandas.io.data import Options
x = Options('IBM','yahoo')
puts,calls = x.get_options_data()

print calls.head()
예제 #9
0
  if startTickerIndex >= len(tickersList):
    startTickerIndex = 0

for i in range(startTickerIndex, len(tickersList)):
  ticker = tickersList[i]

  if ticker in downloaded:
    print "Already downloaded",ticker," ... Skipping."
    continue

  print "Downloading", ticker, "...",

  # download the data
  toDownload = Options(ticker, "yahoo")
  try:
    data = toDownload.get_options_data();
    pd.DataFrame(data).to_csv(baseDir+"/data/" + ticker)
    print "done."
  except (ValueError, RemoteDataError,  StopIteration) as e:
    print "skipped."
    print e

  downloaded.add(ticker)
  last = open(baseDir+"last-downloaded", "w")
  if i != len(tickersList) - 1:
    last.write(ticker)
  last.close()
  time.sleep(0.1)

예제 #10
0
from pandas.io.data import Options

aapl = Options('AAPL')
vals = aapl.get_options_data()
print(vals)
예제 #11
0
# -*- coding: utf-8 -*-
"""
Created on Thu Jul 16 18:02:31 2015

@author: justin.malinchak
"""

#import pullprices_optionsonly as pp
#
#pp.options('VIX',
#        '2015-07-17',
#        'c:\\Batches\\$Work')

from pandas.io.data import Options
temp = Options('SPY', 'yahoo')
z = temp.get_options_data(7, 2014)
print z
예제 #12
0
# -*- coding: utf-8 -*-
"""
Created on Thu Jul 16 18:02:31 2015

@author: justin.malinchak
"""

#import pullprices_optionsonly as pp
#
#pp.options('VIX',
#        '2015-07-17',
#        'c:\\Batches\\$Work')

from pandas.io.data import Options
temp = Options('SPY','yahoo')
z = temp.get_options_data(7,2014)
print z