Exemplo n.º 1
0
"""
    create condition order information
    :params
    side: 1:Buy Long, 2:Sell Short, 3:Buy to Close Short, 4:Sell to Close Long
    type: Limit:limit order     Market:market order
    trig_price: Trigger price
    expected_quantity: Preset quantity
    expected_price: Preset price
"""

contract_code = 'BTCUSDT'

# # case condition limit order
res = trade_client.create_condition_order(contract_code=contract_code,
                                          side=OrderTradeType.BUY_LONG,
                                          type=OrderType.LIMIT,
                                          trig_price=55000,
                                          expected_quantity=10,
                                          expected_price=54500)

if res and len(res) and res.get('ret', -1) == 0 and res.get('data', False):
    LogInfo.output("create condition limit order success")
else:
    LogInfo.output("create condition limit order fail:{res}".format(res=res))

# # case condition market order
# res = trade_client.create_condition_order(contract_code=contract_code, side=OrderTradeType.BUY_LONG,
#                                           type=OrderType.MARKET, trig_price=55000,
#                                           expected_quantity=10, expected_price=None)
# if res and len(res) and res.get('ret', -1) == 0 and res.get('data', False):
#     LogInfo.output("create condition market order success")
# else:
Exemplo n.º 2
0
    def test_trade(self):
        trade_client = TradeClient(api_key=t_api_key,
                                   secret_key=t_secret_key,
                                   performance_test=True)

        # case req_order_paras
        tc = TimeCost(function_name=trade_client.req_order_paras.__name__)
        result, tc.server_req_cost, tc.server_api_cost = trade_client.req_order_paras(
            contract_code)
        print("req_order_paras:", result)
        tc.run_status = RunStatus.SUCCESS if result and len(
            result) else RunStatus.FAILED
        tc.add_record()

        # case req_liquidation_history
        tc = TimeCost(
            function_name=trade_client.req_liquidation_history.__name__)
        contract_code_list = [contract_code]
        side = 0
        result, tc.server_req_cost, tc.server_api_cost = trade_client.req_liquidation_history(
            contract_code_list, side)
        print("req_liquidation_history:", result)
        tc.run_status = RunStatus.SUCCESS if result and len(
            result) else RunStatus.FAILED
        tc.add_record()

        # case req_history_orders
        tc = TimeCost(function_name=trade_client.req_history_orders.__name__)
        contract_code_list = list()
        type_list = list()
        side = 0
        start_time = 0
        end_time = 0

        result, tc.server_req_cost, tc.server_api_cost = trade_client.req_history_orders(
            contract_code_list, type_list, side, start_time, end_time)
        print("req_history_orders:", result)
        tc.run_status = RunStatus.SUCCESS if result and len(
            result) else RunStatus.FAILED
        tc.add_record()

        # case get_positions
        tc = TimeCost(function_name=trade_client.get_positions.__name__)
        result, tc.server_req_cost, tc.server_api_cost = trade_client.get_positions(
        )
        print("get_positions:", result)
        tc.run_status = RunStatus.SUCCESS if result and len(
            result) else RunStatus.FAILED
        tc.add_record()

        # case get_open_orders
        tc = TimeCost(function_name=trade_client.get_open_orders.__name__)
        result, tc.server_req_cost, tc.server_api_cost = trade_client.get_open_orders(
            contract_code)
        print("get_open_orders:", result)
        tc.run_status = RunStatus.SUCCESS if result and len(
            result) else RunStatus.FAILED
        tc.add_record()

        # case set_leverage
        tc = TimeCost(function_name=trade_client.set_leverage.__name__)
        direct = Direct.LONG
        leverage = 20
        result, tc.server_req_cost, tc.server_api_cost = trade_client.set_leverage(
            contract_code, direct, leverage)
        print("set_leverage:", result)
        tc.run_status = RunStatus.SUCCESS if result and len(
            result) else RunStatus.FAILED
        tc.add_record()

        # case create_order
        tc = TimeCost(function_name=trade_client.create_order.__name__)
        side = OrderTradeType.BUY_LONG
        order_quantity = 10
        order_price = 48000
        result, tc.server_req_cost, tc.server_api_cost = trade_client.create_order(
            contract_code, side, order_quantity, order_price)
        print("create_order:", result)
        order_id_tmp = result['data'] if result and result.get('ret',
                                                               -1) == 0 else 0
        tc.run_status = RunStatus.SUCCESS if result and result.get(
            'ret', -1) == 0 else RunStatus.FAILED
        tc.add_record()

        # case cancel_order
        tc = TimeCost(function_name=trade_client.cancel_order.__name__)
        result, tc.server_req_cost, tc.server_api_cost = trade_client.cancel_order(
            contract_code, order_id_tmp)
        print("cancel_order:", result)
        tc.run_status = RunStatus.SUCCESS if result and result.get(
            'ret', -1) == 0 else RunStatus.FAILED
        tc.add_record()

        # case create_condition_order
        tc = TimeCost(
            function_name=trade_client.create_condition_order.__name__)
        side = OrderTradeType.BUY_LONG
        trig_price = 50000
        expected_quantity = 10
        expected_price = 48000
        result, tc.server_req_cost, tc.server_api_cost = trade_client.create_condition_order(
            contract_code, side, OrderType.LIMIT, trig_price,
            expected_quantity, expected_price)
        print("create_condition_order:", result)
        tc.run_status = RunStatus.SUCCESS if result and result.get(
            'ret', -1) == 0 else RunStatus.FAILED
        tc.add_record()

        # case req_condition_orders
        tc = TimeCost(function_name=trade_client.req_condition_orders.__name__)
        contract_code_list = [contract_code]
        task_type_list = list()
        trig_type_list = list()
        task_status_list = list()
        direct = 0
        side = 0
        start_time = 0
        end_time = 0
        result, tc.server_req_cost, tc.server_api_cost = trade_client.req_condition_orders(
            contract_code_list, task_type_list, trig_type_list,
            task_status_list, direct, side, start_time, end_time)
        print("req_condition_orders:", result)
        task_data = result.get(
            'data', {}) if result and result.get('ret', -1) == 0 else {}
        task_list = task_data.get('result', list())

        task_list = list(
            filter(
                lambda x: x['taskStatus'] == 1
                if x.get('taskStatus') else False, task_list))
        print(task_list)
        task_id_tmp = task_list[0].get('taskId', 0) if len(task_list) else 0

        tc.run_status = RunStatus.SUCCESS if result and result.get(
            'ret', -1) == 0 else RunStatus.FAILED
        tc.add_record()

        # case cancel_condition_order
        tc = TimeCost(
            function_name=trade_client.cancel_condition_order.__name__)
        print(task_id_tmp)
        result, tc.server_req_cost, tc.server_api_cost = trade_client.cancel_condition_order(
            contract_code, task_id_tmp)
        print("cancel_condition_order:", result)
        tc.run_status = RunStatus.SUCCESS if result and result.get(
            'ret', -1) == 0 else RunStatus.FAILED
        tc.add_record()