I'm trying to export data from "contractDetails" to csv. So far I've only managed to make it rewrite itself and print out the last line from contractDetails.
Here is the relevant code:
class TestApp(EWrapper, EClient):
def __init__(self):
EWrapper.__init__(self)
EClient.__init__(self, self)
def contractDetails(self, reqId, contractDetails):
self.data =[contractDetails]
df = pd.DataFrame(self.data)
df.to_csv('options_test.csv')
print(df)
def contractDetailsEnd(self, reqId):
print("\ncontractDetails End\n")
def start(self):
contract =Contract()
contract.symbol ='AAPL'
contract.secType ='OPT'
contract.exchange ='SMART'
contract.currency ='USD'
#contract.primaryExchange = 'NASDAQ'
contract.lastTradeDateOrContractMonth ='202010'
#contract.strike = 175
#contract.right = "C"
#contract.multiplier = "100"
global underlying
underlying = contract.symbol
self.reqMktData(1, contract,'106',False,False,[])
self.reqContractDetails(1, contract)
def stop(self):
self.done =True
self.disconnect()
def main():
app =TestApp()
app.nextOrderId =0
app.connect('127.0.0.1',7497,123)
app.data =[]
Timer(4, app.stop).start()
app.run()
if __name__ =="__main__":
main()
Here is the relevant code:
class TestApp(EWrapper, EClient):
def __init__(self):
EWrapper.__init__(self)
EClient.__init__(self, self)
def contractDetails(self, reqId, contractDetails):
self.data =[contractDetails]
df = pd.DataFrame(self.data)
df.to_csv('options_test.csv')
print(df)
def contractDetailsEnd(self, reqId):
print("\ncontractDetails End\n")
def start(self):
contract =Contract()
contract.symbol ='AAPL'
contract.secType ='OPT'
contract.exchange ='SMART'
contract.currency ='USD'
#contract.primaryExchange = 'NASDAQ'
contract.lastTradeDateOrContractMonth ='202010'
#contract.strike = 175
#contract.right = "C"
#contract.multiplier = "100"
global underlying
underlying = contract.symbol
self.reqMktData(1, contract,'106',False,False,[])
self.reqContractDetails(1, contract)
def stop(self):
self.done =True
self.disconnect()
def main():
app =TestApp()
app.nextOrderId =0
app.connect('127.0.0.1',7497,123)
app.data =[]
Timer(4, app.stop).start()
app.run()
if __name__ =="__main__":
main()