Trading.Backtest.Strategy behaviour
(trading v0.1.0)
Base behaviour for trading strategies.
Summary
Creates a new strategy instance.
Processes fill notifications.
Processes market data and generates signals.
Types
@type signal() :: %{
id: String.t(),
strategy: atom(),
symbol: String.t(),
direction: :long | :short | :flat,
position_size_pct: float(),
price: float() | nil,
order_type: atom() | nil,
metadata: map()
}
@type t() :: %Trading.Backtest.Strategy{
module: module(),
params: map(),
state: term()
}
Callbacks
@callback init(params :: map()) :: {:ok, state :: term()} | {:error, reason :: term()}
@callback on_fill(
state :: term(),
fill :: map()
) :: {:ok, state :: term()}
@callback on_market_data(
state :: term(),
symbol :: String.t(),
market_data :: map(),
context :: map()
) :: {:ok, state :: term()} | {:signal, signal(), state :: term()}
Functions
Creates a new strategy instance.
@spec on_fill(t(), map()) :: t()
Processes fill notifications.
Processes market data and generates signals.