def placeOneOrder(self): con = Contract() con.symbol = "AMD" con.secType = "STK" con.currency = "USD" con.exchange = "SMART" order = Order() order.action = "BUY" order.orderType = "LMT" order.tif = "GTC" order.totalQuantity = 3 order.lmtPrice = 1.23 self.placeOrder(self.nextOrderId(), con, order)
def main(): cmdLineParser = argparse.ArgumentParser("api tests") #cmdLineParser.add_option("-c", action="store_true", dest="use_cache", default = False, help = "use the cache") #cmdLineParser.add_option("-f", action="store", type="string", dest="file", default="", help="the input file") cmdLineParser.add_argument("-p", "--port", action="store", type=int, dest="port", default=4005, help="The TCP port to use") args = cmdLineParser.parse_args() print("Using args", args) import logging logging.debug("Using args %s", args) #print(args) logging.debug("now is %s", datetime.datetime.now()) logging.getLogger().setLevel(logging.ERROR) #enable logging when member vars are assigned import utils from order import Order Order.__setattr__ = utils.setattr_log from contract import Contract, DeltaNeutralContract Contract.__setattr__ = utils.setattr_log DeltaNeutralContract.__setattr__ = utils.setattr_log from tag_value import TagValue TagValue.__setattr__ = utils.setattr_log TimeCondition.__setattr__ = utils.setattr_log ExecutionCondition.__setattr__ = utils.setattr_log MarginCondition.__setattr__ = utils.setattr_log PriceCondition.__setattr__ = utils.setattr_log PercentChangeCondition.__setattr__ = utils.setattr_log VolumeCondition.__setattr__ = utils.setattr_log #from inspect import signature as sig #import code; code.interact(local=dict(globals(), **locals())) #sys.exit(1) app = TestApp() app.connect("127.0.0.1", args.port, 0) app.reqCurrentTime() app.reqManagedAccts() app.reqAccountSummary(reqId=2, groupName="All", tags="NetLiquidation") app.reqAllOpenOrders() contract = Contract() contract.symbol = "AMD" contract.secType = "STK" contract.currency = "USD" contract.exchange = "SMART" #app.reqMarketDataType(1) #app.reqMktData(1001, contract, "", snapshot=True) #app.cancelMktData(1001) #app.reqExecutions(2001, ExecutionFilter()) #app.reqContractDetails(3001, contract) #app.reqPositions() #app.reqIds(2) #app.reqMktDepth(4001, contract, 5, "") #app.cancelMktDepth(4001) #app.reqNewsBulletins(allMsgs=True) #app.cancelNewsBulletins() #app.requestFA(FaDataTypeEnum.GROUPS) #app.reqHistoricalData(5001, contract, "20161215 16:00:00", "2 D", # "1 hour", "TRADES", 0, 1, []) #app.cancelHistoricalData(5001) #app.reqFundamentalData(6001, contract, "ReportSnapshot") #app.cancelFundamentalData(6001) #app.queryDisplayGroups(7001) #app.subscribeToGroupEvents(7002, 1) #app.unsubscribeFromGroupEvents(7002) #app.reqScannerParameters() ss = ScannerSubscription() ss.instrument = "STK" ss.locationCode = "STK.US" ss.scanCode = "TOP_PERC_LOSE" #app.reqScannerSubscription(8001, ss, []) #app.cancelScannerSubscription(8001) #app.reqRealTimeBars(9001, contract, 5, "TRADES", 0, []) #app.cancelRealTimeBars(9001) #app.reqSecDefOptParams(10001, "AMD", "", "STK", 4391) #app.reqSoftDollarTiers(11001) #app.reqFamilyCodes() #app.reqMatchingSymbols(12001, "AMD") contract = Contract() contract.symbol = "AMD" contract.secType = "OPT" contract.exchange = "SMART" contract.currency = "USD" contract.lastTradeDateOrContractMonth = "20170120" contract.strike = 10 contract.right = "C" contract.multiplier = "100" #Often, contracts will also require a trading class to rule out ambiguities contract.tradingClass = "AMD" #app.calculateImpliedVolatility(13001, contract, 1.3, 10.85) #app.calculateOptionPrice(13002, contract, 0.65, 10.85) app.run()