Ejemplo n.º 1
0
 def test_login_relogin_correct(self):
     n = Intrade(self.memNum, self.pw)
     n.getLogin()
     self.assertTrue(n.loggedIn, "Logged in flag")
     self.assertNotEqual(n.sessionData, "", "Session data empty")
     self.assertNotEqual(n.lastLogin, "", 'Last login')
     self.assertNotEqual(n.username, "", 'Username blank')
Ejemplo n.º 2
0
 def test_login_relogin_correct(self):
     n = Intrade(self.memNum, self.pw)
     n.getLogin()
     self.assertTrue(n.loggedIn, "Logged in flag")
     self.assertNotEqual(n.sessionData, "", "Session data empty")
     self.assertNotEqual(n.lastLogin, "", 'Last login')
     self.assertNotEqual(n.username, "", 'Username blank')
Ejemplo n.º 3
0
    def test_get_open_orders(self):
        n = Intrade(self.memNum, self.pw)
        r = n.cancelAllOrders()
        self.assertTrue(r.didCancel)

        time.sleep(1)

        orders = n.getOpenOrders()
        self.assertEqual(len(orders), 0)
Ejemplo n.º 4
0
    def test_get_open_orders(self):
        n = Intrade(self.memNum, self.pw)
        r = n.cancelAllOrders()
        self.assertTrue(r.didCancel)

        time.sleep(1)

        orders = n.getOpenOrders()
        self.assertEqual(len(orders), 0)
Ejemplo n.º 5
0
    def test_cancel_AllInContract_invalid_conId(self): 
        n = Intrade(self.memNum, self.pw)
        
        orders = []
        orders.append( Order(conId='33l1374',side='B', limitPrice='.5',quantity='5') )
        orders.append( Order(conId='3313074',side='B', limitPrice='.5',quantity='2') )
        
        with self.assertRaises(IntradeResponseError):
            resp = n.multiOrderRequest(orders, True)

        with self.assertRaises(IntradeResponseError):
            r = n.cancelAllOrdersInContract('3311374')
            self.assertTrue(r.didCancel)
Ejemplo n.º 6
0
    def test_cancel_AllInContract_invalid_conId(self):
        n = Intrade(self.memNum, self.pw)

        orders = []
        orders.append(
            Order(conId='33l1374', side='B', limitPrice='.5', quantity='5'))
        orders.append(
            Order(conId='3313074', side='B', limitPrice='.5', quantity='2'))

        with self.assertRaises(IntradeResponseError):
            resp = n.multiOrderRequest(orders, True)

        with self.assertRaises(IntradeResponseError):
            r = n.cancelAllOrdersInContract('3311374')
            self.assertTrue(r.didCancel)
Ejemplo n.º 7
0
    def __init__(self, memNum, pw):
        self.n = Intrade(memNum, pw)
        self.financialData = None
        self.md = None
        self.event = None
        self.contract = None
        self.contractInfo = None
        self.priceInfo = None
        self.timeAndSales = []
        self.timeDelay = 0
        self.historicalAsks = []
        self.historicalBids = []

        self.sessionProfit = 0
        self.moneyInvested = 0

        self.MAX_PERCENT_INVEST = 10
Ejemplo n.º 8
0
    def test_cancel_orders_in_event(self):
        n = Intrade(self.memNum, self.pw)

        orders = []
        orders.append(
            Order(conId='331374', side='B', limitPrice='.5', quantity='5'))
        orders.append(
            Order(conId='331374', side='B', limitPrice='.5', quantity='2'))
        orders.append(
            Order(conId='331374', side='S', limitPrice='99', quantity='1'))

        resp = n.multiOrderRequest(orders, True)

        self.assertEqual(len(resp), 3)

        for o in resp:
            self.assertTrue(o.success)

        resp = n.cancelOrdersInEvent('30848')

        time.sleep(1)

        orders = n.getOpenOrders()
        self.assertEqual(len(orders), 0)

        r = n.cancelAllOrders()
        self.assertTrue(r.didCancel)

        time.sleep(1)

        orders = n.getOpenOrders()
        self.assertEqual(len(orders), 0)
Ejemplo n.º 9
0
    def test_put_MOR_invalid_contract(self):
        n = Intrade(self.memNum, self.pw)
        
        orders = []
        orders.append( Order(conId='33l1374',side='B', limitPrice='.5',quantity='5') )
        orders.append( Order(conId='3313074',side='B', limitPrice='.5',quantity='2') )
        
        with self.assertRaises(IntradeResponseError):
            resp = n.multiOrderRequest(orders, True)

        
        r = n.cancelAllOrders()
        self.assertTrue(r.didCancel)

        time.sleep(1)

        orders = n.getOpenOrders()
        self.assertEqual(len(orders), 0)
Ejemplo n.º 10
0
    def test_get_positions(self):
        n = Intrade(self.memNum, self.pw)

        ps = n.getPositions()

        self.assertEqual(len(ps), 1)

        if len(ps):
            p = ps[0]
            self.assertEqual(p.conId, 331374)
            self.assertEqual(p.quantity, -7)

        ps = n.getPositions('331374')
        self.assertEqual(len(ps), 1)

        if len(ps):
            p = ps[0]
            self.assertEqual(p.conId, 331374)
            self.assertEqual(p.quantity, -7)
Ejemplo n.º 11
0
    def test_put_MOR_invalid_contract(self):
        n = Intrade(self.memNum, self.pw)

        orders = []
        orders.append(
            Order(conId='33l1374', side='B', limitPrice='.5', quantity='5'))
        orders.append(
            Order(conId='3313074', side='B', limitPrice='.5', quantity='2'))

        with self.assertRaises(IntradeResponseError):
            resp = n.multiOrderRequest(orders, True)

        r = n.cancelAllOrders()
        self.assertTrue(r.didCancel)

        time.sleep(1)

        orders = n.getOpenOrders()
        self.assertEqual(len(orders), 0)
Ejemplo n.º 12
0
    def test_get_positions(self):
        n = Intrade(self.memNum, self.pw)

        ps = n.getPositions()

        self.assertEqual(len(ps), 1)

        if len(ps):
            p = ps[0]
            self.assertEqual(p.conId, 331374)
            self.assertEqual(p.quantity, -7)


        ps = n.getPositions('331374')
        self.assertEqual(len(ps), 1)

        if len(ps):
            p = ps[0]
            self.assertEqual(p.conId, 331374)
            self.assertEqual(p.quantity, -7)
Ejemplo n.º 13
0
    def test_cancel_AllInContract(self):
        n = Intrade(self.memNum, self.pw)
        
        orders = []
        orders.append( Order(conId='331374',side='B', limitPrice='.5',quantity='5') )
        orders.append( Order(conId='331374',side='B', limitPrice='.5',quantity='2') )
        
        resp = n.multiOrderRequest(orders, True)

        self.assertEqual(len(resp), 2)

        for o in resp:
            self.assertTrue(o.success)

        resp = n.cancelAllOrdersInContract('331374')
        

        time.sleep(1)

        orders = n.getOpenOrders()
        self.assertEqual(len(orders), 0)
Ejemplo n.º 14
0
    def test_put_MOR_multi_order(self):
        n = Intrade(self.memNum, self.pw)

        orders = []
        orders.append(
            Order(conId='331374', side='B', limitPrice='.5', quantity='5'))
        orders.append(
            Order(conId='331374', side='B', limitPrice='.5', quantity='2'))

        resp = n.multiOrderRequest(orders, True)

        self.assertEqual(len(resp), 2)

        for o in resp:
            self.assertTrue(o.success)

        orders = n.getOpenOrders()
        self.assertEqual(len(orders), 2)

        r = n.cancelAllOrders()
        self.assertTrue(r.didCancel)

        time.sleep(1)

        orders = n.getOpenOrders()
        self.assertEqual(len(orders), 0)
Ejemplo n.º 15
0
    def test_cancel_orders_in_event(self):
        n = Intrade(self.memNum, self.pw)

        orders = []
        orders.append( Order(conId='331374',side='B', limitPrice='.5',quantity='5') )
        orders.append( Order(conId='331374',side='B', limitPrice='.5',quantity='2') )
        orders.append( Order(conId='331374',side='S', limitPrice='99',quantity='1') )
        
        resp = n.multiOrderRequest(orders, True)

        self.assertEqual(len(resp), 3)

        for o in resp:
            self.assertTrue(o.success)


        resp = n.cancelOrdersInEvent('30848')

        time.sleep(1)

        orders = n.getOpenOrders()
        self.assertEqual(len(orders), 0)

        r = n.cancelAllOrders()
        self.assertTrue(r.didCancel)

        time.sleep(1)

        orders = n.getOpenOrders()
        self.assertEqual(len(orders), 0)
Ejemplo n.º 16
0
    def test_get_open_orders_oids(self):
        n = Intrade(self.memNum, self.pw)

        orders = []
        orders.append(
            Order(conId='331374', side='B', limitPrice='.5', quantity='5'))
        resp = n.multiOrderRequest(orders, True)

        self.assertEqual(len(resp), 1)

        for o in resp:
            self.assertTrue(o.success)

        time.sleep(1)

        os = n.getOrdersByOrderId([
            resp[0].orderId,
        ])
        self.assertEqual(len(os), 1)

        r = n.cancelAllOrders()
        self.assertTrue(r.didCancel)

        time.sleep(1)

        orders = n.getOpenOrders()
        self.assertEqual(len(orders), 0)
Ejemplo n.º 17
0
    def test_put_MOR_single_order(self):
        n = Intrade(self.memNum, self.pw)
        
        orders = []
        orders.append( Order(conId='331374',side='B', limitPrice='.5',quantity='5') )
        resp = n.multiOrderRequest(orders, True)

        self.assertEqual(len(resp), 1)

        for o in resp:
            self.assertTrue(o.success)

        orders = n.getOpenOrders()
        self.assertEqual(len(orders), 1)

        r = n.cancelAllOrders()
        self.assertTrue(r.didCancel)

        time.sleep(1)
        
        orders = n.getOpenOrders()
        self.assertEqual(len(orders), 0)
Ejemplo n.º 18
0
    def test_cancel_ByOrderId(self):
        n = Intrade(self.memNum, self.pw)

        orders = []
        orders.append(
            Order(conId='331374', side='B', limitPrice='.5', quantity='5'))
        orders.append(
            Order(conId='331374', side='B', limitPrice='.5', quantity='2'))

        resp = n.multiOrderRequest(orders, True)

        self.assertEqual(len(resp), 2)

        for o in resp:
            self.assertTrue(o.success)

        oids = [o.orderId for o in resp]

        resp = n.cancelOrdersById(oids)

        time.sleep(1)

        orders = n.getOpenOrders()
        self.assertEqual(len(orders), 0)
Ejemplo n.º 19
0
	def __init__(self, memNum, pw):
		self.n = Intrade(memNum,pw)
		self.financialData = None
		self.md = None
		self.event = None
		self.contract = None
		self.contractInfo = None
		self.priceInfo = None
		self.timeAndSales = []
		self.timeDelay = 0
		self.historicalAsks = []
		self.historicalBids = []

		self.sessionProfit = 0
		self.moneyInvested = 0

		self.MAX_PERCENT_INVEST = 10
Ejemplo n.º 20
0
    def test_get_price_info(self):
        n = Intrade(self.memNum, self.pw)

        cb = n.getPriceInfo(['331374',])
Ejemplo n.º 21
0
    def test_get_contract_info(self):
        n = Intrade(self.memNum, self.pw)

        ci = n.getContractInfo(['331374',])
Ejemplo n.º 22
0
    def test_get_time_and_sales(self):
        n = Intrade(self.memNum, self.pw)

        sales = n.getDailyTimeAndSales('331374')
Ejemplo n.º 23
0
    def test_get_market_data_in_event_class(self):
        n = Intrade(self.memNum, self.pw)

        ec = n.getMarketDataByEventClass('67') #Learn_Financial
Ejemplo n.º 24
0
class IntradeSession:
    def __init__(self, memNum, pw):
        self.n = Intrade(memNum, pw)
        self.financialData = None
        self.md = None
        self.event = None
        self.contract = None
        self.contractInfo = None
        self.priceInfo = None
        self.timeAndSales = []
        self.timeDelay = 0
        self.historicalAsks = []
        self.historicalBids = []

        self.sessionProfit = 0
        self.moneyInvested = 0

        self.MAX_PERCENT_INVEST = 10

    def getEventName(self):
        return self.event.name

    def getEventClass(self, classId):
        return self.n.getMarketDataByEventClass(classId)

    def refreshMarketData(self):
        self.md = self.n.getMarketData()

    def refreshContractInfo(self):
        self.contractInfo = self.n.getContractInfo([
            self.contract.id,
        ])[0]

    def isExpired(self):
        self.refreshContractInfo()
        return self.contractInfo.isExpired()

    def getExpirationTime(self):
        return self.contractInfo.expiryTime

    def getExpirationPrice(self):
        return self.contractInfo.expiryPrice

    def isClosed(self):
        self.refreshContractInfo()
        return self.contractInfo.isClosed()

    def isOpen(self):
        return not self.isClosed()

    def havePosition(self):
        return self.getPosition() != None

    def getPosition(self):
        pos = self.n.getPositions(self.contract.id)
        if len(pos) > 0:
            self.position = pos[0]
            return self.position

    def placeOrder(self, price, quantity):
        if self.isOpen():
            return False
        else:
            return False

    def refreshTimeAndSales(self):

        self.timeAndSales = self.n.getDailyTimeAndSales(self.contract.id)
        self.financialData = FinancialDataSet(
            [t.toTup() for t in self.timeAndSales])

    def getTimeAndSales(self):
        self.refreshTimeAndSales()
        return self.timeAndSales

    def refreshPriceInfo(self):
        self.priceInfo = self.n.getPriceInfo([
            self.contract.id,
        ]).priceContractInfos[0]

    def getTime(self):
        self.timeDelay = d.n.getIntradeTime() - self.__t()
        return self.n.getIntradeTime()

    def getAdjustedTime(self):
        return long(time.time() * 1000) + self.timeDelay

    def startTrading(self):
        while self.shouldContinue():
            if self.havePosition():
                self.sell()
            else:
                self.buy()

        return "Market Closed!"

    def buy(self):
        targetPrice = self.getBuyPrice()
        latestPrice = self.getLatestAsk()

        while latestPrice > targetPrice and self.isOpen():
            targetPrice = self.getBuyPrice()
            latestPrice = self.getLatestAsk()

        if self.isOpen():
            targetQuantity = self.getBuyQuantity(latestPrice)
            success = self.placeOrder(latestPrice, targetQuantity)

            return success
        else:
            return False

    def shouldContinue(self):
        return self.isOpen()

    def sell(self):
        return

    def getBuyPrice(self):
        return

    def getBuyQuantity(self, latestPrice):
        return

    def getSellPrice(self):
        return

    def getLatestPrice(self):
        self.refreshContractInfo()
        return self.contractInfo.lstTrdPrc

    def getLatestBid(self):
        self.refreshPriceInfo()
        bidPrice = self.priceInfo.orderBook.getLatestBidPrice()
        if bidPrice > 0:
            self.historicalBids.append((time.time(), bidPrice))
        return bidPrice

    def getLatestAsk(self):
        self.refreshPriceInfo()
        askPrice = self.priceInfo.orderBook.getLatestOfferPrice()

        if askPrice > 0:
            self.historicalAsks.append((time.time(), askPrice))

        return askPrice

    def getAvailableCash(self):
        return self.getBalance().available

    def getInvested(self):
        return self.getBalance().frozen

    def getBalance(self):
        return self.n.getBalance()

    def getStopLossPrice(self):
        return -1

    def getPositionAvgCost(self):
        self.position = self.getPosition()
        if self.position:
            return self.position.averageCost()
        else:
            return -1

    def getTargetPrice(self):
        self.position = self.getPosition()
        if self.position:
            tenPercent = self.getPositionAvgCost() * 1.1
            return tenPercent
        else:
            -1
Ejemplo n.º 25
0
class IntradeSession:
	def __init__(self, memNum, pw):
		self.n = Intrade(memNum,pw)
		self.financialData = None
		self.md = None
		self.event = None
		self.contract = None
		self.contractInfo = None
		self.priceInfo = None
		self.timeAndSales = []
		self.timeDelay = 0
		self.historicalAsks = []
		self.historicalBids = []

		self.sessionProfit = 0
		self.moneyInvested = 0

		self.MAX_PERCENT_INVEST = 10
		

	def getEventName(self):
		return self.event.name
		
	def getEventClass(self, classId):
		return self.n.getMarketDataByEventClass(classId)

	def refreshMarketData(self):
		self.md = self.n.getMarketData()

	def refreshContractInfo(self):
		self.contractInfo = self.n.getContractInfo([self.contract.id,])[0]
		
	def isExpired(self):
		self.refreshContractInfo()
		return self.contractInfo.isExpired()
		
	def getExpirationTime(self):
		return self.contractInfo.expiryTime
		

	def getExpirationPrice(self):
		return self.contractInfo.expiryPrice

	def isClosed(self):
		self.refreshContractInfo()
		return self.contractInfo.isClosed()

	def isOpen(self):
		return not self.isClosed()

	def havePosition(self):
		return self.getPosition() != None

	def getPosition(self):
		pos = self.n.getPositions(self.contract.id)
		if len(pos) > 0:
			self.position =  pos[0]
			return self.position
			

	def placeOrder(self, price, quantity):
		if self.isOpen():
			return False
		else:
			return False

	def refreshTimeAndSales(self):
		
		self.timeAndSales = self.n.getDailyTimeAndSales(self.contract.id)
		self.financialData = FinancialDataSet([ t.toTup() for t in self.timeAndSales])

	def getTimeAndSales(self):
		self.refreshTimeAndSales()
		return self.timeAndSales

	def refreshPriceInfo(self):
		self.priceInfo = self.n.getPriceInfo([self.contract.id,]).priceContractInfos[0]


	def getTime(self):
		self.timeDelay =  d.n.getIntradeTime() - self.__t()
		return self.n.getIntradeTime()

	def getAdjustedTime(self):
		return long(time.time()*1000) + self.timeDelay

	def startTrading(self):
		while self.shouldContinue():
			if self.havePosition():
				self.sell()
			else:
				self.buy()

		return "Market Closed!"


	def buy(self):
		targetPrice = self.getBuyPrice()
		latestPrice = self.getLatestAsk()

		while latestPrice > targetPrice and self.isOpen():
			targetPrice = self.getBuyPrice()
			latestPrice = self.getLatestAsk()

		if self.isOpen():
			targetQuantity = self.getBuyQuantity(latestPrice)
			success = self.placeOrder(latestPrice,targetQuantity)

			return success
		else:
			return False


	def shouldContinue(self):
		return self.isOpen()

	def sell(self):
		return

	def getBuyPrice(self):
		return

	def getBuyQuantity(self, latestPrice):
		return

	def getSellPrice(self):
		return

	def getLatestPrice(self):
		self.refreshContractInfo()
		return self.contractInfo.lstTrdPrc

	def getLatestBid(self):
		self.refreshPriceInfo()
		bidPrice =  self.priceInfo.orderBook.getLatestBidPrice()
		if bidPrice > 0:
			self.historicalBids.append( (time.time(), bidPrice))
		return bidPrice

	def getLatestAsk(self):
		self.refreshPriceInfo()
		askPrice =  self.priceInfo.orderBook.getLatestOfferPrice()

		if askPrice > 0:
			self.historicalAsks.append((time.time(), askPrice))

		return askPrice

	def getAvailableCash(self):
		return self.getBalance().available

	def getInvested(self):
		return self.getBalance().frozen

	def getBalance(self):
		return self.n.getBalance()


	def getStopLossPrice(self):
		return -1

	def getPositionAvgCost(self):
		self.position = self.getPosition()
		if self.position:
			return self.position.averageCost()
		else:
			return -1

	def getTargetPrice(self):
		self.position = self.getPosition()
		if self.position:
			tenPercent = self.getPositionAvgCost() * 1.1
			return tenPercent
		else:
			-1
Ejemplo n.º 26
0
    def test_get_check_messages(self):
        n = Intrade(self.memNum, self.pw)

        msgs = n.checkMessages()
        self.assertEqual(msgs, 0)
Ejemplo n.º 27
0
    def test_market_data(self):
        n = Intrade(self.memNum, self.pw)

        md = n.getMarketData()
Ejemplo n.º 28
0
    def test_get_price_info(self):
        n = Intrade(self.memNum, self.pw)

        cb = n.getPriceInfo([
            '331374',
        ])
Ejemplo n.º 29
0
    def test_get_market_data_in_event_class(self):
        n = Intrade(self.memNum, self.pw)

        ec = n.getMarketDataByEventClass('67')  #Learn_Financial
Ejemplo n.º 30
0
    def test_get_contract_info(self):
        n = Intrade(self.memNum, self.pw)

        ci = n.getContractInfo([
            '331374',
        ])
Ejemplo n.º 31
0
    def test_get_trades(self):
        n = Intrade(self.memNum, self.pw)

        trades = n.getTrades(contractId='331374')

        self.assertEqual(len(trades), 4)
Ejemplo n.º 32
0
    def test_get_closing_price(self):
        n = Intrade(self.memNum, self.pw)

        cp = n.getClosingPrice('331374')
Ejemplo n.º 33
0
    def test_get_closing_price(self):
        n = Intrade(self.memNum, self.pw)

        cp = n.getClosingPrice('331374')
Ejemplo n.º 34
0
    def test_get_messages(self):
        n = Intrade(self.memNum, self.pw)

        msgs = n.getMessages()
        self.assertEqual(len(msgs), 4)
Ejemplo n.º 35
0
    def test_get_time_and_sales(self):
        n = Intrade(self.memNum, self.pw)

        sales = n.getDailyTimeAndSales('331374');
Ejemplo n.º 36
0
    def test_get_messages(self):
        n = Intrade(self.memNum, self.pw)

        msgs = n.getMessages()
        self.assertEqual(len(msgs), 4)
Ejemplo n.º 37
0
    def test_get_trades(self):
        n = Intrade(self.memNum, self.pw)

        trades = n.getTrades(contractId='331374')

        self.assertEqual(len(trades), 4)
Ejemplo n.º 38
0
 def test_get_check_messages(self):
     n = Intrade(self.memNum, self.pw)
     
     msgs = n.checkMessages()
     self.assertEqual(msgs, 0)
Ejemplo n.º 39
0
 def test_login_incorrect_password(self):
     with self.assertRaises(IntradeResponseError):
         n = Intrade(self.memNum, "lkjlkj")
Ejemplo n.º 40
0
 def test_login_initial_correct(self):
     n = Intrade(self.memNum, self.pw)
     self.assertTrue(n.loggedIn)
     self.assertNotEqual(n.sessionData, "")
     self.assertNotEqual(n.lastLogin, "")
     self.assertNotEqual(n.username, "")
Ejemplo n.º 41
0
 def test_login_empty(self):
     with self.assertRaises(IntradeResponseError):
         n = Intrade("", "")
Ejemplo n.º 42
0
    def test_market_data(self):
        n = Intrade(self.memNum, self.pw)

        md = n.getMarketData()