finmarketpy | Python library for backtesting trading strategies | Cryptocurrency library

 by   cuemacro Python Version: 0.11.14 License: Apache-2.0

kandi X-RAY | finmarketpy Summary

kandi X-RAY | finmarketpy Summary

finmarketpy is a Python library typically used in Blockchain, Cryptocurrency applications. finmarketpy has no bugs, it has no vulnerabilities, it has build file available, it has a Permissive License and it has medium support. You can install using 'pip install finmarketpy' or download it from GitHub, PyPI.

finmarketpy is a Python based library that enables you to analyze market data and also to backtest trading strategies using a simple to use API, which has prebuilt templates for you to define backtest. Included in the library.
Support
    Quality
      Security
        License
          Reuse

            kandi-support Support

              finmarketpy has a medium active ecosystem.
              It has 3093 star(s) with 482 fork(s). There are 216 watchers for this library.
              There were 2 major release(s) in the last 12 months.
              There are 24 open issues and 3 have been closed. There are no pull requests.
              It has a neutral sentiment in the developer community.
              The latest version of finmarketpy is 0.11.14

            kandi-Quality Quality

              finmarketpy has 0 bugs and 0 code smells.

            kandi-Security Security

              finmarketpy has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.
              finmarketpy code analysis shows 0 unresolved vulnerabilities.
              There are 0 security hotspots that need review.

            kandi-License License

              finmarketpy is licensed under the Apache-2.0 License. This license is Permissive.
              Permissive licenses have the least restrictions, and you can use them in most projects.

            kandi-Reuse Reuse

              finmarketpy releases are available to install and integrate.
              Deployable package is available in PyPI.
              Build file is available. You can build the component from source.
              Installation instructions, examples and code snippets are available.
              finmarketpy saves you 1696 person hours of effort in developing the same functionality from scratch.
              It has 6355 lines of code, 418 functions and 58 files.
              It has high code complexity. Code complexity directly impacts maintainability of the code.

            Top functions reviewed by kandi - BETA

            kandi has reviewed finmarketpy and discovered the below as its top functions. This is intended to give you an instant insight into finmarketpy implemented functionality, and help decide if they suit your requirements.
            • Construct the total return index for the given cross_fx
            • Compute a price for a given cross - product
            • Calculates the volatility for a strike expiry date
            • Returns the divisor for the given currency
            • Find a FinDate object from a given timestamp
            • Constructs the total return index for a given portfolio
            • Calculate forward delivery dates
            • Generates a price instrument for a given cross - section
            • Create a tech indicator
            • Creates a custom tech index
            • Applies a cross - correlation function to the total return index
            • Extract the vol surface of a list of dates
            • Calculates the volatility for a strike
            • Calculates the bus day of the month day of the month
            • Plot a single variable regression
            • Load assets
            • Load asset data
            • Builds a volume surface
            • Calculate implied depo
            • Calculate implied implied volume
            • Extracts the surface pressure curve
            • Compute a price instrument
            • Calculate intra - event times over a custom event
            • Plot a line chart
            • Calculates the realized volume
            • Generate a price instrument for a given curve
            • Calculate the volatility for a given portfolio
            Get all kandi verified functions for this library.

            finmarketpy Key Features

            No Key Features are available at this moment for finmarketpy.

            finmarketpy Examples and Code Snippets

            No Code Snippets are available at this moment for finmarketpy.

            Community Discussions

            QUESTION

            Why on printing I get value of null from API call in Loop
            Asked 2022-Apr-16 at 03:06

            COIN LIST is an array of crypto coins(["BTCUSDT",...]). I try to get the price using getPriceAction and RSI from getRSI and these two functions are working when I try to console DATA. But when I try to print the response after the completion of the loop. It prints the empty array and the length is 0 of this array. I want to store the DATA object (consisting of SYMBOL, closing price and RSI) as an element in the response array

            ...

            ANSWER

            Answered 2022-Apr-16 at 02:43

            After the completion of the loop, the promises didn't get resolved yet, that's why it print an empty array. One way to achieve what you need is using await for(...), or wait for all promises to be resolved, and then print the results.

            Source https://stackoverflow.com/questions/71890607

            QUESTION

            How to connect Metamask to Web3J (java)
            Asked 2022-Apr-03 at 03:03

            I am trying to connect my Metamask wallet to my Java Spring-Boot backend. I was trying to follow the example here. I am able to autogenerate the nonce and receive the wallet ID without a problem. I am trying to verify the signed nonce from the Wallet on the server to make sure that the sender is indeed who they say they are. However, I am unable to find any documentation on Web3J to do this.

            Is web3j not the right package to use for this? The example shows how to do the verification on NodeJS based on javascript but I don't find any example on how to do this on Java.

            My understanding is that the public key is the wallet ID itself and that the message is the nonce signed by the private key of the wallet which is not shared for obvious reasons. According to this, I would need to "decrypt" the message using the public key and see if the decrypted message is same as the nonce that the backend sent to Metamask to sign. Is this correct?

            Here is my code to create and send the nonce to UI:

            ...

            ANSWER

            Answered 2022-Apr-03 at 03:03

            I was able to figure this out finally. My initial understanding was incorrect. I was not supposed to attempt to decrypt the message to retrieve the nonce. Rather I needed to use the nonce to see if I can retrieve the public key of the private key used to sign the message and see if that public key retrieved matches the wallet ID.

            The algorithm:
            1. Receive the signed message and the wallet ID from the client
            2. Retrieve the nonce sent to the client with the same wallet ID
            3. Generate the hash of the nonce
            4. Generate the signature data from the message. This basically retrieves the V, R and S and. R and S are the outputs of the ECDSA Signature and V is the Recovery ID.
            5. Using the ECDSA Signature and Hash of the Nonce, generate the possible public Key that was used to sign the message. At max, one will be able to generate 4 possible public keys for this message.
            6. Check if any of the generated keys match public wallet ID that the client sent. If it matches, then we have a positive match. Generate the JWT and respond to the client. If not, we know that the nonce was not signed by the Metamask wallet we expected.
            The Code:

            Here is a sample code for UI (JavaScript and HTML):

            Source https://stackoverflow.com/questions/71630833

            QUESTION

            Binance API: status: 400, error code: -1013, error message: Filter failure: PRICE_FILTER
            Asked 2022-Mar-16 at 20:14

            status: 400, error code: -1013, error message: Filter failure: PRICE_FILTER

            I am trying to create a new order to sell all SCRT that are on my account and I cannot figure out what is the problem.

            The filters for SCRTBUSD are:

            ...

            ANSWER

            Answered 2022-Mar-16 at 20:14

            tickSize for SCRTBUSD is: 0.001.

            Therefore, you have to round the quantity to the next 0.001. For example:

            Source https://stackoverflow.com/questions/71499941

            QUESTION

            Solana: Parse Token Data
            Asked 2022-Mar-15 at 03:45

            How does one parse the data in an SPL token account? It contains a binary blob and I'd like to get the token type and number of tokens.

            An acceptable language is solana-cli, web3.js, or solana.py. I'm looking for any solution.

            ...

            ANSWER

            Answered 2022-Mar-15 at 03:45

            The RPC give a great way to parse the data by default. You can use getParsedAccountInfo in web3.js.

            Let's take the token account at 9xqnnfeonbsEGSPgF5Wd7bf9RqXy4KP22bdaGmZbHGwp

            Source https://stackoverflow.com/questions/71471948

            QUESTION

            Pinescript security function for colour boolean with mutable variable
            Asked 2022-Mar-14 at 12:47

            I'm having issues with plotting the Coral Trend indicator colour code, into my 15min 21EMA security function. Since the Coral Trend indicator colour code has a mutable variable, I cannot resolve it. This is next level coding for me, haha.

            I will post

            • the code
            • a screenshot
            • the problem
            • the solution I tried

            The code:

            ...

            ANSWER

            Answered 2022-Feb-28 at 20:23

            You have to use the request.security() function in global scope, and only then use it.

            You can do something like this:

            Source https://stackoverflow.com/questions/71299052

            QUESTION

            How do you close a websocket connection if the API page is invalid
            Asked 2022-Feb-26 at 21:50

            I am working with the Binance API. I am connecting to their API and trying to assess if Binance has a list of assets on their platform or not. The list of assets is seen below:

            ...

            ANSWER

            Answered 2021-Sep-21 at 14:37

            QUESTION

            What token type is ETH on the Polygon network?
            Asked 2022-Feb-11 at 10:55

            I am looking to work with ETH tokens on the Polygon network. My aim is to build a simple payment splitting application. Primarily to split royalties from Opensea. The issue I have come across is that Opensea doesn't seem to pay royalties in Matic token, instead, royalties are paid in ETH (plus other tokens).

            I understand how to handle the network native, Matic, as well as ERC20 tokens. My main question is, what token type is ETH on the Polygon network? Is it an ERC20 (or similar) used to represent ETH on Polygon or does it have a special token type and privileges by virtue of Polygon being a layer two solution for Ethereum?

            I'm sorry if this is a basic question, I tried to find answers online but because of the keywords all of the results were about bridging ETH to Polygon.

            ...

            ANSWER

            Answered 2022-Feb-11 at 10:55

            Opensea uses WETH token on Polygon, which is an ERC-20 token representing the Ethereum mainnet ETH.

            Please note, the "purple" Polygon ETH you see on OpenSea, is actually WETH (Wrapped Ether) on the blockchain level of Polygon.

            Source: https://support.opensea.io/hc/en-us/articles/4403264773523-How-do-I-find-my-funds-on-Polygon-

            Source https://stackoverflow.com/questions/71078280

            QUESTION

            How to programmatically validate Tether (TRC20) Wallet Addresses in PHP?
            Asked 2022-Feb-09 at 10:38

            I am having an issue related to validating cryptocurrency wallet addresses, specifically USDT.

            USDT can be validated either as a BTC or ETH address, depending on the network type.

            Basically it goes like that:

            • If cryptocurrency is USDT and chain type is ERC20, validate the address against ETH address format.
            • If cryptocurrency is USDT and wallet type is OMNI, validate the address against BTC address format.

            I haven't managed to find a specific validation for USDT:TRC20 addresses and I am not sure how to validate them.

            ...

            ANSWER

            Answered 2021-Oct-15 at 06:32

            trc20 address features:

            An encoded Mainnet address begins with T and is 34 bytes in length.

            Source https://stackoverflow.com/questions/69465635

            QUESTION

            Multiple NFTs from the same source
            Asked 2022-Feb-06 at 09:02

            General NFT question, but don't flame me, I really tried to find the answer.

            Could NFT be created from the same image or copy of this image?

            For example, take this NFT Lion Cat that I created: https://rarible.com/token/0x60f80121c31a0d46b5279700f9df786054aa5ee5:1200950?

            Can someone download the image and create an NFT from it?

            I mean, isn't it part of the idea that this is original content by me and I have the copyrights for it?

            In the Image area, you got the RAW image that proves you took this picture, nobody but the photographer has this RAW image. But to create this image NFT I didn't have to provide it.

            ...

            ANSWER

            Answered 2022-Feb-06 at 09:02

            Could NFT be created from the same image or copy of this image?

            Can someone download the image and create an NFT from it?

            Yes to both questions. It is technically possible to create multiple NFTs that all represent the same image. They can be placed in the same collection, as well as across multiple collections.

            As NFTs basically contain links to this image, it's not possible to prevent someone from creating a link to a public resource, i.e. from creating another NFT representing the same image.

            I mean, isn't it part of the idea that this is original content by me and I have the copyrights for it?

            The ERC-721 standard mostly defines just the technical specifications. But it doesn't really cover the licensing, ownership/authorship of the underlying resource, and other non-technical topics.

            An NFT only proves ownership of the token - not copyrights of the image. Also, it proves ownership by an address - not by a person. Because there can be zero to multiple people holding a private key to the same address (holding the NFT representing the image).

            Source https://stackoverflow.com/questions/68816228

            QUESTION

            `ValueError: x and y must be the same size` when calling mplfinance
            Asked 2022-Jan-30 at 14:48
            import mplfinance as mpf
            import talib as ta
            import matplotlib.pyplot as plt
            import numpy as np
            %matplotlib notebook
            test=df
            WMA20 = ta.WMA(test['close'], timeperiod=20)
            WMA60 = ta.WMA(test['close'], timeperiod=60)
            WMA100 = ta.WMA(test['close'], timeperiod=100)
            WMA200 = ta.WMA(test['close'], timeperiod=200)
            
            # Set buy signals if current price is higher than 50-day MA
            test['Buy'] = (test['close'] > WMA20) & (test['close'].shift(1) <= WMA20)
            
            #plot
            tcdf =test[['close']]
            tcdf=tcdf.reset_index()
            tcdf['date'] = tcdf['date'].apply(lambda x: x.value)
            
            for i in range(len(test['Buy'])):
                if test['Buy'][i]==True:
                   
                    apd = mpf.make_addplot(tcdf.iloc[i],type='scatter',markersize=20,marker='o')
            
            
            mpf.plot(test,addplot=apd, type='candle',volume=True)
            
            ...

            ANSWER

            Answered 2022-Jan-28 at 12:35

            The problem is you are calling make_addplot() with only one data point at a time. There is also no need for the date index in the make_addplot() call; only the data.

            Also, the length of data (number of rows) passed into make_addplot() must be the same as the length (number of rows) pass into plot().

            make_addplot() should not be within the loop.

            Try replacing this part of the code:

            Source https://stackoverflow.com/questions/70893025

            Community Discussions, Code Snippets contain sources that include Stack Exchange Network

            Vulnerabilities

            No vulnerabilities reported

            Install finmarketpy

            For detailed installation instructions for finmarketpy and its associated Python libraries go to https://github.com/cuemacro/finmarketpy/blob/master/INSTALL.md (which includes details on how to setup your entire Python environment). Also take a look at https://github.com/cuemacro/teaching/blob/master/pythoncourse/installation/installing_anaconda_and_pycharm.ipynb from my Python for finance workshop course, where I keep notes specifically about setting up your Anaconda environment for data science (including for findatapy/chartpy/finmarketpy), including YAML files etc. You can install the library using the below (better to get the newest version from repo, as opposed to releases). But beforehand please make sure you have already installed both chartpy, findatapy and any other dependencies. In chartpy you will need to change the chartconstants.py file (to add Plotly API key) and for findatapy, you will also need to change the dataconstants.py file to add the Quandl API (and possibly change other configuration settings there or add a datacred.py file in the util folder, alternatively you will be prompted on your first run to input the API key which will be installed). If you do pip with git you'll get the very latest commit. However you can also pip install to get from PyPI (might be a slighter older verison from that on GitHub). Note that if you use the option pricing/total returns you might need to get the latest FinancePy version from GitHub https://github.com/domokane/FinancePy/ as opposed to PyPI.
            Make sure you edit the marketconstants.py file (or you can create a marketcred.py file to overwrite the settings)

            Support

            We have spent many years writing finmarketpy and other open source libraries at Cuemacro, and we are keen to do so for many years into the future. If you using our libraries and are interested in sponsoring Cuemacro's open source libraries, you can do so through the GitHub sponsorship page at https://github.com/sponsors/cuemacro.
            Find more information at:

            Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items

            Find more libraries
            Install
          • PyPI

            pip install finmarketpy

          • CLONE
          • HTTPS

            https://github.com/cuemacro/finmarketpy.git

          • CLI

            gh repo clone cuemacro/finmarketpy

          • sshUrl

            git@github.com:cuemacro/finmarketpy.git

          • Stay Updated

            Subscribe to our newsletter for trending solutions and developer bootcamps

            Agree to Sign up and Terms & Conditions

            Share this Page

            share link