Files
aiomql/docs/executor.md
T
Ichinga Samuel 027f9fd8de add docs
2023-10-11 09:49:06 +01:00

2.4 KiB

Executor

class Executor

Executor class for running multiple strategies on multiple symbols concurrently. Attributes:

Name Type Description Default
executor ThreadPoolExecutor The default thread executor. None
workers list List of strategies. []
coros dict Dictionary of coroutines and keyword arguments {}
funcs dict Dictionary of functions and keyword arguments {}

add_workers

def add_workers(strategies: Sequence[type(Strategy)])

Add multiple strategies at once

Arguments:

Name Type Description
strategies Sequence[type(Strategy)] A sequence of strategies.

remove_workers

def remove_workers(*symbols: Sequence[Symbol])

Removes any worker running on a symbol not successfully initialized.

Arguments:

Name Type Description
symbols Sequence[Symbol] A sequence of symbols.

add_worker

def add_worker(strategy: type(Strategy))

Add a strategy instance to the list of workers

Arguments:

Name Type Description
strategy type(Strategy) A strategy instance.

run

@staticmethod
def run(func: Callable|Coroutine, kwargs: dict)

Wrap the input coroutine function with 'asyncio.run' so that it can be executed in a threadpool executor.

Arguments

Name Type Description
func **Callable Coroutine**
kwargs Dict Keyword arguments to pass to the function.

trade

def trade(strategy: Strategy)

Wrap the input coroutine function trade method of each strategy with 'asyncio.run'.

Arguments:

Name Type Description
strategy Strategy A strategy instance.

execute

async def execute(workers: int = 0)

Run the strategies with a threadpool executor.

Arguments:

Name Type Description
workers int Number of workers to use in executor pool. Defaults to zero which uses all workers.

Notes: No matter the number specified, the executor will always use a minimum of 5 workers.