{"id":23819220,"url":"https://github.com/phamdinhkhanh/vnquant","last_synced_at":"2025-05-15T16:03:14.919Z","repository":{"id":129517614,"uuid":"172083336","full_name":"phamdinhkhanh/vnquant","owner":"phamdinhkhanh","description":"VietNam Data Stock Market Price","archived":false,"fork":false,"pushed_at":"2024-11-30T01:15:03.000Z","size":1142,"stargazers_count":421,"open_issues_count":8,"forks_count":193,"subscribers_count":26,"default_branch":"master","last_synced_at":"2025-04-11T23:04:31.765Z","etag":null,"topics":["pandas","python","stock","stock-market","trading","vietnamese-stock-price","visualization"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/phamdinhkhanh.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-02-22T14:49:55.000Z","updated_at":"2025-04-09T15:41:42.000Z","dependencies_parsed_at":"2023-08-24T07:02:25.526Z","dependency_job_id":"5e16c602-b05d-4ddd-b7b0-e0057c1712fc","html_url":"https://github.com/phamdinhkhanh/vnquant","commit_stats":{"total_commits":60,"total_committers":5,"mean_commits":12.0,"dds":"0.31666666666666665","last_synced_commit":"a98d48734890b13517c66acd3deba385580e4e53"},"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phamdinhkhanh%2Fvnquant","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phamdinhkhanh%2Fvnquant/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phamdinhkhanh%2Fvnquant/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phamdinhkhanh%2Fvnquant/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/phamdinhkhanh","download_url":"https://codeload.github.com/phamdinhkhanh/vnquant/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254374400,"owners_count":22060609,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["pandas","python","stock","stock-market","trading","vietnamese-stock-price","visualization"],"created_at":"2025-01-02T06:38:53.122Z","updated_at":"2025-05-15T16:03:14.899Z","avatar_url":"https://github.com/phamdinhkhanh.png","language":"Python","funding_links":[],"categories":["Python Libraries","Data and Feeds"],"sub_categories":[],"readme":"# vnquant package\n\n\u003cimg src=\"./vnquant/imgs/stock_1.png\" style=\"display: block;margin-left: auto;margin-right: auto;width:50%;\" /\u003e\n\n\n## 1. Introduction\nThis project offers comprehensive financial information and advanced visualization tools for the Vietnam stock market to researchers. Specifically, it provides extensive data, including historical prices, finacial, business, and cashflow reports for individual or multiple symbols over the same period. This enables investors to conduct in-depth quantitative analyses and forecasting. Additionally, the available stock prices can be utilized to create visualizations with advanced metrics such as Bollinger Bands and Relative Strength Index (RSI), aiding in identifying optimal buying and selling points.\n\n## 2. Setting:\n\n### 2.1. Setup on local machine\n\nThis project is in developing process, So it is only distributed on github channel. To install requiring you open the command line and type the below commands:\n```\ngit clone https://github.com/phamdinhkhanh/vnquant\ncd vnquant\npython setup.py install\n```\nyou must install git command line in your computer to run above command.\n\n### 2.2. Google colab\n\nTo use package in google colab, you have to mount point to google drive folder first and setup the same as in local machine. Reference to [google colab - vnquant example](https://drive.google.com/file/d/10KNNA4sZTk2dKW6wvv3tLMivgQDgd-5-/view?usp=sharing) for detail.\n\n## 3. Visualization: (0.0.2)\nfrom version 0.0.2 vnquant enable to you visualize stock price from any symbols code at source cafe or vnd or pandas data frame which have OHLC type. OHLC type meaning that your data frame columns is enough ['open', 'high', 'low', 'close'] list.\nBelow is general syntax of visualization function supported on vnquant package.\n\n```{python}\nimport vnquant.plot as pl\npl.vnquant_candle_stick(data,\n                        title=None,\n                        xlab='Date', ylab='Price',\n                        start_date=None, end_date=None,\n                        colors=['blue', 'red'],\n                        width=800, height=600,\n                        show_advanced=[],\n                        data_source='cafe',\n                        **kargs)\n```\n\n**Arguments**\n* `data`: is pandas data frame of OHLC type or OHLCV type, or string symbol of any VietNam stock index.\nin case symbol, data is automatically cloned from open source.\n* `title`: General title of candle stick chart. If data is a symbol, title is going to be created based on symbol and cloned datetime interval.\n* `xlab`: x label. Default Date.\n* `ylab`: y label. Default Price.\n* `start_date`: start date. Default None. Must to be declared when data is symbol.\n* `end_date`: end date. Default None. Must to be declared when data is symbol.\n* `colors`: list colors defines increasing and decreasing color stick candle in order.\n* `width`: with of plot frame. Default 800px\n* `height`: height of plot frame. Default 600px\n* `show_advanced`: list of advanced stock index to show up. Each element belongs to ['volume', 'macd', 'rsi'].\n* `data_source`: invalid when use symbol intead of data frame. Source to clone data, 'VND' or 'CAFE'.\n\n### 3.1. Visualization from source VND or CAFE\n\nIn this way, you can visualize stock price clone from VND or CAFE source by pass symbol, start_date, end_date into module as below:\n```{python}\nfrom vnquant import plot as plt\nplt.vnquant_candle_stick(\n    data='VND',\n    title='VND symbol from 2019-09-01 to 2019-11-01',\n    xlab='Date', ylab='Price',\n    start_date='2019-09-01',\n    end_date='2019-11-01',\n    data_source='CAFE',\n    show_advanced=['volume', 'macd', 'rsi'],\n    width=1600,\n    height=800\n)\n```\n\n\u003cimg src=\"./vnquant/imgs/stock_2.png\" style=\"display: block;margin-left: auto;margin-right: auto;width:50%;\" /\u003e\n\nYou can suppress volume by set up show_vol=False. Result as below:\n\n\u003cimg src=\"./vnquant/imgs/stock_3.png\" style=\"display: block;margin-left: auto;margin-right: auto;width:50%;\" /\u003e\n\n### 3.2. Visualization from data frame\nData frame must be OHLC or OHLCV type. OHLC type when it includes ['open','high','low','close'] and OHLCV is ['open','high','low','close','volume'] or ['open','high','low','close','volume_match'] and index is DateTime. In case your data frame have columns with the same function, you should accordingly rename its.\n\n```{python}\nfrom vnquant import plot as plt\n\nplt.vnquant_candle_stick(\n    data = data,\n    title='Your data',\n    ylab='Date', xlab='Price',\n    show_advanced=['volume', 'macd', 'rsi']\n)\n```\n\n\u003cimg src=\"./vnquant/imgs/stock_4.png\" style=\"display: block;margin-left: auto;margin-right: auto;width:50%;\" /\u003e\n\nTo check whether data_vnd frame is OHLC or OHLCV type you can try:\n\n```{python}\nfrom vnquant import utils\nprint(utils._isOHLC(data_vnd))\nprint(utils._isOHLCV(data_vnd))\n```\n\nReturn `True` mean data frame is adapted types.\n\n## 4. Clone Stock Prices: (0.1.2)\nYou can load the prices of one or more stocks in specific time interval according to syntax as below.\n```{python}\nimport vnquant.data as dt\n\nloader = dt.DataLoader(\n  symbols: Union[str, list], \n  start: Optional[Union[str, datetime]]=None,\n  end: Optional[Union[str, datetime]]=None, \n  data_source: str='CAFE', \n  minimal: bool=True,\n  table_style: str='levels')\n```\n\nFor example:\n\n```\nloader = DataLoader(\n  symbols='VND', \n  start='2018-01-10', end='2018-02-15', \n  data_source='CAFE', \n  minimal=True, \n  table_style='levels')\n\nloader.download()\n```\n\n**Arguments**\n* `symbols` (Union[str, list]): A single stock symbol as a string or multiple stock symbols as a list of strings. The stock symbols regularly include 3 upper case letters except several special index such as: `E1VFVN30, FUEVN100` for both data_source `cafe and vnd`, `HNX-INDEX, HNX30-INDEX, UPCOM-INDEX` for `cafe`.\n* `start` (Optional[Union[str, datetime]], default=None): The start date for the data. Can be a string in the format 'YYYY-MM-DD' or a datetime object.\n* `end` (Optional[Union[str, datetime]], default=None): The end date for the data. Can be a string in the format 'YYYY-MM-DD' or a datetime object.\n* `data_source` (str, default='CAFE'): The data source to be used for downloading stock data. Currently supports 'CAFE' and 'VND'.\n* `minimal` (bool, default=True): If True, returns a minimal set of columns. If False, returns all available columns.\n* `table_style` (str, default='levels'): The style of the returned table. Options are 'levels', 'prefix', and 'stack'.\n- 'levels': Returns the DataFrame with multi-level colums of symbols and list of basic arguments like `['high', 'low', 'open', 'close', 'adjust', 'volume', 'value']`\n- 'prefix': Adds the stock symbol as a prefix to each column name.\n- 'stack': Returns the DataFrame and add one column 'code' to clarify each record belong to what stock symbol.\n\n### 4.1. Clone one stock:\n\nThere are three return formats supported in the latest version 0.1.2.\n\n- Multiple-level: It will return a table with mutilple column indexes with two main levels Arguments (including many basical stock indexes) and Symbols (including list of stock codes).\n\n```{python}\nimport vnquant.data as dt\nloader = dt.DataLoader('VND', '2018-02-02','2018-04-02')\ndata = loader.download()\ndata.head()\n```\n\u003ctable border=\"1\" class=\"dataframe\"\u003e\n  \u003cthead\u003e\n    \u003ctr\u003e\n      \u003cth\u003eAttributes\u003c/th\u003e\n      \u003cth\u003ehigh\u003c/th\u003e\n      \u003cth\u003elow\u003c/th\u003e\n      \u003cth\u003eopen\u003c/th\u003e\n      \u003cth\u003eclose\u003c/th\u003e\n      \u003cth\u003eavg\u003c/th\u003e\n      \u003cth\u003evolume\u003c/th\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003eSymbols\u003c/th\u003e\n      \u003cth\u003eVND\u003c/th\u003e\n      \u003cth\u003eVND\u003c/th\u003e\n      \u003cth\u003eVND\u003c/th\u003e\n      \u003cth\u003eVND\u003c/th\u003e\n      \u003cth\u003eVND\u003c/th\u003e\n      \u003cth\u003eVND\u003c/th\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003edate\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n    \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2018-02-02\u003c/th\u003e\n      \u003ctd\u003e28.95\u003c/td\u003e\n      \u003ctd\u003e27.60\u003c/td\u003e\n      \u003ctd\u003e28.5\u003c/td\u003e\n      \u003ctd\u003e28.95\u003c/td\u003e\n      \u003ctd\u003e28.28\u003c/td\u003e\n      \u003ctd\u003e1700670.0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2018-02-05\u003c/th\u003e\n      \u003ctd\u003e28.45\u003c/td\u003e\n      \u003ctd\u003e26.95\u003c/td\u003e\n      \u003ctd\u003e28.1\u003c/td\u003e\n      \u003ctd\u003e26.95\u003c/td\u003e\n      \u003ctd\u003e27.68\u003c/td\u003e\n      \u003ctd\u003e2150120.0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2018-02-06\u003c/th\u003e\n      \u003ctd\u003e26.95\u003c/td\u003e\n      \u003ctd\u003e25.10\u003c/td\u003e\n      \u003ctd\u003e25.1\u003c/td\u003e\n      \u003ctd\u003e26.40\u003c/td\u003e\n      \u003ctd\u003e25.25\u003c/td\u003e\n      \u003ctd\u003e3129690.0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2018-02-07\u003c/th\u003e\n      \u003ctd\u003e28.20\u003c/td\u003e\n      \u003ctd\u003e27.50\u003c/td\u003e\n      \u003ctd\u003e27.5\u003c/td\u003e\n      \u003ctd\u003e28.20\u003c/td\u003e\n      \u003ctd\u003e27.99\u003c/td\u003e\n      \u003ctd\u003e1985120.0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2018-02-08\u003c/th\u003e\n      \u003ctd\u003e29.20\u003c/td\u003e\n      \u003ctd\u003e27.70\u003c/td\u003e\n      \u003ctd\u003e28.0\u003c/td\u003e\n      \u003ctd\u003e28.00\u003c/td\u003e\n      \u003ctd\u003e28.47\u003c/td\u003e\n      \u003ctd\u003e943260.0\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n- Prefix: The stock code is appended before each index to become a column name.\n\n```{python}\nimport vnquant.data as dt\nloader = dt.DataLoader(['VND', 'FPT'], '2018-02-02','2018-04-02', table_style='prefix')\ndata = loader.download()\ndata.head()\n```\n\u003ctable border=\"1\" class=\"dataframe\"\u003e\n  \u003cthead\u003e\n    \u003ctr style=\"text-align: right;\"\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003eVND_code\u003c/th\u003e\n      \u003cth\u003eFPT_code\u003c/th\u003e\n      \u003cth\u003eVND_high\u003c/th\u003e\n      \u003cth\u003eFPT_high\u003c/th\u003e\n      \u003cth\u003eVND_low\u003c/th\u003e\n      \u003cth\u003eFPT_low\u003c/th\u003e\n      \u003cth\u003eVND_open\u003c/th\u003e\n      \u003cth\u003eFPT_open\u003c/th\u003e\n      \u003cth\u003eVND_close\u003c/th\u003e\n      \u003cth\u003eFPT_close\u003c/th\u003e\n      \u003cth\u003eVND_adjust\u003c/th\u003e\n      \u003cth\u003eFPT_adjust\u003c/th\u003e\n      \u003cth\u003eVND_volume_match\u003c/th\u003e\n      \u003cth\u003eFPT_volume_match\u003c/th\u003e\n      \u003cth\u003eVND_value_match\u003c/th\u003e\n      \u003cth\u003eFPT_value_match\u003c/th\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003edate\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n    \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2018-04-02\u003c/th\u003e\n      \u003ctd\u003eVND\u003c/td\u003e\n      \u003ctd\u003eFPT\u003c/td\u003e\n      \u003ctd\u003e29.80\u003c/td\u003e\n      \u003ctd\u003e61.7\u003c/td\u003e\n      \u003ctd\u003e29.10\u003c/td\u003e\n      \u003ctd\u003e61.0\u003c/td\u003e\n      \u003ctd\u003e29.10\u003c/td\u003e\n      \u003ctd\u003e61.5\u003c/td\u003e\n      \u003ctd\u003e29.55\u003c/td\u003e\n      \u003ctd\u003e61.5\u003c/td\u003e\n      \u003ctd\u003e6.52\u003c/td\u003e\n      \u003ctd\u003e21.98\u003c/td\u003e\n      \u003ctd\u003e2141980.0\u003c/td\u003e\n      \u003ctd\u003e2194820.0\u003c/td\u003e\n      \u003ctd\u003e6.320100e+10\u003c/td\u003e\n      \u003ctd\u003e1.347410e+11\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2018-03-30\u003c/th\u003e\n      \u003ctd\u003eVND\u003c/td\u003e\n      \u003ctd\u003eFPT\u003c/td\u003e\n      \u003ctd\u003e29.50\u003c/td\u003e\n      \u003ctd\u003e61.3\u003c/td\u003e\n      \u003ctd\u003e28.75\u003c/td\u003e\n      \u003ctd\u003e59.4\u003c/td\u003e\n      \u003ctd\u003e29.00\u003c/td\u003e\n      \u003ctd\u003e59.6\u003c/td\u003e\n      \u003ctd\u003e29.05\u003c/td\u003e\n      \u003ctd\u003e60.7\u003c/td\u003e\n      \u003ctd\u003e6.41\u003c/td\u003e\n      \u003ctd\u003e21.69\u003c/td\u003e\n      \u003ctd\u003e1688000.0\u003c/td\u003e\n      \u003ctd\u003e2434830.0\u003c/td\u003e\n      \u003ctd\u003e4.925300e+10\u003c/td\u003e\n      \u003ctd\u003e1.474940e+11\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2018-03-29\u003c/th\u003e\n      \u003ctd\u003eVND\u003c/td\u003e\n      \u003ctd\u003eFPT\u003c/td\u003e\n      \u003ctd\u003e29.00\u003c/td\u003e\n      \u003ctd\u003e59.7\u003c/td\u003e\n      \u003ctd\u003e28.25\u003c/td\u003e\n      \u003ctd\u003e59.0\u003c/td\u003e\n      \u003ctd\u003e28.50\u003c/td\u003e\n      \u003ctd\u003e59.4\u003c/td\u003e\n      \u003ctd\u003e29.00\u003c/td\u003e\n      \u003ctd\u003e59.5\u003c/td\u003e\n      \u003ctd\u003e6.40\u003c/td\u003e\n      \u003ctd\u003e21.26\u003c/td\u003e\n      \u003ctd\u003e1294580.0\u003c/td\u003e\n      \u003ctd\u003e827280.0\u003c/td\u003e\n      \u003ctd\u003e3.717900e+10\u003c/td\u003e\n      \u003ctd\u003e4.915900e+10\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2018-03-28\u003c/th\u003e\n      \u003ctd\u003eVND\u003c/td\u003e\n      \u003ctd\u003eFPT\u003c/td\u003e\n      \u003ctd\u003e28.65\u003c/td\u003e\n      \u003ctd\u003e59.4\u003c/td\u003e\n      \u003ctd\u003e27.60\u003c/td\u003e\n      \u003ctd\u003e58.8\u003c/td\u003e\n      \u003ctd\u003e27.75\u003c/td\u003e\n      \u003ctd\u003e59.1\u003c/td\u003e\n      \u003ctd\u003e28.65\u003c/td\u003e\n      \u003ctd\u003e58.9\u003c/td\u003e\n      \u003ctd\u003e6.32\u003c/td\u003e\n      \u003ctd\u003e21.05\u003c/td\u003e\n      \u003ctd\u003e1429910.0\u003c/td\u003e\n      \u003ctd\u003e660440.0\u003c/td\u003e\n      \u003ctd\u003e4.012300e+10\u003c/td\u003e\n      \u003ctd\u003e3.901500e+10\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2018-03-27\u003c/th\u003e\n      \u003ctd\u003eVND\u003c/td\u003e\n      \u003ctd\u003eFPT\u003c/td\u003e\n      \u003ctd\u003e28.55\u003c/td\u003e\n      \u003ctd\u003e60.1\u003c/td\u003e\n      \u003ctd\u003e27.75\u003c/td\u003e\n      \u003ctd\u003e59.0\u003c/td\u003e\n      \u003ctd\u003e28.55\u003c/td\u003e\n      \u003ctd\u003e59.9\u003c/td\u003e\n      \u003ctd\u003e28.00\u003c/td\u003e\n      \u003ctd\u003e59.5\u003c/td\u003e\n      \u003ctd\u003e6.18\u003c/td\u003e\n      \u003ctd\u003e21.26\u003c/td\u003e\n      \u003ctd\u003e2589800.0\u003c/td\u003e\n      \u003ctd\u003e993260.0\u003c/td\u003e\n      \u003ctd\u003e7.289400e+10\u003c/td\u003e\n      \u003ctd\u003e5.916600e+10\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n- Stack: It will add one more column named code to demonstrate the stock symbols.\n\n```{python}\nimport vnquant.data as dt\nloader = dt.DataLoader(['VND', 'FPT'], '2018-02-02','2018-04-02', table_style='stack')\ndata = loader.download()\ndata.head(4)\n```\n\u003ctable border=\"1\" class=\"dataframe\"\u003e\n  \u003cthead\u003e\n    \u003ctr style=\"text-align: right;\"\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003ecode\u003c/th\u003e\n      \u003cth\u003ehigh\u003c/th\u003e\n      \u003cth\u003elow\u003c/th\u003e\n      \u003cth\u003eopen\u003c/th\u003e\n      \u003cth\u003eclose\u003c/th\u003e\n      \u003cth\u003eadjust\u003c/th\u003e\n      \u003cth\u003evolume_match\u003c/th\u003e\n      \u003cth\u003evalue_match\u003c/th\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003edate\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n    \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2018-04-02\u003c/th\u003e\n      \u003ctd\u003eFPT\u003c/td\u003e\n      \u003ctd\u003e61.7\u003c/td\u003e\n      \u003ctd\u003e61.00\u003c/td\u003e\n      \u003ctd\u003e61.5\u003c/td\u003e\n      \u003ctd\u003e61.50\u003c/td\u003e\n      \u003ctd\u003e21.98\u003c/td\u003e\n      \u003ctd\u003e2194820.0\u003c/td\u003e\n      \u003ctd\u003e1.347410e+11\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2018-04-02\u003c/th\u003e\n      \u003ctd\u003eVND\u003c/td\u003e\n      \u003ctd\u003e29.8\u003c/td\u003e\n      \u003ctd\u003e29.10\u003c/td\u003e\n      \u003ctd\u003e29.1\u003c/td\u003e\n      \u003ctd\u003e29.55\u003c/td\u003e\n      \u003ctd\u003e6.52\u003c/td\u003e\n      \u003ctd\u003e2141980.0\u003c/td\u003e\n      \u003ctd\u003e6.320100e+10\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2018-03-30\u003c/th\u003e\n      \u003ctd\u003eFPT\u003c/td\u003e\n      \u003ctd\u003e61.3\u003c/td\u003e\n      \u003ctd\u003e59.40\u003c/td\u003e\n      \u003ctd\u003e59.6\u003c/td\u003e\n      \u003ctd\u003e60.70\u003c/td\u003e\n      \u003ctd\u003e21.69\u003c/td\u003e\n      \u003ctd\u003e2434830.0\u003c/td\u003e\n      \u003ctd\u003e1.474940e+11\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2018-03-30\u003c/th\u003e\n      \u003ctd\u003eVND\u003c/td\u003e\n      \u003ctd\u003e29.5\u003c/td\u003e\n      \u003ctd\u003e28.75\u003c/td\u003e\n      \u003ctd\u003e29.0\u003c/td\u003e\n      \u003ctd\u003e29.05\u003c/td\u003e\n      \u003ctd\u003e6.41\u003c/td\u003e\n      \u003ctd\u003e1688000.0\u003c/td\u003e\n      \u003ctd\u003e4.925300e+10\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n### 4.2. Clone more stocks\n\nWe need to set up symbols as a list.\n```{python}\nloader = dt.DataLoader(symbols=[\"VND\", \"VCB\"], start=\"2018-01-10\", end=\"2018-02-15\", minimal=True, data_source=\"cafe\")\ndata = loader.download()\ndata.head()\n```\n\u003ctable border=\"1\" class=\"dataframe\"\u003e\n  \u003cthead\u003e\n    \u003ctr\u003e\n      \u003cth\u003eAttributes\u003c/th\u003e\n      \u003cth colspan=\"2\" halign=\"left\"\u003ehigh\u003c/th\u003e\n      \u003cth colspan=\"2\" halign=\"left\"\u003elow\u003c/th\u003e\n      \u003cth colspan=\"2\" halign=\"left\"\u003eopen\u003c/th\u003e\n      \u003cth colspan=\"2\" halign=\"left\"\u003eclose\u003c/th\u003e\n      \u003cth colspan=\"2\" halign=\"left\"\u003eavg\u003c/th\u003e\n      \u003cth colspan=\"2\" halign=\"left\"\u003evolume\u003c/th\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003eSymbols\u003c/th\u003e\n      \u003cth\u003eVND\u003c/th\u003e\n      \u003cth\u003eVCB\u003c/th\u003e\n      \u003cth\u003eVND\u003c/th\u003e\n      \u003cth\u003eVCB\u003c/th\u003e\n      \u003cth\u003eVND\u003c/th\u003e\n      \u003cth\u003eVCB\u003c/th\u003e\n      \u003cth\u003eVND\u003c/th\u003e\n      \u003cth\u003eVCB\u003c/th\u003e\n      \u003cth\u003eVND\u003c/th\u003e\n      \u003cth\u003eVCB\u003c/th\u003e\n      \u003cth\u003eVND\u003c/th\u003e\n      \u003cth\u003eVCB\u003c/th\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003edate\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n    \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2018-01-10\u003c/th\u003e\n      \u003ctd\u003e27.75\u003c/td\u003e\n      \u003ctd\u003e59.2\u003c/td\u003e\n      \u003ctd\u003e27.10\u003c/td\u003e\n      \u003ctd\u003e57.3\u003c/td\u003e\n      \u003ctd\u003e27.55\u003c/td\u003e\n      \u003ctd\u003e58.3\u003c/td\u003e\n      \u003ctd\u003e27.50\u003c/td\u003e\n      \u003ctd\u003e58.0\u003c/td\u003e\n      \u003ctd\u003e27.52\u003c/td\u003e\n      \u003ctd\u003e58.08\u003c/td\u003e\n      \u003ctd\u003e1466780.0\u003c/td\u003e\n      \u003ctd\u003e2842830.0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2018-01-11\u003c/th\u003e\n      \u003ctd\u003e27.50\u003c/td\u003e\n      \u003ctd\u003e58.8\u003c/td\u003e\n      \u003ctd\u003e26.80\u003c/td\u003e\n      \u003ctd\u003e57.2\u003c/td\u003e\n      \u003ctd\u003e27.30\u003c/td\u003e\n      \u003ctd\u003e57.5\u003c/td\u003e\n      \u003ctd\u003e27.20\u003c/td\u003e\n      \u003ctd\u003e58.8\u003c/td\u003e\n      \u003ctd\u003e27.21\u003c/td\u003e\n      \u003ctd\u003e58.04\u003c/td\u003e\n      \u003ctd\u003e1260720.0\u003c/td\u003e\n      \u003ctd\u003e1766240.0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2018-01-12\u003c/th\u003e\n      \u003ctd\u003e28.20\u003c/td\u003e\n      \u003ctd\u003e59.4\u003c/td\u003e\n      \u003ctd\u003e27.35\u003c/td\u003e\n      \u003ctd\u003e58.0\u003c/td\u003e\n      \u003ctd\u003e27.45\u003c/td\u003e\n      \u003ctd\u003e58.8\u003c/td\u003e\n      \u003ctd\u003e27.60\u003c/td\u003e\n      \u003ctd\u003e58.0\u003c/td\u003e\n      \u003ctd\u003e27.76\u003c/td\u003e\n      \u003ctd\u003e58.63\u003c/td\u003e\n      \u003ctd\u003e1730170.0\u003c/td\u003e\n      \u003ctd\u003e2525840.0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2018-01-15\u003c/th\u003e\n      \u003ctd\u003e28.40\u003c/td\u003e\n      \u003ctd\u003e60.0\u003c/td\u003e\n      \u003ctd\u003e27.35\u003c/td\u003e\n      \u003ctd\u003e57.0\u003c/td\u003e\n      \u003ctd\u003e27.60\u003c/td\u003e\n      \u003ctd\u003e58.0\u003c/td\u003e\n      \u003ctd\u003e28.25\u003c/td\u003e\n      \u003ctd\u003e60.0\u003c/td\u003e\n      \u003ctd\u003e28.11\u003c/td\u003e\n      \u003ctd\u003e58.76\u003c/td\u003e\n      \u003ctd\u003e1273740.0\u003c/td\u003e\n      \u003ctd\u003e2217420.0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2018-01-16\u003c/th\u003e\n      \u003ctd\u003e28.40\u003c/td\u003e\n      \u003ctd\u003e60.3\u003c/td\u003e\n      \u003ctd\u003e27.90\u003c/td\u003e\n      \u003ctd\u003e58.8\u003c/td\u003e\n      \u003ctd\u003e28.10\u003c/td\u003e\n      \u003ctd\u003e59.3\u003c/td\u003e\n      \u003ctd\u003e28.25\u003c/td\u003e\n      \u003ctd\u003e60.0\u003c/td\u003e\n      \u003ctd\u003e28.14\u003c/td\u003e\n      \u003ctd\u003e59.64\u003c/td\u003e\n      \u003ctd\u003e1163350.0\u003c/td\u003e\n      \u003ctd\u003e2218380.0\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n### 4.3. Clone full information:\nTo get more the others information about `volume` and `value` beside basical fields, we need to declare `minimal=False` (default `True`).\n```{python}\nloader = dt.DataLoader(symbols=[\"VND\"], start=\"2018-01-10\", end=\"2018-02-15\", minimal=False)\ndata = loader.download()\ndata.head()\n```\n\u003ctable border=\"1\" class=\"dataframe\"\u003e\n  \u003cthead\u003e\n    \u003ctr\u003e\n      \u003cth\u003eAttributes\u003c/th\u003e\n      \u003cth\u003echange_perc1\u003c/th\u003e\n      \u003cth\u003echange_perc2\u003c/th\u003e\n      \u003cth\u003eopen\u003c/th\u003e\n      \u003cth\u003ehigh\u003c/th\u003e\n      \u003cth\u003elow\u003c/th\u003e\n      \u003cth\u003eclose\u003c/th\u003e\n      \u003cth\u003eavg\u003c/th\u003e\n      \u003cth\u003evolume_match\u003c/th\u003e\n      \u003cth\u003evolume_reconcile\u003c/th\u003e\n      \u003cth\u003evolume\u003c/th\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003eSymbols\u003c/th\u003e\n      \u003cth\u003eVND\u003c/th\u003e\n      \u003cth\u003eVND\u003c/th\u003e\n      \u003cth\u003eVND\u003c/th\u003e\n      \u003cth\u003eVND\u003c/th\u003e\n      \u003cth\u003eVND\u003c/th\u003e\n      \u003cth\u003eVND\u003c/th\u003e\n      \u003cth\u003eVND\u003c/th\u003e\n      \u003cth\u003eVND\u003c/th\u003e\n      \u003cth\u003eVND\u003c/th\u003e\n      \u003cth\u003eVND\u003c/th\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003edate\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n    \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2018-01-10\u003c/th\u003e\n      \u003ctd\u003e0.00\u003c/td\u003e\n      \u003ctd\u003e0.000000\u003c/td\u003e\n      \u003ctd\u003e27.55\u003c/td\u003e\n      \u003ctd\u003e27.75\u003c/td\u003e\n      \u003ctd\u003e27.10\u003c/td\u003e\n      \u003ctd\u003e27.50\u003c/td\u003e\n      \u003ctd\u003e27.52\u003c/td\u003e\n      \u003ctd\u003e1382780.0\u003c/td\u003e\n      \u003ctd\u003e84000.0\u003c/td\u003e\n      \u003ctd\u003e1466780.0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2018-01-11\u003c/th\u003e\n      \u003ctd\u003e-0.30\u003c/td\u003e\n      \u003ctd\u003e0.010909\u003c/td\u003e\n      \u003ctd\u003e27.30\u003c/td\u003e\n      \u003ctd\u003e27.50\u003c/td\u003e\n      \u003ctd\u003e26.80\u003c/td\u003e\n      \u003ctd\u003e27.20\u003c/td\u003e\n      \u003ctd\u003e27.21\u003c/td\u003e\n      \u003ctd\u003e1260720.0\u003c/td\u003e\n      \u003ctd\u003e0.0\u003c/td\u003e\n      \u003ctd\u003e1260720.0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2018-01-12\u003c/th\u003e\n      \u003ctd\u003e0.40\u003c/td\u003e\n      \u003ctd\u003e0.014706\u003c/td\u003e\n      \u003ctd\u003e27.45\u003c/td\u003e\n      \u003ctd\u003e28.20\u003c/td\u003e\n      \u003ctd\u003e27.35\u003c/td\u003e\n      \u003ctd\u003e27.60\u003c/td\u003e\n      \u003ctd\u003e27.76\u003c/td\u003e\n      \u003ctd\u003e1730170.0\u003c/td\u003e\n      \u003ctd\u003e0.0\u003c/td\u003e\n      \u003ctd\u003e1730170.0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2018-01-15\u003c/th\u003e\n      \u003ctd\u003e0.65\u003c/td\u003e\n      \u003ctd\u003e0.023551\u003c/td\u003e\n      \u003ctd\u003e27.60\u003c/td\u003e\n      \u003ctd\u003e28.40\u003c/td\u003e\n      \u003ctd\u003e27.35\u003c/td\u003e\n      \u003ctd\u003e28.25\u003c/td\u003e\n      \u003ctd\u003e28.11\u003c/td\u003e\n      \u003ctd\u003e1273740.0\u003c/td\u003e\n      \u003ctd\u003e0.0\u003c/td\u003e\n      \u003ctd\u003e1273740.0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2018-01-16\u003c/th\u003e\n      \u003ctd\u003e0.00\u003c/td\u003e\n      \u003ctd\u003e0.000000\u003c/td\u003e\n      \u003ctd\u003e28.10\u003c/td\u003e\n      \u003ctd\u003e28.40\u003c/td\u003e\n      \u003ctd\u003e27.90\u003c/td\u003e\n      \u003ctd\u003e28.25\u003c/td\u003e\n      \u003ctd\u003e28.14\u003c/td\u003e\n      \u003ctd\u003e1077350.0\u003c/td\u003e\n      \u003ctd\u003e86000.0\u003c/td\u003e\n      \u003ctd\u003e1163350.0\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\nThrough this project, i hope you make your work being more covinient and easy by applying them. Though try hard, but there are many drawback,\nkindly comment and send me feed back to implement my project.\n\n# 5. Get finance, cashflow, business and basic index reports (0.0.3)\n\nIn version 0.0.3 you can download finance, cashflow, business and basic index reports with class `vnquant.data.FinanceLoader`. Currently, we only support you clone one symbol per each time. To use this class you import as bellow:\n\n```\nimport vnquant.data as dt\nloader = dt.FinanceLoader(symbol = 'VND', \n                          start = '2019-06-02',\n                          end = '2021-12-31')\n```\n\n**Arguments**\n* `symbol`: a string indicates the stock name. The stock symbol in regular includes 3 upper case letters.\n* `start`: start date time with format `yyyy-mm-dd`.\n* `end`: end date time with format `yyyy-mm-dd`.\n\n## 5.1. Get finance report\n\nFunction `get_finan_report()` will help you get these finance indexes. For example:\n\n```\nimport vnquant.data as dt\nloader = dt.FinanceLoader('VND', '2019-06-02','2021-12-31')\ndata_finan = loader.get_finan_report()\ndata_finan.head()\n```\n\u003ctable border=\"1\" class=\"dataframe\"\u003e\n  \u003cthead\u003e\n    \u003ctr style=\"text-align: right;\"\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e2021-06\u003c/th\u003e\n      \u003cth\u003e2021-03\u003c/th\u003e\n      \u003cth\u003e2020-12\u003c/th\u003e\n      \u003cth\u003e2020-09\u003c/th\u003e\n      \u003cth\u003e2020-06\u003c/th\u003e\n      \u003cth\u003e2020-03\u003c/th\u003e\n      \u003cth\u003e2019-12\u003c/th\u003e\n      \u003cth\u003e2019-09\u003c/th\u003e\n      \u003cth\u003e2019-06\u003c/th\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003eindex\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n    \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003cth\u003eTài sản ngắn hạn\u003c/th\u003e\n      \u003ctd\u003e21351441834807\u003c/td\u003e\n      \u003ctd\u003e17347112129802\u003c/td\u003e\n      \u003ctd\u003e12793253609747\u003c/td\u003e\n      \u003ctd\u003e11585099253268\u003c/td\u003e\n      \u003ctd\u003e11479005695043\u003c/td\u003e\n      \u003ctd\u003e10851511570130\u003c/td\u003e\n      \u003ctd\u003e11239350733660\u003c/td\u003e\n      \u003ctd\u003e11059560981795\u003c/td\u003e\n      \u003ctd\u003e10590145635691\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003eTài sản tài chính ngắn hạn\u003c/th\u003e\n      \u003ctd\u003e21339567743512\u003c/td\u003e\n      \u003ctd\u003e17332349291032\u003c/td\u003e\n      \u003ctd\u003e12770938291296\u003c/td\u003e\n      \u003ctd\u003e11570420145910\u003c/td\u003e\n      \u003ctd\u003e11465268994352\u003c/td\u003e\n      \u003ctd\u003e10826493556341\u003c/td\u003e\n      \u003ctd\u003e11222476803929\u003c/td\u003e\n      \u003ctd\u003e11036102039564\u003c/td\u003e\n      \u003ctd\u003e10550582164047\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003eTiền và các khoản tương đương tiền\u003c/th\u003e\n      \u003ctd\u003e1153684350307\u003c/td\u003e\n      \u003ctd\u003e590663521250\u003c/td\u003e\n      \u003ctd\u003e595786368281\u003c/td\u003e\n      \u003ctd\u003e175314778804\u003c/td\u003e\n      \u003ctd\u003e185532378242\u003c/td\u003e\n      \u003ctd\u003e368330609085\u003c/td\u003e\n      \u003ctd\u003e613548205346\u003c/td\u003e\n      \u003ctd\u003e298144380199\u003c/td\u003e\n      \u003ctd\u003e413837038988\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003eTiền\u003c/th\u003e\n      \u003ctd\u003e778884350307\u003c/td\u003e\n      \u003ctd\u003e460708745512\u003c/td\u003e\n      \u003ctd\u003e509970753138\u003c/td\u003e\n      \u003ctd\u003e141314778804\u003c/td\u003e\n      \u003ctd\u003e148847077857\u003c/td\u003e\n      \u003ctd\u003e346330609085\u003c/td\u003e\n      \u003ctd\u003e611548205346\u003c/td\u003e\n      \u003ctd\u003e158744380199\u003c/td\u003e\n      \u003ctd\u003e252137038988\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003eTiền gửi của người đầu tư về giao dịch chứng khoán\u003c/th\u003e\n      \u003ctd\u003e0\u003c/td\u003e\n      \u003ctd\u003e0\u003c/td\u003e\n      \u003ctd\u003e0\u003c/td\u003e\n      \u003ctd\u003e0\u003c/td\u003e\n      \u003ctd\u003e0\u003c/td\u003e\n      \u003ctd\u003e0\u003c/td\u003e\n      \u003ctd\u003e0\u003c/td\u003e\n      \u003ctd\u003e0\u003c/td\u003e\n      \u003ctd\u003e0\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n## 5.2. Get business report\n\nTo get business report of each symbol, you use `get_business_report()` function as below:\n\n```\nimport vnquant.data as dt\nloader = dt.FinanceLoader('VND', '2019-06-02','2021-12-31', data_source='VND', minimal=True)\ndata_bus = loader.get_business_report()\ndata_bus.head()\n```\n\n\u003ctable border=\"1\" class=\"dataframe\"\u003e\n  \u003cthead\u003e\n    \u003ctr style=\"text-align: right;\"\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e2021-06\u003c/th\u003e\n      \u003cth\u003e2021-03\u003c/th\u003e\n      \u003cth\u003e2020-12\u003c/th\u003e\n      \u003cth\u003e2020-09\u003c/th\u003e\n      \u003cth\u003e2020-06\u003c/th\u003e\n      \u003cth\u003e2020-03\u003c/th\u003e\n      \u003cth\u003e2019-12\u003c/th\u003e\n      \u003cth\u003e2019-09\u003c/th\u003e\n      \u003cth\u003e2019-06\u003c/th\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003eindex\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n    \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003cth\u003eLãi từ các tài sản tài chính ghi nhận thông qua lãi/lỗ ( FVTPL)\u003c/th\u003e\n      \u003ctd\u003e384484114460\u003c/td\u003e\n      \u003ctd\u003e446903481873\u003c/td\u003e\n      \u003ctd\u003e348445083732\u003c/td\u003e\n      \u003ctd\u003e177846582328\u003c/td\u003e\n      \u003ctd\u003e126873424297\u003c/td\u003e\n      \u003ctd\u003e112699410946\u003c/td\u003e\n      \u003ctd\u003e69471930133\u003c/td\u003e\n      \u003ctd\u003e100788177914\u003c/td\u003e\n      \u003ctd\u003e96112568053\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003eLãi bán các tài sản tài chính PVTPL\u003c/th\u003e\n      \u003ctd\u003e187329856826\u003c/td\u003e\n      \u003ctd\u003e258061271830\u003c/td\u003e\n      \u003ctd\u003e321502700913\u003c/td\u003e\n      \u003ctd\u003e126020773731\u003c/td\u003e\n      \u003ctd\u003e120870780627\u003c/td\u003e\n      \u003ctd\u003e121996865833\u003c/td\u003e\n      \u003ctd\u003e77348559746\u003c/td\u003e\n      \u003ctd\u003e70332267851\u003c/td\u003e\n      \u003ctd\u003e62535937574\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003eChênh lệch tăng đánh giá lại các TSTC thông qua lãi/lỗ\u003c/th\u003e\n      \u003ctd\u003e192578271638\u003c/td\u003e\n      \u003ctd\u003e188425144043\u003c/td\u003e\n      \u003ctd\u003e-8160509655\u003c/td\u003e\n      \u003ctd\u003e33713693597\u003c/td\u003e\n      \u003ctd\u003e-848309517\u003c/td\u003e\n      \u003ctd\u003e-10832424389\u003c/td\u003e\n      \u003ctd\u003e-13633761575\u003c/td\u003e\n      \u003ctd\u003e28457177453\u003c/td\u003e\n      \u003ctd\u003e15139720013\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003eCổ tức, tiền lãi phát sinh từ tài sản tài chính PVTPL\u003c/th\u003e\n      \u003ctd\u003e4575985996\u003c/td\u003e\n      \u003ctd\u003e417066000\u003c/td\u003e\n      \u003ctd\u003e35102892474\u003c/td\u003e\n      \u003ctd\u003e18112115000\u003c/td\u003e\n      \u003ctd\u003e6850953187\u003c/td\u003e\n      \u003ctd\u003e1534969502\u003c/td\u003e\n      \u003ctd\u003e5757131962\u003c/td\u003e\n      \u003ctd\u003e1998732610\u003c/td\u003e\n      \u003ctd\u003e18436910466\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003eLãi từ các khoản đầu tư nắm giữ đến ngày đáo hạn\u003c/th\u003e\n      \u003ctd\u003e24948288940\u003c/td\u003e\n      \u003ctd\u003e108779296202\u003c/td\u003e\n      \u003ctd\u003e98753552528\u003c/td\u003e\n      \u003ctd\u003e84000482631\u003c/td\u003e\n      \u003ctd\u003e84108399683\u003c/td\u003e\n      \u003ctd\u003e105941161289\u003c/td\u003e\n      \u003ctd\u003e107029644615\u003c/td\u003e\n      \u003ctd\u003e100310037665\u003c/td\u003e\n      \u003ctd\u003e120061106620\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n\n## 5.3. Get cashflow report\n\nFunction `get_cashflow_report()` shall support to clone cashflow report:\n\n```\nimport vnquant.data as dt\nloader = dt.FinanceLoader('VND', '2019-06-02','2021-12-31', data_source='VND', minimal=True)\ndata_cash = loader.get_cashflow_report()\ndata_cash.head()\n```\n\n\u003ctable border=\"1\" class=\"dataframe\"\u003e\n  \u003cthead\u003e\n    \u003ctr style=\"text-align: right;\"\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e2021-06\u003c/th\u003e\n      \u003cth\u003e2021-03\u003c/th\u003e\n      \u003cth\u003e2020-09\u003c/th\u003e\n      \u003cth\u003e2020-06\u003c/th\u003e\n      \u003cth\u003e2020-03\u003c/th\u003e\n      \u003cth\u003e2019-12\u003c/th\u003e\n      \u003cth\u003e2019-09\u003c/th\u003e\n      \u003cth\u003e2019-06\u003c/th\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003eindex\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n    \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003cth\u003eĐiều chỉnh cho các khoản\u003c/th\u003e\n      \u003ctd\u003e117772457799\u003c/td\u003e\n      \u003ctd\u003e102102918502\u003c/td\u003e\n      \u003ctd\u003e39938806717\u003c/td\u003e\n      \u003ctd\u003e-2179656198\u003c/td\u003e\n      \u003ctd\u003e189614451308\u003c/td\u003e\n      \u003ctd\u003e77119446501\u003c/td\u003e\n      \u003ctd\u003e115901816119\u003c/td\u003e\n      \u003ctd\u003e310400347299\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003eChi phí khấu hao tài sản cố định\u003c/th\u003e\n      \u003ctd\u003e7121178573\u003c/td\u003e\n      \u003ctd\u003e5117724702\u003c/td\u003e\n      \u003ctd\u003e5200320730\u003c/td\u003e\n      \u003ctd\u003e4817922370\u003c/td\u003e\n      \u003ctd\u003e5082314726\u003c/td\u003e\n      \u003ctd\u003e4956658731\u003c/td\u003e\n      \u003ctd\u003e5024428635\u003c/td\u003e\n      \u003ctd\u003e5218835903\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003ePhân bổ lợi thế thương mại\u003c/th\u003e\n      \u003ctd\u003e0\u003c/td\u003e\n      \u003ctd\u003e0\u003c/td\u003e\n      \u003ctd\u003e0\u003c/td\u003e\n      \u003ctd\u003e0\u003c/td\u003e\n      \u003ctd\u003e0\u003c/td\u003e\n      \u003ctd\u003e0\u003c/td\u003e\n      \u003ctd\u003e0\u003c/td\u003e\n      \u003ctd\u003e0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003eDự phòng giảm giá các khoản đầu tư ngắn hạn, dài hạn\u003c/th\u003e\n      \u003ctd\u003e15351994938\u003c/td\u003e\n      \u003ctd\u003e7673582615\u003c/td\u003e\n      \u003ctd\u003e-50406427024\u003c/td\u003e\n      \u003ctd\u003e-97302010585\u003c/td\u003e\n      \u003ctd\u003e74769599906\u003c/td\u003e\n      \u003ctd\u003e-47666085953\u003c/td\u003e\n      \u003ctd\u003e-1958363587\u003c/td\u003e\n      \u003ctd\u003e194803059759\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003eLãi, lỗ chênh lệch tỷ giá hối đoái chưa thực hiện\u003c/th\u003e\n      \u003ctd\u003e2291430861\u003c/td\u003e\n      \u003ctd\u003e0\u003c/td\u003e\n      \u003ctd\u003e-855383375\u003c/td\u003e\n      \u003ctd\u003e-855383375\u003c/td\u003e\n      \u003ctd\u003e0\u003c/td\u003e\n      \u003ctd\u003e-535741671\u003c/td\u003e\n      \u003ctd\u003e-136318575\u003c/td\u003e\n      \u003ctd\u003e136318575\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n## 5.4. Get basic index report\n\nThis function provide to you basic and important index of each symbol such as: `ROA, ROE, Net Profit Marget, Net Revenue Growth, Profit After tax Growth`\n\n```\nimport vnquant.data as dt\nloader = dt.FinanceLoader('VND', '2019-06-02','2021-12-31', data_source='VND', minimal=True)\ndata_basic = loader.get_basic_index()\ndata_basic.head()\n```\n\u003ctable border=\"1\" class=\"dataframe\"\u003e\n  \u003cthead\u003e\n    \u003ctr style=\"text-align: right;\"\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e2020-12\u003c/th\u003e\n      \u003cth\u003e2019-12\u003c/th\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003eindex\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n    \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003cth\u003eProfit After Tax Growth (YoY)\u003c/th\u003e\n      \u003ctd\u003e0.810405\u003c/td\u003e\n      \u003ctd\u003e0.025519\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003eNet Revenue Growth (YoY)\u003c/th\u003e\n      \u003ctd\u003e0.421240\u003c/td\u003e\n      \u003ctd\u003e-0.023797\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003eNet Profit Margin (Yr)\u003c/th\u003e\n      \u003ctd\u003e0.324553\u003c/td\u003e\n      \u003ctd\u003e0.254787\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003eROE last 4 quarters\u003c/th\u003e\n      \u003ctd\u003e0.195974\u003c/td\u003e\n      \u003ctd\u003e0.123374\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003eROA last 4 quarters\u003c/th\u003e\n      \u003ctd\u003e0.053917\u003c/td\u003e\n      \u003ctd\u003e0.033224\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphamdinhkhanh%2Fvnquant","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fphamdinhkhanh%2Fvnquant","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphamdinhkhanh%2Fvnquant/lists"}