def run_prog(self): con = ibConnection(host='127.0.0.1', port=7497, clientId=100) con.connect() # Assign the error handling function defined above # to the TWS connection con.register(self.error_handler, 'Error') # Assign all of the server reply messages to the # reply_handler function defined above #con.registerAll(reply_handler) con.register(self.scan_results, message.scannerData) con.register(self.get_valid_order_id, 'NextValidId') #con.reqIds(-1) time.sleep(1) print("Order ID", self.orderid[0]) self.gappingup_id = self.orderid[0] gappingup = ScannerSubscription() gappingup.numberOfRows(5) gappingup.m_scanCode = 'HIGH_OPEN_GAP' gappingup.m_instrument = 'STK' gappingup.m_averageOptionVolumeAbove = '0' gappingup.m_abovePrice = '5' gappingup.m_aboveVolume = '100000' self.gappingdown_id = self.gappingup_id + 1 gappingdown = ScannerSubscription() gappingdown.numberOfRows(5) gappingdown.m_scanCode = 'LOW_OPEN_GAP' gappingdown.m_instrument = 'STK' gappingdown.m_averageOptionVolumeAbove = '0' gappingdown.m_abovePrice = '5' gappingdown.m_aboveVolume = '100000' con.reqScannerSubscription(self.gappingup_id, gappingup) time.sleep(5) con.reqScannerSubscription(self.gappingdown_id, gappingdown) time.sleep(5) print(self.gapup) print(self.gapdown)
def mostactive(self, location, pricemin, pricemax): global scan scan = [] subscript = ScannerSubscription() subscript.numberOfRows(200) subscript.m_scanCode = 'MOST_ACTIVE' subscript.m_instrument = 'STK' subscript.m_averageOptionVolumeAbove = '' subscript.m_couponRateAbove = '' subscript.m_couponRateBelow = '' subscript.m_abovePrice = pricemin subscript.m_belowPrice = pricemax subscript.m_marketCapAbove = '' subscript.m_marketCapBelow = '' subscript.m_aboveVolume = '' subscript.m_stockTypeFilter = 'ALL' #subscript.locationCode('STK.NASDAQ.NMS') #subscript.locationCode('STK.NYSE') #subscript.locationCode('STK.AMEX') subscript.locationCode(location) con.reqScannerSubscription(qqqq_id, subscript) sleep(10) return(scan)
#Get market data stream #con.reqMktData(1, goog_contract, '', False) # Go long 100 shares of Google goog_order = create_order('MKT', 100, 'BUY') # Use the connection to the send the order to IB #con.placeOrder(100,goog_contract, goog_order) gappingup_id = 13851 gappingup = ScannerSubscription() gappingup.numberOfRows(5) gappingup.m_scanCode = 'HIGH_OPEN_GAP' gappingup.m_instrument = 'STK' gappingup.m_averageOptionVolumeAbove = '0' gappingup.m_abovePrice = '5' gappingup.m_aboveVolume = '100000' gappingdown_id = gappingup_id + 1 gappingdown = ScannerSubscription() gappingdown.numberOfRows(5) gappingdown.m_scanCode = 'LOW_OPEN_GAP' gappingdown.m_instrument = 'STK' gappingdown.m_averageOptionVolumeAbove = '0' gappingdown.m_abovePrice = '5' gappingdown.m_aboveVolume = '100000' con.reqScannerSubscription(gappingup_id, gappingup) time.sleep(5) con.reqScannerSubscription(gappingdown_id, gappingdown)