Exemplo n.º 1
0
cikeys = [Option('BAC', expiry, 'C', 10),
          Option('BAC', expiry, 'C', 10.5), 
          Option('BAC', expiry, 'P', 11.5),
          Option('BAC', expiry, 'P', 12)]
pikeys = [Option('BAC', expiry, 'C', 12),
          Option('BAC', expiry, 'C', 11.5), 
          Option('BAC', expiry, 'P', 10.5),
          Option('BAC', expiry, 'P', 10)]

box = [Option('BAC', expiry, 'C', 12),
       Option('BAC', expiry, 'C', 11.5), 
       Option('BAC', expiry, 'P', 10.5),
       Option('BAC', expiry, 'P', 10)]
       
cbids = [c.request_contract_details(x)[0].m_summary.m_conId for x in cbkeys]
pbids = [c.request_contract_details(x)[0].m_summary.m_conId for x in cbkeys]
cbinds = [c.request_contract_details(x)[0].m_summary.m_conId for x in cbinkeys]
pbinds = [c.request_contract_details(x)[0].m_summary.m_conId for x in cbinkeys]
ciids = [c.request_contract_details(x)[0].m_summary.m_conId for x in cikeys]
piids = [c.request_contract_details(x)[0].m_summary.m_conId for x in pikeys]

cb = co.Butterfly(*cbids)
pb = co.Butterfly(*pbids)
cbin = co.Butterfly(*cbinds)
pbin = co.Butterfly(*pbinds)
ci = co.IronCondor(*ciids)
pi = co.IronCondor(*piids)

c.request_mkt_data(cb.contract, snapshot=False, fname=('%s.txt' % cb.conId))
c.request_mkt_data(pb.contract, snapshot=False, fname=('%s.txt' % pb.conId))
Exemplo n.º 2
0
#!/usr/local/bin/jython
import logging
import signal
import sys

from ib.client import Client
from ib.contractkeys import Currency, CurrencyLocal, Stock, Option, OptionLocal
from com.ib.client import Contract, ExecutionFilter
import ib.client
import ib.combo_orders as co

ib.client.LOGLEVEL = logging.DEBUG

def cleanup(signal, frame):
	c.disconnect()
	sys.exit(0)

c = Client()
c.connect()

symbol = 'EMC'
expiry = '20130125'
right = 'C'
details = c.request_contract_details(Option(symbol, expiry, right, None))
a = [(x.m_summary.m_conId, x.m_summary.m_strike) for x in details]  

[c.request_historical_data(x.m_summary, end_time='20130123 15:50:00', duration='1 D', bar_size='1 min', show='ASK') for x in details]


signal.signal(signal.SIGINT, cleanup)
Exemplo n.º 3
0
def cleanup(signal, frame):
	c.disconnect()
	sys.exit(0)

c = Client()
c.connect()


spot_prices = [x*.01 for x in range(800, 1301)]

symbol = 'BAC'
expirys = ('20130201', '20130215')
strikes = range(9, 13)
keys = [Stock(symbol)]
keys += [Option(symbol, x, y, z) for x in expirys for y in ['C', 'P'] for z in strikes]
contracts = [c.request_contract_details(x)[0].m_summary.m_conId for x in keys]
id_to_key = dict(zip(contracts, keys))

pairs = [(x, y) for x in contracts for y in contracts if x != y]
triples = [(x, y, z) for x in contracts for y in contracts for z in contracts 
           if not (x == y == z)]
quartets = [(w, x, y, z) for w in contracts for x in contracts 
                         for y in contracts for z in contracts 
                         if not (w == x == y == z)]
#buttertest = [ x + ('P',) for x in triples]
#buttertest += [ x + ('C',) for x in triples]
#buttertest += [triples[0] + ('Nope',)]

#irontest = [ x + ('PPCC',) for x in quartets]
#irontest += [ x + ('CCPP',) for x in quartets]
#irontest += [quartets[0] + ('Nope',)]
Exemplo n.º 4
0
import signal
import sys

from ib.client import Client
from ib.contractkeys import ContractId

pattern = './Butterfly*.mkt'
newdirname = '%(symbol)s_%(expiry)s_%(right)s'
newfilename = '%(strike1)06.2f_%(strike2)06.2f_%(strike3)06.2f.mkt'

if __name__ == "__main__":
    c = Client(client_id=8)
    c.connect()
    filenames = glob.glob(pattern)
    for filename in filenames:
        conIds = filename.split('.mkt')[0].split('_')[1:]
        conIds = [int(x) for x in conIds]
        strikes = []
        for conId in conIds:
            contract = c.request_contract_details(ContractId(conId))[0].m_summary
            strikes.append(contract.m_strike)
        ndname = newdirname % {'symbol': contract.m_symbol, 
                              'expiry': contract.m_expiry,
                              'right': contract.m_right}
        if not os.path.exists(ndname): os.makedirs(ndname)
        nfname = newfilename % {'strike1': strikes[0],
                                'strike2': strikes[1],
                                'strike3': strikes[2]}
        shutil.copyfile(filename, '/'.join([ndname, nfname]))
    c.disconnect()