intelligent-trading-bot/docs/configuration.md

4.3 KiB

Configuration and parameterization

Parameterization

All parameters for scripts, the server, and high-level functions are provided as a JSON object. This configuration is represented either as a JSON file (with comment support) or as a Python dictionary (еt runtime). Note that not all parameters and sections are required by every script or function.

Global parameters

The most important parameters are listed below:

  • General parameters:
    • symbol: Used primarily as the subfolder name for all generated files within the data_folder.
    • description: A textual description of this configuration. It can be consumed by various pluggable components, such as text or visual output adapters.
    • freq: Data frequency in pandas format (e.g., 1h for hourly data or 1min for minutely data).
    • train: Boolean flag specifying whether the analysis runs in train (true) or predict (false) mode. If true, all trainable features will fit their models using historical data. If false, existing models will be loaded for prediction.
  • Persistence:
    • data_folder: Path to the directory containing all data files for this analysis.
    • model_folder: Path to the directory where ML models produced during training are stored.
  • Data providers:
    • venue: Name of the data provider and its corresponding connector. Currently supported values: binance, yahoo, mt5.
    • api_key and api_secret: Credentials for the selected venue. These are passed directly to the connector.
    • client_args: Dictionary of arbitrary arguments passed to the data connector.
    • time_column: Column name used for timestamps (defaults to "timestamp").
  • Output:
    • telegram_bot_token and telegram_chat_id: Credentials used by the Telegram output adapter to send notifications.

Analysis table parameters

During analysis, all data is represented as a DataFrame configured via the following parameters. These parameters define the required shape of the DataFrame and are used primarily by the server:

  • label_horizon: The minimum number of future rows required to compute a label (i.e., the prediction horizon). During training, rows lacking sufficient future data are excluded.
  • features_horizon: The minimum number of past rows required for a feature to be valid. For example, computing a 10-day moving average requires 10 previous rows. Consequently, the first features_horizon rows are considered invalid and excluded from analysis. This value should be derived from the feature definitions.
  • train_length: Default upper limit for the training dataset size. This serves as a global maximum for all ML features, though individual features may override it. A value of 0 indicates that all available data should be used.
  • predict_length: The minimum number of rows kept up-to-date and valid in online mode. To ensure validity, these rows must be preceded by at least features_horizon historical rows.
  • append_overlap_records: In online mode, the server requests additional records beyond those strictly missing. This parameter specifies the size of that overlap buffer. Overlapping records are re-evaluated and overwrite previous values, which helps mitigate connection errors or minor discrepancies in recently received data.

Parameter sections

The model registry is defined as a list named model_registry, where each entry contains name and file attributes.

Feature definitions are organized into four sections:

  • feature_sets
  • label_sets: Labels required during training.
  • train_feature_sets: Trainable features.
  • signal_sets: Features evaluated after ML features.

Features rely on the following global parameters:

  • train_features: A list of column names selected by default as input for training algorithms (in both train and predict modes). Individual trainable features may override this list with their own specific inputs.
  • labels: A list of all labels (unless overridden by individual trainable algorithms).
  • algorithms: Obsolete. Use either train_feature_sets or standard feature_sets to define trainable features.

Outputs are defined in output_sets, which is a list of dictionaries passed to output adapters after analysis. For example, trading or notification adapters can be configured here.

Additional sections may describe utilities such as rolling_predict or simulate_model.