Backtest akumulasi broker untuk saham IDX

Riwayat broker summary memungkinkan Anda melakukan backtest pola akumulasi dan distribusi. Karena rentang diagregasi, menarik jendela waktu misalnya satu bulan akan menghasilkan satu baris per broker untuk seluruh jendela tersebut - masukan yang bersih untuk memeringkat broker satu terhadap yang lain.

Pendekatan yang umum adalah memeringkat broker berdasarkan akumulasi bersih (buy_value dikurangi sell_value) atau berdasarkan rasio buy_value terhadap sell_value, lalu menguji sebuah sinyal - misalnya, membeli ticker ketika nilai beli bersih dari broker teratasnya melewati sebuah ambang batas, dan menahannya selama jumlah hari yang tetap.

Sketsa di bawah ini menarik lima ticker untuk satu bulan melalui endpoint batch, menyusun DataFrame gabungan, dan memeringkat broker berdasarkan nilai beli bersih.

import pandas as pd
import requests

API_KEY = "<YOUR_API_KEY>"
BASE_URL = "https://api.indexalpha.id"
headers = {"Authorization": f"Bearer {API_KEY}"}

payload = {
    "tickers": ["BBCA", "BBRI", "TLKM", "BMRI", "ASII"],
    "from": "2026-06-01",
    "to": "2026-06-30",
    "investor": "all",
    "market": "RG",
}
resp = requests.post(f"{BASE_URL}/stocks/broker-summary/batch", json=payload, headers=headers)
resp.raise_for_status()

frames = []
for ticker, rows in resp.json()["data"].items():
    frame = pd.DataFrame(rows)
    frame.insert(0, "ticker", ticker)
    frames.append(frame)
df = pd.concat(frames, ignore_index=True)

df["net_buy_value"] = df["buy_value"] - df["sell_value"]
top_accumulators = df.sort_values("net_buy_value", ascending=False)
print(top_accumulators[["ticker", "code", "net_buy_value"]].head(10))

Data tersedia mulai 2025-01-01. Karena hasil backtesting bergantung pada metodologi, filter, dan asumsi Anda sendiri, data saja tidak memberi implikasi kinerja di masa depan.