This is a guide to preparing a supported generic CSV, not a promise that every Moomoo export or PDF can be imported directly. Back up your journal before applying records.
Collect completed trades and preserve the originals
Obtain your completed trade records and account statements from your own broker account. Menus and exports vary by region and application version, so follow the help for your specific Moomoo account rather than a guessed menu path. Keep the original files unchanged. Use fills, not unfilled orders, and reconcile the date range with the opening holdings so a partial export does not pretend the account started from zero.
Prepare the columns the importer understands
The generic trade importer requires date, ticker, side, shares and price. Include market, currency and fee wherever available; name, reference and status can help identify records. Use dates such as 2026-01-02, BUY or SELL, numeric quantities and prices, and one currency per trade. MY/MYR, US/USD, HK/HKD, SG/SGD and CN/CNY are the supported market/currency pairs. Keep reference identifiers stable for duplicate checking.
Preview mapping before applying anything
Save a UTF-8 comma-separated CSV and open the trade-import flow in DividenNote. Confirm column mappings, market defaults and a local account label; that label need not be your real account number. Missing fees require an explicit zero-fee choice, not a silent assumption. The current limits are 4 MB and 2,000 data rows. Review errors, duplicate rows and before/after quantities before applying the import.
| CSV field | Example | Meaning / check |
|---|---|---|
| date / side | 2026-01-02 / BUY | Trade date / buy or sell |
| market / currency | MY / MYR | Supported market and matching currency |
| ticker / shares / price | 1155 / 100 / 10 | Symbol, executed quantity and unit price |
| fee / reference | 2 / DEMO-001 | Total trade fee / stable reference |
Check the fictional worked example
The downloadable example buys 100 shares at RM10 with RM2 fees, then 50 at RM12 with RM1 fee, and sells 20 at RM11 with RM1 fee. Starting from zero, average cost before the sale is RM1,603 ÷ 150 = RM10.6866667. The remaining 130 shares have about RM1,389.27 carrying cost; the sale’s realised profit is about RM5.27. These are invented trades, not historical quotes or investment suggestions.
Handle dividends and existing positions separately
This CSV path imports buy/sell trades, not dividend statements or PDFs. Record net dividends separately after checking their payment dates and deductions. Do not add a current holding and also replay the full purchase history into it; that duplicates shares. If an export starts after earlier purchases, reconcile opening positions first. Splits, transfers, corporate actions and currency conversions may require separate adjustments rather than being forced into an ordinary buy/sell row.
Know exactly what has been verified
The fictional generic CSV accompanying this article is tested against Numbrite’s importer and ledger, including repeated-import duplicate handling. A real Moomoo export from your account region has not been certified by that test. Preview the sample only in an empty test journal; do not apply fictional trades to your real records. Export a backup before real imports and compare final quantities and costs with your broker afterwards. Files are processed locally by this importer.
Download the worksheet
Put it into practice
Open trade import, review the mapping and balances, and cancel if anything is unclear. The sample is for testing, not a replacement for your broker statement.
Open DividenNote