71QuantLab manual

Applies to v0.2.7 · last updated 2026-10-10

⚠️
71QuantLab is a research and education tool. It promises no returns and nothing it outputs is investment advice.

What it is

71QuantLab packages three things into one locally deployed Windows app:

  1. Data collection: daily bars, indices, limit pools, news and fund flows
  2. 9 AI masters: each with its own input shape and knowledge base, consultable on its own
  3. The roundtable: seats debate → the decision master concludes

The knowledge base ships inside the installer. The model API and data sources are yours to configure; by default it uses public sources that need no key.

Requirements

ItemRequirement
Operating systemWindows 10 1809+ / Windows 11 (x64). macOS is not supported
Installer71QuantLab-Setup-0.2.7.exe, 129.9 MB, Python runtime included
Disk2 GB free recommended; market data grows with each sync
NetworkNeeded for the first sync. The sources are public endpoints; a direct connection is best
Model APIOptional. Without one the data features work and the AI features are greyed out

Installing

  1. Get the installer from the download page.
  2. Run it. Windows may show "Windows protected your PC" — the installer isn't code-signed yet, so click "More info → Run anyway".
  3. Don't install into Program Files. Data is written to a data\ folder inside the install directory, and system folders aren't writable. Something like D:\71QuantLab is better.
  4. Launch it from the Start menu or the desktop shortcut.
📁
The installer separates the program area from the data area: the program goes into the install directory, your data into <install dir>\data\. Uninstalling leaves the data area alone by default, but back it up before reinstalling.

First run

On first launch, work through it in this order:

1. Environment check

Go to "Settings → Diagnostics", or run the check from the command line:

runtime\python.exe engine\cli.py doctor

Twelve checks; anything that fails explains the cause and the next step.

2. Create the database

Offline, a few seconds, schema only:

runtime\python.exe engine\cli.py db init

3. First data pull

Choose a data range under "Settings → Data", or use the command line:

runtime\python.exe engine\cli.py sync bootstrap --mode quick

This fetches 8 indices plus the CSI 300 constituents and takes about 5–10 minutes. You can interrupt it and it will resume from where it stopped.

📌
Why 60 trading days by default rather than 30: the technical analyst needs MA60, and the longest factor window is 60 days too — below that both would simply have no values. And fetching 60 days costs almost the same as 30, because the range comes back in a single request.

4. Daily increments

runtime\python.exe engine\cli.py sync daily

The app also runs an incremental sync each time it starts.

Data sync

Source strategy: AKShare as the primary source, BaoStock as a supplement, with Tushare optional. The engine has fallbacks and timeout guards built in.

DataNotes
Index and stock daily barsSina endpoints first (measured as stable), Eastmoney as a second attempt
Trading calendarUsed to compute "last N trading days"
Limit-up / limit-down poolsEnable the corresponding data domain in settings
News and fund flowsCan be toggled independently
Financial dataUpdated on the 1st of each month with the automatic sync, with a manual switch

The Overview and Settings pages show the latest date in each table, source availability, sync history and failure reasons.

Ask a Master

The left rail holds 9 masters, each with a fixed input shape:

MasterInputTier
Short-term SentimentIndex sentiment (no ticker) / stock sentimentFree
Technical AnalysisA stock or an indexFree
Factor AnalysisPick built-in factors plus a stockFree
Master InvestorIndex analysis / stock analysisFree
Macro StrategistMacro analysis (no ticker)Free
News AnalystNews analysis (no ticker)Free
Value InvestingIndex analysis / stock analysisFree
Market LeaderCurrent session / next-day projection (no ticker needed)VIP
Trading PatternImport a trade statement, analyse the patternVIP

Codes and names support fuzzy matching. The flow:

  1. Select a master on the left
  2. Fill in the ticker or question in the shape that master expects
  3. Wait for the answer — waiting shows a breathing state, not a spinner

Data is pre-checked before a run: anything missing is flagged first and you decide whether to continue. A running task keeps going while you switch pages; a progress bar sits at the top and can be cancelled.

What an answer looks like

Answers aren't chat bubbles; they're research reports:

  • Byline: persona + model + data date + confidence scale
  • Body: 40em measure for readability
  • Sources: collapsible, expand when you want the basis
  • Actions: follow-up, save to archive (VIP)

Confidence is shown as a scale (high ▮▮▮ / medium ▮▮▯ / low ▮▯▯), not a progress ring.

⚠️
Results belong to "persona + analysis type + ticker". Switching persona shows only that persona's own result, or an empty state — it never carries over the previous one, which would look like "same content, different name" and is one of the most misleading things an interface can do.

Roundtable

Enter a code or name to open a session. The stages are visible as they run:

StageWhat happens
1 · Seats speakA bull researcher, a bear researcher and several analysts give their views in turn
2 · Rounds of debateA neutral moderator runs the exchange and flags conflicts and consensus live
3 · DecisionThe calm decision maker weighs every seat and outputs a conclusion with its basis

Three sessions a day on the free tier, unlimited with VIP. Every seat uses the same model configured in Settings.

⚡
If one persona fails it doesn't stop the session — it appears with a "did not take part" badge and the remaining seats carry on.

Decision archive

Indexed by month on the left, with a memo-style detail view in the middle: the original question, each seat's view, and the later review.

  • Stored long term, reviewable and searchable
  • Outcome reconciliation: expected range vs actual result vs deviation
  • Exportable (VIP)
ℹ️
On the free tier, results aren't persisted. Ask a Master and the roundtable return their output to the interface and skip the write-to-archive step, so it disappears when the app closes. That is one of the main differences between free and VIP.

Configuring the model API

The AI features need a model. The app speaks the OpenAI protocol, so one base URL + key + model name covers DeepSeek / Qwen (dashscope) / Kimi (moonshot) / OpenAI / a local Ollama.

  1. Open "Settings → Model API"
  2. Click a vendor preset to fill in the URL and model name
  3. Paste your own API key
  4. Click Save, then Test connection

Keys are encrypted with Windows DPAPI and written to config\settings.json; the interface only echoes the last four characters.

💰
Model usage is billed to your own API account. The software doesn't pay for it and doesn't take a cut.

Free vs VIP

Licensing is "free for everyone, plus VIP": install it and use it, with no trial period that locks you out.

CapabilityFreeVIP
Data sync and market board✓✓
Ask a Master (7 masters)✓✓
Ask a Master · Market Leader, Trading Pattern—✓
Roundtable3 a dayUnlimited
Rule screeningDefault rules+ custom, long-vs-short
FactorsBasicFull (incl. financial)
Default screening rules + basic factors✓✓
History length60 trading daysUnlimited
Decision archive / copy and export—✓
Custom rules / full factors / financials—✓

VIP comes in monthly, yearly and lifetime tiers. Monthly and yearly fall back to the free tier when they expire rather than locking you out: Ask a Master, the roundtable and default screening keep working, and only the VIP items are withdrawn. The lifetime tier has no expiry date.

Full comparison and pricing are on the 71QuantLab product page.

Activation and changing machines

Licensing uses an activation code plus a one-time online check. Enter it once in Settings and it keeps working offline afterwards.

Activating

  1. Open "Settings → Licensing" and copy the device code (it looks like F916-CD9A-4FE5-ED44)
  2. Send the device code and the tier you want to me (see the purchase request)
  3. Once payment is confirmed I send you the activation code; enter it in Settings and activate — it verifies online and takes effect immediately

Settings → Licensing also shows the activation service address, the activation code field, activation and renewal status, days remaining, the last online check, your device code and the feature matrix.

Changing machines / renewing

SituationWhat to do
New computerSend me the device code from the new machine and I'll issue a code bound to it
RenewingBuy again and enter the new activation code over the old one — no reinstall needed
Activation failsFirst check whether the device code changed, and that the activation service address is correct

The device fingerprint hashes the motherboard serial, CPU ID and system install ID together, so a single hardware change doesn't invalidate it immediately; if none can be read it falls back to the install path.

Folders and data

The layout after installation:

<install dir>\
├── app\             program (Electron / Node / front-end build)
├── runtime\         embedded Python
├── assets\          persona and knowledge base (read-only)
├── data\            ← your data lives here by default
│   ├── quantcanvas.db   market database
│   ├── research.db      research database
│   └── backup\          automatic backups, last 3 kept
├── config\settings.json user settings (keys encrypted with DPAPI)
└── logs\  reports\  cache\
⚠️
The data area sits inside the install directory by default, so the install directory must be writable. Installing into Program Files will make sync fail.

Troubleshooting

SymptomCause and fix
"Local service not connected"The Node service didn't start. Usually a port conflict or missing dependencies — check the console output
dep:akshare not installedWrong Python interpreter. Put an absolute path in config\python-path.txt
Sync reports RemoteDisconnectedSource rate limiting. Retry later
Data directory not writableInstalled into Program Files. Move it somewhere like D:\71QuantLab
Antivirus flags itThe installer isn't signed yet, so this is a false positive. Allow-list it, or wait for the signing certificate
AI features do nothingNo model API configured. Set one up under "Settings → Model API" and test the connection

The most useful thing to send me is the error from the logs\ folder, plus which data source and model you were using.

Not available

FeatureNotes
First-run wizardNot yet — follow the manual steps above on first use
Automatic updatesNot yet — download and install over the old version
Code-signing certificateNot yet — antivirus may flag the installer

Still stuck?

Go to the contact page with the version, the error message and what you did. Buying VIP and changing machines are handled there too.