Skip to main content

Neural network and RL extension for signalflow (torch/lightning/SB3).

Project description

SignalFlow

signalflow-nn

Neural network extension for SignalFlow - 14 encoders, 7 heads, 4 loss functions

Version Python 3.12+ PyTorch Lightning


Part of the SignalFlow ecosystem.

PyTorch/Lightning library for financial time series classification. Provides modular encoders, classification heads, and loss functions designed for trading signal validation and prediction.

Installation

pip install signalflow-nn

Requires: Python ≥ 3.12, signalflow-trading ≥ 0.5.0, PyTorch ≥ 2.2, Lightning ≥ 2.5

Quick Start

from signalflow.nn.encoder import TransformerEncoder
from signalflow.nn.head import MLPClassifierHead
from signalflow.nn.model import TemporalClassificator
from signalflow.nn.data import SignalDataModule
import lightning as pl

# Create model
model = TemporalClassificator(
    encoder_type="encoder/transformer",
    encoder_params={"d_model": 64, "nhead": 4, "num_layers": 2},
    head_type="head/cls/mlp",
    head_params={"hidden_sizes": [32]},
    num_classes=3,  # fall, neutral, rise
)

# Create data module
dm = SignalDataModule(
    data=df,
    window_size=60,
    batch_size=32,
    split_strategy="temporal",
)

# Train
trainer = pl.Trainer(max_epochs=50, accelerator="auto")
trainer.fit(model, dm)

Encoders (14)

Encoder Architecture Best For
LSTMEncoder Bidirectional LSTM Sequential patterns
GRUEncoder Gated Recurrent Unit Faster training
TCNEncoder Temporal Convolutional Network Long-range dependencies
TransformerEncoder Self-attention + positional encoding Complex relationships
PatchTSTEncoder Patch-based Transformer Multivariate time series
TSMixerEncoder All-MLP (Google 2023) Efficient mixing
InceptionTimeEncoder Multi-scale convolutions Multi-resolution features
ResNet1dEncoder 1D ResNet Deep representations
XceptionTimeEncoder Depthwise separable conv Efficient computation
Conv1dEncoder 1D CNN Local patterns
XCMEncoder Cross-Channel Mixing Channel interactions
gMLPEncoder Gating MLP Spatial/channel gating
OmniScaleCNNEncoder Multi-scale CNN Scale-invariant features
ConvTranEncoder Conv + Transformer hybrid Combined strengths

Classification Heads (7)

Head Use Case
LinearClassifierHead Simple baseline
MLPClassifierHead Non-linear classification
ResidualClassifierHead Deep with skip connections
AttentionClassifierHead Attention-weighted pooling
OrdinalRegressionHead Ordered classes (fall < neutral < rise)
DistributionHead Probability distributions
ClassificationWithConfidenceHead Class + confidence score

Loss Functions (4)

Loss Purpose
FocalLoss Class imbalance - down-weights easy examples
DiceLoss Imbalanced multi-class
LDAMLoss Large margin for rare classes
SymmetricCrossEntropyLoss Noisy labels

SignalFlow Integration

Use as a validator in the SignalFlow pipeline:

import signalflow as sf

result = (
    sf.Backtest("nn_validated")
    .data(raw=raw)
    .detector("sma_cross", fast_period=20, slow_period=50)
    .validator("nn/transformer", d_model=64, nhead=4)
    .entry(size_pct=0.1)
    .exit(tp=0.03, sl=0.015)
    .run()
)

Package Structure

Module Description
signalflow.nn.data Data loading, windowing, temporal splitting
signalflow.nn.encoder 14 feature encoding architectures
signalflow.nn.head 7 output head architectures
signalflow.nn.layer Custom neural network layers
signalflow.nn.loss 4 specialized loss functions
signalflow.nn.model TemporalClassificator - complete model
signalflow.nn.validator SignalFlow validator integration

License: MIT  ·  Part of SignalFlow

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

signalflow_labs-0.8.0.tar.gz (59.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

signalflow_labs-0.8.0-py3-none-any.whl (78.0 kB view details)

Uploaded Python 3

File details

Details for the file signalflow_labs-0.8.0.tar.gz.

File metadata

  • Download URL: signalflow_labs-0.8.0.tar.gz
  • Upload date:
  • Size: 59.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for signalflow_labs-0.8.0.tar.gz
Algorithm Hash digest
SHA256 9080c3dd0ed534f7c010be5e23329612953bb6d33bd0cbbd62e6b01c456c9468
MD5 df7b9ff40eeea7b2c716d3539ab01f4d
BLAKE2b-256 2df583fbbc1103e0e4e92d607eb87217499684a3fa469a0d86319711cda00827

See more details on using hashes here.

File details

Details for the file signalflow_labs-0.8.0-py3-none-any.whl.

File metadata

File hashes

Hashes for signalflow_labs-0.8.0-py3-none-any.whl
Algorithm Hash digest
SHA256 66f1d998406548e63da336f23f872342fad369a6a683adfe3b5ac2261aec2612
MD5 b27534b3bf1defab820d81c1cea13473
BLAKE2b-256 81d54de851e34d9c35155c55e6edea8b3b28955ce922fb209cff16b147806736

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page