def test_001(connection, options): ticker_id = gen_tick_id() subscript = ScannerSubscription() subscript.numberOfRows(3) subscript.locationCode('STK.NYSE') connection.reqScannerSubscription(ticker_id, subscript) connection.reqScannerParameters() short_sleep() connection.cancelScannerSubscription(ticker_id)
def makeScannerSubscription(self, code, limit): sub = ScannerSubscription() sub.numberOfRows(limit) sub.instrument("STK") sub.scanCode(code) sub.locationCode("STK.US.MAJOR") return sub
contract_Details10 = create.create_contract('EUR', 'CASH', 'IDEALPRO', 'USD') data_endtime = datetime.now().strftime("%Y%m%d %H:%M:%S") tws.reqHistoricalData(9000, contract_Details10, data_endtime, "1 M", "1 day", "BID", 0, 1) time.sleep(3) tws.cancelHistoricalData(9000) # Market Scanners #################################################################### # reqScannerParameters ---> scannerParameters self.scanner_Parameters # ---> scannerData self.scanner_Data # ---> scannerDataEnd self.scanner_Data_End_reqID # self.scanner_Data_reqID ###################################################################################''' print "Testing Market Scanners Group \n" subscript = ScannerSubscription() subscript.numberOfRows(3) subscript.locationCode('STK.NYSE') tws.reqScannerSubscription(700, subscript) tws.reqScannerParameters() time.sleep(3) tws.cancelScannerSubscription(700) # Real Time Bars ##################################################################### # reqRealTimeBars ---> realtimeBar self.real_timeBar ###################################################################################''' print "Testing Real Time Bars Group \n" contract_Details11 = create.create_contract('EUR', 'CASH', 'IDEALPRO', 'USD') tws.reqRealTimeBars(10000, contract_Details11, 5, "MIDPOINT", 0) time.sleep(10)
sleep(5) # displaying the orders status print o.orderStatus(oid1) print o.orderStatus(oid2) # we cancel order 1 o.cancelOrder(oid1) print o.orderStatus(oid1) ############################################# # Test3: Market scanning ############################################# # we create a scanner subscript = ScannerSubscription() subscript.numberOfRows(200) subscript.m_instrument = 'STK' subscript.m_locationCode = 'STK.AMEX' subscript.m_scanCode = "MOST_ACTIVE" subscript.m_stockTypeFilter = 'ALL' subscript.m_m_abovePrice = 0.0 subscript.m_aboveVolume = 0 subscript.m_marketCapAbove = 0.0 # and execute it on the server print str(o.scanMkt(subscript)) ############################################# # Test4: Market Data #############################################
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)
con.register(scan_results, message.scannerData) # Create a contract in GOOG stock via SMART order routing goog_contract = create_contract('GOOG', 'STK', 'SMART', 'SMART', 'USD') #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'
"1 M", "1 day", "BID", 0, 1) time.sleep(3) tws.cancelHistoricalData(9000) # Market Scanners #################################################################### # reqScannerParameters ---> scannerParameters self.scanner_Parameters # ---> scannerData self.scanner_Data # ---> scannerDataEnd self.scanner_Data_End_reqID # self.scanner_Data_reqID ###################################################################################''' print "Testing Market Scanners Group \n" subscript = ScannerSubscription() subscript.numberOfRows(3) subscript.locationCode('STK.NYSE') tws.reqScannerSubscription(700, subscript) tws.reqScannerParameters() time.sleep(3) tws.cancelScannerSubscription(700) # Real Time Bars ##################################################################### # reqRealTimeBars ---> realtimeBar self.real_timeBar ###################################################################################''' print "Testing Real Time Bars Group \n"
from ib.ext.ScannerSubscription import ScannerSubscription from ib.ext.EClientSocket import EClientSocket from utils import Logger log = Logger('scanner') msgs = queue.Queue() wrapper = Wrapper({}, msgs) connection = EClientSocket(wrapper) host = "54.197.15.42" port = 7496 connection.eConnect(host, port, 1) subscription = ScannerSubscription() subscription.numberOfRows(100) subscription.instrument('STK') subscription.locationCode('STK.US') subscription.scanCode('TOP_PERC_GAIN') subscription.abovePrice(1.0) subscription.aboveVolume(1) subscription.marketCapBelow(1000000000.0) ticker_id = 10 log.operation('Requesting subscription') connection.reqScannerSubscription(ticker_id, subscription) while True:
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)