Skip to content

cl-jquants-api is an open-source library for J-Quants API with Common Lisp

License

Notifications You must be signed in to change notification settings

minisoba/cl-jquants-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

J-Quants API for Common Lisp

cl-jquants-api is an open-source library that provides seamless integration of the J-Quants API with Common Lisp. This library enables developers to easily access and manipulate financial data provided by the Japan Exchange Group.

Table of Contents

System Requirements

Currently, the software has been tested with the following Common Lisp implementations under Ubuntu 24.04.

  • SBCL (2.1.1+)
  • LispWorks (7.1+)

Quick Start

Set the *LOCALE* variable to :JP to keep the original Japanaese description.

(setf cl-jquants-api:*locale* :jp)

Refresh Token

Refresh the API token. The API token is valid for one week.

(defvar auth (make-auth :password "**********" :mailaddress "**********"))
(auth-user auth)

Reference: Refresh Token

ID Token

Obtain the ID token. The ID token is valid for 24 hours.

(auth-refresh)

Reference: ID Token

Listed Issue Information

CL-USER> (describe 'get-listed-issue-master)
CL-JQUANTS-API:GET-LISTED-ISSUE-MASTER
  [symbol]

GET-LISTED-ISSUE-MASTER names a compiled function:
  Lambda-list: (&KEY CODE DATE)
  Derived type: (FUNCTION (&KEY (:CODE T) (:DATE T))
                 (VALUES LIST &OPTIONAL))

Download referential data for all stocks listed in Japan Exchange as of 2024-12-27.

(defvar all-stocks (get-listed-issue-master :date 20241227))
all-stocks

The LISTED-ISSUE-MASTER returns both Japanese and English values and the library internally overwrites COMPANY-NAME, SECTOR17-CODE-NAME, SECTOR33-CODE-NAME, MARKET-CODE-NAME, and MARGIN-CODE-NAME with English description unless *LOCALE* is set to :JP.

(#<LISTED-ISSUE-MASTER: CODE=13010 DATE=1735257600 COMPANY-NAME=KYOKUYO CO.,LTD. COMPANY-NAME-ENGLISH=KYOKUYO CO.,LTD. SECTOR17-CODE=1 SECTOR17-CODE-NAME=FOODS SECTOR33-CODE=0050 SECTOR33-CODE-NAME=Fishery, Agriculture & Forestry SCALE-CATEGORY=TOPIX Small 2 MARKET-CODE=0111 MARKET-CODE-NAME=Prime MARGIN-CODE=2 MARGIN-CODE-NAME=Loan issues>
 #<LISTED-ISSUE-MASTER: CODE=13050 DATE=1735257600 COMPANY-NAME=iFreeETF TOPIX (Yearly Dividend Type) COMPANY-NAME-ENGLISH=iFreeETF TOPIX (Yearly Dividend Type) SECTOR17-CODE=99 SECTOR17-CODE-NAME=OTHER SECTOR33-CODE=9999 SECTOR33-CODE-NAME=Other SCALE-CATEGORY=- MARKET-CODE=0109 MARKET-CODE-NAME=Others MARGIN-CODE=2 MARGIN-CODE-NAME=Loan issues>
 #<LISTED-ISSUE-MASTER: CODE=13060 DATE=1735257600 COMPANY-NAME=NEXT FUNDS TOPIX Exchange Traded Fund COMPANY-NAME-ENGLISH=NEXT FUNDS TOPIX Exchange Traded Fund SECTOR17-CODE=99 SECTOR17-CODE-NAME=OTHER SECTOR33-CODE=9999 SECTOR33-CODE-NAME=Other SCALE-CATEGORY=- MARKET-CODE=0109 MARKET-CODE-NAME=Others MARGIN-CODE=2 MARGIN-CODE-NAME=Loan issues>
 #<LISTED-ISSUE-MASTER: CODE=13080 DATE=1735257600 COMPANY-NAME=Nikko Exchange Traded Index Fund TOPIX COMPANY-NAME-ENGLISH=Nikko Exchange Traded Index Fund TOPIX SECTOR17-CODE=99 SECTOR17-CODE-NAME=OTHER SECTOR33-CODE=9999 SECTOR33-CODE-NAME=Other SCALE-CATEGORY=- MARKET-CODE=0109 MARKET-CODE-NAME=Others MARGIN-CODE=2 MARGIN-CODE-NAME=Loan issues>
 #<LISTED-ISSUE-MASTER: CODE=13090 DATE=1735257600 COMPANY-NAME=NEXT FUNDS ChinaAMC SSE50 Index Exchange Traded Fund COMPANY-NAME-ENGLISH=NEXT FUNDS ChinaAMC SSE50 Index Exchange Traded Fund SECTOR17-CODE=99 SECTOR17-CODE-NAME=OTHER SECTOR33-CODE=9999 SECTOR33-CODE-NAME=Other SCALE-CATEGORY=- MARKET-CODE=0109 MARKET-CODE-NAME=Others MARGIN-CODE=2 MARGIN-CODE-NAME=Loan issues>
 #<LISTED-ISSUE-MASTER: CODE=130A0 DATE=1735257600 COMPANY-NAME=Veritas In Silico Inc. COMPANY-NAME-ENGLISH=Veritas In Silico Inc. SECTOR17-CODE=5 SECTOR17-CODE-NAME=PHARMACEUTICAL SECTOR33-CODE=3250 SECTOR33-CODE-NAME=Pharmaceutical SCALE-CATEGORY=- MARKET-CODE=0113 MARKET-CODE-NAME=Growth MARGIN-CODE=1 MARGIN-CODE-NAME=Margin issues>
 #<LISTED-ISSUE-MASTER: CODE=13110 DATE=1735257600 COMPANY-NAME=NEXT FUNDS TOPIX Core 30 Exchange Traded Fund COMPANY-NAME-ENGLISH=NEXT FUNDS TOPIX Core 30 Exchange Traded Fund SECTOR17-CODE=99 SECTOR17-CODE-NAME=OTHER SECTOR33-CODE=9999 SECTOR33-CODE-NAME=Other SCALE-CATEGORY=- MARKET-CODE=0109 MARKET-CODE-NAME=Others MARGIN-CODE=2 MARGIN-CODE-NAME=Loan issues>
...

Code contains "0" at the end of ticker symbol. For example, a code for SONY GROUP CORPORATION (6758) is "67580".

(find-if #'(lambda (obj)
             (string= (code-of obj) "67580"))
         all-stocks)
#<LISTED-ISSUE-MASTER: CODE=67580 DATE=1735257600 COMPANY-NAME=SONY GROUP CORPORATION COMPANY-NAME-ENGLISH=SONY GROUP CORPORATION SECTOR17-CODE=9 SECTOR17-CODE-NAME=ELECTRIC APPLIANCES & PRECISION INSTRUMENTS SECTOR33-CODE=3650 SECTOR33-CODE-NAME=Electric Appliances SCALE-CATEGORY=TOPIX Core30 MARKET-CODE=0111 MARKET-CODE-NAME=Prime MARGIN-CODE=2 MARGIN-CODE-NAME=Loan issues>

(setf cl-jquants-api:*locale* :jp)
(defvar all-stocks-jp (get-listed-issue-master :date 20241227))
all-stocks-jp
(#<LISTED-ISSUE-MASTER: CODE=13010 DATE=1735257600 COMPANY-NAME=極洋 COMPANY-NAME-ENGLISH=KYOKUYO CO.,LTD. SECTOR17-CODE=1 SECTOR17-CODE-NAME=食品 SECTOR33-CODE=0050 SECTOR33-CODE-NAME=水産・農林業 SCALE-CATEGORY=TOPIX Small 2 MARKET-CODE=0111 MARKET-CODE-NAME=プライム MARGIN-CODE=2 MARGIN-CODE-NAME=貸借>
 #<LISTED-ISSUE-MASTER: CODE=13050 DATE=1735257600 COMPANY-NAME=大和アセットマネジメント株式会社 iFreeETF TOPIX(年1回決算型) COMPANY-NAME-ENGLISH=iFreeETF TOPIX (Yearly Dividend Type) SECTOR17-CODE=99 SECTOR17-CODE-NAME=その他 SECTOR33-CODE=9999 SECTOR33-CODE-NAME=その他 SCALE-CATEGORY=- MARKET-CODE=0109 MARKET-CODE-NAME=その他 MARGIN-CODE=2 MARGIN-CODE-NAME=貸借>
 #<LISTED-ISSUE-MASTER: CODE=13060 DATE=1735257600 COMPANY-NAME=野村アセットマネジメント株式会社 NEXT FUNDS TOPIX連動型上場投信 COMPANY-NAME-ENGLISH=NEXT FUNDS TOPIX Exchange Traded Fund SECTOR17-CODE=99 SECTOR17-CODE-NAME=その他 SECTOR33-CODE=9999 SECTOR33-CODE-NAME=その他 SCALE-CATEGORY=- MARKET-CODE=0109 MARKET-CODE-NAME=その他 MARGIN-CODE=2 MARGIN-CODE-NAME=貸借>
 #<LISTED-ISSUE-MASTER: CODE=13080 DATE=1735257600 COMPANY-NAME=日興アセットマネジメント株式会社  上場インデックスファンドTOPIX COMPANY-NAME-ENGLISH=Nikko Exchange Traded Index Fund TOPIX SECTOR17-CODE=99 SECTOR17-CODE-NAME=その他 SECTOR33-CODE=9999 SECTOR33-CODE-NAME=その他 SCALE-CATEGORY=- MARKET-CODE=0109 MARKET-CODE-NAME=その他 MARGIN-CODE=2 MARGIN-CODE-NAME=貸借>
 #<LISTED-ISSUE-MASTER: CODE=13090 DATE=1735257600 COMPANY-NAME=野村アセットマネジメント株式会社 NEXT FUNDS ChinaAMC・中国株式・上証50連動型上場投信 COMPANY-NAME-ENGLISH=NEXT FUNDS ChinaAMC SSE50 Index Exchange Traded Fund SECTOR17-CODE=99 SECTOR17-CODE-NAME=その他 SECTOR33-CODE=9999 SECTOR33-CODE-NAME=その他 SCALE-CATEGORY=- MARKET-CODE=0109 MARKET-CODE-NAME=その他 MARGIN-CODE=2 MARGIN-CODE-NAME=貸借>
 #<LISTED-ISSUE-MASTER: CODE=130A0 DATE=1735257600 COMPANY-NAME=Veritas In Silico COMPANY-NAME-ENGLISH=Veritas In Silico Inc. SECTOR17-CODE=5 SECTOR17-CODE-NAME=医薬品 SECTOR33-CODE=3250 SECTOR33-CODE-NAME=医薬品 SCALE-CATEGORY=- MARKET-CODE=0113 MARKET-CODE-NAME=グロース MARGIN-CODE=1 MARGIN-CODE-NAME=信用>
...

Find SONY GROUP CORPORATION (6758) data.

(find-if #'(lambda (obj)
             (string= (code-of obj) "67580"))
         all-stocks-jp)
#<LISTED-ISSUE-MASTER: CODE=67580 DATE=1735257600 COMPANY-NAME=ソニーグループ COMPANY-NAME-ENGLISH=SONY GROUP CORPORATION SECTOR17-CODE=9 SECTOR17-CODE-NAME=電機・精密 SECTOR33-CODE=3650 SECTOR33-CODE-NAME=電気機器 SCALE-CATEGORY=TOPIX Core30 MARKET-CODE=0111 MARKET-CODE-NAME=プライム MARGIN-CODE=2 MARGIN-CODE-NAME=貸借>

Reference: Listed Issue Information

Stock Prices (OHCL)

CL-USER> (describe 'get-stock-prices)
CL-JQUANTS-API:GET-STOCK-PRICES
  [symbol]

GET-STOCK-PRICES names a compiled function:
  Lambda-list: (&KEY CODE DATE FROM TO)
  Derived type: (FUNCTION (&KEY (:CODE T) (:DATE T) (:FROM T) (:TO T))
                 (VALUES LIST &OPTIONAL))

Download all stock prices in Japan Exchange as of 2024-12-27.
Some of fields are required for Premium plan and shown as 0 (See the API documents for data availability).

(defvar all-prices (get-stock-prices :date 20241227))
all-prices
(#<STOCK-PRICES: CODE=13010 DATE=1735257600 OPEN-PRICE=4070.0d0 HIGH-PRICE=4115.0d0 LOW-PRICE=4070.0d0 CLOSE-PRICE=4115.0d0 UPPER-LIMIT=0 LOWER-LIMIT=0 VOLUME=29500.0d0 TURNOVER-VALUE=1.210765d8 ADJUSTMENT-FACTOR=1.0d0 ADJUSTMENT-OPEN=4070.0d0 ADJUSTMENT-HIGH=4115.0d0 ADJUSTMENT-LOW=4070.0d0 ADJUSTMENT-CLOSE=4115.0d0 ADJUSTMENT-VOLUME=29500.0d0 MORNING-OPEN=0.0 MORNING-HIGH=0.0 MORNING-LOW=0.0 MORNING-CLOSE=0.0 MORNING-UPPER-LIMIT=0.0 MORNING-LOWER-LIMIT=0.0 MORNING-VOLUME=0.0 MORNING-TURNOVER-VALUE=0.0 MORNING-ADJUSTMENT-OPEN=0.0 MORNING-ADJUSTMENT-HIGH=0.0 MORNING-ADJUSTMENT-LOW=0.0 MORNING-ADJUSTMENT-CLOSE=0.0 MORNING-ADJUSTMENT-VOLUME=0.0 AFTERNOON-OPEN=0.0 AFTERNOON-HIGH=0.0 AFTERNOON-LOW=0.0 AFTERNOON-CLOSE=0.0 AFTERNOON-UPPER-LIMIT=0.0 AFTERNOON-LOWER-LIMIT=0.0 AFTERNOON-VOLUME=0.0 AFTERNOON-TURNOVER-VALUE=0.0 AFTERNOON-ADJUSTMENT-OPEN=0.0 AFTERNOON-ADJUSTMENT-HIGH=0.0 AFTERNOON-ADJUSTMENT-LOW=0.0 AFTERNOON-ADJUSTMENT-CLOSE=0.0 AFTERNOON-ADJUSTMENT-VOLUME=0.0>
 #<STOCK-PRICES: CODE=13050 DATE=1735257600 OPEN-PRICE=2945.5d0 HIGH-PRICE=2975.0d0 LOW-PRICE=2945.0d0 CLOSE-PRICE=2970.5d0 UPPER-LIMIT=0 LOWER-LIMIT=0 VOLUME=153160.0d0 TURNOVER-VALUE=4.5420149d8 ADJUSTMENT-FACTOR=1.0d0 ADJUSTMENT-OPEN=2945.5d0 ADJUSTMENT-HIGH=2975.0d0 ADJUSTMENT-LOW=2945.0d0 ADJUSTMENT-CLOSE=2970.5d0 ADJUSTMENT-VOLUME=153160.0d0 MORNING-OPEN=0.0 MORNING-HIGH=0.0 MORNING-LOW=0.0 MORNING-CLOSE=0.0 MORNING-UPPER-LIMIT=0.0 MORNING-LOWER-LIMIT=0.0 MORNING-VOLUME=0.0 MORNING-TURNOVER-VALUE=0.0 MORNING-ADJUSTMENT-OPEN=0.0 MORNING-ADJUSTMENT-HIGH=0.0 MORNING-ADJUSTMENT-LOW=0.0 MORNING-ADJUSTMENT-CLOSE=0.0 MORNING-ADJUSTMENT-VOLUME=0.0 AFTERNOON-OPEN=0.0 AFTERNOON-HIGH=0.0 AFTERNOON-LOW=0.0 AFTERNOON-CLOSE=0.0 AFTERNOON-UPPER-LIMIT=0.0 AFTERNOON-LOWER-LIMIT=0.0 AFTERNOON-VOLUME=0.0 AFTERNOON-TURNOVER-VALUE=0.0 AFTERNOON-ADJUSTMENT-OPEN=0.0 AFTERNOON-ADJUSTMENT-HIGH=0.0 AFTERNOON-ADJUSTMENT-LOW=0.0 AFTERNOON-ADJUSTMENT-CLOSE=0.0 AFTERNOON-ADJUSTMENT-VOLUME=0.0>
 #<STOCK-PRICES: CODE=13060 DATE=1735257600 OPEN-PRICE=2915.5d0 HIGH-PRICE=2944.0d0 LOW-PRICE=2913.5d0 CLOSE-PRICE=2943.0d0 UPPER-LIMIT=0 LOWER-LIMIT=0 VOLUME=1135780.0d0 TURNOVER-VALUE=3.330456415d9 ADJUSTMENT-FACTOR=1.0d0 ADJUSTMENT-OPEN=2915.5d0 ADJUSTMENT-HIGH=2944.0d0 ADJUSTMENT-LOW=2913.5d0 ADJUSTMENT-CLOSE=2943.0d0 ADJUSTMENT-VOLUME=1135780.0d0 MORNING-OPEN=0.0 MORNING-HIGH=0.0 MORNING-LOW=0.0 MORNING-CLOSE=0.0 MORNING-UPPER-LIMIT=0.0 MORNING-LOWER-LIMIT=0.0 MORNING-VOLUME=0.0 MORNING-TURNOVER-VALUE=0.0 MORNING-ADJUSTMENT-OPEN=0.0 MORNING-ADJUSTMENT-HIGH=0.0 MORNING-ADJUSTMENT-LOW=0.0 MORNING-ADJUSTMENT-CLOSE=0.0 MORNING-ADJUSTMENT-VOLUME=0.0 AFTERNOON-OPEN=0.0 AFTERNOON-HIGH=0.0 AFTERNOON-LOW=0.0 AFTERNOON-CLOSE=0.0 AFTERNOON-UPPER-LIMIT=0.0 AFTERNOON-LOWER-LIMIT=0.0 AFTERNOON-VOLUME=0.0 AFTERNOON-TURNOVER-VALUE=0.0 AFTERNOON-ADJUSTMENT-OPEN=0.0 AFTERNOON-ADJUSTMENT-HIGH=0.0 AFTERNOON-ADJUSTMENT-LOW=0.0 AFTERNOON-ADJUSTMENT-CLOSE=0.0 AFTERNOON-ADJUSTMENT-VOLUME=0.0>
 ...

Find SONY GROUP CORPORATION (6758) data.

(find-if #'(lambda (obj)
             (string= (code-of obj) "67580"))
         all-prices)
#<STOCK-PRICES: CODE=67580 DATE=1735257600 OPEN-PRICE=3400.0d0 HIGH-PRICE=3423.0d0 LOW-PRICE=3381.0d0 CLOSE-PRICE=3417.0d0 UPPER-LIMIT=0 LOWER-LIMIT=0 VOLUME=1.09376d7 TURNOVER-VALUE=3.72928265d10 ADJUSTMENT-FACTOR=1.0d0 ADJUSTMENT-OPEN=3400.0d0 ADJUSTMENT-HIGH=3423.0d0 ADJUSTMENT-LOW=3381.0d0 ADJUSTMENT-CLOSE=3417.0d0 ADJUSTMENT-VOLUME=1.09376d7 MORNING-OPEN=0.0 MORNING-HIGH=0.0 MORNING-LOW=0.0 MORNING-CLOSE=0.0 MORNING-UPPER-LIMIT=0.0 MORNING-LOWER-LIMIT=0.0 MORNING-VOLUME=0.0 MORNING-TURNOVER-VALUE=0.0 MORNING-ADJUSTMENT-OPEN=0.0 MORNING-ADJUSTMENT-HIGH=0.0 MORNING-ADJUSTMENT-LOW=0.0 MORNING-ADJUSTMENT-CLOSE=0.0 MORNING-ADJUSTMENT-VOLUME=0.0 AFTERNOON-OPEN=0.0 AFTERNOON-HIGH=0.0 AFTERNOON-LOW=0.0 AFTERNOON-CLOSE=0.0 AFTERNOON-UPPER-LIMIT=0.0 AFTERNOON-LOWER-LIMIT=0.0 AFTERNOON-VOLUME=0.0 AFTERNOON-TURNOVER-VALUE=0.0 AFTERNOON-ADJUSTMENT-OPEN=0.0 AFTERNOON-ADJUSTMENT-HIGH=0.0 AFTERNOON-ADJUSTMENT-LOW=0.0 AFTERNOON-ADJUSTMENT-CLOSE=0.0 AFTERNOON-ADJUSTMENT-VOLUME=0.0>

Reference: Stock Prices (OHCL)

Morning Session Stock Prices (OHCL)

CL-USER> (describe 'get-morning-session-stock-prices)
CL-JQUANTS-API:GET-MORNING-SESSION-STOCK-PRICES
  [symbol]

GET-MORNING-SESSION-STOCK-PRICES names a compiled function:
  Lambda-list: (&KEY CODE)
  Derived type: (FUNCTION (&KEY (:CODE T)) (VALUES LIST &OPTIONAL))

Reference: Morning Session Stock Prices (OHCL)

Trading by Type of Investors

CL-USER> (describe 'get-trading-by-type-of-investors)
CL-JQUANTS-API:GET-TRADING-BY-TYPE-OF-INVESTORS
  [symbol]

GET-TRADING-BY-TYPE-OF-INVESTORS names a compiled function:
  Lambda-list: (&KEY SECTION FROM TO)
  Derived type: (FUNCTION (&KEY (:SECTION T) (:FROM T) (:TO T))
                 (VALUES LIST &OPTIONAL))

Download a stock trading value by type of investors for TSE Prime section.
See src/constant.lisp for available sctions.

(defvar investor-types (get-trading-by-type-of-investors :section "TSE1st"))
investor-types
(#<TRADING-BY-TYPE-OF-INVESTORS: PUBLISHED-DATE=1421884800 START-DATE=1421107200 END-DATE=1421366400 SECTION=TSE1st PROPRIETARY-SALES=1.347874859d9 PROPRIETARY-PURCHASES=1.26177739d9 PROPRIETARY-TOTAL=2.609652249d9 PROPRIETARY-BALANCE=-8.6097469d7 BROKERAGE-SALES=8.916359317d9 BROKERAGE-PURCHASES=9.009926142d9 BROKERAGE-TOTAL=1.7926285459d10 BROKERAGE-BALANCE=9.3566825d7 TOTAL-SALES=1.0264234176d10 TOTAL-PURCHASES=1.0271703532d10 TOTAL-TOTAL=2.0535937708d10 TOTAL-BALANCE=7469356.0d0 INDIVIDUALS-SALES=1.358095117d9 INDIVIDUALS-PURCHASES=1.633519213d9 INDIVIDUALS-TOTAL=2.99161433d9 INDIVIDUALS-BALANCE=2.75424096d8 FOREIGNERS-SALES=6.933648509d9 FOREIGNERS-PURCHASES=6.486586319d9 FOREIGNERS-TOTAL=1.3420234828d10 FOREIGNERS-BALANCE=-4.4706219d8 SECURITIES-COS-SALES=9.3771217d7 SECURITIES-COS-PURCHASES=1.05791653d8 SECURITIES-COS-TOTAL=1.9956287d8 SECURITIES-COS-BALANCE=1.2020436d7 INVESTMENT-TRUSTS-SALES=1.78330243d8 INVESTMENT-TRUSTS-PURCHASES=2.01847743d8 INVESTMENT-TRUSTS-TOTAL=3.80177986d8 INVESTMENT-TRUSTS-BALANCE=2.35175d7 BUSINESS-COS-SALES=5.9561519d7 BUSINESS-COS-PURCHASES=1.2046936d8 BUSINESS-COS-TOTAL=1.80030879d8 BUSINESS-COS-BALANCE=6.0907841d7 OTHER-COS-SALES=8539656.0d0 OTHER-COS-PURCHASES=1.4578459d7 OTHER-COS-TOTAL=2.3118115d7 OTHER-COS-BALANCE=6038803.0d0 INSURANCE-COS-SALES=2.4208723d7 INSURANCE-COS-PURCHASES=2.7938631d7 INSURANCE-COS-TOTAL=5.2147354d7 INSURANCE-COS-BALANCE=3729908.0d0 CITY-BKS-REGIONAL-BKS-ETC-SALES=3489667.0d0 CITY-BKS-REGIONAL-BKS-ETC-PURCHASES=1.3473713d7 CITY-BKS-REGIONAL-BKS-ETC-TOTAL=1.696338d7 CITY-BKS-REGIONAL-BKS-ETC-BALANCE=9984046.0d0 TRUST-BANKS-SALES=2.42455325d8 TRUST-BANKS-PURCHASES=3.8687572d8 TRUST-BANKS-TOTAL=6.29331045d8 TRUST-BANKS-BALANCE=1.44420395d8 OTHER-FINANCIAL-INSTITUTIONS-SALES=1.4259341d7 OTHER-FINANCIAL-INSTITUTIONS-PURCHASES=1.8845331d7 OTHER-FINANCIAL-INSTITUTIONS-TOTAL=3.3104672d7 OTHER-FINANCIAL-INSTITUTIONS-BALANCE=4585990.0d0>
 #<TRADING-BY-TYPE-OF-INVESTORS: PUBLISHED-DATE=1422489600 START-DATE=1421625600 END-DATE=1421971200 SECTION=TSE1st PROPRIETARY-SALES=1.489283348d9 PROPRIETARY-PURCHASES=1.533153475d9 PROPRIETARY-TOTAL=3.022436823d9 PROPRIETARY-BALANCE=4.3870127d7 BROKERAGE-SALES=9.826327309d9 BROKERAGE-PURCHASES=9.800538861d9 BROKERAGE-TOTAL=1.962686617d10 BROKERAGE-BALANCE=-2.5788448d7 TOTAL-SALES=1.1315610657d10 TOTAL-PURCHASES=1.1333692336d10 TOTAL-TOTAL=2.2649302993d10 TOTAL-BALANCE=1.8081679d7 INDIVIDUALS-SALES=1.926033952d9 INDIVIDUALS-PURCHASES=1.675058802d9 INDIVIDUALS-TOTAL=3.601092754d9 INDIVIDUALS-BALANCE=-2.5097515d8 FOREIGNERS-SALES=7.093702001d9 FOREIGNERS-PURCHASES=7.168389082d9 FOREIGNERS-TOTAL=1.4262091083d10 FOREIGNERS-BALANCE=7.4687081d7 SECURITIES-COS-SALES=1.19007689d8 SECURITIES-COS-PURCHASES=1.01126477d8 SECURITIES-COS-TOTAL=2.20134166d8 SECURITIES-COS-BALANCE=-1.7881212d7 INVESTMENT-TRUSTS-SALES=2.06683617d8 INVESTMENT-TRUSTS-PURCHASES=2.19214728d8 INVESTMENT-TRUSTS-TOTAL=4.25898345d8 INVESTMENT-TRUSTS-BALANCE=1.2531111d7 BUSINESS-COS-SALES=8.3388332d7 BUSINESS-COS-PURCHASES=1.03628257d8 BUSINESS-COS-TOTAL=1.87016589d8 BUSINESS-COS-BALANCE=2.0239925d7 OTHER-COS-SALES=1.7183743d7 OTHER-COS-PURCHASES=2.4860301d7 OTHER-COS-TOTAL=4.2044044d7 OTHER-COS-BALANCE=7676558.0d0 INSURANCE-COS-SALES=3.9397952d7 INSURANCE-COS-PURCHASES=1.5419868d7 INSURANCE-COS-TOTAL=5.481782d7 INSURANCE-COS-BALANCE=-2.3978084d7 CITY-BKS-REGIONAL-BKS-ETC-SALES=7668982.0d0 CITY-BKS-REGIONAL-BKS-ETC-PURCHASES=1.1795082d7 CITY-BKS-REGIONAL-BKS-ETC-TOTAL=1.9464064d7 CITY-BKS-REGIONAL-BKS-ETC-BALANCE=4126100.0d0 TRUST-BANKS-SALES=3.17215539d8 TRUST-BANKS-PURCHASES=4.58890691d8 TRUST-BANKS-TOTAL=7.7610623d8 TRUST-BANKS-BALANCE=1.41675152d8 OTHER-FINANCIAL-INSTITUTIONS-SALES=1.6045502d7 OTHER-FINANCIAL-INSTITUTIONS-PURCHASES=2.2155573d7 OTHER-FINANCIAL-INSTITUTIONS-TOTAL=3.8201075d7 OTHER-FINANCIAL-INSTITUTIONS-BALANCE=6110071.0d0>
 ...

Reference: Trading by Type of Investors

Margin Trading Outstandings

CL-USER> (describe 'get-margin-trading-outstandings)
CL-JQUANTS-API:GET-MARGIN-TRADING-OUTSTANDINGS
  [symbol]

GET-MARGIN-TRADING-OUTSTANDINGS names a compiled function:
  Lambda-list: (&KEY CODE DATE FROM TO)
  Derived type: (FUNCTION (&KEY (:CODE T) (:DATE T) (:FROM T) (:TO T))
                 (VALUES LIST &OPTIONAL))

Download margin trading outstandings on 2024-12-27.
See src/constant.lisp for an issue type mapping.

(defvar margin-tradings (get-margin-trading-outstandings :date 20241227))
margin-tradings
(#<MARGIN-TRADING-OUTSTANDINGS: CODE=13010 DATE=1735257600 SHORT-MARGIN-TRADE-VOLUME=2800.0d0 LONG-MARGIN-TRADE-VOLUME=70700.0d0 SHORT-NEGOTIABLE-MARGIN-TRADE-VOLUME=0.0d0 LONG-NEGOTIABLE-MARGIN-TRADE-VOLUME=50600.0d0 SHORT-STANDARDIZED-MARGIN-TRADE-VOLUME=2800.0d0 LONG-STANDARDIZED-MARGIN-TRADE-VOLUME=20100.0d0 ISSUE-TYPE=2>
 #<MARGIN-TRADING-OUTSTANDINGS: CODE=13050 DATE=1735257600 SHORT-MARGIN-TRADE-VOLUME=9440.0d0 LONG-MARGIN-TRADE-VOLUME=31540.0d0 SHORT-NEGOTIABLE-MARGIN-TRADE-VOLUME=1050.0d0 LONG-NEGOTIABLE-MARGIN-TRADE-VOLUME=6240.0d0 SHORT-STANDARDIZED-MARGIN-TRADE-VOLUME=8390.0d0 LONG-STANDARDIZED-MARGIN-TRADE-VOLUME=25300.0d0 ISSUE-TYPE=2>
 #<MARGIN-TRADING-OUTSTANDINGS: CODE=13060 DATE=1735257600 SHORT-MARGIN-TRADE-VOLUME=237680.0d0 LONG-MARGIN-TRADE-VOLUME=510580.0d0 SHORT-NEGOTIABLE-MARGIN-TRADE-VOLUME=10860.0d0 LONG-NEGOTIABLE-MARGIN-TRADE-VOLUME=353240.0d0 SHORT-STANDARDIZED-MARGIN-TRADE-VOLUME=226820.0d0 LONG-STANDARDIZED-MARGIN-TRADE-VOLUME=157340.0d0 ISSUE-TYPE=2>
 #<MARGIN-TRADING-OUTSTANDINGS: CODE=13080 DATE=1735257600 SHORT-MARGIN-TRADE-VOLUME=15675.0d0 LONG-MARGIN-TRADE-VOLUME=42219.0d0 SHORT-NEGOTIABLE-MARGIN-TRADE-VOLUME=0.0d0 LONG-NEGOTIABLE-MARGIN-TRADE-VOLUME=24866.0d0 SHORT-STANDARDIZED-MARGIN-TRADE-VOLUME=15675.0d0 LONG-STANDARDIZED-MARGIN-TRADE-VOLUME=17353.0d0 ISSUE-TYPE=2>
...

Reference: Margin Trading Outstandings

Short Sale Value and Ratio by Sector

CL-USER> (describe 'get-short-sale-value-and-ratio-by-sector)
CL-JQUANTS-API:GET-SHORT-SALE-VALUE-AND-RATIO-BY-SECTOR
  [symbol]

GET-SHORT-SALE-VALUE-AND-RATIO-BY-SECTOR names a compiled function:
  Lambda-list: (&KEY SECTOR33 DATE FROM TO)
  Derived type: (FUNCTION
                 (&KEY (:SECTOR33 T) (:DATE T) (:FROM T) (:TO T))
                 (VALUES LIST &OPTIONAL))

Download short-sale values by SECTOR 33 on 2024-12-27.
See src/constant.lisp for a sector mapping.

(defvar short-sales (get-short-sale-value-and-ratio-by-sector :date 20241227))
short-sales
(#<SHORT-SALE-VALUE-AND-RATIO-BY-SECTOR: DATE=1735257600 SECTOR33-CODE=0050 SELLING-EXCLUDING-SHORT-SELLING-TURNOVER-VALUE=1.41607089d9 SHORT-SELLING-WITH-RESTRICTIONS-TURNOVER-VALUE=7.3158462d8 SHORT-SELLING-WITHOUT-RESTRICTIONS-TURNOVER-VALUE=9.403545d7>
 #<SHORT-SALE-VALUE-AND-RATIO-BY-SECTOR: DATE=1735257600 SECTOR33-CODE=1050 SELLING-EXCLUDING-SHORT-SELLING-TURNOVER-VALUE=1.367169145d10 SHORT-SELLING-WITH-RESTRICTIONS-TURNOVER-VALUE=4.65354085d9 SHORT-SELLING-WITHOUT-RESTRICTIONS-TURNOVER-VALUE=5.6277925d8>
 #<SHORT-SALE-VALUE-AND-RATIO-BY-SECTOR: DATE=1735257600 SECTOR33-CODE=2050 SELLING-EXCLUDING-SHORT-SELLING-TURNOVER-VALUE=3.695199511d10 SHORT-SELLING-WITH-RESTRICTIONS-TURNOVER-VALUE=2.254049962d10 SHORT-SELLING-WITHOUT-RESTRICTIONS-TURNOVER-VALUE=2.918175d9>
 #<SHORT-SALE-VALUE-AND-RATIO-BY-SECTOR: DATE=1735257600 SECTOR33-CODE=3050 SELLING-EXCLUDING-SHORT-SELLING-TURNOVER-VALUE=6.68119557d10 SHORT-SELLING-WITH-RESTRICTIONS-TURNOVER-VALUE=3.672566735d10 SHORT-SELLING-WITHOUT-RESTRICTIONS-TURNOVER-VALUE=5.5723577d9>
 #<SHORT-SALE-VALUE-AND-RATIO-BY-SECTOR: DATE=1735257600 SECTOR33-CODE=3100 SELLING-EXCLUDING-SHORT-SELLING-TURNOVER-VALUE=7.90638446d9 SHORT-SELLING-WITH-RESTRICTIONS-TURNOVER-VALUE=4.61279904d9 SHORT-SELLING-WITHOUT-RESTRICTIONS-TURNOVER-VALUE=4.1187063d8>
 ...

Reference: Short Sale Value and Ratio by Sector

Breakdown Trading Data

CL-USER> (describe 'get-breakdown-trading-data)
CL-JQUANTS-API:GET-BREAKDOWN-TRADING-DATA
  [symbol]

GET-BREAKDOWN-TRADING-DATA names a compiled function:
  Lambda-list: (&KEY CODE DATE FROM TO)
  Derived type: (FUNCTION (&KEY (:CODE T) (:DATE T) (:FROM T) (:TO T))
                 (VALUES LIST &OPTIONAL))

Reference: Breakdown Trading Data

Trading Calendar

CL-USER> (describe 'get-trading-calendar)
CL-JQUANTS-API:GET-TRADING-CALENDAR
  [symbol]

GET-TRADING-CALENDAR names a compiled function:
  Lambda-list: (&KEY HOLIDAYDIVISION FROM TO)
  Derived type: (FUNCTION (&KEY (:HOLIDAYDIVISION T) (:FROM T) (:TO T))
                 (VALUES LIST &OPTIONAL))

DATE is an epoch-time and HOLIDAY-DIVISION is a numeric enum values from +holiday-division+.
See src/constant.lisp for a holiday division mapping.

(defvar trading-calendar (get-trading-calendar))
trading-calendar
CL-USER> trading-calendar
(#<TRADING-CALENDAR: DATE=1421539200 HOLIDAY-DIVISION=0>
 #<TRADING-CALENDAR: DATE=1421625600 HOLIDAY-DIVISION=1>
 #<TRADING-CALENDAR: DATE=1421712000 HOLIDAY-DIVISION=1>
 #<TRADING-CALENDAR: DATE=1421798400 HOLIDAY-DIVISION=1>
...

Convert DATE from an epoch-time to LOCAL-TIME:TIMESTAMP object.

(local-time:unix-to-timestamp
 (date-of (car (last trading-calendar))))
@2025-12-31T08:00:00.000000+08:00

Show a description of HOLIDAY-DIVISION.

(assoc (holiday-division-of (car (last trading-calendar)))
       +holiday-division+)
(0 . "Non-business day")

Reference: Trading Calendar

Indices (OHLC)

CL-USER> (describe 'get-indices-prices)
CL-JQUANTS-API:GET-INDICES-PRICES
  [symbol]

GET-INDICES-PRICES names a compiled function:
  Lambda-list: (&KEY CODE DATE FROM TO)
  Derived type: (FUNCTION (&KEY (:CODE T) (:DATE T) (:FROM T) (:TO T))
                 (VALUES LIST &OPTIONAL))

Download indices prices on 2024-12-27. See src/constant.lisp for an indices mapping.

(defvar index-snapshot (get-indices-prices :date 20241227))
index-snapshot
(#<INDICES-PRICES: CODE=0000 DATE=1735257600 OPEN-PRICE=2775.87d0 HIGH-PRICE=2804.82d0 LOW-PRICE=2774.4d0 CLOSE-PRICE=2801.68d0>
 #<INDICES-PRICES: CODE=0028 DATE=1735257600 OPEN-PRICE=1482.55d0 HIGH-PRICE=1498.5d0 LOW-PRICE=1481.38d0 CLOSE-PRICE=1496.27d0>
 #<INDICES-PRICES: CODE=0029 DATE=1735257600 OPEN-PRICE=2745.69d0 HIGH-PRICE=2779.8d0 LOW-PRICE=2745.69d0 CLOSE-PRICE=2774.03d0>
 #<INDICES-PRICES: CODE=002A DATE=1735257600 OPEN-PRICE=1920.94d0 HIGH-PRICE=1942.59d0 LOW-PRICE=1920.79d0 CLOSE-PRICE=1939.28d0>
 #<INDICES-PRICES: CODE=002B DATE=1735257600 OPEN-PRICE=2733.37d0 HIGH-PRICE=2759.24d0 LOW-PRICE=2732.34d0 CLOSE-PRICE=2757.85d0>
 #<INDICES-PRICES: CODE=002C DATE=1735257600 OPEN-PRICE=2172.75d0 HIGH-PRICE=2196.34d0 LOW-PRICE=2171.64d0 CLOSE-PRICE=2193.33d0>

 (find-if #'(lambda (x)
              (let ((code (code-of x)))
                (format t "~a: ~a~%" code (cdr (assoc code +index-code-name+)))))
          index-snapshot)
0000: TOPIX
0028: TOPIX Core 30
0029: TOPIX Large 70
002A: TOPIX 100
002B: TOPIX Mid 400
002C: TOPIX 500
002D: TOPIX Small
002E: TOPIX 1000
002F: TOPIX Small 500
0040: Fishery, Agriculture & Forestry
0041: Mining
0042: Construction
0043: Foods
0044: Textiles & Apparels
...

Reference: Indices (OHLC)

TOPIX Prices (OHLC)

CL-USER> (describe 'get-topix-prices)
CL-JQUANTS-API:GET-TOPIX-PRICES
  [symbol]

GET-TOPIX-PRICES names a compiled function:
  Lambda-list: (&KEY FROM TO)
  Derived type: (FUNCTION (&KEY (:FROM T) (:TO T))
                 (VALUES LIST &OPTIONAL))

Download the TOPIX prices since 2024-12-20. This is the customized GET-INDICES-PRICES API for TOPIX.

(defvar topix-prices (get-topix-prices :from 20241220))
topix-prices
(#<TOPIX-PRICES: DATE=1734652800 OPEN-PRICE=2722.35d0 HIGH-PRICE=2728.27d0 LOW-PRICE=2701.99d0 CLOSE-PRICE=2701.99d0>
 #<TOPIX-PRICES: DATE=1734912000 OPEN-PRICE=2720.32d0 HIGH-PRICE=2729.53d0 LOW-PRICE=2710.76d0 CLOSE-PRICE=2726.74d0>
 #<TOPIX-PRICES: DATE=1734998400 OPEN-PRICE=2730.52d0 HIGH-PRICE=2732.48d0 LOW-PRICE=2722.98d0 CLOSE-PRICE=2727.26d0>
 #<TOPIX-PRICES: DATE=1735084800 OPEN-PRICE=2730.96d0 HIGH-PRICE=2733.86d0 LOW-PRICE=2707.6d0 CLOSE-PRICE=2733.86d0>
 #<TOPIX-PRICES: DATE=1735171200 OPEN-PRICE=2735.8d0 HIGH-PRICE=2766.78d0 LOW-PRICE=2734.89d0 CLOSE-PRICE=2766.78d0>
 #<TOPIX-PRICES: DATE=1735257600 OPEN-PRICE=2775.87d0 HIGH-PRICE=2804.82d0 LOW-PRICE=2774.4d0 CLOSE-PRICE=2801.68d0>
 #<TOPIX-PRICES: DATE=1735516800 OPEN-PRICE=2809.93d0 HIGH-PRICE=2811.71d0 LOW-PRICE=2779.43d0 CLOSE-PRICE=2784.92d0>
 #<TOPIX-PRICES: DATE=1736121600 OPEN-PRICE=2792.1d0 HIGH-PRICE=2793.11d0 LOW-PRICE=2748.77d0 CLOSE-PRICE=2756.38d0>
 #<TOPIX-PRICES: DATE=1736208000 OPEN-PRICE=2770.14d0 HIGH-PRICE=2796.99d0 LOW-PRICE=2759.13d0 CLOSE-PRICE=2786.57d0>
 #<TOPIX-PRICES: DATE=1736294400 OPEN-PRICE=2775.66d0 HIGH-PRICE=2776.75d0 LOW-PRICE=2760.84d0 CLOSE-PRICE=2770.0d0>
 #<TOPIX-PRICES: DATE=1736380800 OPEN-PRICE=2763.04d0 HIGH-PRICE=2763.88d0 LOW-PRICE=2727.79d0 CLOSE-PRICE=2735.92d0>
 #<TOPIX-PRICES: DATE=1736467200 OPEN-PRICE=2730.73d0 HIGH-PRICE=2736.29d0 LOW-PRICE=2714.12d0 CLOSE-PRICE=2714.12d0>
 #<TOPIX-PRICES: DATE=1736812800 OPEN-PRICE=2712.02d0 HIGH-PRICE=2715.31d0 LOW-PRICE=2670.24d0 CLOSE-PRICE=2682.58d0>
 #<TOPIX-PRICES: DATE=1736899200 OPEN-PRICE=2701.52d0 HIGH-PRICE=2707.68d0 LOW-PRICE=2683.14d0 CLOSE-PRICE=2690.81d0>
 #<TOPIX-PRICES: DATE=1736985600 OPEN-PRICE=2704.4d0 HIGH-PRICE=2715.81d0 LOW-PRICE=2686.07d0 CLOSE-PRICE=2688.31d0>
 #<TOPIX-PRICES: DATE=1737072000 OPEN-PRICE=2680.6d0 HIGH-PRICE=2682.29d0 LOW-PRICE=2650.07d0 CLOSE-PRICE=2679.42d0>)

Reference: TOPIX Prices (OHLC)

Financial Data

CL-USER> (describe 'get-financial-data)
CL-JQUANTS-API:GET-FINANCIAL-DATA
  [symbol]

GET-FINANCIAL-DATA names a compiled function:
  Lambda-list: (&KEY CODE DATE)
  Derived type: (FUNCTION (&KEY (:CODE T) (:DATE T))
                 (VALUES LIST &OPTIONAL))

Reference: Financial Data

Financial Statement Data (BS/PL)

CL-USER> (describe 'get-financial-statement-data)
CL-JQUANTS-API:GET-FINANCIAL-STATEMENT-DATA
  [symbol]

GET-FINANCIAL-STATEMENT-DATA names a compiled function:
  Lambda-list: (&KEY CODE DATE)
  Derived type: (FUNCTION (&KEY (:CODE T) (:DATE T))
                 (VALUES LIST &OPTIONAL))

Download the financial data for SONY CORPORATION GROUP (6758). All DATE related values are in an epoch-time format.

(defvar financial-data (get-financial-data :code 6758))
financial-data
(#<FINANCIAL-DATA: DISCLOSED-DATE=1423008000 DISCLOSED-TIME=NIL LOCAL-CODE=67580 DISCLOSURE-NUMBER=20150203018158 TYPE-OF-DOCUMENT=EarnForecastRevision TYPE-OF-CURRENT-PERIOD=FY CURRENT-PERIOD-START-DATE=1396310400 CURRENT-PERIOD-END-DATE=1427760000 CURRENT-FISCAL-YEAR-START-DATE=1396310400 CURRENT-FISCAL-YEAR-END-DATE=1427760000 NEXT-FISCAL-YEAR-START-DATE=NIL NEXT-FISCAL-YEAR-END-DATE=NIL NET-SALES= OPERATING-PROFIT= ORDINARY-PROFIT= PROFIT= EARNINGS-PER-SHARE= DILUTED-EARNINGS-PER-SHARE= TOTAL-ASSETS= EQUITY= EQUITY-TO-ASSET-RATIO= BOOK-VALUE-PER-SHARE= CASH-FLOWS-FROM-OPERATING-ACTIVITIES= CASH-FLOWS-FROM-INVESTING-ACTIVITIES= CASH-FLOWS-FROM-FINANCING-ACTIVITIES= CASH-AND-EQUIVALENTS= RESULT-DIVIDEND-PER-SHARE1ST-QUARTER= RESULT-DIVIDEND-PER-SHARE2ND-QUARTER= RESULT-DIVIDEND-PER-SHARE3RD-QUARTER= RESULT-DIVIDEND-PER-SHARE-FISCAL-YEAR-END= RESULT-DIVIDEND-PER-SHARE-ANNUAL= DISTRIBUTIONS-PER-UNIT-REIT= RESULT-TOTAL-DIVIDEND-PAID-ANNUAL= RESULT-PAYOUT-RATIO-ANNUAL= FORECAST-DIVIDEND-PER-SHARE1ST-QUARTER= FORECAST-DIVIDEND-PER-SHARE2ND-QUARTER= FORECAST-DIVIDEND-PER-SHARE3RD-QUARTER= FORECAST-DIVIDEND-PER-SHARE-FISCAL-YEAR-END= FORECAST-DIVIDEND-PER-SHARE-ANNUAL= FORECAST-DISTRIBUTIONS-PER-UNIT-REIT= FORECAST-TOTAL-DIVIDEND-PAID-ANNUAL= FORECAST-PAYOUT-RATIO-ANNUAL= NEXT-YEAR-FORECAST-DIVIDEND-PER-SHARE1ST-QUARTER= NEXT-YEAR-FORECAST-DIVIDEND-PER-SHARE2ND-QUARTER= NEXT-YEAR-FORECAST-DIVIDEND-PER-SHARE3RD-QUARTER= NEXT-YEAR-FORECAST-DIVIDEND-PER-SHARE-FISCAL-YEAR-END= NEXT-YEAR-FORECAST-DIVIDEND-PER-SHARE-ANNUAL= NEXT-YEAR-FORECAST-DISTRIBUTIONS-PER-UNIT-REIT= NEXT-YEAR-FORECAST-PAYOUT-RATIO-ANNUAL= FORECAST-NET-SALES2ND-QUARTER= FORECAST-OPERATING-PROFIT2ND-QUARTER= FORECAST-ORDINARY-PROFIT2ND-QUARTER= FORECAST-PROFIT2ND-QUARTER= FORECAST-EARNINGS-PER-SHARE2ND-QUARTER= NEXT-YEAR-FORECAST-NET-SALES2ND-QUARTER= NEXT-YEAR-FORECAST-OPERATING-PROFIT2ND-QUARTER= NEXT-YEAR-FORECAST-ORDINARY-PROFIT2ND-QUARTER= NEXT-YEAR-FORECAST-PROFIT2ND-QUARTER= NEXT-YEAR-FORECAST-EARNINGS-PER-SHARE2ND-QUARTER= FORECAST-NET-SALES=8000000000000 FORECAST-OPERATING-PROFIT=20000000000 FORECAST-ORDINARY-PROFIT= FORECAST-PROFIT=-170000000000 FORECAST-EARNINGS-PER-SHARE= NEXT-YEAR-FORECAST-NET-SALES= NEXT-YEAR-FORECAST-OPERATING-PROFIT= NEXT-YEAR-FORECAST-ORDINARY-PROFIT= NEXT-YEAR-FORECAST-PROFIT= NEXT-YEAR-FORECAST-EARNINGS-PER-SHARE= MATERIAL-CHANGES-IN-SUBSIDIARIES= SIGNIFICANT-CHANGES-IN-THE-SCOPE-OF-CONSOLIDATION= CHANGES-BASED-ON-REVISIONS-OF-ACCOUNTING-STANDARD= CHANGES-OTHER-THAN-ONES-BASED-ON-REVISIONS-OF-ACCOUNTING-STANDARD= CHANGES-IN-ACCOUNTING-ESTIMATES= RETROSPECTIVE-RESTATEMENT= NUMBER-OF-ISSUED-AND-OUTSTANDING-SHARES-AT-THE-END-OF-FISCAL-YEAR-INCLUDING-TREASURY-STOCK= NUMBER-OF-TREASURY-STOCK-AT-THE-END-OF-FISCAL-YEAR= AVERAGE-NUMBER-OF-SHARES= NON-CONSOLIDATED-NET-SALES= NON-CONSOLIDATED-OPERATING-PROFIT= NON-CONSOLIDATED-ORDINARY-PROFIT= NON-CONSOLIDATED-PROFIT= NON-CONSOLIDATED-EARNINGS-PER-SHARE= NON-CONSOLIDATED-TOTAL-ASSETS= NON-CONSOLIDATED-EQUITY= NON-CONSOLIDATED-EQUITY-TO-ASSET-RATIO= NON-CONSOLIDATED-BOOK-VALUE-PER-SHARE= FORECAST-NON-CONSOLIDATED-NET-SALES2ND-QUARTER= FORECAST-NON-CONSOLIDATED-OPERATING-PROFIT2ND-QUARTER= FORECAST-NON-CONSOLIDATED-ORDINARY-PROFIT2ND-QUARTER= FORECAST-NON-CONSOLIDATED-PROFIT2ND-QUARTER= FORECAST-NON-CONSOLIDATED-EARNINGS-PER-SHARE2ND-QUARTER= NEXT-YEAR-FORECAST-NON-CONSOLIDATED-NET-SALES2ND-QUARTER= NEXT-YEAR-FORECAST-NON-CONSOLIDATED-OPERATING-PROFIT2ND-QUARTER= NEXT-YEAR-FORECAST-NON-CONSOLIDATED-ORDINARY-PROFIT2ND-QUARTER= NEXT-YEAR-FORECAST-NON-CONSOLIDATED-PROFIT2ND-QUARTER= NEXT-YEAR-FORECAST-NON-CONSOLIDATED-EARNINGS-PER-SHARE2ND-QUARTER= FORECAST-NON-CONSOLIDATED-NET-SALES= FORECAST-NON-CONSOLIDATED-OPERATING-PROFIT= FORECAST-NON-CONSOLIDATED-ORDINARY-PROFIT= FORECAST-NON-CONSOLIDATED-PROFIT= FORECAST-NON-CONSOLIDATED-EARNINGS-PER-SHARE= NEXT-YEAR-FORECAST-NON-CONSOLIDATED-NET-SALES= NEXT-YEAR-FORECAST-NON-CONSOLIDATED-OPERATING-PROFIT= NEXT-YEAR-FORECAST-NON-CONSOLIDATED-ORDINARY-PROFIT= NEXT-YEAR-FORECAST-NON-CONSOLIDATED-PROFIT= NEXT-YEAR-FORECAST-NON-CONSOLIDATED-EARNINGS-PER-SHARE=>
...	

Reference: Financial Statement Data (BS/PL)

Cash Dividend Data

CL-USER> (describe 'get-cash-dividend-data)
CL-JQUANTS-API:GET-CASH-DIVIDEND-DATA
  [symbol]

GET-CASH-DIVIDEND-DATA names a compiled function:
  Lambda-list: (&KEY CODE DATE FROM TO)
  Derived type: (FUNCTION (&KEY (:CODE T) (:DATE T) (:FROM T) (:TO T))
                 (VALUES LIST &OPTIONAL))

Reference: Cash Dividend Data

Earnings Calendar

CL-USER> (describe 'get-earnings-calendar)
CL-JQUANTS-API:GET-EARNINGS-CALENDAR
  [symbol]

GET-EARNINGS-CALENDAR names a compiled function:
  Lambda-list: ()
  Derived type: (FUNCTION NIL (VALUES LIST &OPTIONAL))

Get the latest earning calendar.
Seems like an earning calendar is available in Japanese only.

(defvar earnings (get-earnings-calendar))
earnings
(#<EARNINGS-CALENDAR: CODE=59900 DATE=1737331200 COMPANY-NAME=スーパーツール FISCAL-YEAR=3月15日 SECTOR-NAME=金属製品 FISCAL-QUARTER=第3四半期 SECTION=スタンダード>)

Reference: Earnings Calendar

Daily Nikkei 225 Options Prices (OHCL)

CL-USER> (describe 'get-index-option-prices)
CL-JQUANTS-API:GET-INDEX-OPTION-PRICES
  [symbol]

GET-INDEX-OPTION-PRICES names a compiled function:
  Lambda-list: (&KEY CODE DATE FROM TO)
  Derived type: (FUNCTION (&KEY (:CODE T) (:DATE T) (:FROM T) (:TO T))
                 (VALUES LIST &OPTIONAL))

Download the index option prices on 2024-12-27.

(defvar index-option-prices (get-index-option-prices :date 20241227))
index-option-prices
(#<INDEX-OPTION-PRICES: CODE=130010018 DATE=1735257600 WHOLE-DAY-OPEN=1.0d0 WHOLE-DAY-HIGH=1.0d0 WHOLE-DAY-LOW=1.0d0 WHOLE-DAY-CLOSE=1.0d0 NIGHT-SESSION-OPEN=1.0d0 NIGHT-SESSION-HIGH=1.0d0 NIGHT-SESSION-LOW=1.0d0 NIGHT-SESSION-CLOSE=1.0d0 DAY-SESSION-OPEN=1.0d0 DAY-SESSION-HIGH=1.0d0 DAY-SESSION-LOW=1.0d0 DAY-SESSION-CLOSE=1.0d0 VOLUME=72.0d0 OPEN-INTEREST=3332.0d0 TURNOVER-VALUE=72000.0d0 CONTRACT-MONTH=2025-01 STRIKE-PRICE=20000.0d0 VOLUME-ONLY-AUCTION=72.0d0 EMERGENCY-MARGIN-TRIGGER-DIVISION=002 PUT-CALL-DIVISION=1 LAST-TRADING-DAY=2025-01-09 SPECIAL-QUOTATION-DAY=2025-01-10 SETTLEMENT-PRICE=1.0d0 THEORETICAL-PRICE=0.8021d0 BASE-VOLATILITY=14.0594d0 UNDERLYING-PRICE=40281.16d0 IMPLIED-VOLATILITY=108.7545d0 INTEREST-RATE=0.2691d0>
 #<INDEX-OPTION-PRICES: CODE=130010118 DATE=1735257600 WHOLE-DAY-OPEN=495.0d0 WHOLE-DAY-HIGH=495.0d0 WHOLE-DAY-LOW=320.0d0 WHOLE-DAY-CLOSE=370.0d0 NIGHT-SESSION-OPEN=0.0d0 NIGHT-SESSION-HIGH=0.0d0 NIGHT-SESSION-LOW=0.0d0 NIGHT-SESSION-CLOSE=0.0d0 DAY-SESSION-OPEN=495.0d0 DAY-SESSION-HIGH=495.0d0 DAY-SESSION-LOW=320.0d0 DAY-SESSION-CLOSE=370.0d0 VOLUME=54.0d0 OPEN-INTEREST=6.0d0 TURNOVER-VALUE=1.897811d7 CONTRACT-MONTH=2025-01 STRIKE-PRICE=40125.0d0 VOLUME-ONLY-AUCTION=53.0d0 EMERGENCY-MARGIN-TRIGGER-DIVISION=002 PUT-CALL-DIVISION=1 LAST-TRADING-DAY=2025-01-09 SPECIAL-QUOTATION-DAY=2025-01-10 SETTLEMENT-PRICE=400.0d0 THEORETICAL-PRICE=368.5395d0 BASE-VOLATILITY=14.0594d0 UNDERLYING-PRICE=40281.16d0 IMPLIED-VOLATILITY=15.1507d0 INTEREST-RATE=0.2691d0>
 #<INDEX-OPTION-PRICES: CODE=130010218 DATE=1735257600 WHOLE-DAY-OPEN=705.0d0 WHOLE-DAY-HIGH=745.0d0 WHOLE-DAY-LOW=360.0d0 WHOLE-DAY-CLOSE=405.0d0 NIGHT-SESSION-OPEN=0.0d0 NIGHT-SESSION-HIGH=0.0d0 NIGHT-SESSION-LOW=0.0d0 NIGHT-SESSION-CLOSE=0.0d0 DAY-SESSION-OPEN=705.0d0 DAY-SESSION-HIGH=745.0d0 DAY-SESSION-LOW=360.0d0 DAY-SESSION-CLOSE=405.0d0 VOLUME=103.0d0 OPEN-INTEREST=37.0d0 TURNOVER-VALUE=4.422154d7 CONTRACT-MONTH=2025-01 STRIKE-PRICE=40250.0d0 VOLUME-ONLY-AUCTION=96.0d0 EMERGENCY-MARGIN-TRIGGER-DIVISION=002 PUT-CALL-DIVISION=1 LAST-TRADING-DAY=2025-01-09 SPECIAL-QUOTATION-DAY=2025-01-10 SETTLEMENT-PRICE=455.0d0 THEORETICAL-PRICE=420.3848d0 BASE-VOLATILITY=14.0594d0 UNDERLYING-PRICE=40281.16d0 IMPLIED-VOLATILITY=15.0186d0 INTEREST-RATE=0.2691d0>
 #<INDEX-OPTION-PRICES: CODE=130010318 DATE=1735257600 WHOLE-DAY-OPEN=460.0d0 WHOLE-DAY-HIGH=495.0d0 WHOLE-DAY-LOW=425.0d0 WHOLE-DAY-CLOSE=475.0d0 NIGHT-SESSION-OPEN=0.0d0 NIGHT-SESSION-HIGH=0.0d0 NIGHT-SESSION-LOW=0.0d0 NIGHT-SESSION-CLOSE=0.0d0 DAY-SESSION-OPEN=460.0d0 DAY-SESSION-HIGH=495.0d0 DAY-SESSION-LOW=425.0d0 DAY-SESSION-CLOSE=475.0d0 VOLUME=9.0d0 OPEN-INTEREST=6.0d0 TURNOVER-VALUE=4217630.0d0 CONTRACT-MONTH=2025-01 STRIKE-PRICE=40375.0d0 VOLUME-ONLY-AUCTION=8.0d0 EMERGENCY-MARGIN-TRIGGER-DIVISION=002 PUT-CALL-DIVISION=1 LAST-TRADING-DAY=2025-01-09 SPECIAL-QUOTATION-DAY=2025-01-10 SETTLEMENT-PRICE=475.0d0 THEORETICAL-PRICE=474.9986d0 BASE-VOLATILITY=14.0594d0 UNDERLYING-PRICE=40281.16d0 IMPLIED-VOLATILITY=13.6058d0 INTEREST-RATE=0.2691d0>
 #<INDEX-OPTION-PRICES: CODE=130010518 DATE=1735257600 WHOLE-DAY-OPEN=655.0d0 WHOLE-DAY-HIGH=655.0d0 WHOLE-DAY-LOW=480.0d0 WHOLE-DAY-CLOSE=545.0d0 NIGHT-SESSION-OPEN=0.0d0 NIGHT-SESSION-HIGH=0.0d0 NIGHT-SESSION-LOW=0.0d0 NIGHT-SESSION-CLOSE=0.0d0 DAY-SESSION-OPEN=655.0d0 DAY-SESSION-HIGH=655.0d0 DAY-SESSION-LOW=480.0d0 DAY-SESSION-CLOSE=545.0d0 VOLUME=119.0d0 OPEN-INTEREST=118.0d0 TURNOVER-VALUE=6.492456d7 CONTRACT-MONTH=2025-01 STRIKE-PRICE=40500.0d0 VOLUME-ONLY-AUCTION=109.0d0 EMERGENCY-MARGIN-TRIGGER-DIVISION=002 PUT-CALL-DIVISION=1 LAST-TRADING-DAY=2025-01-09 SPECIAL-QUOTATION-DAY=2025-01-10 SETTLEMENT-PRICE=545.0d0 THEORETICAL-PRICE=545.0002d0 BASE-VOLATILITY=14.0594d0 UNDERLYING-PRICE=40281.16d0 IMPLIED-VOLATILITY=13.6001d0 INTEREST-RATE=0.2691d0>
 ...

Reference: Index Option Prices (OHCL)

Futures (OHLC)

CL-USER> (describe 'get-futures-data)
CL-JQUANTS-API:GET-FUTURES-DATA
  [symbol]

GET-FUTURES-DATA names a compiled function:
  Lambda-list: (&KEY CATEGORY DATE CONTRACT-FLAG)
  Derived type: (FUNCTION
                 (&KEY (:CATEGORY T) (:DATE T) (:CONTRACT-FLAG T))
                 (VALUES LIST &OPTIONAL))

Reference: Futures (OHLC)

Options (OHLC)

CL-USER> (describe 'get-options-data)
CL-JQUANTS-API:GET-OPTIONS-DATA
  [symbol]

GET-OPTIONS-DATA names a compiled function:
  Lambda-list: (&KEY CATEGORY DATE CONTRACT-FLAG)
  Derived type: (FUNCTION
                 (&KEY (:CATEGORY T) (:DATE T) (:CONTRACT-FLAG T))
                 (VALUES LIST &OPTIONAL))

The J-Quants API returns an empty string if the stock is not eligible for morning / afternoon session. When an empty string is returned, it sets to NIL.

Reference: Options (OHLC)

License

Licensed under the MIT License
©️ 2025 Y. IGUCHI

About

cl-jquants-api is an open-source library for J-Quants API with Common Lisp

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published