Skip to main content
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

Metadata

Release files for signalflow-nn 0.6.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for signalflow-nn 0.6.0
File Size Uploaded Provenance Actions
signalflow_nn-0.6.0.tar.gz 53.8 kB Without provenance Details for signalflow_nn-0.6.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for signalflow-nn 0.6.0
File Interpreter ABI Platform Actions
signalflow_nn-0.6.0-py3-none-any.whl Python 3 none any Details for signalflow_nn-0.6.0-py3-none-any.whl

Total release size: 124.9 kB

Release files / signalflow_nn-0.6.0.tar.gz

Download URL signalflow_nn-0.6.0.tar.gz
Size 53.8 kB
Tags Source
SHA-256 checksum
How to use checksums
045624d3f22334c8430a6a0bfe9fc15a67202007673e06cc68867af5e63a50e8
BLAKE2b-256 checksum
How to use checksums
66e4aeee16f936a14f6878e2139147d5d8da5b63629f48976ac91fbc09b64d9e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / signalflow_nn-0.6.0-py3-none-any.whl

Download URL signalflow_nn-0.6.0-py3-none-any.whl
Size 71.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8e4ec21795f6d61e27eb5de954cc76c42431ff75d05c89a882ed4e7c239c0243
BLAKE2b-256 checksum
How to use checksums
4e0b8ff3632cc9f6b393717495179512cdb4e1a207a05788f2f7956a8d564c65
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Security for signalflow-nn 0.6.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page