Giter VIP home page Giter VIP logo

frequi's Introduction

freqtrade

Freqtrade CI DOI Coverage Status Documentation Maintainability

Freqtrade is a free and open source crypto trading bot written in Python. It is designed to support all major exchanges and be controlled via Telegram or webUI. It contains backtesting, plotting and money management tools as well as strategy optimization by machine learning.

freqtrade

Disclaimer

This software is for educational purposes only. Do not risk money which you are afraid to lose. USE THE SOFTWARE AT YOUR OWN RISK. THE AUTHORS AND ALL AFFILIATES ASSUME NO RESPONSIBILITY FOR YOUR TRADING RESULTS.

Always start by running a trading bot in Dry-run and do not engage money before you understand how it works and what profit/loss you should expect.

We strongly recommend you to have coding and Python knowledge. Do not hesitate to read the source code and understand the mechanism of this bot.

Supported Exchange marketplaces

Please read the exchange specific notes to learn about eventual, special configurations needed for each exchange.

Supported Futures Exchanges (experimental)

Please make sure to read the exchange specific notes, as well as the trading with leverage documentation before diving in.

Community tested

Exchanges confirmed working by the community:

Documentation

We invite you to read the bot documentation to ensure you understand how the bot is working.

Please find the complete documentation on the freqtrade website.

Features

  • Based on Python 3.9+: For botting on any operating system - Windows, macOS and Linux.
  • Persistence: Persistence is achieved through sqlite.
  • Dry-run: Run the bot without paying money.
  • Backtesting: Run a simulation of your buy/sell strategy.
  • Strategy Optimization by machine learning: Use machine learning to optimize your buy/sell strategy parameters with real exchange data.
  • Adaptive prediction modeling: Build a smart strategy with FreqAI that self-trains to the market via adaptive machine learning methods. Learn more
  • Edge position sizing Calculate your win rate, risk reward ratio, the best stoploss and adjust your position size before taking a position for each specific market. Learn more.
  • Whitelist crypto-currencies: Select which crypto-currency you want to trade or use dynamic whitelists.
  • Blacklist crypto-currencies: Select which crypto-currency you want to avoid.
  • Builtin WebUI: Builtin web UI to manage your bot.
  • Manageable via Telegram: Manage the bot with Telegram.
  • Display profit/loss in fiat: Display your profit/loss in fiat currency.
  • Performance status report: Provide a performance status of your current trades.

Quick start

Please refer to the Docker Quickstart documentation on how to get started quickly.

For further (native) installation methods, please refer to the Installation documentation page.

Basic Usage

Bot commands

usage: freqtrade [-h] [-V]
                 {trade,create-userdir,new-config,new-strategy,download-data,convert-data,convert-trade-data,list-data,backtesting,edge,hyperopt,hyperopt-list,hyperopt-show,list-exchanges,list-hyperopts,list-markets,list-pairs,list-strategies,list-timeframes,show-trades,test-pairlist,install-ui,plot-dataframe,plot-profit,webserver}
                 ...

Free, open source crypto trading bot

positional arguments:
  {trade,create-userdir,new-config,new-strategy,download-data,convert-data,convert-trade-data,list-data,backtesting,edge,hyperopt,hyperopt-list,hyperopt-show,list-exchanges,list-hyperopts,list-markets,list-pairs,list-strategies,list-timeframes,show-trades,test-pairlist,install-ui,plot-dataframe,plot-profit,webserver}
    trade               Trade module.
    create-userdir      Create user-data directory.
    new-config          Create new config
    new-strategy        Create new strategy
    download-data       Download backtesting data.
    convert-data        Convert candle (OHLCV) data from one format to
                        another.
    convert-trade-data  Convert trade data from one format to another.
    list-data           List downloaded data.
    backtesting         Backtesting module.
    edge                Edge module.
    hyperopt            Hyperopt module.
    hyperopt-list       List Hyperopt results
    hyperopt-show       Show details of Hyperopt results
    list-exchanges      Print available exchanges.
    list-hyperopts      Print available hyperopt classes.
    list-markets        Print markets on exchange.
    list-pairs          Print pairs on exchange.
    list-strategies     Print available strategies.
    list-timeframes     Print available timeframes for the exchange.
    show-trades         Show trades.
    test-pairlist       Test your pairlist configuration.
    install-ui          Install FreqUI
    plot-dataframe      Plot candles with indicators.
    plot-profit         Generate plot showing profits.
    webserver           Webserver module.

optional arguments:
  -h, --help            show this help message and exit
  -V, --version         show program's version number and exit

Telegram RPC commands

Telegram is not mandatory. However, this is a great way to control your bot. More details and the full command list on the documentation

  • /start: Starts the trader.
  • /stop: Stops the trader.
  • /stopentry: Stop entering new trades.
  • /status <trade_id>|[table]: Lists all or specific open trades.
  • /profit [<n>]: Lists cumulative profit from all finished trades, over the last n days.
  • /forceexit <trade_id>|all: Instantly exits the given trade (Ignoring minimum_roi).
  • /fx <trade_id>|all: Alias to /forceexit
  • /performance: Show performance of each finished trade grouped by pair
  • /balance: Show account balance per currency.
  • /daily <n>: Shows profit or loss per day, over the last n days.
  • /help: Show help message.
  • /version: Show version.

Development branches

The project is currently setup in two main branches:

  • develop - This branch has often new features, but might also contain breaking changes. We try hard to keep this branch as stable as possible.
  • stable - This branch contains the latest stable release. This branch is generally well tested.
  • feat/* - These are feature branches, which are being worked on heavily. Please don't use these unless you want to test a specific feature.

Support

Help / Discord

For any questions not covered by the documentation or for further information about the bot, or to simply engage with like-minded individuals, we encourage you to join the Freqtrade discord server.

If you discover a bug in the bot, please search the issue tracker first. If it hasn't been reported, please create a new issue and ensure you follow the template guide so that the team can assist you as quickly as possible.

For every issue created, kindly follow up and mark satisfaction or reminder to close issue when equilibrium ground is reached.

--Maintain github's community policy--

Have you a great idea to improve the bot you want to share? Please, first search if this feature was not already discussed. If it hasn't been requested, please create a new request and ensure you follow the template guide so that it does not get lost in the bug reports.

Feel like the bot is missing a feature? We welcome your pull requests!

Please read the Contributing document to understand the requirements before sending your pull-requests.

Coding is not a necessity to contribute - maybe start with improving the documentation? Issues labeled good first issue can be good first contributions, and will help get you familiar with the codebase.

Note before starting any major new feature work, please open an issue describing what you are planning to do or talk to us on discord (please use the #dev channel for this). This will ensure that interested parties can give valuable feedback on the feature, and let others know that you are working on it.

Important: Always create your PR against the develop branch, not stable.

Requirements

Up-to-date clock

The clock must be accurate, synchronized to a NTP server very frequently to avoid problems with communication to the exchanges.

Minimum hardware required

To run this bot we recommend you a cloud instance with a minimum of:

  • Minimal (advised) system requirements: 2GB RAM, 1GB disk space, 2vCPU

Software requirements

frequi's People

Contributors

aemr3 avatar billgatesiii avatar colmea avatar danielpalstra avatar dependabot-preview[bot] avatar dependabot[bot] avatar epigramx avatar faustogut avatar foobar2016 avatar gaugau3000 avatar gjuju avatar mablue avatar mads03dk avatar paulseperformance avatar qiweiii avatar slimatic avatar tako88 avatar vanessae avatar varunrai avatar xmatthias avatar xxrockonxx avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

frequi's Issues

Dependabot couldn't find a Dockerfile for this project

Dependabot couldn't find a Dockerfile for this project.

Dependabot requires a Dockerfile to evaluate your project's current Docker dependencies. It had expected to find one at the path: /Dockerfile.

If this isn't a Docker project, or if it is a library, you may wish to disable updates for it in the .dependabot/config.yml file in this repo.

View the update logs.

JWT token timeout handling

Describe the bug
JWT token times out - then auto-refresh makes 4 calls that end up with 401 - resulting in 4 * calling refresh_token.

To Reproduce

  • Reduce the JWT timeout in flask to 1m
  • look at network tab in chrome developer tools
  • notice 4 timedout requests, folllowed by 4 refresh calls

Expected behavior

  • refresh only called once (in a timed manner - avoiding 401 alltogether)

  • repeat initial call in case of 401 (important for "actions" - to avoid needing to click /start, stop or forcesell / forcebuy multiple times)

Report on Freqtrade server status/errors

Is your feature request related to a problem? Please describe.
No. But it would be nice if the web interface can report on server errors. For example, if I change something in the config file and that change was incorrect, the Freqtrade docker exits or keep restarting without notifying the web UI with the problem.

Describe the solution you'd like
The web UI can have an event log with a button on the system bar to open and read them.

Red and green colours

Is your feature request related to a problem? Please describe.
Red color too dramatic in the open trades! Some negative trades are not so dramatic.

Describe the solution you'd like
I would like to have an option to display undecided trades in grey, as long as they are within a certain range. Beyond that they could be coloured. For example:

<=0.5% : red
>-0.5% && <0.5% : grey
>0.5% : green

If I am courageous I will setup the frequi dev env to give my coin :)

Info request - buy, sell, trades, trades close

Hello,

What does mean "Buy" and "Sell" marks on the main chart? For what we should use it? Can I hide it?
As I understand the real buy is marked as "Trades" and the sell as "Trades Close". Is it correct?

freqtrade_buy_sell

Displaying graphs in frequi

Introduction

For Freqtrade, we're currently using plotly.py, which offers interactive graphs.

However, experience has shown, that plotly has performance problems with larger plots, so i'm not entirely happy with it.

Backend or frontend?

Now for FreqUI, we have a difficult decision to take:

  • Do we want to Generate plots in the backend (use plotly.py and generate graphs which are then shown in the frontent)
  • Do we want to use a JS graph library (plotly.js - or something completely entirely) to generate the plots in the frontent.

To me, the 2nd option seems better, as it will allow us better interactivity (we might be able to feed it with data as selected, so not the whole graph must be drawn every time).

What types of graphs we need

To start, we will need simple graphs (for aggregated views) as well as candlestick graphs, so the selected component should support:

  • Line
  • Bar-chart
  • Pie-chart
  • Candlestick

Existing Backend plotting (plotly.py) would support all of the above graphs.

Possible graphing libraries:

The following lists a few vue-components which are supposed to allow easy interaction from a vue.js application: link.

Libraries which seem interresting at first glance (links go to the vue-version of the libraries).

Now i've got no experience with either of the above libraries - but i hope someone else has and can provide some help in selecting a well performing graphing component.
Experience must not be with the vue-version of the libraries though - as the main selection criteria should be the underlying graphing library, not the vue wrapper..

Overlapping Left Y-Axis and the Label in the Daily Profit and Cumulative Profit

Overlapping Left Y-Axis and the Label in the Daily Profit and Cumulative Profit

Steps to reproduce the behavior:

  1. Open the Dashboard
  2. View the Cumulative Profit and Daily Profit charts

Expected behavior
There should be a spacing between the axis and the label

Screenshots
chrome_2lNDrWp403

Desktop (please complete the following information):

  • OS: Windows 10
  • Browser Chrome
  • Version 88

Prefer Typescript to Javascript ?

Hi,

I don't know the level of logic you would like to put at the end in this project but typescript should be useful to ensure a high quality and reduce bug up front.

It will help developers too with hint and auto completion in there IDE.

Sort open trades in Multi Pane 'Pairs Combined' by open date (or ID)

Describe the solution you'd like
In the trade view, in the left column (Multi Pane), the active pairs are shown. These are sorted with the open trades at the top, and the locks at the bottom. The open trades are randomly sorted, with every page refresh, the pairs are sorted differently. Is it possible to sort the 'Pairs Combined' similar to the 'Open Trades' pane: sort by open date (or ID)?

This is the sort order in the multi pane column:
image

And in the open pairs column:
image

Docker compose build fails

Describe the bug
I am unable to build the docker for frequi

To Reproduce
Steps to reproduce the behavior:

  1. git clone [email protected]:freqtrade/frequi.git
  2. cd frequi
  3. docker-compose build
Cloning into 'frequi'...
remote: Enumerating objects: 5639, done.
remote: Counting objects: 100% (275/275), done.
remote: Compressing objects: 100% (208/208), done.
remote: Total 5639 (delta 182), reused 95 (delta 66), pack-reused 5364
Receiving objects: 100% (5639/5639), 2.92 MiB | 5.05 MiB/s, done.
Resolving deltas: 100% (3891/3891), done.
Building frequi
Step 1/14 : FROM node:16.0.0-alpine as ui-builder
16.0.0-alpine: Pulling from library/node
540db60ca938: Pull complete
7e50016d5624: Pull complete
c43b2bfd1b9f: Pull complete
97029819a1de: Pull complete
Digest: sha256:fabc6adac6dba5e150130e10acfc11a81447be93f4bf384076abdb63dbd34033
Status: Downloaded newer image for node:16.0.0-alpine
 ---> cf39b70292b8
Step 2/14 : RUN mkdir /app
 ---> Running in ec5a3c33dd69
Removing intermediate container ec5a3c33dd69
 ---> d2dce3bc2b02
Step 3/14 : WORKDIR /app
 ---> Running in 84f7f9f3d479
Removing intermediate container 84f7f9f3d479
 ---> a06c445b1600
Step 4/14 : COPY package.json /app/package.json
 ---> 31cedebc6896
Step 5/14 : COPY yarn.lock /app/yarn.lock
 ---> e2047a71de77
Step 6/14 : RUN yarn
 ---> Running in 0d6b40f6c8a9
yarn install v1.22.5
[1/4] Resolving packages...
[2/4] Fetching packages...
info [email protected]: The platform "linux" is incompatible with this module.
info "[email protected]" is an optional dependency and failed compatibility check. Excluding it from installation.
info [email protected]: The platform "linux" is incompatible with this module.
info "[email protected]" is an optional dependency and failed compatibility check. Excluding it from installation.
[3/4] Linking dependencies...
warning " > [email protected]" has unmet peer dependency "[email protected] - 3".
warning "vue-grid-layout > @interactjs/[email protected]" has unmet peer dependency "@interactjs/[email protected]".
warning "vue-grid-layout > @interactjs/[email protected]" has unmet peer dependency "@interactjs/[email protected]".
warning "vue-grid-layout > @interactjs/[email protected]" has unmet peer dependency "@interactjs/[email protected]".
warning "vue-grid-layout > @interactjs/[email protected]" has unmet peer dependency "@interactjs/[email protected]".
warning "vue-grid-layout > @interactjs/[email protected]" has unmet peer dependency "@interactjs/[email protected]".
warning "vue-grid-layout > @interactjs/[email protected]" has unmet peer dependency "@interactjs/[email protected]".
warning "vue-grid-layout > @interactjs/modifiers > @interactjs/[email protected]" has unmet peer dependency "@interactjs/[email protected]".
warning " > @typescript-eslint/[email protected]" has incorrect peer dependency "@typescript-eslint/parser@^2.0.0".
warning " > @vue/[email protected]" has unmet peer dependency "eslint-plugin-import@^2.18.2".
warning "@vue/eslint-config-airbnb > [email protected]" has unmet peer dependency "webpack@>=1.11.0".
warning " > @vue/[email protected]" has incorrect peer dependency "@typescript-eslint/parser@^2.7.0".
warning " > [email protected]" has unmet peer dependency "eslint-plugin-import@^2.22.1".
warning " > [email protected]" has unmet peer dependency "eslint-plugin-jsx-a11y@^6.4.1".
warning " > [email protected]" has unmet peer dependency "eslint-plugin-react@^7.21.5".
warning " > [email protected]" has unmet peer dependency "eslint-plugin-react-hooks@^4 || ^3 || ^2.3.0 || ^1.7.0".
warning " > [email protected]" has unmet peer dependency "webpack@^4.36.0 || ^5.0.0".
[4/4] Building fresh packages...
error /app/node_modules/deasync: Command failed.
Exit code: 1
Command: node ./build.js
Arguments: 
Directory: /app/node_modules/deasync
Output:
gyp info it worked if it ends with ok
gyp info using [email protected]
gyp info using [email protected] | linux | x64
gyp ERR! find Python 
gyp ERR! find Python Python is not set from command line or npm configuration
gyp ERR! find Python Python is not set from environment variable PYTHON
gyp ERR! find Python checking if "python3" can be used
gyp ERR! find Python - "python3" is not in PATH or produced an error
gyp ERR! find Python checking if "python" can be used
gyp ERR! find Python - "python" is not in PATH or produced an error
gyp ERR! find Python checking if "python2" can be used
gyp ERR! find Python - "python2" is not in PATH or produced an error
gyp ERR! find Python 
gyp ERR! find Python **********************************************************
gyp ERR! find Python You need to install the latest version of Python.
gyp ERR! find Python Node-gyp should be able to find and use Python. If not,
gyp ERR! find Python you can try one of the following options:
gyp ERR! find Python - Use the switch --python="/path/to/pythonexecutable"
gyp ERR! find Python   (accepted by both node-gyp and npm)
gyp ERR! find Python - Set the environment variable PYTHON
gyp ERR! find Python - Set the npm configuration variable python:
gyp ERR! find Python   npm config set python "/path/to/pythonexecutable"
gyp ERR! find Python For more information consult the documentation at:
gyp ERR! find Python https://github.com/nodejs/node-gyp#installation
gyp ERR! find Python **********************************************************
gyp ERR! find Python 
gyp ERR! configure error 
gyp ERR! stack Error: Could not find any Python installation to use
gyp ERR! stack     at PythonFinder.fail (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/find-python.js:302:47)
gyp ERR! stack     at PythonFinder.runChecks (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/find-python.js:136:21)
gyp ERR! stack     at PythonFinder.<anonymous> (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/find-python.js:179:16)
gyp ERR! stack     at PythonFinder.execFileCallback (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/find-python.js:266:16)
gyp ERR! stack     at exithandler (node:child_process:333:5)
gyp ERR! stack     at ChildProcess.errorhandler (node:child_process:345:5)
gyp ERR! stack     at ChildProcess.emit (node:events:365:28)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (node:internal/child_process:288:12)
gyp ERR! stack     at onErrorNT (node:internal/child_process:480:16)
gyp ERR! stack     at processTicksAndRejections (node:internal/process/task_queues:83:21)
gyp ERR! System Linux 4.15.0-142-generic
gyp ERR! command "/usr/local/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /app/node_modules/deasync
gyp ERR! node -v v16.0.0
gyp ERR! node-gyp -v v7.1.2
gyp ERR! not ok 
Build failed

Expected behavior
Docker compose build should exit sucesfully

Desktop (please complete the following information):

  • OS: Ubuntu linux

The y-axis of the graph displays wrong value

Describe the bug
The y-axis cursor sometimes display the wrong value. For instance the cursor displays 454.59 instead of a value more near 1283
image

To Reproduce
Steps to reproduce the behavior:

  1. Go to the /trade route
  2. Move the mouse on the history chart
  3. See error

Expected behavior
The y-axis cursor should show the right value

Screenshots
image
Mar-03-2021 11-39-27

Desktop (please complete the following information):

  • OS: Mac OS 11.2.1
  • Browser : Bugs tested and spotted in Safari 14.0.3 and Chrome 88.0.4324.192

I need some direction on JWT and auth config

If I had the below values in my freqtrade config.json:

"api_server": {
        "enabled": true,
        "listen_ip_address": "127.0.0.1",
        "listen_port": 8081,
        "verbosity": "info",
        "jwt_secret_key": "someth44ingrandom",
        "CORS_origins": [],
        "username": "foo",
        "password": "bar"
    },

Where would those associated values go in vue.config.js?

I'm using the default file from this repo, and all requests to the API are getting denied.

module.exports = {
  devServer: {
    proxy: {
      '/api': {
        target: 'http://127.0.0.1:8081',
        changeOrigin: true,
      },
    },
  },
  css: {
    loaderOptions: {
      sass: {
        prependData: `@import "@/styles/_variables.scss";`,
      },
    },
  },
};

If the instructions are documented somewhere, please point me in the right direction, and my apologies for overlooking that.

can't build the container

I've tried it both the with the current github repository and the 0.0.4 release, same result every time:

root@pi4:/opt/ui# docker-compose build
Building frequi
Step 1/14 : FROM node:15.9.0-alpine as ui-builder
 ---> e4b41e164238
Step 2/14 : RUN mkdir /app
 ---> Using cache
 ---> 10d23fb0ee5a
Step 3/14 : WORKDIR /app
 ---> Using cache
 ---> f0f5afe08e60
Step 4/14 : COPY package.json /app/package.json
 ---> Using cache
 ---> a7a6dd3f88f2
Step 5/14 : COPY yarn.lock /app/yarn.lock
 ---> Using cache
 ---> f83bcec2f5dc
Step 6/14 : RUN yarn
 ---> Running in 95f7352254b7
yarn install v1.22.5
[1/4] Resolving packages...
[2/4] Fetching packages...
info [email protected]: The platform "linux" is incompatible with this module.
info "[email protected]" is an optional dependency and failed compatibility check. Excluding it from installation.
info [email protected]: The platform "linux" is incompatible with this module.
info "[email protected]" is an optional dependency and failed compatibility check. Excluding it from installation.
[3/4] Linking dependencies...
warning " > [email protected]" has unmet peer dependency "[email protected] - 3".
warning "vue-grid-layout > @interactjs/[email protected]" has unmet peer dependency "@interactjs/[email protected]".
warning "vue-grid-layout > @interactjs/[email protected]" has unmet peer dependency "@interactjs/[email protected]".
warning "vue-grid-layout > @interactjs/[email protected]" has unmet peer dependency "@interactjs/[email protected]".
warning "vue-grid-layout > @interactjs/[email protected]" has unmet peer dependency "@interactjs/[email protected]".
warning "vue-grid-layout > @interactjs/[email protected]" has unmet peer dependency "@interactjs/[email protected]".
warning "vue-grid-layout > @interactjs/[email protected]" has unmet peer dependency "@interactjs/[email protected]".
warning "vue-grid-layout > @interactjs/modifiers > @interactjs/[email protected]" has unmet peer dependency "@interactjs/[email protected]".
warning " > @typescript-eslint/[email protected]" has incorrect peer dependency "@typescript-eslint/parser@^2.0.0".
warning " > @vue/[email protected]" has unmet peer dependency "eslint-plugin-import@^2.18.2".
warning "@vue/eslint-config-airbnb > [email protected]" has unmet peer dependency "webpack@>=1.11.0".
warning " > @vue/[email protected]" has incorrect peer dependency "@typescript-eslint/parser@^2.7.0".
warning " > [email protected]" has unmet peer dependency "eslint-plugin-import@^2.22.1".
warning " > [email protected]" has unmet peer dependency "eslint-plugin-jsx-a11y@^6.4.1".
warning " > [email protected]" has unmet peer dependency "eslint-plugin-react@^7.21.5".
warning " > [email protected]" has unmet peer dependency "eslint-plugin-react-hooks@^4 || ^3 || ^2.3.0 || ^1.7.0".
warning " > [email protected]" has unmet peer dependency "webpack@^4.36.0 || ^5.0.0".
[4/4] Building fresh packages...
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
error /app/node_modules/deasync: Command failed.
Exit code: 1
Command: node ./build.js
Arguments:
Directory: /app/node_modules/deasync
Output:
gyp info it worked if it ends with ok
gyp info using [email protected]
gyp info using [email protected] | linux | arm
gyp ERR! find Python
gyp ERR! find Python Python is not set from command line or npm configuration
gyp ERR! find Python Python is not set from environment variable PYTHON
gyp ERR! find Python checking if "python3" can be used
gyp ERR! find Python - "python3" is not in PATH or produced an error
gyp ERR! find Python checking if "python" can be used
gyp ERR! find Python - "python" is not in PATH or produced an error
gyp ERR! find Python checking if "python2" can be used
gyp ERR! find Python - "python2" is not in PATH or produced an error
gyp ERR! find Python
gyp ERR! find Python **********************************************************
gyp ERR! find Python You need to install the latest version of Python.
gyp ERR! find Python Node-gyp should be able to find and use Python. If not,
gyp ERR! find Python you can try one of the following options:
gyp ERR! find Python - Use the switch --python="/path/to/pythonexecutable"
gyp ERR! find Python   (accepted by both node-gyp and npm)
gyp ERR! find Python - Set the environment variable PYTHON
gyp ERR! find Python - Set the npm configuration variable python:
gyp ERR! find Python   npm config set python "/path/to/pythonexecutable"
gyp ERR! find Python For more information consult the documentation at:
gyp ERR! find Python https://github.com/nodejs/node-gyp#installation
gyp ERR! find Python **********************************************************
gyp ERR! find Python
gyp ERR! configure error
gyp ERR! stack Error: Could not find any Python installation to use
gyp ERR! stack     at PythonFinder.fail (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/find-python.js:302:47)
gyp ERR! stack     at PythonFinder.runChecks (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/find-python.js:136:21)
gyp ERR! stack     at PythonFinder.<anonymous> (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/find-python.js:179:16)
gyp ERR! stack     at PythonFinder.execFileCallback (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/find-python.js:266:16)
gyp ERR! stack     at exithandler (node:child_process:333:5)
gyp ERR! stack     at ChildProcess.errorhandler (node:child_process:345:5)
gyp ERR! stack     at ChildProcess.emit (node:events:378:20)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (node:internal/child_process:288:12)
gyp ERR! stack     at onErrorNT (node:internal/child_process:480:16)
gyp ERR! stack     at processTicksAndRejections (node:internal/process/task_queues:81:21)
gyp ERR! System Linux 5.10.4-v7l+
gyp ERR! command "/usr/local/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /app/node_modules/deasync
gyp ERR! node -v v15.9.0
gyp ERR! node-gyp -v v7.1.2
gyp ERR! not ok
Build failed
ERROR: Service 'frequi' failed to build: The command '/bin/sh -c yarn' returned a non-zero code: 1

On a RPi4 if that wasn't clear from the hostname :)

Is frequi consume an api designed to be used by telegram ?

Hi,

Most of the freqtrade api seems to have be design to fit the telegram UI contrains.
When i see frequi>trade got the feeling to be a copy paste of telegram bot results but a website is not a telegram bot in term of UX/UI ?

Maybe i am wrong but it is the feeling that i have (it serve data aggregated to fit telegram format and so not very easy to produce dashboard?)

Have a nice day.

Dashboard overview of multi-bots instances

As a trader,
I want to have a dashboard that gather and show statistics of all running bots (equity curve, profit...)
So that I make a global analysis and see correlations between their results.

multiple bots - frequi is accessible only on the first one

Describe the bug
freqUI cannot present web gui if "listen_port" is other than 8080.

To Reproduce
Steps to reproduce the behavior:
Set up multiple bots on the same server and define different ports on the "listen_port" value for "api_server".

Desktop (please complete the following information):

  • OS: macOS Big Sur v11.1
  • Browser Safari v14.0.2

Additional context

I've set up 3 bots on the same server, each one with it's own "listen_port", but only the first one works. The others are inaccessible.

    "api_server": {
        "enabled": true,
        "listen_ip_address": "$ip",
        "listen_port": 8080,
        "verbosity": "error",
        "enable_openapi": false,
        "jwt_secret_key": "$secretkey",
        "CORS_origins": [],
        "username": "$user",
        "password": "$pass"

    "api_server": {
        "enabled": true,
        "listen_ip_address": "$ip",
        "listen_port": 8081,
        "verbosity": "error",
        "enable_openapi": false,
        "jwt_secret_key": "$secretkey",
        "CORS_origins": [],
        "username": "$user",
        "password": "$pass"

    "api_server": {
        "enabled": true,
        "listen_ip_address": "$ip",
        "listen_port": 8082,
        "verbosity": "error",
        "enable_openapi": false,
        "jwt_secret_key": "$secretkey",
        "CORS_origins": [],
        "username": "$user",
        "password": "$pass"

Style changing does not work correctly in productive mode

Describe the bug
When building for production (yarn build) and running that version, each theme can only be selected once. Switching back to the previous theme is not possible.

To Reproduce
Steps to reproduce the behavior:

  • select theme
  • select different theme
  • switch back to original theme (notice it stays with the theme from the step before).

In development mode, themes are imported directly (as text within the <style> tag) - and are then loaded inline into the style tag.
in production mode, it's a seperate css file - therefore the ID assignment fails, so disabling is not working.

I'm not certain how / if to fix this yet - as i think the different themes may cause display problems in conjunction with eCharts - which can only be "dark" or "light" - but not different shades of dark.

In the end, this might mean that we will fall back to 2 default styles (one light, one dark).
This might also simplify layout, as the different themes have quite different sizes (buttons / header line are higher in some styles).

@GrilledChickenThighs - as the author of the bootswatch theme part - have you got an opinion related to this?

Set timezone for webUI

Wondering if it’s currently possible to set the timezone so trades and stats in the UI are localized? I’m running as a container and tried the usual

volumes:
  - /etc/timezone:/etc/timezone:ro

.. but to no avail.

Cannot change plot configuration

Describe the bug
When entering the plot configuration, a new window is opened in which the plot configuration can be changed. When trying to add an indicator, nothing happens. Chrome developer tools shows in the console the following error:

vue.runtime.esm.js:1888 TypeError: Cannot convert undefined or null to object
    at Function.keys (<anonymous>)
    at a.get (PlotConfigurator.vue:224)
    at nr.get (vue.runtime.esm.js:4479)
    at nr.evaluate (vue.runtime.esm.js:4584)
    at a.usedColumns (vue.runtime.esm.js:4836)
    at a.R (PlotConfigurator.vue?e1e3:1)
    at a.t._render (vue.runtime.esm.js:3548)
    at a.r (vue.runtime.esm.js:4066)
    at nr.get (vue.runtime.esm.js:4479)
    at nr.run (vue.runtime.esm.js:4554)

To Reproduce
Steps to reproduce the behavior:

  1. Go to Trade page
  2. Click on wheel (top right)
  3. Add indicator to used indicators
  4. See error

Expected behavior
I was able to change the indicators, but it does not work anymore.

Screenshots
If applicable, add screenshots to help explain your problem.
image

Desktop (please complete the following information):

  • OS: Windows 10, MacOS BigSur
  • Browser: Chrome, Edge, Safari

Additional context
I have cleared cache, deleted cookies, tried Incognito mode. None is working. Tried on both Windows and MacOS.

Error starting userland proxy: listen tcp4 127.0.0.1:8080: bind: address already in use

Hi all,
I'm sure it's me, and I know that FreqUI is still in alpha testing.
However. I wanted to play with it a little bit, and after installing it on my test Ubuntu server I was hoping to do so.

Unfortunately after trying for some time now I'm not able to start both FreqUI and Freqtrade.
IE: Freqtrade is working fine when started, and I can get the API to respond with the http://127.0.0.1:8080/api/v1/ping {"status": "pong"}
When trying to start FreqUI, I get an error that the port is already in use.
When I start FreqUI (before starting Freqtrade) I am able to access the FreqUI webinterface, but not Freqtrade as it is not running!

In the rest-api readme it tells me to uncomment the "ports - "127.0.0.1:8080:8080" in the docker-compose file.
I did not have this in the docker-compose.yml, so I've added this myself.

Anyone here who might see what I've done wrong?

/home/ihatenamestealers/ft_userdata/docker-compose.yml

---
version: '3'
services:
  freqtrade:
    image: freqtradeorg/freqtrade:stable
    # image: freqtradeorg/freqtrade:develop
    # Use plotting image
    # image: freqtradeorg/freqtrade:develop_plot
    # Build step - only needed when additional dependencies are needed
    # build:
    #   context: .
    #   dockerfile: "./docker/Dockerfile.technical"
    restart: unless-stopped
    container_name: freqtrade
	#needed port/ip for freqUI
    ports:
      - "127.0.0.1:8080:8080"
    volumes:
      - "./user_data:/freqtrade/user_data"
    # Default command used when running `docker compose up`
    command: >
      trade
      --logfile /freqtrade/user_data/logs/freqtrade.log
      --db-url sqlite:////freqtrade/user_data/tradesv3.sqlite
      --config /freqtrade/user_data/config.json
      --strategy SampleStrategy

/home/ihatenamestealers/ft_userdata/user_data/config.json

..
..
 "api_server": {
        "enabled": true,
        "listen_ip_address": "0.0.0.0",
        "listen_port": 8080,
        "verbosity": "info",
        "enable_openapi": true,
        "jwt_secret_key": "somethingrandom",
        "CORS_origins": ["http://127.0.0.1"],
        "username": "ihatenamestealers",
        "password": "yesIdo"
    },
..
..

/home/ihatenamestealers/frequi/docker-compose.yml

---
version: '3.8'
services:
  frequi:
    build:
      context: .
      dockerfile: "./Dockerfile"
    image: frequi
    # image: freqtradeorg/frequi:master
    restart: unless-stopped
    ports:
      - "8080:80"

ERROR:

ERROR: for freqtrade  Cannot start service freqtrade: driver failed programming external connectivity on endpoint freqtrade (130738809b3b3fe6d30d4e68f9a48w267ef7232ddw7b54312ed1a9a8c2268333): Error starting userland proxy: listen tcp4 127.0.0.1:8080: bind: address already in use
ERROR: Encountered errors while bringing up the project.

Business value of multi-theme ?

Hi,

Not very important but multi-theme :

  • Add new lines in code and so should cost maintenance at the end but don't give extra feature. (i' ve been thinking of that because of #47)
  • If we need a custom color/design for whatever reason it may not fit all themes.

But of course multi theme is funny and we are geeks :-)

Have a nice day.

Support area graphs (like Bollinger Bands)

Is your feature request related to a problem? Please describe.
Current graphs don't support Area charts.

These would be useful for things like Bollinger Bands (or 70/30 lines in RSI subplots).

Details

It's currently unclear how eCharts can support this - as current solutions / samples shift the base for the lower chart.

Research indicates that it might be possible by using a custom series for this - however further research is absolutely necessary.

There are also open issues (and others) which discuss supporting area-charts natively - but i don't think implementation of this are very far yet.

Hourly Profit chart, highlight the current hour

Is your feature request related to a problem? Please describe.
No. Just an improvement for added usability

Describe the solution you'd like
Because FreqTrade operates on UTC time, and the Hourly Profit is a rolling 24 hour snapshot of how your bot is performing, it takes some back-and-forth between the Dashboard and Trade tabs, first to check "what UTC hour are we operating in right now?" then back to Dashboard, to see how this and recent hours are performing. It would be great if the bar graph (trade count) piece of the Hourly Profit would show the current hour in a different color (light blue) while all the remaining bars for the trade count in that graph remain light gray. This way, at a glance, you'd quickly know what hour it is operating in at this time.

Describe alternatives you've considered
None. My idea is the best ;) kidding.

Additional context
Just that it would make the at-a-glance dashboard that much better

Add clear documentation how to configure FreqUI with freqtrade

Is your feature request related to a problem? Please describe.
Add clear documentation how to configure FreqUI with freqtrade (for standalone/development mode).

This will include (for example) links to the freqtrade CORS documentation..

Describe alternatives you've considered
Additionally, FreqUI should be built and deployed as part of freqtrade build steps (so it's builtin to freqtrade) - however this will require a few more things to happen, so is currently not yet an option.

How do I get to the Frequi interface?

Hello, I'm testing the bot on my ubuntu server in local network.

I installed it with Docker and
I chose the IP: 127.0.0.1.
Username: freqtraders

but when I enter my local server's ip address (192.168.1.123:8080) into my browser on my own device on the same network, no interface meets me.

I opened the command in the docker compose file.

    ports:
      - "127.0.0.1:8080:8080"

What am I missing?

image

Sort closed trades by close date descending

Is your feature request related to a problem? Please describe.
Right now the closed trades are sorted by id ascending. This means that the newest closed trades are at the end of the list, sometimes even on another page. This while the newest closed trades are viewed most, e.g. to see what the bot has been up to.

Describe the solution you'd like
I would prefer the closed trades list to be sorted by close date descending. Even better would be to sort by arbitrary columns in both directions, but that's not as high of a priority for me.

Access to my API on my vps

Hello frequi team,

I tried to acces to my freqtrade located on my vps (US) from another computer but when i insert my vps adress in "api url" section
an error occured, i think the problem may come from the localhost of the vps but i'm not sure because i have an external adress but nothing working, do you have a solution ? or this feature can be used like this?

thank you in advance :)

Api url should be used on requests for docker deploy

Describe the bug
After logging in all request are made to the same port as frequi is running resulting on http 404.

To Reproduce
Just build with docker and deploy

Expected behavior
All request be made to the configured url on login

Screenshots
This was a simple change I've made to solve the problem
image

Desktop (please complete the following information):

  • OS: Ubuntu
  • Browser Chrome
  • Version 2020.7

Login error

Describe the bug
I can't login

Screenshots
vue-router.esm.js:2008 Uncaught (in promise) Error: Redirected when going from "/login?redirect=%2Fdashboard" to "/dashboard" via a navigation guard.
at Gt (vue-router.esm.js:2008)
at Mt (vue-router.esm.js:1967)
at vue-router.esm.js:2314
at index.ts:74
at h (vue-router.esm.js:2300)
at r (vue-router.esm.js:1947)
at r (vue-router.esm.js:1951)
at Rt (vue-router.esm.js:1955)
at ee.confirmTransition (vue-router.esm.js:2330)
at ee.transitionTo (vue-router.esm.js:2203)

Desktop (please complete the following information):

  • OS: Ubuntu 16.04
  • Browser I test with all browser
  • Version Latest

Trade Log chart change type to bar with color coding

The current trade log chart looks very messy especially when viewing a large amount of trades.

Would like to propose the chart changed to bar type with color coding to indicate +/- profits.
image

Additionally, limit the data displayed to be the last 30 trades but the user would have the capability to view all the trades.

Improve data refresh logic

Introduce intelligent refresh method
Currently freqUI will refresh certain datatypes once per minute (type slow), and others once every few seconds (fast).
This introduces unnecessary load to the browser, network, and the underlying bot - as very often data will not change.

Describe the solution you'd like

FreqUI should determine if a larger refresh is necessary (e.g. when a new trade is opened or closed) - and avoid refreshing unnecessary data like trade history + daily when no change to the open trades happened - as this will always return exactly the same results.

Bootstrap Vue or Vuetify ?

Hi,

From what i have seen is the code use BootstrapVue :-).
Just would like to mention Vuetify because it is the early stage of the project.

Because they have a LTS support, the doc is very readable, custom components css is easy with sass variables.

But you have to like material design. Has has see freqtrade ui like dashboard material design is a not so bad.

Have a nice day.

Use scoped only style in vue components

Hi,

Not use scoped only css/scss in Vuejs component could have side effects on other components.
We can use deep selectors when need to propagate to child components (exemple: when we use a bootstrap component)

Have a nice day.

Negative values in Daily Profit chart not visible

Describe the bug
The Daily Profit chart shows a line chart of the daily profit. However, only above 0 a line is visible, the negative dots are not connected
Schermafbeelding 2021-04-04 om 12 09 31

To Reproduce
Steps to reproduce the behavior:

  1. Go to Dashboard
  2. Scroll down to Daily Profit chart
  3. See error

Expected behavior
There should be a line connecting all the dots, both above and below the x-axis.

Screenshots
See above

Desktop (please complete the following information):

  • OS: MacOS BigSur
  • Browser: Safari AND Chrome

suggestion - log file monitoring in frequi

I just installed frequi and I must say, even in it's alpha state, it's super useful. Thanks for all the hard work.

One suggestion I'd like to make is a way to view the log file of freqtrade from the UI. Perhaps even notify on errors.

I realise it's not important for everyone. Right now I have a terminal open 24/7, tailing the log file, and I take a glimpse from time to time, because it's where a problem will appear first. Most likely not everyone does that, but I find it very useful.

My 2 cents.

Error while building with docker-compose

Describe the bug
I got following error when I'm running docker-compose build. I don't have any network connection problem on my raspberry pi

info There appears to be trouble with your network connection. Retrying...
info If you think this is a bug, please open a bug report with the information provided in "/app/yarn-error.log".
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
error An unexpected error occurred: "https://registry.yarnpkg.com/vue-material-design-icons/-/vue-material-design-icons-4.11.0.tgz: ESOCKETTIMEDOUT".
info There appears to be trouble with your network connection. Retrying...
info There appears to be trouble with your network connection. Retrying...
info There appears to be trouble with your network connection. Retrying...
info There appears to be trouble with your network connection. Retrying...
ERROR: Service 'frequi' failed to build : The command '/bin/sh -c yarn' returned a non-zero code: 1

To Reproduce
run docker-compose build from terminal

Expected behavior
It should build without any issue

Desktop :

  • OS: Raspian
  • Version: Buster

Roadmap for freqUI (Freqtrade UI)

Roadmap / Next steps:

  • Finish implementation of a control interface supporting all options telegram supports
    • blacklist - add element to it done in 5afe652
    • blacklist - remove element (needs to be implemented in main bot first) 9f4c6c6
  • Develop deployment mechansim to nicely work together with freqtrade
    • with docker (seperate container, or build into freqtrade itself?)
    • without docker (add the output of the build step to the freqtrade CI and include it in releases, to deliver it via api server from freqtrade itself?) freqtrade/freqtrade#4285
  • Include simple plotting methods (#106)
    • UI will use Apache eCharts - a high performance, multi-purpose graphing library #21
  • add config editor (needs good consideration first - has security implications as it would expose API-keys via the API)
  • support backtesting (incl. graphical result analysis) (requires several changes to freqtrade structure - @xmatthias in theory done - bot part still missing) #247
  • support starting bot in trading mode (requires major changes to freqtrade structure - @xmatthias working on it, but will take a while)
  • multi bot control / dashboard (#478)

...

More points will be added to the above list as they pop up.

Please keep discussion in this issue to a minimum to keep it easily readable, but open a new issue if there is something to discuss around one of the above points.

Also - please let me know if you start working on one of the above points so we can avoid duplicated work.

Add to dockerhub

Create an image on the docker hub so it will be up to date with the repo.

You can make it as an alpha tag as it is still in that stage.

Add a 'hide small balances' to Balances display

Binance has a neat 'hide small balances' feature that unclutters the wallet and just shows significant holdings. Could we add such a feature to freqUI? You could always show the stake token regardless of amount (e.g. USDT), but hide all the other small ones and not add them up in the final simulated balance calcuation. The threshold as to what is considered a small balance could be set in the configuration, or modified in the UI.

Gui and iPad Pro

hi, i‘m using my ipad pro for monitoring, and all works ashly fine, but what i’have to say, to touch the silder, is terrible ... on a ipad ... may in the future it will be better useable , i‘hope ...

tradeslog contains too many items

Describe the bug

The default view is basically unreable and messy with several hundred/thousand trades (numbers will depend on the screen size/resolution I guess). Also: loading so many trades probably doesn't make much sense.

To Reproduce
Steps to reproduce the behavior:

  1. Do >1000 trades
  2. Click on 'dashboard'
  3. Look at the trades log

Expected behavior
I'd say limiting the trades log to the last 100 trades or the last 24h by default would make sense, or allowing to define a limit. Also reducing the amount of Text on top of the graph would make sense.

Screenshots

Screenshot_20210502_024740

Desktop (please complete the following information):

  • OS: debian unstable
  • Browser chrome
  • Version 91.0.4469.4 dev

Pair list does not overflow after a certain height

The pairs list does not overflow after a certain height and the height of the page keeps on increasing as more pairs are traded by the bot.

Steps to reproduce the behavior:
Have a long list of traded pairs (see the screenshot attached)

screencapture

Expected behavior
Scrollbars should be displayed after a max height is reached. See attached.
screencapture-expected

Desktop (please complete the following information):

  • OS: Windows 10
  • Browser Chrome
  • Version 88

Add Cypress End To End testing Support

This is a nice to have enhancement for testing and CI.

  • Cypress is a free tool for end to end testing of user interfaces.
  • It is a very simple testing framework that replicates user testing. So you can write a test of a user logging into freqtrade and have have a video recorded of the entire session.
  • Their is no vendor lock-in and it's easier to set up than selenium.

They have a freemium business model, with a paid plan mostly for enterprises. All that includes is a dashboard for the CI. The CI isn't needed and all the features of cypress are included free or not. None of this matters though, because the dashboard is FREE for open source projects.

https://docs.cypress.io/guides/core-concepts/dashboard-service.html#Requesting-OSS-Plan-for-an-Org

I'm opening this here for future expansion. Obviously it's not needed right now, but it's an awesome tool I've recently discovered and should be noted for future integrations.

SASS over just CSS ?

Hi,

SASS is a css pre-processor that give ability to use variables, mixins so help to keep you code dry.
If you would like to change css framework look most of the time they tell you what sass variable overwrite and ensure not to have side effets in the UI.

https://bootstrap-vue.org/docs/reference/theming

Have a nice day.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.