Skip to content
zzeiidannPublic

About

Systematic Indonesian Equity Research: foundation-model forecasting, cross-sectional ranking, and leakage-controlled backtesting for IDX equities.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

SIER

Systematic Indonesian Equity Research

Foundation-model forecasting and systematic stock ranking for the Indonesian equity market.

Python PyTorch Market Timeframes

Universe Training GPU Tests

Research Scope · Architecture · Findings · Run Locally · Limitations


SIER is an end-to-end research pipeline for forecasting and ranking Indonesian equities with Python, PyTorch, Kronos, and yfinance.

SIER fine-tunes a time-series foundation model across 958 IDX-listed equities, produces short-horizon forecasts at daily and intraday resolutions, and converts those forecasts into cross-sectional stock rankings. Point-in-time price and volume signals are evaluated as an optional experimental layer rather than a mandatory final filter.

Important

This repository is a research project, not investment advice. Historical and live-screening observations do not guarantee future performance.

Project at a glance

Universe Primary model Production timeframe Training compute Evaluation
958 equities Kronos 15 minutes NVIDIA A100 Rolling backtests
Research layer Role
Forecasting Generate probabilistic short-horizon price and volume paths
Cross-sectional ranking Compare forecast strength across the full IDX universe
Technical research Test whether breakout, reversal, structure, momentum, and volume setups add stable value
Risk filtering Control for liquidity, volatility, abnormal activity, and market regime

Research scope

  • Fine-tuning and inference for daily, 30-minute, and 15-minute OHLCV data.
  • Systematic ranking using predicted returns, probability of an upward move, liquidity, volatility, and abnormal price-volume activity.
  • Optional causal technical signals and penalty rules, evaluated against the raw model ranking.
  • Leakage-controlled rolling backtests across multiple forecast horizons and market regimes.
  • Reproducible local and Kaggle workflows, including GPU training and full-universe screening.

System architecture

IDX universe and OHLCV data
        |
        v
Kronos fine-tuning (daily / 30m / 15m)
        |
        v
Probabilistic short-horizon forecasts
        |
        v
Cross-sectional forecast ranking
        |
        v
Optional technical experiments
        |
        v
Liquidity, volatility, and regime filters
        |
        v
Top candidates and rolling backtest evaluation

Repository structure

Directory Purpose
Kronos IDX FineTune/ Daily model training, forecasting, checkpoints, and data updates
Kronos IDX FineTune 15 Minutes/ Intraday 15-minute fine-tuning pipeline and production checkpoint
Kronos IDX FineTune 30 Minutes/ Intraday 30-minute experiments
Daily Screener/ Current 15-minute next-session screening workflow
BackTest Kronos Screener/ Rolling forecast and ranking backtests
BackTest Pattern Screener/ Causal technical-pattern reranking and evaluation
Model Screening UMA/ Unusual Market Activity screening experiments
Analisis Pendahuluan/ Exploratory analysis of large IDX price moves

Each directory contains its own README with workflow-specific instructions.

Training configuration

The production intraday experiment was trained on an NVIDIA A100 using 200,000 sampled training windows per epoch and four selected predictor epochs, equivalent to 800,000 sampled windows across the run. This is the training-window count, not the model's attention context length. The 15-minute model uses a 240-bar lookback, a 20-bar forecast horizon, and max_context=512.

The model universe covers 958 Indonesian equities. Actual eligible counts can be lower at a given timestamp because of listing age, suspension, missing bars, or insufficient history.

Current findings

1. The 15-minute timeframe is the most useful for short-horizon screening

Current live observations indicate that the 15-minute model is better than the tested higher timeframes at surfacing at least one stock that subsequently reaches or approaches Auto Rejection Atas (ARA). It does not yet identify the eventual ARA stock reliably as a single direct prediction. Even so, adding more technical rules is not automatically the right solution. The raw model ranking may be more suitable when additional filters reduce coverage or introduce unstable assumptions.

Note

Operational timing matters. The screener is intended to run after the previous trading session is complete, using the final available 15-minute context bar at 15:45 WIB, and the ranking must be generated before the next market session opens. The GTSI and CBPE observations below were therefore pre-market candidate selections for the following session, not signals produced after the price move or ARA had already occurred.

Two early forward observations illustrate the behavior:

Screen Candidate Model placement Observed move
3 August 2026 GTSI TF15 top 5 ≥15%
4 August 2026 CBPE TF15 rank 7 25% ARA

These are live case studies, not a statistically sufficient performance claim. More forward observations are required before estimating hit rates or expected returns.

2. Fine-tuning quality depends on context, strategy, and data hygiene

Model adaptation alone is insufficient. The training context and prediction target must match the intended trading decision, while the current dataset still contains incomplete bars, suspensions, zero-volume periods, corporate-action effects, and heterogeneous issuer behavior. Domain knowledge should therefore inform universe construction, issuer-level exclusions, liquidity constraints, and regime-specific calibration.

3. Raw model ranking may be more robust than a fixed technical strategy

The strongest current use of the foundation model is to compress a broad IDX universe into a manageable candidate set. A technical layer can improve selected historical metrics, but it can also overfit a particular period and make the overall process less robust. IDX trading behavior can change materially from one month to the next. Forecast direction, price action, momentum, volume, liquidity, and market regime frequently do not align at the same time, so one fixed technical playbook should not be assumed to remain valid across periods.

For that reason, SIER treats the raw forecast ranking as a valid standalone output. Technical signals are diagnostics or optional reranking inputs that must prove stable value through chronological out-of-sample testing. They are not required conditions for every selection.

In the existing 41-origin daily pattern experiment, reranking improved top-5 precision from 49.27% to 54.15% for the validated checkpoint and from 52.68% to 55.61% for the production checkpoint. These figures are full-timeframe optimization results. They show that the technical layer can fit the evaluated sample, but they do not establish robustness across future months.

Checkpoint Base top-5 precision With technical reranking Change
Validated no-refit E15 49.27% 54.15% +4.88 pp
Production refit E4 52.68% 55.61% +2.93 pp

Reproducibility

Clone the repository with its Kronos submodule and enable Git LFS:

git clone --recurse-submodules https://github.com/zzeiidann/SIER.git
cd SIER
git lfs install
git lfs pull

For the current local screening workflow:

cd "Daily Screener"
uv sync
uv run python update_tf15_parquet.py
uv run python project_tf15_next_session.py

Run the data update after the current session has closed, then complete next-session projection before the following IDX market open. Do not interpret an intraday rerun after a large move has started as equivalent to the documented pre-market workflow.

For causal pattern backtests:

python3 -m pip install -r "BackTest Pattern Screener/requirements.txt"
python3 "BackTest Pattern Screener/run_pattern_backtest.py"
python3 -m unittest discover -s "BackTest Pattern Screener/tests" -v

Methodological safeguards

  • Rolling technical levels are shifted so the evaluated candle cannot define its own support or resistance.
  • Future returns and maximum favorable/adverse excursions are separated from live feature generation.
  • Whole origins with inadequate forecast coverage are excluded before ranking optimization.
  • Results distinguish validated frozen checkpoints from production refit checkpoints.
  • In-sample ranking optimization is labeled explicitly and is not presented as out-of-sample evidence.

Limitations and next steps

  • Clean and version data snapshots, including corporate actions, delistings, suspensions, and zero-volume bars.
  • Add point-in-time issuer metadata and sector-aware filters.
  • Expand walk-forward evaluation with untouched chronological holdouts.
  • Compare the raw model ranking against technical variants on a month-by-month basis.
  • Reject technical thresholds that do not remain stable across liquidity and market regimes.
  • Accumulate a larger forward-test sample for the 15-minute workflow before drawing performance conclusions.

Technology

Python PyTorch pandas NumPy Hugging Face Jupyter Kaggle Apache Parquet Git LFS

Additional components include yfinance, Optuna, Git LFS, and the Kronos time-series foundation model.

Acknowledgements

SIER builds on the open-source Kronos time-series foundation model. The upstream source is included as a Git submodule and retains its original license and attribution.

About

Systematic Indonesian Equity Research: foundation-model forecasting, cross-sectional ranking, and leakage-controlled backtesting for IDX equities.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages