コード例 #1
0
    def test_create_working_order_guaranteed_stop_loss(self, ig_service: IGService):

        epic = 'CS.D.GBPUSD.TODAY.IP'
        market_info = ig_service.fetch_market_by_epic(epic)
        status = market_info.snapshot.marketStatus
        min_bet = market_info.dealingRules.minDealSize.value
        offer = market_info.snapshot.offer
        bid = market_info.snapshot.bid

        logging.info(f"min bet: {min_bet}")
        logging.info(f"offer: {offer}")
        logging.info(f"bid: {bid}")

        if status != 'TRADEABLE':
            pytest.skip('Skipping create working order test, market not open')

        create_result = ig_service.create_working_order(
            epic=epic, direction='BUY', currency_code='GBP', order_type='LIMIT', expiry='DFB', guaranteed_stop='true',
            time_in_force='GOOD_TILL_CANCELLED', size=min_bet, level=offer * 0.90, limit_level=None,
            limit_distance=None, stop_distance=200, stop_level=None)

        logging.info(f"result: {create_result['dealStatus']}, reason {create_result['reason']}")

        assert create_result['dealStatus'] == 'ACCEPTED'
        assert create_result['reason'] == 'SUCCESS'
        assert create_result['guaranteedStop']

        time.sleep(10)

        update_result = ig_service.update_working_order(
            good_till_date=None,
            level=offer * 0.85,
            limit_distance=None,
            limit_level=None,
            stop_distance=None,
            stop_level=offer * 0.80,
            guaranteed_stop='true',
            time_in_force='GOOD_TILL_CANCELLED',
            order_type='LIMIT',
            deal_id=create_result['dealId'])

        logging.info(f"result: {update_result['dealStatus']}, reason {update_result['reason']}")

        assert update_result['dealStatus'] == 'ACCEPTED'
        assert update_result['reason'] == 'SUCCESS'
        assert update_result['guaranteedStop']

        time.sleep(10)

        delete_result = ig_service.delete_working_order(create_result['dealId'])
        assert delete_result['dealStatus'] == 'ACCEPTED'
        assert delete_result['reason'] == 'SUCCESS'
コード例 #2
0
    def test_create_working_order(self, ig_service: IGService):

        epic = 'CS.D.GBPUSD.TODAY.IP'
        market_info = ig_service.fetch_market_by_epic(epic)
        status = market_info.snapshot.marketStatus
        min_bet = market_info.dealingRules.minDealSize.value
        offer = market_info.snapshot.offer
        if status != 'TRADEABLE':
            pytest.skip('Skipping create working order test, market not open')

        create_result = ig_service.create_working_order(
            epic=epic, direction='BUY', currency_code='GBP', order_type='LIMIT', expiry='DFB', guaranteed_stop='false',
            time_in_force='GOOD_TILL_CANCELLED', size=min_bet, level=offer * 0.9, limit_level=None,
            limit_distance=None, stop_distance=None, stop_level=None)
        assert create_result['dealStatus'] == 'ACCEPTED'
        assert create_result['reason'] == 'SUCCESS'

        time.sleep(10)

        delete_result = ig_service.delete_working_order(create_result['dealId'])
        assert delete_result['dealStatus'] == 'ACCEPTED'
        assert delete_result['reason'] == 'SUCCESS'