Skip to content

Learn

Stock Backtest Research

Audit Hong Kong stock sizing with per-stock board lots

Hong Kong stock sizing needs the effective board lot for each security. A uniform one-hundred-share assumption can produce quantities that do not follow the selected board-lot execution contract, consume a different amount of cash and change the apparent result. Treat that assumption as a named simplified reference, not a verified description of every Hong Kong stock.

This guide compares dated per-stock lot metadata with a uniform-hundred reference using two synthetic HKD ordinary shares. Both accounts include cash reserves, completed orders and fees. CoTrading’s actual lot lookup, corporate-action updates, odd-lot handling and broker execution remain planned or unverified. No real issuer’s current lot or historical price performance is claimed by these invented symbols.

Find the issuer-specific lot and its effective date

The HKEX securities-market operations FAQ explains that the issuer determines the board lot for each security and describes different treatment of odd lots. Consequently a portfolio with several stocks cannot infer a common lot merely from the market name or trading currency. Retrieve the relevant security’s actual information and preserve when it applies.

The HKEX June 30, 2026 board-lot reform announcement describes a phased change, including a first phase on July 2 and a later phase announced for November 16 with transition arrangements. Its standard options include several lot sizes, not a universal one hundred. The notice also places proposed automatic odd-lot matching in a later stage subject to the stated conditions. Do not translate a reform headline into completed issuer-by-issuer conversion or already available matching.

For actual research, archive security identifier, lot, effective start and end, source document and version. Corporate actions or a board-lot change can make today’s valid quantity different from an earlier date’s quantity. If versions overlap ambiguously or no version covers the order date, stop and resolve the metadata. Falling back silently to one hundred hides the very problem the audit should expose.

The fixture names two fictional shares, HK:A and HK:B. From October 1 through October 31, 2026, A’s supplied lot is five hundred and B’s is one thousand. B has a separately supplied five-hundred lot effective November 1 through December 31. Sources in the input are explicitly labeled synthetic issuer tables, not evidence that a real listed company announced those changes.

Size after reserving the declared fee

Start with total cash 20,000 and divide it into two independent 10,000 budgets. The opening price of A is 12.5 HKD and B is 7.2 HKD. Reserve one currency unit for a completed purchase before determining how many full board lots fit. Quantity equals the nonnegative whole number of affordable lots multiplied by that security’s effective lot size.

The Python Decimal documentation supplies the decimal arithmetic reference used for these price and cash calculations. Inputs are constructed from strings. A positive finite price, finite nonnegative budget and positive integer lot are required. A Boolean is not accepted as an integer lot. The arithmetic cannot make missing or incorrectly sourced lot metadata reliable; it only sizes against the supplied contract.

When a budget cannot buy one full lot after the reserve, quantity is zero, no fee is charged and the cash stays uninvested. The control budget of 1,000 at price 12.5 with lot five hundred yields zero shares, zero fee and unchanged cash 1,000. Charging a commission for that unplaced purchase would reduce cash without a completed order.

This sizing method intentionally leaves unused cash and does not redistribute A’s remainder to B. A portfolio optimizer or sequential cash allocator could implement a different policy, but the comparison must then isolate that change as well. Here both models use the same independent budgets, prices and fees so only the board-lot assumption changes quantities.

Reconcile the per-stock account

At the October 26 opening, A’s effective lot is five hundred. One lot costs 6,250; with one fee it uses 6,251 of its budget and leaves 3,749. B’s effective lot is one thousand. One lot costs 7,200; with its fee it uses 7,201 and leaves 2,799. Combined entry cash is therefore 6,548, with A five hundred shares and B one thousand.

The two positions have opening market value 13,450. Add entry cash 6,548 and opening equity is 19,998, exactly initial capital less the two paid fees. This identity checks that reserving fees before sizing did not also subtract them twice, and that cash has not been confused with unused budget before actual orders are booked.

For the separate terminal fixture, sell A at 13 and B at 7, paying one unit per sale. A receives 6,499 net and B 6,999 net. Add those proceeds to 6,548 and final cash is 20,046, holdings empty and total fees four. A’s price gain is 250 and B’s loss is 200, leaving fifty before fees and forty-six after fees.

The output asserts exact entry symbols, sides, quantities, prices, fees and selected lots, plus entry cash, ending cash and flat holdings. The sample is a full two-stock account rather than a quantity calculator with no financial consequences. It still uses an invented exit price fixture, not an observed return or a claim that these lot sizes lead to profitable investing.

Compare the uniform-hundred reference honestly

Under the named simplified model, A can buy seven hundred shares at 12.5 for 8,751 including its fee, and B thirteen hundred at 7.2 for 9,361. Combined cash after entry is 1,888, much smaller than the per-stock model’s 6,548. Both are affordable under the common budgets, but the reference quantities are not multiples of the supplied five-hundred and one-thousand board lots.

Selling the reference quantities at the same terminal prices produces final cash 20,086 after four total fees. Its higher synthetic result does not justify using incorrect board-lot metadata. Different exposure generated a different result: A’s extra two hundred shares add one hundred of price profit, while B’s extra three hundred lose sixty, creating the forty-unit difference in final cash.

The reference may contain odd-lot quantities relative to the supplied securities. This guide does not assert that every such holding or sale is universally impossible; actual odd-lot facilities and broker policies are separate. It says that those orders do not follow the declared full-board-lot execution model. A real odd-lot strategy must specify its own prices, matching, charges and eligibility rather than inheriting board-lot fills without evidence.

Test effective dates and missing evidence

Querying B on October 26 returns one thousand; querying November 2 returns five hundred. The future row cannot alter the earlier order. This is a metadata time boundary, distinct from the cash-flooring calculation. A simulation that always loads the newest lot would change historical quantities and potentially its past performance whenever an issuer later updates the lot.

An unknown symbol raises missing_or_ambiguous_lot_metadata. The same policy applies when more than one effective row matches. A real dataset should validate that intervals do not overlap and that identifiers survive symbol changes. Do not patch an unresolved record by borrowing another stock’s lot or guessing from a price range.

The script does not model currency conversion, non-HKD counters, stamp duty, complete exchange charges, partial fills or broker minimum fees. Each completed order pays a declared synthetic unit. Replace and verify those inputs before comparing a real account statement. Correct lot sizing is necessary for the selected model but cannot certify all execution and cost assumptions around it.

Run the complete comparison

Download the complete example and execute python R599.py using Python 3.12 or newer. It uses only the standard library and synthetic HKD prices and issuer metadata. Output includes all metadata versions, both sets of orders, entry cash, terminal cash, fees and empty ending holdings. No online security master or broker is called.

When adopting this audit, freeze the real issuer records first, then reproduce selected quantities and cash bridges by hand. Keep the uniform-hundred run clearly labeled as a simplified sensitivity reference. The useful conclusion is which metadata changed which order and exposure, not that the larger of two synthetic final balances represents a superior or executable historical strategy.

The order audit should name the effective lot version as well as its numerical value. That distinguishes a valid October quantity from a November rule applied too early. A later correction can then be replayed with a documented reason instead of silently changing old quantities. Preserve the independent budget assignment too: otherwise a different allocation policy may be incorrectly attributed to the board-lot update.

FAQ

Did the 2026 reform make every Hong Kong board lot one hundred?

No. The cited phased arrangements include multiple standard options. Research still needs effective issuer-specific information and cannot assume every conversion is complete.

Are odd lots modeled here?

No. They require a separate execution and cost contract. The uniform-hundred run is a sizing reference, not proof of odd-lot fills at board-lot prices.