def mock_http_calls(requests_mock):
    ig_request_login(requests_mock)
    ig_request_set_account(requests_mock)
    ig_request_account_details(requests_mock)
    ig_request_open_positions(requests_mock)
    ig_request_market_info(requests_mock)
    ig_request_search_market(requests_mock)
    ig_request_prices(requests_mock)
    ig_request_trade(requests_mock)
    ig_request_confirm_trade(requests_mock)
    ig_request_navigate_market(requests_mock)
    ig_request_navigate_market(requests_mock,
                               args="668394",
                               data="mock_navigate_markets_markets.json")
    ig_request_navigate_market(requests_mock,
                               args="77976799",
                               data="mock_navigate_markets_markets.json")
    ig_request_navigate_market(requests_mock,
                               args="89291253",
                               data="mock_navigate_markets_markets.json")
    ig_request_watchlist(requests_mock)
    ig_request_watchlist(requests_mock,
                         args="12345678",
                         data="mock_watchlist.json")
    av_request_prices(requests_mock)
    av_request_macd_ext(requests_mock)
Example #2
0
def test_authenticate_fail(requests_mock, ig):
    ig_request_login(requests_mock, fail=True)
    ig_request_set_account(requests_mock, fail=True)
    # Call function to test
    result = ig.authenticate()
    # Assert results
    assert result == False
def broker(config, requests_mock):
    """
    Initialise the strategy with mock services
    """
    ig_request_login(requests_mock)
    ig_request_set_account(requests_mock)
    return Broker(BrokerFactory(config))
Example #4
0
def ig(requests_mock, config):
    """
    Returns a instance of IGInterface
    """
    ig_request_login(requests_mock)
    ig_request_set_account(requests_mock)
    return IGInterface(config)
Example #5
0
def test_find_trade_signal(config, credentials, requests_mock):
    ig_request_login(requests_mock)
    ig_request_set_account(requests_mock)
    ig_request_market_info(requests_mock)
    ig_request_prices(requests_mock)
    ig_request_trade(requests_mock)
    ig_request_confirm_trade(requests_mock)

    services = {
        "ig_index": IGInterface(config, credentials),
        "alpha_vantage": AVInterface(credentials["av_api_key"], config),
    }
    broker = Broker(config, services)
    broker.use_av_api = False

    strategy = WeightedAvgPeak(config, broker)

    # Need to use a mock enum as the requests_mock expect "mock" as interval
    prices = broker.get_prices("mock", "mock", Mock_Interval.MOCK, "mock")
    market = create_mock_market(broker)
    tradeDir, limit, stop = strategy.find_trade_signal(market, prices)

    assert tradeDir is not None
    assert limit is None
    assert stop is None

    assert tradeDir == TradeDirection.NONE
def requests(requests_mock):
    ig_request_login(requests_mock)
    ig_request_set_account(requests_mock)
    ig_request_market_info(requests_mock)
    ig_request_search_market(requests_mock)
    ig_request_watchlist(requests_mock, data="mock_watchlist_list.json")
    ig_request_watchlist(requests_mock, args="12345678", data="mock_watchlist.json")
def broker(requests_mock, config):
    ig_request_login(requests_mock)
    ig_request_set_account(requests_mock)
    ig_request_market_info(requests_mock)
    ig_request_search_market(requests_mock)
    ig_request_watchlist(requests_mock, data="mock_watchlist_list.json")
    ig_request_watchlist(requests_mock, args="12345678", data="mock_watchlist.json")
    return Broker(BrokerFactory(config))
def test_trading_bot_init(requests_mock):
    """
    Test init
    """
    ig_request_login(requests_mock)
    ig_request_set_account(requests_mock)
    config = "test/test_data/config.json"
    tb = TradingBot(TimeProvider(), config_filepath=config)
    tb2 = TradingBot(config_filepath=config)
    assert tb
    assert tb2
Example #9
0
def broker(config, credentials, requests_mock):
    """
    Initialise the strategy with mock services
    """
    ig_request_login(requests_mock)
    ig_request_set_account(requests_mock)
    services = {
        "ig_index": IGInterface(config, credentials),
        "alpha_vantage": AVInterface(credentials["av_api_key"], config),
    }
    return Broker(config, services)
def test_find_trade_signal(config, broker, requests_mock):
    ig_request_login(requests_mock)
    ig_request_set_account(requests_mock)
    ig_request_prices(requests_mock)
    ig_request_trade(requests_mock)
    ig_request_confirm_trade(requests_mock)
    ig_request_market_info(requests_mock)

    strategy = WeightedAvgPeak(config, broker)

    # Need to use a mock enum as the requests_mock expect "mock" as interval
    market = broker.get_market_info("mock")
    prices = strategy.fetch_datapoints(market)
    tradeDir, limit, stop = strategy.find_trade_signal(market, prices)

    assert tradeDir is not None
    assert limit is None
    assert stop is None

    assert tradeDir == TradeDirection.NONE
Example #11
0
def test_set_default_account_fail(requests_mock, ig):
    ig_request_set_account(requests_mock, fail=True)
    result = ig.set_default_account("mock")
    assert result == False
Example #12
0
def test_set_default_account_fail(requests_mock, ig, credentials):
    ig_request_set_account(requests_mock, fail=True)
    result = ig.set_default_account(credentials["account_id"])
    assert result == False