contango.strategy.rule_based.rule_based_strategy
contango.strategy.rule_based.rule_based_strategy
RuleBasedStrategy
RuleBasedStrategy(streams: Sequence[Stream[Any]], rules: Sequence[Rule[TradingContext, Intent | None]], position_sizer: PositionSizer[TradingContext])
Bases: Strategy
Allows rules to be executed upon and intents to be executed.
Initializes RuleBasedStrategy.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
streams
|
Sequence[Stream[Any]]
|
A list of streams to be updated with context every market data event. |
required |
rules
|
Sequence[Rule[TradingContext, Intent | None]]
|
A sequence of rules, where each rule returns their intent type or None (executed in order). |
required |
position_sizer
|
PositionSizer[TradingContext]
|
The sizing rule for all trades made. |
required |
Source code in src\contango\strategy\rule_based\rule_based_strategy.py
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | |
on_end
on_end() -> None
Closes any open long position at the final market event.
Source code in src\contango\strategy\rule_based\rule_based_strategy.py
82 83 84 85 86 87 88 89 90 91 92 93 94 | |
on_market_event
on_market_event(event: MarketDataEvent) -> None
Updates all streams, executes rules, and executes intents every event.
Source code in src\contango\strategy\rule_based\rule_based_strategy.py
42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 | |