Clients
Flumine is capable of using multiple clients, these can be of the same ExchangeType, a variation depending on use case or your own custom client/wrapper. The default workers handle login/keep-alive/logout and market closure for all clients added to the framework automatically.
ExchangeTypes
- BETFAIR:
BetfairClient - SIMULATED:
SimulatedClient - BETCONNECT:
BetconnectClient
Strategy use
To add a client use the add_client this will allow use via framework.clients or strategy.clients
from flumine import Flumine, clients
framework = Flumine()
client = clients.BetfairClient(trading)
framework.add_client(client)
or when simulating:
from flumine import FlumineSimulation, clients
framework = FlumineSimulation()
client = clients.SimulatedClient(username="123")
framework.add_client(client)
To access clients within a strategy use the helper functions:
betfair_client = self.clients.get_betfair_default()
client = self.clients.get_client(ExchangeType.SIMULATED, username="123")
Tip
get_default and get_betfair_default will use the first client added via add_client (ordered list)
By default a transaction will use clients.get_default() however you can use a particular client:
client = self.clients.get_client(ExchangeType.SIMULATED, username="123")
market.place_order(order, client=client)
or using a transaction directly:
client = self.clients.get_client(ExchangeType.SIMULATED, username="123")
with market.transaction(client=client) as t:
t.place_order(order)
Settings
transaction_limit(per hour transaction limit)interactive_login(betfair interactive login)username(defaults to guid)order_stream(disable order stream)best_price_execution(only configurable when simulating)username(defaults to guid)min_bet_validation(remove min bet validation)paper_trade(simulation engine used)market_recording_mode(no order stream / workers)simulated_full_match(simulate orders matching 100% on execution)execution_cls(configure class used for executing orders)