Start trading Korean stocks
Korean stocks are ordered and quoted through a broker open API. The flow differs from crypto exchanges — you need a brokerage account first.
Supported brokers
| Broker | Market | Mock-trading key | Besides the key | History (backtest) | Automated runs |
|---|---|---|---|---|---|
| Korea Investment & Securities | Korea Exchange (KRX) | yes | account number (12345678-01, or the 10 digits without the hyphen) | yes | yes |
| Kiwoom | Korea Exchange (KRX) | yes | — | no (today's minutes and quotes only) | yes |
| LS Securities | Korea Exchange (KRX) | yes | — | no (today's minutes and quotes only) | yes · unverified warning |
| DB Securities | Korea Exchange (KRX) | yes | — | no (today's minutes and quotes only) | yes |
| NH Namuh PLUG | Korea Exchange (KRX) | yes | 11-digit account number (PLUG account list) | no (today's minutes and quotes only) | yes · unverified warning |
| NH N2 PLUG | Korea Exchange (KRX) | yes | 11-digit account number (N2 PLUG account list) | no (today's minutes and quotes only) | yes · unverified warning |
| KB Securities | Korea Exchange (KRX) | no (live only) | — | no (today's minutes and quotes only) | yes |
| Toss Securities | KRX+NXT combined (orders via SOR) | no (live only) | account (load the list and pick one) | yes | yes · unverified warning |
- History for backtests: backtests run on the candles in your own agent store. Past bars can be collected with Korea Investment & Securities (KRX) or Toss (KRX+NXT combined) keys — other brokers' keys cover orders, quotes and today's minutes only.
- Unverified warning: the live round trip has not been confirmed yet. Automated runs are not blocked; the deploy tells you why — check on a mock key first if the broker has one, otherwise (live-only brokers) start small.
- Market and broker are separate choices: the market (Korea Exchange, or KRX+NXT combined) comes first, then the broker that sells it is the order route.
Steps
1. Open a brokerage account — if you already have one, use it.
2. Apply for that broker's open API and get the app key and secret.
- ★ Request trading and inquiry permissions only. Unlike crypto exchanges, we cannot automatically verify whether a broker key can withdraw.
- If the broker offers mock-trading keys, get the mock key first (it is issued separately from the live key).
3. Register the key on your agent — Agents → API keys: choose market → broker → environment (live/mock), then the app key, secret and anything in the table's 'Besides the key' column.
- The KIS account number is
12345678-01(8-digit account - 2-digit product code); the 10 digits without the hyphen from HTS/MTS also work (a general account usually ends in 01).
4. Confirm — once the balance loads you are ready. For unverified brokers, check once that an order reaches the broker and comes back, on a mock key (or a small amount if there is none).
Your keys are stored only on your own server (agent). They are never sent to soritrading, and our server never initiates trades.
Stocks are not crypto
Things to know before writing a strategy.
- Trading hours — weekdays 09:00–15:30 KST, 6.5 hours a day. Closed weekends and holidays. A 24/7 crypto strategy ported as-is sits idle most of the time.
- No 4-hour bar — 6.5 hours does not divide into 4. Use 1m, 5m, 15m, 1h, 1d (Toss's KRX+NXT combined market only has the broker's 1m and 1d).
- Transaction tax — charged on every sale (currently around 0.18%, subject to change). Far larger than crypto fees. The more often a strategy trades, the more the tax eats it — a backtest without tax looks much better than reality.
- Daily price limit — ±30% per day. A strategy assuming larger moves will not fill.
- Whole shares only — no 0.5 shares. Fractional quantities are rejected before they reach the broker.
- Splits and dividends — past prices change retroactively. We store the raw price and keep adjustment factors separate.
- Over 3,400 symbols — scanning by condition tends to work far better here than hardcoding one or two tickers.
Start with paper
Stock paper trading fills in your agent's virtual wallet. Quotes and the order book are live values fetched with your own broker key (not server prices); whole shares only, and the selling tax is added — broker commissions differ per account and are not applied. If your broker offers mock keys, after paper also run the live order path on the mock key (orders actually reaching the broker) before switching to the live key.
What about global stocks?
- IBKR (Interactive Brokers) — US and global exchanges connect through the IBKR gateway. Instead of an app key, set up the gateway under Agents → keys → [IBKR]. The code is ready but not yet confirmed on a real device.
- Overseas brokers — under Agents → API keys → [Stocks], choose market → broker and fill the fields that broker asks for. For now only manual orders you place in the terminal work — these connections do not yet provide quotes, bars or balances, so they cannot be used for automated runs yet (they do not appear in the deploy screen, and the server refuses with the reason).
- Connection test — for overseas brokers not yet verified, the key row's [Connection test] runs a small round trip on your own account (balance → limit buy → fill check → sell → balance back to zero). These are real orders, and every step waits for your confirmation. When you finish, a completion record (broker and success only — no account number, balance or fills) is saved to your account; once 10 different users finish, the broker becomes 'verified'.
- When automated runs open for overseas brokers, an account that passed the connection test on its own account can use them right away, without waiting for the 10-user count (change the key and you test again).
soritrading does not provide investment advice. All trading decisions and responsibility are your own.