def reqScannerOption(self, scanCode='HIGH_OPT_VOLUME_PUT_CALL_RATIO'): scanSub = ScannerSubscription() scanSub.instrument = 'STK' scanSub.locationCode = 'STK.US.MAJOR' scanSub.scanCode = scanCode tagvalues = [] tagvalues.append(TagValue('usdMarketCapAbove', '10000')) tagvalues.append(TagValue('optVolumeAbove', '1000')) tagvalues.append(TagValue('avgVolumeAbove', '5000000')) c = self.m_ib.reqScannerData(scanSub, None, tagvalues) return c
def contractDetails(self, reqId, contractDetails): cd = ContractDetails(**contractDetails.__dict__) cd.contract = self._getContract(cd.contract) if cd.secIdList: cd.secIdList = [TagValue(s.tag, s.value) for s in cd.secIdList] self._results[reqId].append(cd)