예제 #1
0
    def test_maxPositionLots_tradeEqual(self):
        '''持仓总单数设置为2,交易员买2单后。验证跟随者跟随订单情况'''
        #下单时的手数为实际值除以100
        openParam = { tradeOnlineData['orderParam_code']: tradeOnlineData['ws_code_210'], tradeOnlineData['orderParam_symbol']: tradeOnlineData['broker_EURCAD'], tradeOnlineData['orderParam_volume']: 300 }
        TradeOnline.OnlineTradeEvent.tradeEvent(self, tradeOnlineData['ws_host'], tradeOnlineData['ws_port'], {'token': self.tradeToken}, openParam)
        openPositionRes = TradeOnline.OnlineTradeEvent.tradeEvent(self, tradeOnlineData['ws_host'], tradeOnlineData['ws_port'], {'token': self.tradeToken}, openParam)
        #校验code等于0,为及时单开仓成功
        self.assertEqual(openPositionRes["code"], tradeOnlineData['ws_code_0'])
        #校验手数为下单时的手数为实际值除以100
        self.assertEqual(openPositionRes["order"]["volume"], 300)
        #保存orderID,待开仓使用
        self.orderID = openPositionRes["order"]["order_id"]

        #获取跟随者订单信息
        followOrderParams = {webAPIData['orderStatus']:webAPIData['orderStatus_open']}
        getFollowOrder = Order.getOrders(webAPIData['hostName'] + orderData['getOrders_url'], headers=self.followHeaders, params=followOrderParams)
        #断言获取跟随订单成功
        self.assertEqual(getFollowOrder.status_code, webAPIData['status_code_200'])
        #断言订单列表存在2个持仓单
        self.assertEqual(len(json.loads(getFollowOrder.text)['data']['items']), 2)

        #获取交易员的所有交易订单,并平掉
        tradeOrderParams = {webAPIData['orderStatus']:webAPIData['orderStatus_open']}
        getTradeOrders = Order.getOrders(webAPIData['hostName'] + orderData['getOrders_url'], self.tradeHeaders, params=tradeOrderParams)
        #获取订单成功,返回200 ok
        self.assertEqual(getTradeOrders.status_code, webAPIData['status_code_200'])
        tradeOrdersIDList = Order.getOrdersID(getTradeOrders)
        #平掉当前用户所有订单,如果有
        # #web sockets批量平仓
        closeParam = { tradeOnlineData['orderParam_code']: tradeOnlineData['ws_code_219'], tradeOnlineData['orderParam_tickets']: tradeOrdersIDList }
        closePositionRes = TradeOnline.OnlineTradeEvent.tradeEvent(self, tradeOnlineData['ws_host'], tradeOnlineData['ws_port'], {'token': self.tradeToken}, closeParam)
        #校验code等于0,为及时单平仓成功
        self.assertEqual(closePositionRes["code"], tradeOnlineData['ws_code_0'])
예제 #2
0
 def testAdd2(self):
     menu = Order.initMenu()
     order = []
     Order.addItem(order, menu, "burger order")
     Order.addItem(order, menu, "chicken order")
     self.assertEqual(order[1].getName(), "chicken order")
     self.assertEqual(order[1].getCost(), 2.99)
예제 #3
0
    def test_close_Orders(self):
        '''获取当前用户的所有交易订单,并平掉'''
        params = {webAPIData['orderStatus']: webAPIData['orderStatus_open']}
        getOrders = Order.getOrders(webAPIData['hostName'] +
                                    orderData['getOrders_url'],
                                    self.tradeHeaders,
                                    params=params)
        #获取订单成功,返回200 ok
        self.assertEqual(getOrders.status_code, webAPIData['status_code_200'])
        ordersIDList = Order.getOrdersID(getOrders)

        #平掉当前用户所有订单,如果有
        # #web sockets批量平仓
        closeParam = {
            tradeOnlineData['orderParam_code']: tradeOnlineData['ws_code_219'],
            tradeOnlineData['orderParam_tickets']: ordersIDList
        }
        closePositionRes = TradeOnline.OnlineTradeEvent.tradeEvent(
            self, tradeOnlineData['ws_host'], tradeOnlineData['ws_port'],
            {'token': self.tradeToken}, closeParam)
        #校验code等于0,为及时单平仓成功
        self.assertEqual(closePositionRes["code"],
                         tradeOnlineData['ws_code_0'])
        #校验rcmd等于210,为及时单开仓
        self.assertEqual(closePositionRes["rcmd"],
                         tradeOnlineData['ws_code_219'])
        #校验平掉的单号,为本测试及时单开仓的单号
        self.assertEqual(closePositionRes['success_tickets'], ordersIDList)
예제 #4
0
def basic_test():
    state = State()

    prod1 = Product(5, 5)
    prod2 = Product(10, 10)
    state.products.append(prod1)
    state.products.append(prod2)

    robot1 = Robot(0, 0)

    robot2 = Robot(1, 1)
    robot2.state = "on_delivery"
    robot2.time = 12

    state.idle.append(robot1)
    state.delivery.append(robot2)

    pack = Pack(3, 3)
    state.packs.append(pack)

    order1 = Order(prod1, pack)
    order2 = Order(prod2, pack)

    state.orders.append(order1)
    state.orders.append(order2)

    return state
예제 #5
0
def main(argv):
	a=13;
	b=9;
	p=7951;
	output='Order\t';

	bigOrder=1;
	for x in range(0,p):
		root=Root.findRoot(x,a,b,p);
		if root!='NOT_A_ROOT':
			root1=(x,root[0]);
			root2=(x,root[1]);
			res=();
			order=Order.findOrder(root1,a,p);
			

			output = str(order)+'\t1-'+str(root1)+' ';
			if bigOrder< order:
				bigOrder=order;
				res=root1;
			#R=Addition.doubleP(root1,a,p);
			#output=output+'2-'+str(R)+' ';
			#for i in range(3,order):
			#	R=Addition.addP(root1,R,a,p);
			#	output=output+str(i)+'-'+str(R)+' ';

			#print output;
			order=Order.findOrder(root2,a,p);
			if bigOrder< order:
				bigOrder=order;
				res=root2;
			output = str(order)+'\t1-'+str(root2)+' ';
			#print output;

	print bigOrder, res;
예제 #6
0
def ValidaPrecoMymoney():
    App.AbrirOrders()
    Principal.AcessarFormularioDeOrders()
    Order.EscolherProduto('MyMoney')
    Order.ValidarPreco('$100')
    Order.ClicarCancelar()
    App.FecharOrders()
예제 #7
0
def displayChoice(name):
    print("1:VEG Pizza\n2:Non-Veg Pizza\n3:Order\n4:Logout ")
    pch = int(input("Enter your choice:"))

    if (pch == 1):
        x = vpizza.selectPizza()
        print("\n")
        print(x.pname, x.total_price)
        pizzas.append(x)
        input()
        displayChoice(name)
    elif (pch == 2):
        x = nvpizza.selectPizza()
        print("\n")
        print(x.pname, x.total_price)
        pizzas.append(x)
        input()
        displayChoice(name)
    elif (pch == 3):
        #for y in pizzas:
        #print(y.pname,y.prize,y.quantity,y.total_price)
        Order.billgen(pizzas, name)
        print("\n\nThank you.....")
        print("\nSigning out....")
    elif (pch == 4):
        print("\nSigning out....")
        exit()
    else:
        print("Enter valid Option...\n")
        input()
        displayChoice(name)
예제 #8
0
    def test_DeleteOrdersByFxcm(self):
        '''登录->切换到福汇账号->获取交易token->检查持仓单列表是否有单,如果有单批量平仓>退出登录'''
        userData['headers'][
            userData['Authorization']] = userData['Bearer'] + self.token
        # 获取交易员的accountindex
        self.tradeAccountIndex_fxcm = Account.getSpecialAccountIndex(
            headers=userData['headers'], brokerID=4)
        # 切换到MT4账号
        switchAccountRes = Account.switchAccount(
            userData['hostName'] + userDataAccount['switchAccount'],
            userData['headers'], self.tradeAccountIndex_fxcm[0])
        self.assertEqual(switchAccountRes.status_code,
                         userData['status_code_200'])

        # 获取交易token
        getTokenRes = Trade.getToken(
            userData['hostName'] + userDataAccount["getToken_url"],
            userData['headers'])
        FMCommon.printLog('getTokenRes: ' + getTokenRes.text)
        self.assertEqual(getTokenRes.status_code, userData['status_code_200'])
        tradeToken = str(json.loads(
            getTokenRes.content)["data"]["Token"]).replace("=", "@")
        '''获取当前用户的所有交易订单,并平掉'''
        params = {
            userData['orderStatus']: userData['orderStatus_open'],
            "view": "TRADER"
        }
        getOrders = Order.getOrders(userData['hostName'] +
                                    orderData['getOrders_url'],
                                    userData['headers'],
                                    params=params)
        # 获取订单成功,返回200 ok
        self.assertEqual(getOrders.status_code, userData['status_code_200'])
        ordersIDList = Order.getOrdersID(getOrders)
        print("ordersIDList:", ordersIDList)

        time.sleep(2)
        # 平掉当前用户所有订单,如果有
        # #web sockets批量平仓
        closeParam = {
            userDataWebSocket['orderParam_code']:
            userDataWebSocket['ws_code_219'],
            userDataWebSocket['orderParam_tickets']: ordersIDList
        }
        closePositionRes = TradeOnline.OnlineTradeEvent.tradeEvent(
            self, userDataWebSocket['ws_host'], userDataWebSocket['ws_port'],
            {'token': tradeToken}, closeParam)
        if (closePositionRes["code"] == userDataWebSocket['ws_code_0']):
            # 校验code等于0,为及时单平仓成功
            # 校验rcmd等于210,为及时单开仓
            self.assertEqual(closePositionRes["rcmd"],
                             userDataWebSocket['ws_code_219'])
            # 校验平掉的单号,为本测试及时单开仓的单号
            self.assertEqual(closePositionRes['success_tickets'], ordersIDList)
        if (closePositionRes["code"] == 13):
            print("订单不存在!")
예제 #9
0
 def create_order(self, order_source):
     data = self.get_source_base_data(order_source)
     order = Order(**data)
     order.save()
     order = self.finalize_creation(order, order_source)
     order_creator_finished.send(sender=type(self), order=order, source=order_source)
     # reset product prices
     for line in order.lines.exclude(product_id=None):
         context_cache.bump_cache_for_product(line.product, shop=order.shop)
     return order
    def tearDown(self):
        #清空测试环境,还原测试数据
        #清除所有测试订单,如果有
        '''获取交易员的所有交易订单,并平掉'''
        tradeOrderParams = {webAPIData['orderStatus']:webAPIData['orderStatus_open']}
        getTradeOrders = Order.getOrders(webAPIData['hostName'] + orderData['getOrders_url'], self.tradeHeaders, params=tradeOrderParams)
        #获取订单成功,返回200 ok
        self.assertEqual(getTradeOrders.status_code, webAPIData['status_code_200'])
        tradeOrdersIDList = Order.getOrdersID(getTradeOrders)
        #平掉当前用户所有订单,如果有
        # #web sockets批量平仓
        closeParam = { tradeOnlineData['orderParam_code']: tradeOnlineData['ws_code_219'], tradeOnlineData['orderParam_tickets']: tradeOrdersIDList }
        closePositionRes = TradeOnline.OnlineTradeEvent.tradeEvent(self, tradeOnlineData['ws_host'], tradeOnlineData['ws_port'], {'token': self.tradeToken}, closeParam)
        #校验code等于0,为及时单平仓成功
        self.assertEqual(closePositionRes["code"], tradeOnlineData['ws_code_0'])

        '''获取跟随者的所有交易订单,并平掉'''
        followOrderParams = {webAPIData['orderStatus']:webAPIData['orderStatus_open']}
        getFollowOrders = Order.getOrders(webAPIData['hostName'] + orderData['getOrders_url'], self.followHeaders, params=followOrderParams)
        #获取订单成功,返回200 ok
        self.assertEqual(getFollowOrders.status_code, webAPIData['status_code_200'])
        followOrdersIDList = Order.getOrdersID(getFollowOrders)
        #平掉当前用户所有订单,如果有
        # #web sockets批量平仓
        closeParam = { tradeOnlineData['orderParam_code']: tradeOnlineData['ws_code_219'], tradeOnlineData['orderParam_tickets']: followOrdersIDList }
        closePositionRes = TradeOnline.OnlineTradeEvent.tradeEvent(self, tradeOnlineData['ws_host'], tradeOnlineData['ws_port'], {'token': self.followToken}, closeParam)
        #校验code等于0,为及时单平仓成功
        self.assertEqual(closePositionRes["code"], tradeOnlineData['ws_code_0'])

        #还原风控参数
        #设置全局风控参数。打开风控信号
        globalRiskControlData = {webAPIData['signalSwitch']: webAPIData['signalSwitch_open']}
        setRiskControl = RiskControl.setRiskControl(webAPIData['hostName'] + riskControlData['setRiskControl_url'], accountIndex=self.followPicoAccountIndex, headers = self.followHeaders, datas=globalRiskControlData)
        self.assertEqual(setRiskControl.status_code, webAPIData['status_code_200'])
        #设置针对单个交易员的风控参数。初始为默认值
        specialTradeDatas = { "accountIndex": self.followPicoAccountIndex}
        setRiskControlForTrader = RiskControl.setRiskControlForTrader(webAPIData['hostName'] + riskControlData['setRiskControlForTrader_url'] + self.tradeIndex, headers=self.followHeaders, datas=specialTradeDatas, interfaceName="setRiskControlForTrader")
        self.assertEqual(setRiskControlForTrader.status_code, webAPIData['status_code_200'])
        #还原针对单个交易员的风控品种参数。
        symbolList = [{webAPIData['Symbol']: tradeOnlineData["fm_EURCAD"], webAPIData['FollowType']: 1, webAPIData['StrategyType']: 2, webAPIData['Direction']: 2, 
        webAPIData['FollowSize']: 1, webAPIData['Locked']: False }]
        specialTradeDatas1 = { "accountIndex": int(self.followPicoAccountIndex), webAPIData['symbolList']: symbolList}
        setRiskControlForTrader1 = RiskControl.setRiskControlForTraderSymbols(webAPIData['hostName'] + riskControlData['setRiskControlForTraderSymbols_url'] + self.tradeIndex, headers=self.followHeaders, datas=specialTradeDatas1, interfaceName="setRiskControlForTraderSymbols")
        self.assertEqual(setRiskControlForTrader1.status_code, webAPIData['status_code_200'])

        # 取消跟随关系
        deleteFollow = FollowManage.deleteFollow(webAPIData['hostName'] + followData['deleteFollow_url'] + self.tradeIndex, headers = self.followHeaders, accountIndex=self.followPicoAccountIndex)
        self.assertEqual(deleteFollow.status_code, webAPIData['status_code_200'])

        #登出followme系统
        tradeSignout = Auth.signout(webAPIData['hostName'] + authData['signout_url'], datas = self.tradeHeaders)
        self.assertEqual(tradeSignout.status_code, webAPIData['status_code_200'])
        followSignout = Auth.signout(webAPIData['hostName'] + authData['signout_url'], datas = self.followHeaders)
        self.assertEqual(followSignout.status_code, webAPIData['status_code_200'])
예제 #11
0
    def test_onOrder(self):
        OB = Orderbook.Orderbook("abcd")
        Order1 = Order.Order("abcd", 500, 10, "Buy", "NAN1")
        Order2 = Order.Order("abcd", 500, 11, "Buy", "NAN1")
        Order3 = Order.Order("abcd", 500, 12, "Sell", "NAN1")
        Order4 = Order.Order("abcd", 500, 13, "Sell", "NAN1")
        Order5 = Order.Order("abcd", 1000, 9, "Sell", "NAN1")

        i = 0
        for O in [Order1, Order2, Order3, Order4, Order5]:
            O.Order_Id = i
            i += 1

        OB.onOrder(Order1)
        OB.onOrder(Order2)
        OB.onOrder(Order3)
        OB.onOrder(Order4)
        OB.onOrder(Order5)

        self.assertEqual(OB.Bid_Queue, {10: [], 11: []})
        self.assertEqual(len(OB.Ask_Queue), 2)
        self.assertEqual(len(OB.Ask_Queue[12]), 1)
        self.assertEqual(len(OB.Ask_Queue[13]), 1)

        self.assertEqual(len(OB.Updates), 4)

        OB = Orderbook.Orderbook("abcd")
        Order1 = Order.Order("abcd", 500, 10, "Buy", "NAN1")
        Order2 = Order.Order("abcd", 500, 11, "Buy", "NAN1")
        Order3 = Order.Order("abcd", 500, 12, "Sell", "NAN1")
        Order4 = Order.Order("abcd", 500, 13, "Sell", "NAN1")
        Order5 = Order.Order("abcd", 1000, 14, "Buy", "NAN1")

        i = 0
        for O in [Order1, Order2, Order3, Order4, Order5]:
            O.Order_Id = i
            i += 1

        OB.onOrder(Order1)
        OB.onOrder(Order2)
        OB.onOrder(Order3)
        OB.onOrder(Order4)
        OB.onOrder(Order5)

        self.assertEqual(OB.Ask_Queue, {12: [], 13: []})
        self.assertEqual(len(OB.Bid_Queue), 2)
        self.assertEqual(len(OB.Bid_Queue[10]), 1)
        self.assertEqual(len(OB.Bid_Queue[11]), 1)

        self.assertEqual(len(OB.Updates), 4)
예제 #12
0
def test_order_address_immutability_unsaved_address(save):
    billing_address = get_address()
    if save:
        billing_address.save()
    order = Order(
        shop=get_default_shop(),
        billing_address=billing_address.to_immutable(),
        order_date=now(),
        status=get_initial_order_status()
    )
    order.save()
    order.billing_address.name = "Mute Doge"
    with pytest.raises(ValidationError):
        order.billing_address.save()
예제 #13
0
def test2():
    state = State()
    r1 = Robot(20, 14)
    r2 = Robot(20, 20)
    r3 = Robot(20, 0)

    r1.time = 14
    r2.time = 8
    r3.time = 8

    r1.state = "on_delivery"
    r2.state = "on_delivery"
    r3.state = "on_delivery"

    insort(state.delivery, r1)
    insort(state.delivery, r2)
    insort(state.delivery, r3)

    pack1 = Pack(20, 0)
    pack2 = Pack(20, 10)
    pack3 = Pack(20, 20)

    state.packs.append(pack1)
    state.packs.append(pack2)
    state.packs.append(pack3)

    prod1 = Product(0, 0)
    prod2 = Product(0, 10)
    prod3 = Product(0, 20)

    state.products.append(prod1)
    state.products.append(prod2)
    state.products.append(prod3)

    ord1 = Order(prod1, pack1)
    ord2 = Order(prod1, pack2)
    ord3 = Order(prod1, pack3)
    ord4 = Order(prod2, pack1)
    ord5 = Order(prod2, pack2)
    ord6 = Order(prod2, pack3)
    ord7 = Order(prod3, pack1)
    ord8 = Order(prod3, pack2)
    ord9 = Order(prod3, pack3)

    state.orders.append(ord1)
    state.orders.append(ord2)
    state.orders.append(ord3)
    state.orders.append(ord4)
    state.orders.append(ord5)
    state.orders.append(ord6)
    state.orders.append(ord7)
    state.orders.append(ord8)
    state.orders.append(ord9)
    return state
예제 #14
0
 def testTotalCost3(self):
     menu = Order.initMenu()
     order = []
     Order.addItem(order, menu, "burger order")
     Order.addItem(order, menu, "chicken order")
     Order.addItem(order, menu, "fries order")
     total = Order.calcTotal(order)
     self.assertEqual(total, 8.97)
예제 #15
0
 def testTotalCost2(self):
     menu = Order.initMenu()
     order = []
     Order.addItem(order, menu, "burger order")
     Order.addItem(order, menu, "burger order")
     Order.addItem(order, menu, "burger order")
     total = Order.calcTotal(order)
     self.assertEqual(total, 11.97)
예제 #16
0
def _get_order_and_order_line(request):
    order = Order(
        shop=request.shop,
        currency=request.shop.currency,
        prices_include_tax=request.shop.prices_include_tax,
    )
    order.taxful_total_price = TaxfulPrice("100", request.shop.currency)
    order.taxless_total_price = TaxlessPrice("50", request.shop.currency)
    pi = _get_price_info(request.shop, Product(sku='6.0745'), quantity=2)
    return (order, OrderLine(
        order=order,
        base_unit_price=pi.base_unit_price,
        discount_amount=pi.discount_amount,
        quantity=pi.quantity,
    ))
예제 #17
0
def scan(account, type, date):

    data = Data.get_stock_list()
    print(data)
    orders = []
    totalEquity = (account.balances['combinedBalances'][1]['totalEquity'])

    #remove bought stocks
    print("Checking for stocks already bought")
    for currPos in account.positions['positions']:
        for stock in data:
            if currPos == stock:
                print(currPos + 'has been bought')
                data.remove(stock)
    # stock hasn't been bought and could be traded
    for stock in data:
        df = pd.read_csv('Data/' + stock + '.csv', index_col='Date')
        try:
            buy = s.strat2(stock, df, date)
            if buy:
                currPrice = si.get_live_price(stock)
                newOrder = o.Order(stock, currPrice, df, date)
                newOrder.setLong(df, totalEquity, date)
                orders.append(newOrder)
        except:
            print('Error Getting Stock Prices')
            pass

    if len(orders) == 0:
        print('Hold portfolio')
    else:
        print("Opportunities on {}".format(date))
        rank_orders(orders, 'MACD')
        for order in orders:
            print(order.symbol, order.dEMA, order.rsi, order.dMACD)
예제 #18
0
 def display_menu(self, a):
     if (a[1] == "Login"):
         obj = Welcome()
         obj.Readfile()
         obj.user_check()
     elif (a[1] == "Menu"):  # If user write 1 goto the  Menu class.
         obj1 = Menu()
         obj1.Readfile()
         obj1.menu_display()
     elif (a[1] == "Cart"):  # If user write 2 goto the cart class.
         obj2 = Cart()
         obj2.Read_file()
         obj2.select(sys.argv)
         obj2.cart_display(sys.argv)
     elif (a[1] == "Payment"):  # If user write 3 goto the Payment class.
         obj1 = Payment()
         obj1.Read_file()
         obj1.payment_display(sys.argv)
         obj1.updateorder(sys.argv)
         obj1.Bill_pay(sys.argv)
     elif (a[1] == "Order"):  # If user write 4 goto the Oreder class.
         obj1 = Order()
         obj1.Read_file()
         obj1.order_display(sys.argv)
         obj1.cancelorder(sys.argv)
예제 #19
0
def main(ichi, period, gd):
    ichi.update()
    order_obj = Order.Order(ichi, gd)
    order_obj.signal_achat()
    order_obj.signal_vente()
    time.sleep(period)
    main(ichi, period, gd)
예제 #20
0
def send_orders(products, order_id, url=None):
    for product_id, sku_num in products:
        order = Order.Order(product_id,sku_num, order_id)
        weight_price = {'sku_num': sku_num, 'weight': order.weight, 'price': order.price}
        data ={}
        try:
            file = open('Orders.txt', 'r')
            data = json.loads(file.read())
            file.close()
        except IOError:
            pass
        file = open('Orders.txt', 'w')

        data[order.id] = weight_price
        file.write(json.dumps(data))
        response = UrlHelpers.send_order_to_wms(order, url)
        print('status_code: ' + str(response.status_code))
        data = response.json()

        if response.status_code == 200:
            print(data)
            sending_orders.append(order)
        try:
            if data.get('trackingNumber', None) is not None:
                processed_orders.append(data)
        except Exception as e:
            print(data)
            print(e)
    file.close()
    print('All orders sent: %s' % len(sending_orders))
    print('Number processed orders : %s' % len(processed_orders))
    return order.id
예제 #21
0
 def SetOrder(self, order_type='basic', order_per_batch=1, num_order=100):
     self.order_generator = od.Order(self.shelves,
                                     self.tools_data,
                                     order_type = order_type,
                                     order_per_batch = order_per_batch,
                                     num_order = num_order,
                                     order_gap = 5)
예제 #22
0
    def test_date_methods(self):
        self.assertTrue(self.order.isCurrent())
        checkDate = datetime(2013, 12, 25)

        autoExpireDate = datetime(2017, 12, 25)
        self.order.setAutoExpireDate(autoExpireDate)
        self.assertTrue(self.order.isCurrent(checkDate))
        
        discontinuedDate = datetime(2015, 12, 25)
        self.order.setDiscontinuedDate(discontinuedDate)
        self.assertTrue(self.order.isCurrent(checkDate))
        self.assertFalse(self.order.isDiscontinued(checkDate))
        
        startDate = datetime(2014, 12, 25)
        self.order.setStartDate(startDate)
        self.assertFalse(self.order.isCurrent(checkDate))
        self.order.setDiscontinued(True)
        self.assertFalse(self.order.isDiscontinued(checkDate))
        
        checkDate2 = datetime(2016, 12, 25)
        self.assertTrue(self.order.isDiscontinued(checkDate2))

        self.assertTrue(self.order.isFuture(checkDate))
        self.assertFalse(self.order.isDrugOrder())

        obj = Order(orderId = 9112)
        self.assertTrue(self.order.equals(obj))
예제 #23
0
    def test_signalSwitch_close(self):
        '''账号持仓总手数设置为3,交易员买3手。验证跟随者跟随订单情况'''
        #下单时的手数为实际值除以100(300/100)
        openParam = { tradeOnlineData['orderParam_code']: tradeOnlineData['ws_code_210'], tradeOnlineData['orderParam_symbol']: tradeOnlineData['broker_EURCAD'], tradeOnlineData['orderParam_volume']: 300 }
        openPositionRes = TradeOnline.OnlineTradeEvent.tradeEvent(self, tradeOnlineData['ws_host'], tradeOnlineData['ws_port'], {'token': self.tradeToken}, openParam)
        #校验code等于0,为及时单开仓成功
        self.assertEqual(openPositionRes["code"], tradeOnlineData['ws_code_0'])
        #校验手数为下单时的手数为实际值除以100(300/100)
        self.assertEqual(openPositionRes["order"]["volume"], 300)
        #保存orderID,待开仓使用
        self.orderID = openPositionRes["order"]["order_id"]

        #获取订单信息
        followOrderParams = {webAPIData['orderStatus']:webAPIData['orderStatus_open']}
        getFollowOrder = Order.getOrders(webAPIData['hostName'] + orderData['getOrders_url'], headers=self.followHeaders, params=followOrderParams)
        #断言获取跟随订单成功
        self.assertEqual(getFollowOrder.status_code, webAPIData['status_code_200'])
        # #断言订单列表为空
        self.assertEqual(json.loads(getFollowOrder.text)['data']['items'], [])

        #平掉测试订单
        closeParam = { tradeOnlineData['orderParam_code']: tradeOnlineData['ws_code_211'], tradeOnlineData['orderParam_ticket']: self.orderID, tradeOnlineData['orderParam_volume']: 300 }
        closePositionRes = TradeOnline.OnlineTradeEvent.tradeEvent(self, tradeOnlineData['ws_host'], tradeOnlineData['ws_port'], {'token': self.tradeToken}, closeParam)
        #校验code等于0,为及时单平仓成功
        self.assertEqual(closePositionRes["code"], tradeOnlineData['ws_code_0'])
        #校验rcmd等于210,为及时单开仓
        self.assertEqual(closePositionRes["rcmd"], tradeOnlineData['ws_code_211'])
        #校验平掉的单号,为本测试及时单开仓的单号
        self.assertEqual(closePositionRes['order']["order_id"], self.orderID)
예제 #24
0
class OrdersT:
    arr = Order();
    type = str();

    def __init__(self, Orders, type):
        self.arr=Orders
        self.type=type
예제 #25
0
    def sell(self, total_amount):

        topDepth = self.market.getTopDepth()
        orderPrice = topDepth['bids'][0]
        new_order = self.trader.sendOrder(
            Order.Order(type="sell", amount=total_amount, price=orderPrice))
        self.trader.saveOrder(new_order)
        logging.info("New order : " + str(new_order.toJson()))

        if new_order.id == -1:
            logging.info("Sell Order failed")
            return

        i = 0
        while i < ORDER_WAIT_TIME:
            remote_order = self.trader.getRemoteOrder(new_order)
            if remote_order is not None:
                self.trader.saveOrder(remote_order)
                if remote_order.status == Order.PARR_COMPLETED or remote_order.status == Order.COMPLETED:
                    logging.info("Sell Order success")
                    return
            time.sleep(1)
            i += 1

        logging.info("Sell Order timeout")
        self.trader.cancelOrderById(new_order.id)
예제 #26
0
def generate_case():
    state = State()

    #Generating ROBOTS
    for i in range(0, randint(2, 4)):
        robot = Robot(randint(0, 10), randint(0, 10))
        if (randint(0, 10) < 4):
            robot.state = "on_delivery"
            robot.time = randint(3, 22)
            insort(state.delivery, robot)
        else:
            state.idle.append(robot)

    total_prods = randint(1, 4)

    #GENERATING PRODUCTS
    for i in range(0, total_prods):
        prod = Product(randint(0, 10), randint(0, 10))
        state.products.append(prod)

    total_packs = randint(1, 4)

    #GENERATING PACKING STATIONS
    for i in range(0, total_packs):
        pack = Pack(randint(0, 10), randint(0, 10))
        state.packs.append(pack)

    #GENERATING ORDERS
    for i in range(1, 5):
        product = state.products[randint(0, total_prods - 1)]
        packing = state.packs[randint(0, total_packs - 1)]
        order = Order(product, packing)
        state.orders.append(order)
    return state
예제 #27
0
    def test_maxPositionLots_tradeMore(self):
        '''账号持仓总手数设置为3,交易员买4手。验证跟随者跟随订单情况'''
        #下单时的手数为实际值除以100(400/100)
        openParam = {
            tradeOnlineData['orderParam_code']: tradeOnlineData['ws_code_210'],
            tradeOnlineData['orderParam_symbol']:
            tradeOnlineData['broker_EURCAD'],
            tradeOnlineData['orderParam_volume']: 400
        }
        openPositionRes = TradeOnline.OnlineTradeEvent.tradeEvent(
            self, tradeOnlineData['ws_host'], tradeOnlineData['ws_port'],
            {'token': self.tradeToken}, openParam)
        #校验code等于0,为及时单开仓成功
        self.assertEqual(openPositionRes["code"], tradeOnlineData['ws_code_0'])
        #校验手数为下单时的手数为实际值除以100(300/100)
        self.assertEqual(openPositionRes["order"]["volume"], 400)
        #保存orderID,待开仓使用
        self.orderID = openPositionRes["order"]["order_id"]

        #获取订单的跟随订单
        getFollowOrdersOfOrder = Order.getFollowOrdersOfOrder(
            webAPIData['hostName'] + orderData['getFollowOrdersOfOrder_url1'],
            headers=self.tradeHeaders,
            params={"pageSize": 100},
            tradeOrderID=str(self.orderID),
            existOrder=0)
        #断言获取跟随订单成功
        self.assertEqual(getFollowOrdersOfOrder.status_code,
                         webAPIData['status_code_200'])
        #断言当前的测试用户没有跟随订单
        nickNameOfOrderList = []
        for item in json.loads(getFollowOrdersOfOrder.text)["data"]["items"]:
            nickNameOfOrderList.append(item['CustomerNickName'])
        self.assertNotIn(self.followNickName, nickNameOfOrderList,
                         "当前测试用户未生成跟随订单")

        getFollowOrder = FollowManage.getFollowOrder(
            getFollowOrdersOfOrder,
            nickName=self.followNickName,
            accountIndex=self.followPicoAccountIndex)
        #断言跟随者持仓单列表为空,即没有产生跟随订单
        self.assertEqual(getFollowOrder, None)

        #平掉测试订单
        closeParam = {
            tradeOnlineData['orderParam_code']: tradeOnlineData['ws_code_211'],
            tradeOnlineData['orderParam_ticket']: self.orderID,
            tradeOnlineData['orderParam_volume']: 400
        }
        closePositionRes = TradeOnline.OnlineTradeEvent.tradeEvent(
            self, tradeOnlineData['ws_host'], tradeOnlineData['ws_port'],
            {'token': self.tradeToken}, closeParam)
        #校验code等于0,为及时单平仓成功
        self.assertEqual(closePositionRes["code"],
                         tradeOnlineData['ws_code_0'])
        #校验rcmd等于210,为及时单开仓
        self.assertEqual(closePositionRes["rcmd"],
                         tradeOnlineData['ws_code_211'])
        #校验平掉的单号,为本测试及时单开仓的单号
        self.assertEqual(closePositionRes['order']["order_id"], self.orderID)
예제 #28
0
def update_order():
    ensure_admin()
    data = json.loads(request.stream.read())
    db = DataAccessOrders()
    or_handler = OrderHandler(db)
    order = Order(data["date"], data["time"], data["name"], data["telefon"],
                  data["email"], data["location"], data["eventType"],
                  data["note"], data["id"])
    return jsonify(or_handler.update_order(order))
예제 #29
0
    def createOrder(self, productname, productcode):
        if self.isblacklisted:
            raise CustomerNotAllowedException(
                "Customer is not allowed to create the order because it is blacklisted."
            )

        order = Order(productname, productcode)

        return order
예제 #30
0
 def getLatestOrders(self, order_type):
     orders = []
     if order_type == 'buy':
         result = self.api.getBuyOrders()
     else:
         result = self.api.getSellOrders()
     for ord in result:
         orders.append(Order.fromCNBTCOrder(ord))
     return orders
예제 #31
0
def make_random_market(N=10000):
    market = OrderBook()
    for i in range(N):
        market.submit(Order.gen_random_order())
    return market
예제 #32
0
def orderMenuItem__on_click():
    Order.launch()   
예제 #33
0
파일: tests.py 프로젝트: Ch0c0late/jeeves
 def setUp(self):
     self.order = Order()
     self.order.setOrderId(9112)
     self.order.setOrderNumber('911')
예제 #34
0
파일: tests.py 프로젝트: Ch0c0late/jeeves
class TestOrderFunctions(unittest.TestCase):

    def setUp(self):
        self.order = Order()
        self.order.setOrderId(9112)
        self.order.setOrderNumber('911')
        
    def test_copy_methods(self):
        copy1 = self.order.copy()
        copy2 = self.order.copyForModification()
        self.assertEqual(self.order.OrderAction.ORDER, 'ORDER')
        self.assertEqual(self.order.Urgency.ROUTINE, 'ROUTINE')
        self.assertIs(copy2, self.order)
        self.assertIsNot(copy1, self.order)
        self.assertIsNot(copy1, copy2)
        self.assertEqual(self.order.hashCode(), self.order.getOrderId())

    def test_date_methods(self):
        self.assertTrue(self.order.isCurrent())
        checkDate = datetime(2013, 12, 25)

        autoExpireDate = datetime(2017, 12, 25)
        self.order.setAutoExpireDate(autoExpireDate)
        self.assertTrue(self.order.isCurrent(checkDate))
        
        discontinuedDate = datetime(2015, 12, 25)
        self.order.setDiscontinuedDate(discontinuedDate)
        self.assertTrue(self.order.isCurrent(checkDate))
        self.assertFalse(self.order.isDiscontinued(checkDate))
        
        startDate = datetime(2014, 12, 25)
        self.order.setStartDate(startDate)
        self.assertFalse(self.order.isCurrent(checkDate))
        self.order.setDiscontinued(True)
        self.assertFalse(self.order.isDiscontinued(checkDate))
        
        checkDate2 = datetime(2016, 12, 25)
        self.assertTrue(self.order.isDiscontinued(checkDate2))

        self.assertTrue(self.order.isFuture(checkDate))
        self.assertFalse(self.order.isDrugOrder())

        obj = Order(orderId = 9112)
        self.assertTrue(self.order.equals(obj))