https://github.com/ankitwasankar/mftool-java
Java Mutual Fund Library
https://github.com/ankitwasankar/mftool-java
java mutual-fund-api mutual-funds
Last synced: 12 days ago
JSON representation
Java Mutual Fund Library
- Host: GitHub
- URL: https://github.com/ankitwasankar/mftool-java
- Owner: ankitwasankar
- License: mit
- Created: 2021-07-13T09:09:28.000Z (almost 4 years ago)
- Default Branch: master
- Last Pushed: 2023-11-06T16:26:10.000Z (over 1 year ago)
- Last Synced: 2024-05-03T00:34:00.624Z (12 months ago)
- Topics: java, mutual-fund-api, mutual-funds
- Language: Java
- Homepage:
- Size: 199 KB
- Stars: 41
- Watchers: 4
- Forks: 34
- Open Issues: 1
-
Metadata Files:
- Readme: readme.md
- License: license.md
Awesome Lists containing this project
- fucking-awesome-readme - ankitwasankar/mftool-java - Project logo with a short display of what can be achieved with it, TOC for easy navigation, important badges, clean installation guide, and multiple code snippets showing how to use the functionality. (Examples)
- awesome-readme - ankitwasankar/mftool-java - Project logo with a short display of what can be achieved with it, TOC for easy navigation, important badges, clean installation guide, and multiple code snippets showing how to use the functionality. (Examples)
README
![]()
This repository contains the MF TOOL - JAVA source code.
MF TOOL - JAVA is a Java library developed to ease the process of working with Indian Mutual Funds. It's powerful, actively maintained and easy to use.
Introduction •
Installation •
Usage •
Documentation •
Issue?# Introduction
This mf-tool java library provides simple APIs/functions/methods to work with Indian Mutual Funds. You can:- Fetch a list of all mutual fund schemes.
- Fetch a list of matching mutual fund schemes based on provided keywords.
- Fetch historic or current NAV (Net Asset Value) for a fund.
- Fetch details for a fund and fund house.
- Integrate this with any Java project.## Installation
##### Maven
```com.webencyclop.core
mftool-java
1.0.4```
##### Graddle
```
implementation 'com.webencyclop.core:mftool-java:1.0.4'
```
For other dependency management tool, please visit
https://search.maven.org/artifact/com.webencyclop.core/mftool-java## Usage
Sample code that shows how to use the library:
```
MFTool tool = new MFTool();
tool.matchingScheme("Axis"); //-- get a list of all schemes with Axis in its name
tool.getCurrentNav("120503"); //-- get current nav
```
The other available methods are described in the next section.## Documentation
Multiple methods provide ways to work with mutual funds and related data. Those are listed below in detail.### 1. How to initialize an MFTool object
```
MFTool tool = new MFTool();
```
This will create the object for you, but it's recommended that you create this object as a singleton object.
The object uses a caching mechanism, which under-the-hood caches the values of historic nav and other static information to improve the performance.
If you are using the Spring project, you can create the bean in ``@Configuration`` configuration class.
```
@Configuration
public class MFToolConfig{
@Bean
public MFTool initializeMfTool() {
MFTool tool = new MFTool();
return tool;
}
}
```
You can use MFTool in other services using ``@Inject`` or ``@autowired`` annotation.
```
@Service
public class MyService {
@Autowired
private MFTool tool;public void getCurrentNav(String scheme) {
BigDecimal nav = tool.getCurrentNav(scheme);
}
}
```### 2. How to fetch a list of all mutual fund schemes
```
@Service
public class MyService {
@Autowired
private MFTool tool;public List fetchListOfAllMutualFundSchemes() {
List list = tool.allSchemes();
}
}
```### 3. How to fetch a list of all schemes matching a keyword
```
@Service
public class MyService {
@Autowired
private MFTool tool;public List getCurrentNav(String schemeCode) {
List list = tool.matchingScheme("Axis");
// This will fetch MF schemes that have "Axis" in the name.
}
}
```### 4. Current NAV for the mutual fund scheme
An example schemeCode is 120503 (_Axis Long Term Equity Fund - Direct Plan - Growth Option_).
When we fetch a list of mutual funds, we get the scheme-name, and its corresponding schemeCode.
A scheme code uniquely identifies the mutual fund scheme.
```
@Service
public class MyService {
@Autowired
private MFTool tool;public List fetchListSchemes(String schemeCode) {
BigDecimal nav = tool.getCurrentNav(schemeCode);
}
}
```### 5. NAV on specific date for the scheme
LocalDate is used to define the date. For example:
``LocalDate date = LocalDate.parse("2021-07-13");``
```
@Service
public class MyService {
@Autowired
private MFTool tool;public List getNavOnDate(String schemeCode, LocalDate date) {
BigDecimal nav = tool.getNavFor("120503", date);
}
}
```### 6. List of historic NAV for the scheme
This method provides a list of all the NAVs for the given scheme.
```
@Service
public class MyService {
@Autowired
private MFTool tool;public List getNavOnDate(String schemeCode) {
List list = tool.historicNavForScheme(schemeCode);
}
}
```## Issue
This repository is maintained actively, so if you face any issue please raise an issue.Liked the work ?
Give the repository a star :-)