Kelp is a free and open-source trading bot for the Stellar DEX and 100+ centralized exchanges

Overview

Kelp

Kelp logo

GitHub last commit Github All Releases license

Godoc Go Report Card Build Status Contributors

Kelp is a free and open-source trading bot for the Stellar universal marketplace and for centralized exchanges such as Binance, Kraken, CoinbasePro, etc.

Kelp includes several configurable trading strategies and exchange integrations. You can define your own parameters or use the sample configurations to quickly get up and running with a trading bot in a matter of minutes. The modular design allows you to easily create new trading strategies, exchange integrations, and assets to give you full control over the bot.

Kelp is built to:

  • Make spreads and make markets
  • Create liquidity and facilitate price-discovery for ICOs
  • Price and trade custom stablecoins
  • Mimic orderbooks from other exchanges

To learn more about the Stellar protocol check out Stellar Videos on Coinbase Earn, or this video about the Stellar DEX created by Lumenauts, or read more about it on the Stellar Website.

Be Smart and Go Slow

Important Disclaimer: Be Smart and Go Slow. Whenever you trade on Stellar, you are trading with volatile assets, in volatile markets, and you risk losing money. Kelp is an experimental software that contains bugs. Use Kelp at your own risk. There is no guarantee you'll make a profit from using our bots or strategies. In fact, if you set bad parameters or market conditions change, Kelp might help you lose money very fast. So be smart and go slow.

Your use of Kelp is governed by the Apache 2.0 open-source license. Please note that SDF’s interactions with you are governed by the SDF Terms of Service and Privacy Policy.

Kelp GUI screenshot

Table of Contents

Getting Started

How To Get Kelp

To get started with Kelp, either download the pre-compiled binary for your platform from the Github Releases Page or compile Kelp from source.

There is one binary associated with this project: kelp. Once the binary is downloaded, run the bot by following the instructions in Running Kelp.

Download Kelp Binary

You can find the pre-compiled binary for your platform from the Github Releases Page.

Here is a list of binaries for the most recent release v1.10.0:

Platform Architecture Binary File Name
MacOS (Darwin) 64-bit kelp-v1.10.0-darwin-amd64.tar
Windows 64-bit kelp-v1.10.0-windows-amd64.tar
Linux 64-bit kelp-v1.10.0-linux-amd64.tar
Linux 64-bit arm kelp-v1.10.0-linux-arm64.tar
Linux 32-bit arm5 kelp-v1.10.0-linux-arm5.tar
Linux 32-bit arm6 kelp-v1.10.0-linux-arm6.tar
Linux 32-bit arm7 kelp-v1.10.0-linux-arm7.tar

After you untar the downloaded file, change to the generated directory (kelp-v1.10.0) and invoke the kelp binary.

Here's an example to get you started (replace filename with the name of the file that you download):

tar xvf filename
cd kelp-v1.10.0
./kelp

To run the bot in simulation mode, try this command:

./kelp trade -c sample_trader.cfg -s buysell -f sample_buysell.cfg --sim

Compile from Source

Note for Windows Users: You should use a Bash Shell to follow the steps below. This will give you a UNIX environment in which to run your commands and will enable the ./scripts/build.sh bash script to work correctly.

To compile Kelp from source:

  1. Download and setup Golang v1.13 or later.
    • Confirm that $GOPATH is set, and that GOBIN=$GOPATH/bin
    • Confirm that $PATH includes the full filepath of $GOBIN
  2. Install Glide for dependency management
    • curl https://glide.sh/get | sh
  3. Install Yarn and NodeJs to build the Kelp GUI
  4. Clone the repo into $GOPATH/src/github.com/stellar/kelp:
    • git clone [email protected]:stellar/kelp.git
    • Change to kelp directory for all following commands: cd $GOPATH/src/github.com/stellar/kelp
  5. Install the dependencies:
    • glide install
  6. Install the astilectron-bundler binary into $GOBIN
    • go get -u github.com/asticode/go-astilectron-bundler/...
    • go install github.com/asticode/go-astilectron-bundler/astilectron-bundler
  7. Build the binaries using the provided build script (the go install command will produce a faulty binary):
    • ./scripts/build.sh
  8. Confirm one new binary file exists with version information.
    • ./bin/kelp version
  9. Set up CCXT to use an expanded set of priceFeeds and orderbooks (see the Using CCXT section for details)
    • sudo docker run -p 3000:3000 -d franzsee/ccxt-rest:v0.0.4

Running Kelp

Kelp places orders on the Stellar marketplace based on the selected strategy. Configuration files specify the Stellar account and strategy details.

These are the following commands available from the kelp binary:

  • trade: Trades with a specific strategy against the Stellar universal marketplace
  • exchanges: Lists the available exchange integrations along with capabilities
  • strategies: Lists the available strategies along with details
  • version: Version and build information
  • help: Help about any command

The trade command has three required parameters which are:

  • botConf: full path to the .cfg file with the account details, sample file here.
  • strategy: the strategy you want to run (sell, sell_twap, buysell, balanced, pendulum, mirror, delete).
  • stratConf: full path to the .cfg file specific to your chosen strategy, sample files here.

Kelp sets the X-App-Name and X-App-Version headers on requests made to Horizon. These headers help us track overall Kelp usage, so that we can learn about general usage patterns and adapt Kelp to be more useful in the future. Kelp also uses Amplitude for metric tracking. These can be turned off using the --no-headers flag. See kelp trade --help for more information.

Here's an example of how to start the trading bot with the buysell strategy:

kelp trade --botConf ./path/trader.cfg --strategy buysell --stratConf ./path/buysell.cfg

If you are ever stuck, just run kelp help to bring up the help section or type kelp help [command] for help with a specific command.

Using CCXT

You can use the CCXT library via the CCXT REST API Wrapper to fetch prices and orderbooks from a larger number of exchanges. You will need to run the CCXT REST server on localhost:3000 so Kelp can connect to it.

The CCXT-REST server must be running on port 3000 before you start up the Kelp bot. You can list the exchanges (./kelp exchanges) to get the full list of supported exchanges via CCXT.

Note: this integration is still experimental and is also incomplete. Please use at your own risk.

CCXT-rest can be run in any one of the following ways.

Download CCXT Binary

We have compiled the ccxt-rest v0.0.4 server as a binary for all x86 platforms (linux, darwin, windows). This is the version that Kelp currently uses.

You can find these pre-compiled binaries of the CCXT-rest server in the releases tab here.

Run CCXT using Docker

Install docker (linux: sudo apt install -y docker.io) and run the CCXT-REST docker image configured to port 3000 (linux: sudo docker run -p 3000:3000 -d franzsee/ccxt-rest:v0.0.4). You can find more details on the CCXT_REST github page.

Using Postgres

Postgres v12.1 or later must be installed for Kelp to automatically write trades to a sql database along with updating the trader config file.

Examples

It's easier to learn with examples! Take a look at the walkthrough guides and sample configuration files below.

Walkthrough Guides

Configuration Files

Each strategy you implement needs a configuration file. The format of the configuration file is specific to the selected strategy. You can use these files to customize parameters for your chosen strategy.

The following reference config files are in the examples folder:

Winning Educational Content from StellarBattle

SDF sponsored a Kelp StellarBattle in August/September 2020, here were the winning results (announcement):

Components

Kelp includes an assortment of strategies, price feeds, and plugins you can use to customize your bot. Kelp also enables you to create your own trading strategies.

click to expand Components section

Strategies

Strategies are at the core of Kelp. Without them it's just lazy, capable of nothing, thinking of nothing, doing nothing, like our friend scooter here. The strategies give your bot purpose. Each approaches the market in a different way and is designed to achieve a particular goal.

The following strategies are available out of the box with Kelp:

  • sell (source):

    • What: creates sell offers based on a reference price with a pre-specified liquidity depth
    • Why: To sell tokens at a fixed price or at a price that changes based on an external reference price
    • Who: An issuer could use Sell to distribute tokens from an ICO pre-sale
  • sell_twap (source):

    • What: creates sell offers based on a reference price spread over the day for a given daily sale amount
    • Why: To sell tokens consistently using the time-weighted-average-price (TWAP) metric
    • Who: An issuer could use SellTwap to distribute tokens from an ICO pre-sale in a consistent manner
  • buysell (source):

    • What: creates buy and sell offers based on a specific reference price and a pre-specified liquidity depth while maintaining a spread.
    • Why: To make the market for tokens based on a fixed or external reference price.
    • Who: Anyone who wants to create liquidity for a stablecoin or fiat token
  • balanced (source):

    • What: dynamically prices two tokens based on their relative demand (like AMMs). For example, if more traders buy token A from the bot (the traders are therefore selling token B), the bot will automatically raise the price for token A and drop the price for token B. This strategy does not allow you to configure the order size but can run out of assets. This is a mean-reversion strategy.
    • Why: To let the market surface the true price for one token in terms of another.
    • Who: Market makers and traders for tokens that have a neutral view on the market
  • pendulum (source):

    • What: dynamically prices two tokens based on their relative demand (like AMMs). For example, if more traders buy token A from the bot (the traders are therefore selling token B), the bot will automatically raise the price for token A and drop the price for token B. This strategy allows you to configure the order size but runs the risk of running out of one of the two assets. This is a mean-reversion strategy.
    • Why: To let the market surface the true price for one token in terms of another.
    • Who: Market makers and traders for tokens that have a neutral view on the market
  • mirror (source):

    • What: mirrors an orderbook from another exchange by placing the same orders on Stellar after including a spread.
    • Why: To hedge your position on another exchange whenever a trade is executed to reduce inventory risk while keeping a spread
    • Who: Anyone who wants to reduce inventory risk and also has the capacity to take on a higher operational overhead in maintaining the bot system.
  • delete (source):

    • What: deletes your offers from both sides of the specified orderbook. Note: does not need a strategy-specific config file.
    • Why: To kill the offers placed by the bot. This is not a trading strategy but is used for operational purposes only.
    • Who: Anyone managing the operations of the bot who wants to stop all activity by the bot.

Refer to this Pull Request to see an example template of a new trading strategy.

Price Feeds

Price Feeds fetch the price of an asset from an external source. The following price feeds are available out of the box with Kelp:

  • crypto: fetches the price of tokens from CoinMarketCap
  • fiat: fetches the price of a fiat currency from the CurrencyLayer API
  • exchange: fetches the price from an exchange you specify, such as Kraken or Poloniex. You can also use the CCXT integration to fetch prices from a wider range of exchanges (see the Using CCXT section for details)
  • fixed: sets the price to a constant
  • function: uses a pre-defined function to combine the above price feed types into a single feed. We currently support only two types
    • max - max(exchange/ccxt-binance/XLM/USDT/mid,exchange/ccxt-coinbasepro/XLM/USD/mid)
    • invert - invert(exchange/ccxt-binance/XLM/USDT/mid)

Exchanges

Exchange integrations provide data to trading strategies and allow you to hedge your positions on different exchanges. The following exchange integrations are available out of the box with Kelp:

  • sdex ("sdex") (source): The Stellar Decentralized Exchange
  • kraken ("kraken") (source): Kraken - recommended to use ccxt-kraken instead
  • kraken (via CCXT) ("ccxt-kraken") (source): Kraken via CCXT - full two-way integration (tested)
  • binance (via CCXT) ("ccxt-binance") (source): Binance via CCXT - full two-way integration (tested)
  • coinbasepro (via CCXT) ("ccxt-coinbasepro") (source): Coinbase Pro via CCXT - full two-way integration (tested)
  • poloniex (via CCXT) ("ccxt-poloniex") (source): Poloniex via CCXT - only tested on priceFeeds and one-way mirroring
  • bittrex (via CCXT) ("ccxt-bittrex") (source): Bittrex via CCXT - only tested on priceFeeds and onw-way mirroring

Plugins

Kelp can easily be extended because of its modular plugin based architecture. You can create new flavors of the following components: Strategies, PriceFeeds, and Exchanges.

These interfaces make it easy to create plugins:

  • Strategy (source) - API for a strategy
  • PriceFeed (source) - API for price of an asset
  • Exchange (source) - API for crypto exchanges

Directory Structure

The folders are organized to make it easy to find code and streamline development flow. Each folder is its own package without any sub-packages.

github.com/stellar/kelp
├── api/            # API interfaces live here (strategy, exchange, price feeds, etc.)
├── cmd/            # Cobra commands (trade, exchanges, strategies, etc.)
├── examples/       # Sample config files and walkthroughs
├── model/          # Low-level structs (dates, orderbook, etc.)
├── plugins/        # Implementations of API interfaces (sell strategy, kraken, etc.)
├── support/        # Helper functions and utils
├── trader/         # Trader bot logic; uses other top-level packages like api, plugins, etc.
├── glide.yaml      # Glide dependencies
├── main.go         # main function for our kelp binary
└── ...

Accounting

You can use Stellar-Downloader to download trade and payment data from your Stellar account as a CSV file.

Community

click to expand Community section

Contributing

See the Contribution Guide and then please sign the Contributor License Agreement.

Changelog

See the Changelog.

Code of Conduct

See the Code of Conduct.

Project Improvements

Public Assets

click to expand Public Assets section

TEST1 and TEST2 issued by the GCL4KBYTRA3QYI4JTN4FWVYVYNI67W2M6XMDUB2V6ZLWFASIYHWEJPHU account are test assets used to test Kelp on the production Stellar Network. These assets have no value and are marked as auth_required with the intent to close them off from the rest of the Stellar ecosystem. No trustlines will be accepted against these assets. As part of our testing process, you may observe a market and trades between these two tokens. It is not intended for any of these assets to represent any meaningful volume on the Stellar Network.

Issues
  • "maker only" mode for buysell

    Desired Behavior

    The bot should have a mode where it tries to only make orders that do not cross any existing orders (maker only orders).

    Impact

    This can help you avoid unnecessary wash trades if someone else is also market-making but your price feeds or preferences are causing you to place slightly different orders.

    Feature Suggestion

    Without the DEX protocol itself supporting maker-only orders, anything done in the bot will be a best effort. However, I believe that the basic flow is simply: each time re-evaluating orders to place:

    • first load all orders for the asset pair from the DEX
    • check if the order you'd be placing will cross with an existing order. If it would, do not place it.

    References

    Bots aimed at centralized exchanges will generally have this feature because centralized exchanges usually price maker vs. taker orders quite differently.

    Example: https://github.com/DeviaVir/zenbot#strategies

    Additional context

    I believe this should be a flag/parameter for buysell. There's an argument that it could be its own strategy, but I think it's better as a parameter because it might apply to various different strategies (could apply to sell as well, maybe even to balanced).

    Specification

    (updated by @nikhilsaraf: flag should be optional and in the strategy config file but execution by the framework, augment the strategy interface to support this. This should be handled by either the framework or the exchange implementation but the framework can do the threading of the flag. For the SDEX implementation we can filter out orders by querying the orderbook to find and delete the intersection between existing orderbook and orders we want to create)

    feature request 
    opened by jimdanz 12
  • No orderConstraints for trading pair XLM/EUR

    No orderConstraints for trading pair XLM/EUR

    Describe the bug

    I'm not able to get the XLM/EUR pair to work with kraken or with ccxt-kraken with the mirror strategy.

    With kraken it says panic: krakenExchange could not find orderConstraints for trading pair XLM/EUR. Try using the "ccxt-kraken" integration instead.

    With ccxt-kraken it says 2020/05/12 15:48:55 cannot make 'mirror' strategy: makeFn failed: error when making the 'ccxt-kraken' exchange: error making a ccxt exchange: error when initializing Ccxt exchange: error loading markets for exchange instance (exchange=kraken, instanceName=kraken): error in response, bodyString: {"message":"kraken GET https://support.kraken.com/hc/en-us/articles/205893708-What-is-the-minimum-order-size- 403 Forbidden Security check (possible reasons: invalid API keys, bad or old nonce, exchange is down or offline, on maintenance, DDoS protection, rate-limiting)","error":{}}.

    Expected behavior

    I think the correct behavior in this situation is for the bot to start trading XLM/EUR.

    Frequency

    The frequency is: always.

    Steps To Reproduce

    /

    Your Environment

    cli version: master:v1.9.0-2-g6c9411cb gui version: v1.0.0-rc1 git branch: master git hash: 6c9411c build date: 20200509T224154Z env: dev GOOS: linux GOARCH: arm

    Context

    I am unable to start trading with XLM/EUR pair.

    I've found this issue on ccxt: https://github.com/ccxt/ccxt/issues/6700 related to the ccxt-kraken issue.

    Is Kraken not usable with Kelp?

    bug 
    opened by BouweCeunen 10
  • [ad-hoc] [2] Question about running the kelp on Kubernetes

    [ad-hoc] [2] Question about running the kelp on Kubernetes

    Hi,

    I am trying to run the kelp on Kubernetes. One pod runs the kelp container and another one the ccxt-container. I have tried to run kelp with the server command as follows:

    command: [ "./bin/kelp"] args: ["server","--no-electron","--ccxt-rest-url","$(CCXT_REST_URL)"]

    Where CCXT_REST_URL is the ip address of the service that is exposing the ccxt pod.

    Run initializes correctly. However, when building the ui I get the following error: "exec: "xdg-open": executable file not found in $PATH". Do you know what this might be?

    Below the final lines of the log file:

    2020/11/12 14:43:53 ... all CCXT instances initialized 2020/11/12 14:43:53 generating contents of /go/src/github.com/stellar/kelp/gui/web/build ... 2020/11/12 14:43:54 yarn run v1.22.5 2020/11/12 14:43:54 $ react-scripts build 2020/11/12 14:43:56 Creating an optimized production build... 2020/11/12 14:44:39 Compiled successfully. 2020/11/12 14:44:39 2020/11/12 14:44:39 File sizes after gzip: 2020/11/12 14:44:39 2020/11/12 14:44:39 191.89 KB build/static/js/2.8611f4f2.chunk.js 2020/11/12 14:44:39 20.42 KB build/static/js/main.935887f0.chunk.js 2020/11/12 14:44:39 6.08 KB build/static/css/main.4195cb50.chunk.css 2020/11/12 14:44:39 762 B build/static/js/runtime~main.a8a9905a.js 2020/11/12 14:44:39 2020/11/12 14:44:39 The project was built assuming it is hosted at the server root. 2020/11/12 14:44:39 You can control this with the homepage field in your package.json. 2020/11/12 14:44:39 For example, add this to build it for GitHub Pages: 2020/11/12 14:44:39 2020/11/12 14:44:39 "homepage" : "http://myname.github.io/myapp", 2020/11/12 14:44:39 2020/11/12 14:44:39 The build folder is ready to be deployed. 2020/11/12 14:44:39 You may serve it with a static server: 2020/11/12 14:44:39 2020/11/12 14:44:39 yarn global add serve 2020/11/12 14:44:39 serve -s build 2020/11/12 14:44:39 2020/11/12 14:44:39 Find out more about deployment here: 2020/11/12 14:44:39 2020/11/12 14:44:39 https://bit.ly/CRA-deploy 2020/11/12 14:44:39 2020/11/12 14:44:39 Done in 45.86s. 2020/11/12 14:44:39 ... finished generating contents of /go/src/github.com/stellar/kelp/gui/web/build 2020/11/12 14:44:39 2020/11/12 14:44:39 starting server on port 8000 2020/11/12 14:44:39 sleeping for 1 seconds before showing the ready string indicator... 2020/11/12 14:44:40 Serving frontend and API server on HTTP port: 8000 2020/11/12 14:44:40 exec: "xdg-open": executable file not found in $PATH

    opened by Ebioro 10
  • integrate new logger framework

    integrate new logger framework

    This PR continues https://github.com/interstellar/kelp/issues/9

    I've integrated the new logger into the various structs and make... functions. It does not compile, pending some questions.

    I also revised some functions in lower level packages that should return errors instead of doing their own logging, which is what the majority of the functions in those packages do. Namely in model/assets.go, model/botkey.go and support/utils/configs.go. I did not yet go through and revise every call to these functions, I wanted to confirm that this approach makes sense first. Hence the not compiling.

    I wanted to do the same thing for support/utils/functions.go but its functions are so nested that changing from self-logging to outputting loggable errors in some of the functions would cascade into other functions having to check multiple possible duplicate errors and then output those yet again. All of which seems massively bloated. PriceAsFloat is a big offender here as it is called multiple times in functions like Less. What do you think?

    What should we do with log lines followed by panic, e.g. support/networking/server.go lines 98-99. Should they be switched to panic(fmt.Errorf(...) as in cmd/exchanges.go line 31?

    You'll see that my IDE did a couple weird things. It added a blank line after the import of logger in most files every time I saved the file. Is that right for some reason? It also aliased a couple imports, e.g. krakenapi "github.com/Beldur/kraken-go-api-client". The code uses those aliases, so that seems reasonable.

    This PR is showing the previously merged changes from https://github.com/interstellar/kelp/pull/88 as new; not sure what that's about.

    File status details:

    Files that need framework conversion:
    	support/networking
    		server.go - pending decision on what to do with panics
    	suport/utils
    		functions.go - pending decision on what to do with all the functions error cascading
    
    
    Files ready for find-replace:
    	api/
    		priceFeed.go
    	plugins/
    		exchangeFeed.go
    		ccxtExchange.go
    		deleteSideStrategy.go
    		fillLogger.go
    		fillTracker.go
    		intervalTimeController.go
    		krakenExchange.go
    		mirrorStrategy.go
    		sdex.go
    		sellSideStrategy.go
    		staticSpreadLevelProvider.go
    	support/monitoring/
    		metricsEndpoint.go
    		pagerDuty.go
    	support/sdk
    		ccxt.go
    	support/utils
    		configs.go
    	terminator/
    		terminator.go
    	trader/
    		trader.go
    
    Files fully converted to new logger framework, i.e. don't have log output lines to replace:
    	api/
    		assets.go
    	model/
    		assets.go
    		botKey.go
    	cmd/
    		trade.go
    	plugins/
    		cmcFeed.go
    		fiatFeed.go
    		fixedFeed.go
    		balancedLevelProvider.go
    
    Files that don't need converting (_test and non-.go files not listed):
    
    main.go
    	accounting/pnl/
    		pnl.go (not actually Kelp)
    	cmd/
    		exchanges.go (wouldn't log this)
    		root.go
    		strategies.go (wouldn't log this)
    		version.go
    	api/
    		alert.go
    		exchange.go
    		level.go
    		strategy.go
    		timeController.go
    	model/
    		dates.go
    		number.go
    		orderbook.go
    		tradingPair.go
    	plugins/
    		balancedStrategy.go
    		buysellStrategy.go
    		composeStrategy.go
    		deleteStrategy.go
    		factory.go
    		priceFeed.go
    		sellStrategy.go
    	support/monitoring
    		factory.go
    		metrics.go
    		metricsRecorder.go
    	support/networking
    		endpoint.go
    		network.go
    		parser.go
    	support/utils
    		config.go
    	terminator/
    		config.go
    	trader/
    		config.go
    
    opened by Reidmcc 9
  • TargetPrice is 0 Error Balanced strategy

    TargetPrice is 0 Error Balanced strategy

    Describe the bug

    error in selling sub-strategy: unable to create preceding offers: could not compute targets: targetPrice is 0

    Expected behavior

    I think the correct behavior in this situation is for the bot to trade XLM for USD and vice versa.

    Frequency

    The frequency is: always.

    Steps To Reproduce

    It started trading and has traded to a balance of 0 USD. It generates this error now.

    Possible Solution

    /

    Your Environment

    cli version: (no:v1.9.0 gui version: v1.0.0-rc1 git branch: (no git hash: ab3333ed871e81124b59d053b60a5856aecc5f41 build date: 20200514T081355Z env: dev GOOS: linux GOARCH: amd64

    Context

    I am unable to trade with Kelp because of this bug.

    Attachments

    /

    bug 
    opened by BouweCeunen 8
  • Prevent unnecessary balanced strategy re-randomization

    Prevent unnecessary balanced strategy re-randomization

    Here's the update to balancedLevelProvider to have it remember what its balances were last run and not mess with the levels if they didn't really change.

    The code creates a very small range of balances to consider "the same" because the maxAsset variables come back slightly different every run-through, even if no levels were touched. My guess is that it's a floating-point math problem.

    opened by Reidmcc 8
  • panic: runtime error: index out of range | Kelp Bot | Windows 10 | Command Prompt

    panic: runtime error: index out of range | Kelp Bot | Windows 10 | Command Prompt

    Just as in the title.

    Receiving the runtime error. Not sure what it is. Can anyone provide any insight? Error

    opened by LitraCoinOrg 8
  • [Nikhil ad-hoc] [2] (4) Trying to access db_version when starting up kelp with db before the table even exists?

    [Nikhil ad-hoc] [2] (4) Trying to access db_version when starting up kelp with db before the table even exists?

    Reported by someone in the community. Need to look into this.

    // see a sample bug report here: https://github.com/stellar/kelp/issues/1

    Describe the bug

    // A succinct description of the buggy behavior. // This section includes what the bot is doing and why you think it is incorrect.

    The bot ...

    Expected behavior

    // A succinct description of what you expected to happen.

    I think the correct behavior in this situation is for the bot to ...

    Frequency

    // How often does this happen? // Unpredictable = it's hard to predict when it will happen // Sometimes = it happens every now and then but there's no pattern to it // Always = it always happens consistently at the same point

    The frequency is: ...

    Steps To Reproduce

    // A concise description of the steps to reproduce the buggy behavior along with screenshots wherever applicable:

    Here are the steps to reproduce the issue (see attachments in section below):

    1. Set up your configuration file with these parameters: ...
    2. Start the bot using this command: ... ...

    Possible Solution

    // Optional, suggest a fix.

    This bug can be fixed by ...

    Your Environment

    // Run kelp version to get the version and build information and paste it here // cli version: v1.0.0-rc1 // gui version: v0.0.1 // git hash: 1bcc4e9fa4012867a549472dbdf61cb008041305 // build date: 20180813T013016Z // GOOS: linux // GOARCH: amd64

    ...

    Context

    // A succinct description of how has this bug has affected you or prevented you from accomplishing what you wanted.

    I am unable to ... because of this bug.

    Attachments

    // Attach any relevant configuration files, logs, tx hashes, etc. here.

    bug 
    opened by nikhilsaraf 8
  • Dashboard UI tool to manage Kelp processes on your machine

    Dashboard UI tool to manage Kelp processes on your machine

    Desired Behavior

    I want to be able to visualize all the Kelp processes that I have running on my system with controls for each instance.

    Impact

    The desired behavior will allow me to scale up my usage of Kelp and better manage markets.

    Feature Suggestion

    We can achieve the desired behavior by having a Dashboard UI for Kelp. This can be a web page that interfaces with a server that controls various bot instances running on the machine.

    References

    This feature exists in quite a few trading bots (both crypto and non-crypto). Please see the specification section below for details.

    Specification​

    v1.0 (MVP)

    1. list of all the bot instances (markets) you are running on your machine
    2. create and delete bot instances
    3. start and stop bots
    4. delete offers for a market

    Mockup

    img_3991

    Items

    • [x] bundle in React.js applications for frontend
    • [x] deployment mode embeds JS assets into binary (when building with ./scripts/build.sh -d)
    • [x] local mode running from static files in filesystem (when building with ./scripts/build.sh and running with ./bin/kelp server)
    • [x] dev mode with hot-reloading of JS code from filesystem (when building with ./scripts/build.sh and running with ./bin/kelp server --dev)
    • [x] design mockups
    • [x] frontend react components to be used
    • [x] list, start, stop/delete bot instances
    • [x] edit bot instances
    • [x] delete bot instances
    • [x] create bot instances (buysell strategy only for now)
    • [x] edit form validation
    • [x] add trustlines on account when saving
    • [x] first pass at polishing
    feature request 
    opened by nikhilsaraf 8
  • Unable to find proper guide to configure bot for my exchange software

    Unable to find proper guide to configure bot for my exchange software

    I have implemented api.Exchange interface for an exchange software but after that i don't know how to configure and run the bot for market making on exchange software. I have gone through sample_trade.cfg and sample_buysell.cfg but i can't understand how to configure it for my exchange software. I need to know which cfg parameters i need to set to run bot?

    feature request 
    opened by taalhach 7
  • Explore if Kelp can be connected to 0x

    Explore if Kelp can be connected to 0x

    Desired Behavior

    I want to connect Kelp to Ethereum DEXs and AMMs via the 0x API

    Impact

    The desired behavior will allow me to access large amounts of liquidity on decentralized exchanges, further increasing the ability for me to provide liquidity and potentially offset positions and/or build price feeds, or to trade on using Kelp

    Feature Suggestion

    https://0x.org/docs/guides/0x-data-existing-tools#%EF%B8%8F-scope-and-concepts-%EF%B8%8F

    feature request help wanted 
    opened by nikhilsaraf 0
  • [3] Pendulum Trading Template should allow a price feed for the seed price

    [3] Pendulum Trading Template should allow a price feed for the seed price

    Desired Behavior

    I want to be able to restart a bot configured from the Pendulum trading template without having to re-configure the SEED_PRICE field every time.

    Impact

    The desired behavior will allow me to reduce my risk while running Kelp

    Feature Suggestion

    We can achieve the desired behavior by adding a price feed as a price source for the SEED_PRICE instead of a fixed price. This will fetch the price once when the bot starts up.

    feature request 
    opened by nikhilsaraf 0
  • Bump urijs from 1.19.2 to 1.19.7 in /gui/web

    Bump urijs from 1.19.2 to 1.19.7 in /gui/web

    Bumps urijs from 1.19.2 to 1.19.7.

    Release notes

    Sourced from urijs's releases.

    1.19.7 (July 14th 2021)

    • SECURITY fixing URI.parseQuery() to prevent overwriting __proto__ in parseQuery() - disclosed privately by @​NewEraCracker
    • SECURITY fixing URI.parse() to handle variable amounts of \ and / in scheme delimiter as Node and Browsers do - disclosed privately by ready-research via https://huntr.dev/
    • removed obsolete build tools
    • updated jQuery versions (verifying compatibility with 1.12.4, 2.2.4, 3.6.0)

    1.19.6 (February 13th 2021)

    • SECURITY fixing URI.parse() to rewrite \ in scheme delimiter to / as Node and Browsers do - disclosed privately by Yaniv Nizry from the CxSCA AppSec team at Checkmarx

    1.19.5 (December 30th 2020)

    1.19.4 (December 23rd 2020)

    1.19.3 (December 20th 2020)

    Changelog

    Sourced from urijs's changelog.

    1.19.7 (July 14th 2021)

    • SECURITY fixing URI.parseQuery() to prevent overwriting __proto__ in parseQuery() - disclosed privately by @​NewEraCracker
    • SECURITY fixing URI.parse() to handle variable amounts of \ and / in scheme delimiter as Node and Browsers do - disclosed privately by ready-research via https://huntr.dev/
    • removed obsolete build tools
    • updated jQuery versions (verifying compatibility with 1.12.4, 2.2.4, 3.6.0)

    1.19.6 (February 13th 2021)

    • SECURITY fixing URI.parse() to rewrite \ in scheme delimiter to / as Node and Browsers do - disclosed privately by Yaniv Nizry from the CxSCA AppSec team at Checkmarx

    1.19.5 (December 30th 2020)

    1.19.4 (December 23rd 2020)

    1.19.3 (December 20th 2020)

    Commits
    • 19e54c7 chore(build): bumping to version 1.19.7
    • 547d4b6 build: update jquery
    • aab4a43 build: remove obsolete build tools
    • ac43ca8 fix(parse): more backslash galore #410
    • 622db6d docs: add security policy
    • 8e51b00 fix(parse): prevent overwriting proto in parseQuery()
    • 46c8ac0 chore(build): bumping to version 1.19.6
    • a1ad8bc fix(parse): treat backslash as forwardslash in scheme delimiter
    • d7bb4ce chore(build): bumping to version 1.19.5
    • bf04ec5 chore(build): bumping to version 1.19.4
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Feat/binance exchange ws get trade history/get latest trade cursor

    Feat/binance exchange ws get trade history/get latest trade cursor

    Guidelines for submitting code to Kelp

    Before Submitting a PR

    1. Problem Identification

      1. ensure you understand the problem / task.
      2. ask initial questions to understand the task described in the Github issue, which may not be clearly defined.
      3. you can reach the team on keybase or by commenting on the Github issue.
      4. this is not the point to discuss concrete solutions (concrete design or implementation), but only what the problem is and the desired outcome.
      5. ask any questions related to scope of work, breakdown of tasks into subtasks and PRs.
      6. typically this should be covered in the Github issue. If it is not, then add to the issue after discussion with code owner.
      7. author needs to be comfortable with breakdown and scope of tasks. Scope should be small. Think about the overhead on the code reviewer when breaking down the tasks.
    2. Research Solution

      1. conduct research on the issue at hand. Identify point of code change and any “fallout” from the change (tip: search the codebase for consumers of the function / object, and their consumers etc., until you get to a part of the code that you are well-versed with).
      2. author needs to become the “expert” on the part of the code being touched before submitting a code change.
      3. If it will take you 2 more days to figure something out by reading the code or experimenting with the codebase then do it.
        1. This is not wasted effort.
        2. It is likely that the code reviewer would use a similar process to figure it out, but this is your job and not the code reviewer’s job.
      4. If the process of becoming an “expert” on a specific area would take you more than 2 days then discuss this with the code reviewer if it is worth it, and proceed accordingly.
      5. Think about what kind of tests you would want. Are you going with a black-box testing approach, or a white-box testing approach? Why?
    3. Technical Design Discussion

      1. PRs are not the best medium to conduct design discussions. The team is readily accessible and available so 1-1 meetings can be very effective.
      2. This is the best avenue to discuss your ideas for how to approach the problem.
      3. Prepare any relevant technical documentation for the design discussion and post on the Github issue and ping code owner.
        1. This can be in the form of a google document, flowchart diagram, or in rare cases a code snippet in a Draft PR.
        2. The Draft PR should not be reviewed by the code reviewer as part of the code change but can be used as a space to get feedback
        3. Resulting comments on a Draft PR can capture any guidance from the technical discussion.
        4. All Draft PRs should be discarded and never converted to a non-draft PR to avoid the overhead of comments lingering from the design discussion using the Draft PR.
      4. Schedule technical design discussion to go over the proposed solution.
      5. Include a list of tests you need to add, remove, modify. Consider all possibilities (tip: data related tests would require many test cases).
    4. Implementation

      1. implement feature or bug fix. This should be the first line of code that you write for the PR.
      2. Avoid for loops to “autogenerate” test cases, unless absolutely necessary.
    5. Pull Request

      1. The first version of the PR should not have any “surprises” compared to what was discussed in the technical design.
      2. See Handling of PRs section below for guide on how to get a PR to merged status.
      3. See detailed guide on submitting code-reviewer-friendly PRs. This guide will save a lot of time for both author and reviewer and will help speed up the turnaround time on PRs.

    Handling of PRs

    Typically, this is what is expected from the author of a Pull Request:

    1. Each PR should correspond to the smallest independent logical unit of change.
      1. each PR should be prefixed with "bugfix", "feature", or "refactor".
      2. refactors should never be mixed in with logic changes or bug fixes and vice-versa.
      3. refactors that change variable names across more than 1 function should be a separate PR altogether.
    2. Author should add inline commentary on the code changes to "guide" the reviewer on how to read the code change, highlighting key changes made.
      1. this should typically be 2-3 places, as anything bigger is too big of a PR and should be split up.
    3. We should aim for the following benchmarks in terms of PR efficiency:
      1. In 60% of the cases the PR should be approved without any changes requested from the reviewer.
      2. In 25% of the cases the reviewer should add 2-3 comments that need to be "fixed up". This is most likely a code style suggestion.
      3. In 10% of the cases the reviewer should request a structural change to the code. These should not be "new ideas".
      4. In <=5% of the cases the PR may be discarded because we have learned something new in the process of implementation.
    4. Author makes requested changes.
      1. no "new ideas" to be introduced at this stage.
      2. no structural changes to be introduced beyond what is requested.
      3. focus should be on minimizing "changes" beyond what is requested by reviewer.
      4. person who created a comment / raised a question on the PR is responsible to mark it as resolved once they are satisfied. The developer should not mark questions raised by the reviewer as resolved since the reviewer uses these comments as a way to track what they are looking for in the next iteration of the review (tip: use an emoji such as the checkbox emoji to mark an inline comment as handled or addressed).
    5. Reviewer re-reviews the code.
      1. result of the PR should be that the PR has moved to the next stage in the review ladder described above.
      2. this means that a PR will take a maximum of 2 review rounds to get to completion.
      3. back to the previous step for the author to make changes based on the re-review.

    Draft PRs

    1. If there is a need to "try out the change" and get feedback, we can use a draft PR, although this should be used sparingly.
    2. If a PR starts off in draft state then it should be used more as a "whiteboard for discussion" as opposed to the early stage of a PR.
    3. In most cases, Draft PRs should be discarded. To avoid noise from comments, Draft PRs should be resubmitted as fresh standalone PRs instead of converting the draft PR to a regular PR.
    opened by tibrn 0
  • [13] Add support for web-sockets on binance

    [13] Add support for web-sockets on binance

    Desired Behavior

    I want to support web-sockets for the following endpoints on binance:

    • fetch trade history
    • get orderbook
    • create order
    • cancel order
    • get open orders
    • get balance
    • ... and a few more (see detailed specification below)

    Impact

    The desired behavior will allow me to run Kelp at a sub-second latency on Binance

    Feature Suggestion

    We can achieve the desired behavior by creating a new exchange integration by implementing the exchange.go interface and calling it binanceExchange_ws.go in the plugins directory.

    We want to implement the api.Exchange interface in exchange.go (and therefore all the interfaces that are composed into the api.Exchange interface).

    See Specification section below for details

    Specification

    Desired Design Pattern

    You can wrap the ccxtExchange.go struct in your new struct (binanceExchange_ws.go) by making use of the delegation software design pattern. A good example of this pattern in our repo is batchedExchange.go

    Consumers of the exchange.go interface invoke the GetOrderBook() endpoint as a polling request, so the web-socket exchange will need to maintain a cache of the latest orderbook state and return that when the consumer calls GetOrderBook() on exchange.go (i.e. your implementation for binance called binanceExchange_ws.go). The same applies for other endpoints such as GetTradeHistory() and GetAccountBalances etc.

    Effectively, binanceExchange_ws.go is converting a web-sockets API (provided by Binance) to a REST API (api.Exchange).

    Examples to follow

    A good example to follow for this task is the kraken.go implementation which is based on Kraken's REST API. We want to build a similar integration but for Binance using web-sockets. Note that binance is already supported via our ccxt-rest integration as ccxt-binance via the ccxtExchange.go file.

    Useful Links

    Here is the link to Binance's API docs

    Golang SDKs you can use: https://github.com/adshao/go-binance

    Note: You will need to use Golang 1.13 to build and compile Kelp along with Glide. Please do not try and update the dependency pattern to use go mod when adding support for the Binance's Golang SDK since that is not the task. Only add your new SDK to the existing list.

    Testing

    Need a test similar to ccxtExchange_test.go. It is ok to copy-paste this test and then modify it.

    Deliverables

    Please submit this in multiple separate pull requests, broken up in the following way, in the following order. This will greatly help to speed up review:

    1. Add the following to your plugins/binanceExchange_ws.go file: GetTickerPrice() function implemented from the api/exchange.go#TickerAPI interface. Use the Individual Symbol Book Ticker Stream functionality in binance. Add supporting test in the same PR in plugins/binanceExchange_ws_test.go.
    2. Add the following to your plugins/binanceExchange_ws.go file: GetOrderBook() function implemented from the api/exchange.go#OrderbookFetcher interface. Use the Partial Book Depth Stream functionality in binance. Add supporting test in the same PR in plugins/binanceExchange_ws_test.go.
    3. Add the following to your plugins/binanceExchange_ws.go file: GetTradeHistory() and GetLatestTradeCursor() functions implemented from the api/exchange.go#TradeFetcher and api/exchange.go#FillTrackable interfaces. Use the Payload: Order Update Stream functionality in binance. GetLatestTradeCursor is a value saved in memory. Add supporting tests in the same PR in plugins/binanceExchange_ws_test.go.
    4. Add the following to your plugins/binanceExchange_ws.go file: GetOpenOrders() function implemented from the api/exchange.go#TradeAPI interface. Use the Payload: Order Update Stream functionality in binance. Add supporting test in the same PR in plugins/binanceExchange_ws_test.go.
    5. Add the following to your plugins/binanceExchange_ws.go file: AddOrder() and CancelOrder() functions implemented from the api/exchange.go#TradeAPI interface. Use the Payload: Order Update Stream functionality in binance. Add supporting tests in the same PR in plugins/binanceExchange_ws_test.go.
    6. Add the following to your plugins/binanceExchange_ws.go file: GetAccountBalances() function implemented from the api/exchange.go#Account interface. Use the Payload: Account Update Stream and the Payload: Balance Update Stream functionality in binance. Add supporting tests in the same PR in plugins/binanceExchange_ws_test.go.
    7. Add the following to your plugins/binanceExchange_ws.go file: GetTrades() functions implemented from the api/exchange.go#TradeAPI interface. Use the Trade Stream functionality in binance. Add supporting test in the same PR in plugins/binanceExchange_ws_test.go.

    Note: you can leave the deposit and withdraw API unfinished.

    Pull Request Process

    When submitting Pull Requests, please add comments in the PR to help guide the code reviewer to better understand the code. If a call is necessary, please suggest that in the PR and we can get on a call.

    feature request help wanted 
    opened by nikhilsaraf 0
  • Bump stellar-sdk from 3.3.0 to 8.2.3 in /gui/web

    Bump stellar-sdk from 3.3.0 to 8.2.3 in /gui/web

    Bumps stellar-sdk from 3.3.0 to 8.2.3.

    Release notes

    Sourced from stellar-sdk's releases.

    v8.2.3

    Fix

    • Fix server signature verification in Utils.readChallengeTx. The function was not verifying the server account had signed the challenge transaction. Refer to the advisory for more details.

    v8.2.2

    Fix

    v8.2.1

    Fix

    v8.2.0

    Add

    • Added support for querying the relevant transactions and operations for a claimable balance [(#628)](stellar/js-stellar-sdk#628):

      • TransactionCallBuilder.forClaimableBalance(): builds a query to /claimable_balances/:id/transactions/
      • OperationCallBuilder.forClaimableBalance(): builds a query to /claimable_balances/:id/operations/
    • Added support for new stat fields on the /assets endpoint [(#628)](stellar/js-stellar-sdk#628):

      • accounts - a breakdown of accounts using this asset by authorization type
      • balances - a breakdown of balances by account authorization type
      • num_claimable_balances - the number of pending claimable balances
      • claimable_balances_amount - the total balance of pending claimable balances
    • Added types for all Effects supported as an enum, and moved Trade, Asset, Offer, and Account types to separate files [(#635)](stellar/js-stellar-sdk#635).

    Update

    • Upgraded js-stellar-base package to version ^5.2.1 from ^5.1.0, refer to its release notes for more [(#639)](stellar/js-stellar-sdk#639):

      • opt-in support for muxed accounts (SEP-23)
      • exposing the AuthClawbackEnabled flag to Typescript to complete Protocol 17 support
      • fixing a public key parsing regression
    • Exposed more Protocol 17 (CAP-35) operations [(#633)](stellar/js-stellar-sdk#633):

      • The /accounts endpoint now resolves the flags.auth_clawback_enabled field.
      • The operation responses for clawback, clawbackClaimableBalance, and setTrustLineFlags are now defined.
      • The operation response for setOptions has been updated to show auth_clawback_enabled.

    v8.1.1

    Fix

    • PROTOCOL 17 SUPPORT: Upgraded js-stellar-base package to version ^5.1.0 from ^5.0.0 to expose the Typescript hints for CAP-35 operations [(#629)](stellar/js-stellar-sdk#629).

    A summary of the changes introduced by Protocol 17 (to the base library and the SDK) is as follows:

    • New operations: ClawbackOp, ClawbackClaimableBalanceOp, and SetTrustLineFlagsOp
    • Deprecations: SetTrustLineFlagsOp now supercedes the old AllowTrustOp
    • New effects: trustline_flags_updated and claimable_balance_clawed_back
    • Deprecations: trustline_flags_updated supercedes the old trustline_authorized, trustline_authorized_to_maintain_liabilities, and trustline_deauthorized effects

    ... (truncated)

    Changelog

    Sourced from stellar-sdk's changelog.

    v8.2.3

    Fix

    • Fix server signature verification in Utils.readChallengeTx. The function was not verifying the server account had signed the challenge transaction.

    v8.2.2

    Fix

    v8.2.1

    Fix

    v8.2.0

    Add

    • Added support for querying the relevant transactions and operations for a claimable balance [(#628)](stellar/js-stellar-sdk#628):

      • TransactionCallBuilder.forClaimableBalance(): builds a query to /claimable_balances/:id/transactions/
      • OperationCallBuilder.forClaimableBalance(): builds a query to /claimable_balances/:id/operations/
    • Added support for new stat fields on the /assets endpoint [(#628)](stellar/js-stellar-sdk#628):

      • accounts - a breakdown of accounts using this asset by authorization type
      • balances - a breakdown of balances by account authorization type
      • num_claimable_balances - the number of pending claimable balances
      • claimable_balances_amount - the total balance of pending claimable balances
    • Added types for all Effects supported as an enum, and moved Trade, Asset, Offer, and Account types to separate files [(#635)](stellar/js-stellar-sdk#635).

    Update

    • Upgraded js-stellar-base package to version ^5.2.1 from ^5.1.0, refer to its release notes for more [(#639)](stellar/js-stellar-sdk#639):

      • opt-in support for muxed accounts (SEP-23)
      • exposing the AuthClawbackEnabled flag to Typescript to complete Protocol 17 support
      • fixing a public key parsing regression
    • Exposed more Protocol 17 (CAP-35) operations [(#633)](stellar/js-stellar-sdk#633):

      • The /accounts endpoint now resolves the flags.auth_clawback_enabled field.
      • The operation responses for clawback, clawbackClaimableBalance, and setTrustLineFlags are now defined.
      • The operation response for setOptions has been updated to show auth_clawback_enabled.

    v8.1.1

    Fix

    • Upgraded js-stellar-base package to version ^5.1.0 from ^5.0.0 to expose the Typescript hints for CAP-35 operations [(#629)](stellar/js-stellar-sdk#629).

    ... (truncated)

    Commits
    • 6f0bb88 Merge pull request from GHSA-6cgh-hjpw-q3gq
    • ac46a8d Release v8.2.2 (#656)
    • 428a5c5 Make AccountResponse conform to the StellarBase.Account interface. (#655)
    • fad208d Bump version and CHANGELOG for v8.2.1 release. (#654)
    • d278ea3 Remove defunct c query param, now that horizon sends cache-control headers (#...
    • eac8519 Update version for v8.2.0 (#650)
    • 72634e5 Bump only the js-stellar-base integrity (#648)
    • b1e09d4 Fix broken links to js-stellar-base repo in release instructions (#647)
    • a7aed3f Updates CHANGELOG with more details since latest release. (#639)
    • e6c622e Provide types for effects (closes #299).
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • glide.sh domain removed

    glide.sh domain removed

    I want to get new version of kelp binary.

    I can not execute follow install command.

    Install Glide for dependency management
    curl https://glide.sh/get | sh
    

    http://glide.sh/ seems to be moved or deleted.

    bug 
    opened by whackur 0
  • [5] Kelp GUI: Support delegated signing feature

    [5] Kelp GUI: Support delegated signing feature

    Desired Behavior

    I want to use the delegated signing feature offered in Kelp in this issue

    Impact

    The desired behavior will allow me to run my kelp bot in a public cloud or public KaaS instance without having to share my secret key

    Feature Suggestion

    We can achieve the desired behavior by adding support for this feature in the Kelp CLI into the Kelp GUI

    You can also add a field in the guiConfig.cfg file like DELEGATED_SIGNING_URL to put the URL where to send the delegated signing requests. If this field is present then the GUI will automatically use the delegated signing feature and send to this URL (by manually adjusting the trader.cfg files, or sending as a command-line arg to kelp trade commands when started). If this field is not present the GUI can assume that delegated signing is not being used. With this approach, the user does not have the option to select delegated signing but is either always enabled or not in KaaS. We can improve access to the delegated signing feature in a later issue.

    References

    https://github.com/stellar/kelp/issues/710

    feature request help wanted 
    opened by nikhilsaraf 0
  • [8] delegated signing to third-party server

    [8] delegated signing to third-party server

    Desired Behavior

    I want to add the ability to only place my public key in Kelp and have my secret key on a third party server for security purposes

    Impact

    The desired behavior will allow me to deploy my kelp bot on a public cloud while controlling signatures from a protected environment such as my private server or something like fireblocks.

    Feature Suggestion

    We can achieve the desired behavior by using SEP-0007 to delegate the signature request from Kelp

    This should only modify the trader file. Issue #711 will add support for delegated signing in the Kelp GUI

    You can also add a command-line argument called --delegated-signing-url that passes in a delegated signing URL to use for the kelp trade command (overriding anything set in the trader.cfg file). This will make it easier for the Kelp GUI to pass the delegated signing URL to the Kelp GUI bots when started (without having to constantly modify each trader.cfg file before it is run).

    feature request help wanted 
    opened by nikhilsaraf 0
  • Bump yargs-parser from 5.0.0 to 5.0.1 in /gui/web

    Bump yargs-parser from 5.0.0 to 5.0.1 in /gui/web

    Bumps yargs-parser from 5.0.0 to 5.0.1.

    Changelog

    Sourced from yargs-parser's changelog.

    5.0.0 (2017-02-18)

    Bug Fixes

    • environment variables should take precedence over config file (#81) (76cee1f)

    BREAKING CHANGES

    • environment variables will now override config files (args, env, config-file, config-object)

    5.0.1 (2021-03-10)

    Bug Fixes

    • security: address GHSA-p9pc-299p-vxgp (#362) (1c417bd)

    4.2.1 (2017-01-02)

    Bug Fixes

    4.2.0 (2016-12-01)

    Bug Fixes

    • inner objects in configs had their keys appended to top-level key when dot-notation was disabled (#72) (0b1b5f9)

    Features

    • allow multiple arrays to be provided, rather than always combining (#71) (0f0fb2d)

    4.1.0 (2016-11-07)

    ... (truncated)

    Commits
    Maintainer changes

    This version was pushed to npm by oss-bot, a new releaser for yargs-parser since your current version.


    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
Releases(v1.11.0)
  • v1.11.0(Feb 15, 2021)

    This release contains v1.11.0 of the Kelp CLI and also includes v1.0.0-rc2 of the Kelp GUI (beta). Download links at the bottom of this release under “Assets”.

    Changes

    Notable changes since v1.10.0:

    • Kelp GUI (beta) now available to run on Stellar mainnet
    • Speed up network requests for faster performance of bot across the board
    • deprecate TICK_INTERVAL_SECONDS in favor of TICK_INTERVAL_MILLIS since we can run faster on centralized exchanges now
    • log time taken for update loop
    • Many reliability improvements to the mirror trading template along with some new config options
    • new buy_twap trading template
    • Tested Bitstamp Integration for trading
    • invoking the kelp binary (CLI version) produces the help screen instead of automatically spinning up the GUI now.
    • Kelp GUI: better error propagation from backend to frontend in GUI for feedback to user
    • Kelp GUI: fixed spread value percentages displayed in the GUI against each bot

    See the CHANGELOG for more details on this release.

    New Kelp GUI v1.0.0-rc2 (beta)

    This is a release-candidate because it is experimental, unpolished, and still has several known bugs. When creating a bot you can now choose to run on the Stellar main network.

    Download for your relevant platform (macOS = darwin) and unzip, double-click to use.

    Running Instructions

    Instructional Video to help get you started.

    Take a look at each platform below for specific installation instructions, you will need them for each platform!

    Windows

    You need to run the kelp-start.bat file to start kelp. If you double-click on kelp.exe it will not work.

    This requires you to have Windows 10 and to enable the Ubuntu on Windows Subsystem for Linux (WSL). Look at this Youtube Video (steps 1 and 2 only) on how to install WSL and an Ubuntu linux distribution on Windows.

    Follow instructions for Linux below, from within your WSL environment, if you run into any issues.

    Note: Windows does not currently support the Electron wrapper and will open up Kelp GUI (beta) directly in your browser window.

    Linux

    You may need to install dependencies for electron. The full list of dependencies for different flavors of Linux can be found at https://www.electronjs.org/docs/development/build-instructions-linux

    Example command to run on Ubuntu to ensure that you have all the dependencies:

    sudo apt-get install -y build-essential clang libdbus-1-dev libgtk-3-dev libnotify-dev libgnome-keyring-dev libasound2-dev libcap-dev libcups2-dev libxtst-dev libxss1 libnss3-dev gcc-multilib g++-multilib curl gperf bison python-dbusmock openjdk-8-jre libX11-xcb-dev libstdc++6

    Additionally ensure that these dependencies exist:

    sudo apt-install -y unzip

    MacOS

    This version is not code signed for MacOS so you will be asked to confirm whether you want to run the application several times, but there is a workaround.

    You need to copy Kelp.app from the DMG file into the /Applications folder (Applications shortcut in the DMG) and run it from /Applications. If you open it from the dmg directly it may fail without any error. Once it is in applications, right click the application and then select Open, which tells the OS that you are sure you want to open the application. See the instructional video for an example of this.

    Limitations

    1. ~This will only run on the test network for now~ [enabled on Stellar main network as off Kelp GUI v1.0.0-rc2 (beta)]
    2. Some known issues that need to be ironed out, you can follow all open issues here

    How can I get more tokens on the Stellar Test Network?

    The secret key for the COUPON:GBMMZMK2DC4FFP4CAI6KCVNCQ7WLO5A7DQU7EC7WGHRDQBZB763X4OQI asset issuer is SANPCJHHXCPRN6IIZRBEQXS5M3L2LY7EYQLAVTYD56KL3V7ABO4I3ISZ

    Additionally, if you create any token against the GBMMZMK2DC4FFP4CAI6KCVNCQ7WLO5A7DQU7EC7WGHRDQBZB763X4OQI issuer account the Kelp GUI will automatically create a trustline for you and will issue you 1,000 units of that asset.

    Where can I get help if I am stuck

    The new #kelp channel on the stellar.pubic keybase channel

    You can contact me on keybase: @nikhilsaraf and Twitter: @nikhilsaraf9

    CLI

    Note that Kelp CLI supports trading on 100+ centralized exchanges and you can see the full list of supported exchanges by running ./kelp exchanges.

    Sample usage of Kelp's features are described in more detail in the sample config files for v1.11.0 located here.

    Upgrade Instructions

    Download the package for your platform. After you untar the downloaded file, change to the generated directory (kelp-v1.11.0) and invoke the kelp binary.

    Here's an example to get you started (replace filename with the name of the file that you download):

    tar xvf filename
    cd kelp-v1.11.0
    ./kelp
    

    To run the bot in simulation mode, try this command:

    ./kelp trade -c sample_trader.cfg -s buysell -f sample_buysell.cfg --sim
    

    Note: this version is fully compatible with existing config files.

    Checksum

    You can compare the MD5 hash of the downloaded tar file to the appropriate hash below to verify the integrity of your download.

    MD5(kelp-v1.11.0-darwin-amd64.tar)= da97575b404c9b81a3025f53cb72cab2
    MD5(kelp-v1.11.0-linux-amd64.tar)= ebda90232c99056e1d82028d66e759a0
    MD5(kelp-v1.11.0-linux-arm5.tar)= 1a036045884cf350e3e95707fe7840a8
    MD5(kelp-v1.11.0-linux-arm6.tar)= 133c23983e13958364cdf941af04386b
    MD5(kelp-v1.11.0-linux-arm64.tar)= 0edc24b0f519869fc6e90dc21a27a7b6
    MD5(kelp-v1.11.0-linux-arm7.tar)= a469d6736bd6df23dbb9b137ee062925
    MD5(kelp-v1.11.0-windows-amd64.tar)= 6e5592f0d7a4bb288b5f98a8c14bb70a
    

    Help Getting Started

    Be sure to check out our walkthroughs section in the README for a quick intro on how to get started with Kelp.

    We welcome any feedback that you have. Feel free to open a bug report or submit a feature request, we're listening to what you have to say.

    You can contact me on keybase: @nikhilsaraf and Twitter: @nikhilsaraf9

    Hope you enjoy this release!


    Note: macos = darwin

    Source code(tar.gz)
    Source code(zip)
    kelp-v1.11.0-darwin-amd64.tar(76.23 MB)
    kelp-v1.11.0-linux-amd64.tar(95.74 MB)
    kelp-v1.11.0-linux-arm5.tar(16.38 MB)
    kelp-v1.11.0-linux-arm6.tar(16.31 MB)
    kelp-v1.11.0-linux-arm64.tar(17.78 MB)
    kelp-v1.11.0-linux-arm7.tar(16.31 MB)
    kelp-v1.11.0-windows-amd64.tar(82.21 MB)
    KelpGUI__gui-v1.0.0-rc2__cli-v1.11.0__darwin-amd64.dmg(307.11 MB)
    KelpGUI__gui-v1.0.0-rc2__cli-v1.11.0__linux-amd64.zip(176.71 MB)
    KelpGUI__gui-v1.0.0-rc2__cli-v1.11.0__windows-amd64.zip(91.46 MB)
  • v1.10.0(Oct 22, 2020)

    This is v1.10.0 of kelp.

    * * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * * * * * * * * * * * * * * * * This is not the latest version. Please see the latest version at the top of the releases page * * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * * * * * * * * * * * * * * * *

    Changes

    Notable changes since v1.9.0:

    • new Pendulum AMM trading template (pendulum)
    • new Sell TWAP trading template (sell_twap)
    • cheaper and more accurate fill/trade tracking via SYNCHRONIZE_STATE_LOAD_ENABLE config
    • Mirror Trading Template: track orders triggered on backingExchange
    • significant upgrades and reliability fixes to the mirror trading template
    • support metrics via Amplitude, disable using --no-headers flag
    • Kelp GUI: fix issue of fiat currency dropdown not updating correctly
    • ccxtExchange should allow fetching binance orderbook with limits between the hardcoded binance limits
    • mirror trading template allows different divide by values for BID and ASK sides (deprecate VOLUME_DIVIDE_BY config field)
    • Fix FetchTrades for Kraken
    • Kelp GUI: disallow invalid characters in bot name
    • fix rounding issues in mirror trading template causing offers to not be placed

    See the CHANGELOG for more details on this release.

    Kelp supports trading on 100+ centralized exchanges and you can see the full list of supported exchanges by running ./kelp exchanges.

    Sample usage of Kelp's features are described in more detail in the sample config files for v1.10.0 located here.

    Upgrade Instructions

    Download the package for your platform and begin making the market! After you untar the downloaded file, change to the generated directory (kelp-v1.10.0) and invoke the kelp binary.

    Here's an example to get you started (replace filename with the name of the file that you download):

    tar xvf filename
    cd kelp-v1.10.0
    ./kelp
    

    To run the bot in simulation mode, try this command:

    ./kelp trade -c sample_trader.cfg -s buysell -f sample_buysell.cfg --sim
    

    Note that this version is fully compatible with existing config files.

    Checksum

    You can compare the MD5 hash of the downloaded tar file to the appropriate hash below to verify the integrity of your download.

    MD5(kelp-v1.10.0-darwin-amd64.tar)= 66e0a0ced703fff15499139a65ad5e08
    MD5(kelp-v1.10.0-linux-amd64.tar)= d03692c44506f6a0cb064a43d26adf09
    MD5(kelp-v1.10.0-linux-arm5.tar)= f7c5add2c8aaf42b23eb81d76af30ca3
    MD5(kelp-v1.10.0-linux-arm6.tar)= b147cc23eb32f3d427bc0415824d3fbd
    MD5(kelp-v1.10.0-linux-arm64.tar)= ebdd67d9fa153c54256105b4d6f86834
    MD5(kelp-v1.10.0-linux-arm7.tar)= ef0b61b5ff2d9eab0ca4a8e7161540e7
    MD5(kelp-v1.10.0-windows-amd64.tar)= 802d3a89e0ea14993994741a8466556f
    

    Help Getting Started

    Be sure to check out our walkthroughs section in the README for a quick intro on how to get started with Kelp.

    We welcome any feedback that you have. Feel free to open a bug report or submit a feature request, we're listening to what you have to say.

    You can contact me on keybase: @nikhilsaraf

    Hope you enjoy this release!


    Note: macos = darwin

    Source code(tar.gz)
    Source code(zip)
    kelp-v1.10.0-darwin-amd64.tar(76.06 MB)
    kelp-v1.10.0-linux-amd64.tar(95.57 MB)
    kelp-v1.10.0-linux-arm5.tar(16.08 MB)
    kelp-v1.10.0-linux-arm6.tar(16.02 MB)
    kelp-v1.10.0-linux-arm64.tar(17.55 MB)
    kelp-v1.10.0-linux-arm7.tar(16.02 MB)
    kelp-v1.10.0-windows-amd64.tar(82.03 MB)
  • nightly-33ab2afe(May 11, 2020)

    This is the nightly build of the Kelp GUI and is not really built every night.

    * * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * * * * * * * * * * * * * * * * This is currently out of date, please see the latest version at the top of the releases page * * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * * * * * * * * * * * * * * * *

    This is an unstable build. Please use with extreme caution

    If you want me to update this build with the latest from the master branch, or need a specific bug fixed and uploaded here, please ping me on keybase (keybase: @nikhilsaraf).

    The goal of this nightly build is to allow faster turnarounds with making bug fixes accessible for the kelp community since milestone releases are relatively infrequent

    Please only use this if there is a specific hotfix that you need. Otherwise you should be using Kelp GUI v1.0.0-rc1 (cli=v1.9.0). See the Unreleased section of the CHANGELOG for details on what may be included in this nightly build.


    Latest bugs fixed:

    • Kelp GUI - Can't select fiat currency when creating a new bot (https://github.com/stellar/kelp/issues/418)
    Source code(tar.gz)
    Source code(zip)
    KelpGUI__gui-v1.0.0-rc1__cli-v1.9.0-6-g33ab2afe__darwin-amd64__nightly_20200511T131013Z.dmg(306.63 MB)
    KelpGUI__gui-v1.0.0-rc1__cli-v1.9.0-6-g33ab2afe__linux-amd64__nightly_20200511T131013Z.zip(176.25 MB)
    KelpGUI__gui-v1.0.0-rc1__cli-v1.9.0-6-g33ab2afe__windows-amd64__nightly_20200511T131013Z.zip(90.97 MB)
  • v1.9.0(May 7, 2020)

    * * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * Upgrade to this version of Kelp by May 7th for uninterrupted use of Kelp on the Stellar Network. All prior versions of Kelp are deprecated immediately because they will not work with protocol 13. This version of Kelp is fully compatible with existing config files. * * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** *

    This release contains v1.9.0 of the Kelp CLI and also includes v1.0.0-rc1 of the Kelp GUI. Download links at the bottom of this release under “Assets”.

    Changes

    Notable changes since v1.8.1:

    • Upgrade stellar SDK dependency to 'horizonclient-v3.0.0' tag from stellar/go to make it compatible with protocol 13
    • Kelp GUI: allows revealing the log file on startup
    • Kelp GUI: explicit quit button inside the Kelp GUI window
    • Kelp GUI: allow bots to be deleted when in Initializing state
    • Kelp GUI: automatically pay test accounts with 1000 units of any asset issued by GBMMZ... public issuer
    • Kelp GUI: fix too many open files error
    • Kelp GUI: fix windows bash execution
    • Kelp GUI: run ccxt on windows
    • Kelp GUI: refactor os paths used to accommodate for 260 character file path limit in windows

    See the CHANGELOG for more details on this release.

    New Kelp GUI v1.0.0-rc1

    This is a release-candidate because it is experimental, unpolished, and still has several known bugs. Do not run this on the production Stellar Network.

    Download for your relevant platform (macOS = darwin) and unzip, double-click to use.

    Running Instructions

    Instructional Video to help get you started. Take a look at each platform below for special installation instructions.

    Windows

    You need to run the kelp-start.bat file to start kelp. If you double-click on kelp.exe it will not work.

    This requires you to have Windows 10 and to enable the Ubuntu on Windows Subsystem for Linux (WSL). Look at this Youtube Video (steps 1 and 2 only) on how to install WSL and an Ubuntu linux distribution on Windows.

    Follow instructions for Linux below if you run into any issues.

    Linux

    You may need to install dependencies for electron. The full list of dependencies for different flavors of Linux can be found at https://www.electronjs.org/docs/development/build-instructions-linux

    Example command to run on Ubuntu to ensure that you have all the dependencies:

    sudo apt-get install -y build-essential clang libdbus-1-dev libgtk-3-dev libnotify-dev libgnome-keyring-dev libasound2-dev libcap-dev libcups2-dev libxtst-dev libxss1 libnss3-dev gcc-multilib g++-multilib curl gperf bison python-dbusmock openjdk-8-jre libX11-xcb-dev libstdc++6

    Additionally ensure that these dependencies exist:

    sudo apt-install -y unzip

    MacOS

    This version is not code signed for MacOS so you will be asked to confirm whether you want to run the application several times, but there is a workaround.

    You need to copy Kelp.app from the DMG file into the /Applications folder (Applications shortcut in the DMG) and run it from /Applications. If you open it from the dmg directly it may fail without any error. Once it is in applications, right click the application and then select Open, which tells the OS that you are sure you want to open the application. See the instructional video (linked above) for an example of this.

    Limitations

    1. This will only run on the test network for now
    2. Some known issues that need to be ironed out, you can follow all open issues here

    How can I get more tokens?

    The secret key for the COUPON:GBMMZMK2DC4FFP4CAI6KCVNCQ7WLO5A7DQU7EC7WGHRDQBZB763X4OQI asset issuer is SANPCJHHXCPRN6IIZRBEQXS5M3L2LY7EYQLAVTYD56KL3V7ABO4I3ISZ

    Additionally, if you create any token against the GBMMZMK2DC4FFP4CAI6KCVNCQ7WLO5A7DQU7EC7WGHRDQBZB763X4OQI issuer account the Kelp GUI will automatically create a trustline for you and will issue you 1,000 units of that asset.

    Where can I get help if I am stuck

    The new #kelp channel on the stellar.pubic keybase channel

    CLI

    Note that Kelp supports trading on 100+ centralized exchanges and you can see the full list of supported exchanges by running ./kelp exchanges.

    Sample usage of Kelp's features are described in more detail in the sample config files for v1.9.0 located here.

    Upgrade Instructions

    Download the package for your platform and begin making the market! After you untar the downloaded file, change to the generated directory (kelp-v1.9.0) and invoke the kelp binary.

    Here's an example to get you started (replace filename with the name of the file that you download):

    tar xvf filename
    cd kelp-v1.9.0
    ./kelp
    

    To run the bot in simulation mode, try this command:

    ./kelp trade -c sample_trader.cfg -s buysell -f sample_buysell.cfg --sim
    

    Note that this version is fully compatible with existing config files.

    Help Getting Started

    Be sure to check out our walkthroughs section in the README for a quick intro on how to get started with Kelp.

    We welcome any feedback that you have. Feel free to open a bug report or submit a feature request, we're listening to what you have to say.

    Hope you enjoy this release.

    Source code(tar.gz)
    Source code(zip)
    kelp-v1.9.0-darwin-amd64.tar(75.19 MB)
    kelp-v1.9.0-linux-amd64.tar(94.70 MB)
    kelp-v1.9.0-linux-arm5.tar(15.80 MB)
    kelp-v1.9.0-linux-arm6.tar(15.80 MB)
    kelp-v1.9.0-linux-arm64.tar(17.20 MB)
    kelp-v1.9.0-linux-arm7.tar(15.80 MB)
    kelp-v1.9.0-windows-amd64.tar(81.13 MB)
    kelp_ui_v1.0.0-rc1__cli_v1.9.0-darwin-amd64.dmg(306.35 MB)
    kelp_ui_v1.0.0-rc1__cli_v1.9.0-linux-amd64.zip(175.97 MB)
    kelp_ui_v1.0.0-rc1__cli_v1.9.0-windows-amd64.zip(90.70 MB)
  • ui-astilectron-vendor(Mar 20, 2020)

  • v1.8.1(Feb 17, 2020)

    Important Notice

    * * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * This version of Kelp is deprecated and no loner supported because it is incompatible with the latest Horizon API. Download the latest Kelp release to continue using it on the Stellar Network. * * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** *

    * * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * Please use v1.9.0 instead * * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** *

    This is v1.8.1 of kelp.

    Changes

    Notable changes since v1.8.0:

    • upgrade horizonclient to patched version to fix load offers issues
    • upgrade horizonclient to patched version to fix delete offer op issue
    • workaround empty trades error
    • throw error on startup when FILL_TRACKER_SLEEP_MILLIS is not set but POSTGRES_DB is set

    See the CHANGELOG for more details on this release.

    Note that Kelp supports trading on 100+ centralized exchanges and you can see the full list of supported exchanges by running ./kelp exchanges.

    Sample usage of Kelp's features are described in more detail in the sample config files for v1.8.1 located here.

    Upgrade Instructions

    Download the package for your platform and begin making the market! After you untar the downloaded file, change to the generated directory (kelp-v1.8.1) and invoke the kelp binary.

    Here's an example to get you started (replace filename with the name of the file that you download):

    tar xvf filename
    cd kelp-v1.8.1
    ./kelp
    

    To run the bot in simulation mode, try this command:

    ./kelp trade -c sample_trader.cfg -s buysell -f sample_buysell.cfg --sim
    

    Note that this version is fully compatible with existing config files.

    Checksum

    You can compare the MD5 hash of the downloaded tar file to the appropriate hash below to verify the integrity of your download.

    MD5(kelp-v1.8.1-darwin-amd64.tar)= c3f11040992056a5a8c3e4af79023f48 MD5(kelp-v1.8.1-linux-amd64.tar)= 627c147e80cdd2ab2c664e472647f4a2 MD5(kelp-v1.8.1-linux-arm5.tar)= db9bd7f829277365d5871f8b6b87fdd9 MD5(kelp-v1.8.1-linux-arm6.tar)= f3fd0f922c32792dfb3aac1a54659c1e MD5(kelp-v1.8.1-linux-arm64.tar)= 1e7b60d496925f10b389c8c333743d68 MD5(kelp-v1.8.1-linux-arm7.tar)= d9534d46c28b2cff77693452fd13e7ee MD5(kelp-v1.8.1-windows-amd64.tar)= a58cabef3705799faf7e9675efcbc932

    Help Getting Started

    Be sure to check out our walkthroughs section in the README for a quick intro on how to get started with Kelp.

    We welcome any feedback that you have. Feel free to open a bug report or submit a feature request, we're listening to what you have to say.

    Hope you enjoy this release.

    Source code(tar.gz)
    Source code(zip)
    kelp-v1.8.1-darwin-amd64.tar(74.34 MB)
    kelp-v1.8.1-linux-amd64.tar(93.84 MB)
    kelp-v1.8.1-linux-arm5.tar(15.32 MB)
    kelp-v1.8.1-linux-arm6.tar(15.26 MB)
    kelp-v1.8.1-linux-arm64.tar(16.65 MB)
    kelp-v1.8.1-linux-arm7.tar(15.26 MB)
    kelp-v1.8.1-windows-amd64.tar(80.24 MB)
  • v1.8.0(Feb 11, 2020)

    Important Notice

    * * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * This version of Kelp is deprecated and no loner supported because it is incompatible with the latest Horizon API. Download the latest Kelp release to continue using it on the Stellar Network. * * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** *

    This is v1.8.0 of kelp.

    Changes

    Notable changes since v1.7.2:

    • Modifiers to 'exchange' type price feed: 'mid', 'ask', 'bid', 'last', defaulting to 'mid' price of market
    • New type of 'function' price feed, allowing recursive and composable price feeds
    • New filter system for risk management along with basic filters: 'volume', 'price', 'priceFeed'
    • Write bot's trades to a Postgres SQL database via a config param
    • Support for dynamic headers in CCXT to allow trading on exchanges such as CoinbasePro
    • Include 'cost' field in trades for bots running against centralized exchanges
    • Wrap GUI as a standalone desktop application using Electron (experimental)
    • GUI should use pre-compiled CCXT-rest binary to expand access to exchanges (experimental)
    • Upgraded Go SDK to use horizonclient v2 package to support the Horizon v1.0 API

    See the CHANGELOG for more details on this release.

    Note that Kelp supports trading on 100+ centralized exchanges and you can see the full list of supported exchanges by running ./kelp exchanges.

    Sample usage of Kelp's features are described in more detail in the sample config files for v1.8.0 located here.

    Upgrade Instructions

    Download the package for your platform and begin making the market! After you untar the downloaded file, change to the generated directory (kelp-v1.8.0) and invoke the kelp binary.

    Here's an example to get you started (replace filename with the name of the file that you download):

    tar xvf filename
    cd kelp-v1.8.0
    ./kelp
    

    To run the bot in simulation mode, try this command:

    ./kelp trade -c sample_trader.cfg -s buysell -f sample_buysell.cfg --sim
    

    Note that this version is fully compatible with existing config files.

    Checksum

    You can compare the MD5 hash of the downloaded tar file to the appropriate hash below to verify the integrity of your download.

    MD5(kelp-v1.8.0-darwin-amd64.tar)= 6eafa4f8ae0f5ef437233bb45e5440ba MD5(kelp-v1.8.0-linux-amd64.tar)= 69707666eab0adeaa3b03be04d9d0c4f MD5(kelp-v1.8.0-linux-arm5.tar)= 178d8f2ebc899f1819a5f2d49b0528d2 MD5(kelp-v1.8.0-linux-arm6.tar)= e85b10b14c2b9639a4f3a182a5c20640 MD5(kelp-v1.8.0-linux-arm64.tar)= c9300894cc2edc19842b8d1a7b505bb3 MD5(kelp-v1.8.0-linux-arm7.tar)= 6c09cef7cb6f45acb66438859b3d968c MD5(kelp-v1.8.0-windows-amd64.tar)= 8fc4de54abbe1ccc4d01a746d1a1b134

    Help Getting Started

    Be sure to check out our walkthroughs section in the README for a quick intro on how to get started with Kelp.

    We welcome any feedback that you have. Feel free to open a bug report or submit a feature request, we're listening to what you have to say.

    Hope you enjoy this release.

    Source code(tar.gz)
    Source code(zip)
    kelp-v1.8.0-darwin-amd64.tar(74.37 MB)
    kelp-v1.8.0-linux-amd64.tar(93.88 MB)
    kelp-v1.8.0-linux-arm5.tar(15.32 MB)
    kelp-v1.8.0-linux-arm6.tar(15.26 MB)
    kelp-v1.8.0-linux-arm64.tar(16.72 MB)
    kelp-v1.8.0-linux-arm7.tar(15.26 MB)
    kelp-v1.8.0-windows-amd64.tar(80.28 MB)
  • ccxt-rest_v0.0.4(Oct 30, 2019)

  • v1.7.2(Aug 26, 2019)

    * * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * This version of Kelp is deprecated and no loner supported because it is incompatible with the latest Horizon API. Download the latest Kelp release to continue using it on the Stellar Network. * * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** *

    This is v1.7.2 of kelp.

    This patch release includes some critical reliability fixes:

    • add triggers to modification log line in sdex
    • fix fill tracker to also work with path_payment type operations for sdex
    • fix op_underfunded error when replenishing top offer
    • new oversell trigger during modify to check need to reduce amount of existing offers

    See the CHANGELOG for more details on this release.


    Download the package for your platform and begin making the market! After you untar the downloaded file, change to the generated directory (kelp-v1.7.2) and invoke the kelp binary.

    Here's an example to get you started (replace filename with the name of the file that you download):

    tar xvf filename
    cd kelp-v1.7.2
    ./kelp
    

    To run the bot in simulation mode, try this command:

    ./kelp trade -c sample_trader.cfg -s buysell -f sample_buysell.cfg --sim
    

    Be sure to check out our walkthroughs section in the README for a quick intro on how to get started with Kelp.

    We welcome any feedback that you have. Feel free to open a bug report or submit a feature request, we're listening to what you have to say.

    Hope you enjoy this release.

    Source code(tar.gz)
    Source code(zip)
    kelp-v1.7.2-darwin-amd64.tar(17.37 MB)
    kelp-v1.7.2-linux-amd64.tar(17.46 MB)
    kelp-v1.7.2-linux-arm5.tar(15.51 MB)
    kelp-v1.7.2-linux-arm6.tar(15.45 MB)
    kelp-v1.7.2-linux-arm64.tar(16.86 MB)
    kelp-v1.7.2-linux-arm7.tar(15.45 MB)
    kelp-v1.7.2-windows-amd64.tar(17.37 MB)
  • v1.7.1(Jul 18, 2019)

    * * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * This version of Kelp is deprecated and no loner supported because it is incompatible with the latest Horizon API. Download the latest Kelp release to continue using it on the Stellar Network. * * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** *

    This is v1.7.1 of kelp.

    Kelp now supports trading on 100+ centralized exchanges! see the full list of supported exchanges by running ./kelp exchanges. See the CHANGELOG for more details on this release.


    Download the package for your platform and begin making the market! After you untar the downloaded file, change to the generated directory (kelp-v1.7.1) and invoke the kelp binary.

    Here's an example to get you started (replace filename with the name of the file that you download):

    tar xvf filename
    cd kelp-v1.7.1
    ./kelp
    

    To run the bot in simulation mode, try this command:

    ./kelp trade -c sample_trader.cfg -s buysell -f sample_buysell.cfg --sim
    

    Be sure to check out our walkthroughs section in the README for a quick intro on how to get started with Kelp.

    We welcome any feedback that you have. Feel free to open a bug report or submit a feature request, we're listening to what you have to say.

    Hope you enjoy this release.

    Source code(tar.gz)
    Source code(zip)
    kelp-v1.7.1-darwin-amd64.tar(17.35 MB)
    kelp-v1.7.1-linux-amd64.tar(17.44 MB)
    kelp-v1.7.1-linux-arm5.tar(15.51 MB)
    kelp-v1.7.1-linux-arm6.tar(15.45 MB)
    kelp-v1.7.1-linux-arm64.tar(16.86 MB)
    kelp-v1.7.1-linux-arm7.tar(15.45 MB)
    kelp-v1.7.1-windows-amd64.tar(17.36 MB)
  • v1.7.0(May 6, 2019)

    * * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * This version of Kelp is deprecated and no loner supported because it is incompatible with the latest Horizon API. Download the latest Kelp release to continue using it on the Stellar Network. * * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** *

    This is v1.7.0 of kelp.

    Kelp now supports trading on 100+ centralized exchanges! see the full list of supported exchanges by running ./kelp exchanges. See the CHANGELOG for more details on this release.


    Download the package for your platform and begin making the market! After you untar the downloaded file, change to the generated directory (kelp-v1.7.0) and invoke the kelp binary.

    Here's an example to get you started (replace filename with the name of the file that you download):

    tar xvf filename
    cd kelp-v1.7.0
    ./kelp
    

    To run the bot in simulation mode, try this command:

    ./kelp trade -c sample_trader.cfg -s buysell -f sample_buysell.cfg --sim
    

    Be sure to check out our walkthroughs section in the README for a quick intro on how to get started with Kelp.

    We welcome any feedback that you have. Feel free to open a bug report or submit a feature request, we're listening to what you have to say.

    Hope you enjoy this release.

    Source code(tar.gz)
    Source code(zip)
    kelp-v1.7.0-darwin-amd64.tar(17.34 MB)
    kelp-v1.7.0-linux-amd64.tar(17.43 MB)
    kelp-v1.7.0-linux-arm5.tar(15.45 MB)
    kelp-v1.7.0-linux-arm6.tar(15.45 MB)
    kelp-v1.7.0-linux-arm64.tar(16.86 MB)
    kelp-v1.7.0-linux-arm7.tar(15.45 MB)
    kelp-v1.7.0-windows-amd64.tar(17.35 MB)
  • v1.6.1(Apr 12, 2019)

    * * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * This version of Kelp is deprecated and no loner supported because it is incompatible with the latest Horizon API. Download the latest Kelp release to continue using it on the Stellar Network. * * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** *

    This is v1.6.1 of kelp.

    Kelp now supports trading on 100+ centralized exchanges! see the full list of supported exchanges by running ./kelp exchanges. See the CHANGELOG for more details on this release.


    Download the package for your platform and begin making the market! After you untar the downloaded file, change to the generated directory (kelp-v1.6.1) and invoke the kelp binary.

    Here's an example to get you started (replace filename with the name of the file that you download):

    tar xvf filename
    cd kelp-v1.6.1
    ./kelp
    

    To run the bot in simulation mode, try this command:

    ./kelp trade -c sample_trader.cfg -s buysell -f sample_buysell.cfg --sim
    

    Kelp sets the X-App-Name and X-App-Version headers on requests made to Horizon. These headers help us track overall Kelp usage, so that we can learn about general usage patterns and adapt Kelp to be more useful in the future. These can be turned off using the --no-headers flag. See kelp trade --help for more information.


    Be sure to check out our walkthroughs section in the README for a quick intro on how to get started with Kelp.

    We welcome any feedback that you have. Feel free to open a bug report or submit a feature request, we're listening to what you have to say.

    Hope you enjoy this release.

    Source code(tar.gz)
    Source code(zip)
    kelp-v1.6.1-darwin-amd64.tar(15.56 MB)
    kelp-v1.6.1-linux-amd64.tar(15.64 MB)
    kelp-v1.6.1-linux-arm5.tar(13.76 MB)
    kelp-v1.6.1-linux-arm6.tar(13.76 MB)
    kelp-v1.6.1-linux-arm64.tar(15.10 MB)
    kelp-v1.6.1-linux-arm7.tar(13.76 MB)
    kelp-v1.6.1-windows-amd64.tar(15.54 MB)
  • v1.6.0(Mar 29, 2019)

    * * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * This version of Kelp is deprecated and no loner supported because it is incompatible with the latest Horizon API. Download the latest Kelp release to continue using it on the Stellar Network. * * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** *

    This is v1.6.0 of kelp.

    Kelp now supports trading on 100+ centralized exchanges! see the full list of supported exchanges by running ./kelp exchanges. See the CHANGELOG for more details on this release.


    Download the package for your platform and begin making the market! After you untar the downloaded file, change to the generated directory (kelp-v1.6.0) and invoke the kelp binary.

    Here's an example to get you started (replace filename with the name of the file that you download):

    tar xvf filename
    cd kelp-v1.6.0
    ./kelp
    

    To run the bot in simulation mode, try this command:

    ./kelp trade -c sample_trader.cfg -s buysell -f sample_buysell.cfg --sim
    

    Be sure to check out our walkthroughs section in the README for a quick intro on how to get started with Kelp.

    We welcome any feedback that you have. Feel free to open a bug report or submit a feature request, we're listening to what you have to say.

    Hope you enjoy this release.

    Source code(tar.gz)
    Source code(zip)
    kelp-v1.6.0-darwin-amd64.tar(15.29 MB)
    kelp-v1.6.0-linux-amd64.tar(15.36 MB)
    kelp-v1.6.0-linux-arm5.tar(13.59 MB)
    kelp-v1.6.0-linux-arm6.tar(13.60 MB)
    kelp-v1.6.0-linux-arm64.tar(14.75 MB)
    kelp-v1.6.0-linux-arm7.tar(13.60 MB)
    kelp-v1.6.0-windows-amd64.tar(15.27 MB)
  • v1.5.0(Mar 4, 2019)

    * * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * This version of Kelp is deprecated and no loner supported because it is incompatible with the latest Horizon API. Download the latest Kelp release to continue using it on the Stellar Network. * * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** *

    This is v1.5.0 of kelp.

    See the CHANGELOG for details on this release.


    Download the package for your platform and begin making the market! After you untar the downloaded file, change to the generated directory (kelp-v1.5.0) and invoke the kelp binary.

    Here's an example to get you started (replace filename with the name of the file that you download):

    tar xvf filename
    cd kelp-v1.5.0
    ./kelp
    

    To run the bot in simulation mode, try this command:

    ./kelp trade -c sample_trader.cfg -s buysell -f sample_buysell.cfg --sim
    

    Be sure to check out our walkthroughs section in the README for a quick intro on how to get started with Kelp.

    We welcome any feedback that you have. Feel free to open a bug report or submit a feature request, we're listening to what you have to say.

    Hope you enjoy this release.

    Source code(tar.gz)
    Source code(zip)
    kelp-v1.5.0-darwin-amd64.tar(12.93 MB)
    kelp-v1.5.0-linux-amd64.tar(12.92 MB)
    kelp-v1.5.0-linux-arm5.tar(11.36 MB)
    kelp-v1.5.0-linux-arm6.tar(11.30 MB)
    kelp-v1.5.0-linux-arm64.tar(12.60 MB)
    kelp-v1.5.0-linux-arm7.tar(11.30 MB)
    kelp-v1.5.0-windows-amd64.tar(13.08 MB)
  • v1.4.0(Feb 6, 2019)

    * * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * This version of Kelp is deprecated and no loner supported because it is incompatible with the latest Horizon API. Download the latest Kelp release to continue using it on the Stellar Network. * * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** *

    This is v1.4.0 of kelp.

    See the CHANGELOG for details on this release.


    Download the package for your platform and begin making the market! After you untar the downloaded file, change to the generated directory (kelp-v1.4.0) and invoke the kelp binary.

    Here's an example to get you started (replace filename with the name of the file that you download):

    tar xvf filename
    cd kelp-v1.4.0
    ./kelp
    

    To run the bot in simulation mode, try this command:

    ./kelp trade -c sample_trader.cfg -s buysell -f sample_buysell.cfg --sim
    

    Be sure to check out our walkthroughs section in the README for a quick intro on how to get started with Kelp.

    We welcome any feedback that you have. Feel free to open a bug report or submit a feature request, we're listening to what you have to say.

    Hope you enjoy this release.

    Source code(tar.gz)
    Source code(zip)
    kelp-v1.4.0-darwin-amd64.tar(12.98 MB)
    kelp-v1.4.0-linux-amd64.tar(12.97 MB)
    kelp-v1.4.0-linux-arm5.tar(11.44 MB)
    kelp-v1.4.0-linux-arm6.tar(11.37 MB)
    kelp-v1.4.0-linux-arm64.tar(12.67 MB)
    kelp-v1.4.0-linux-arm7.tar(11.37 MB)
    kelp-v1.4.0-windows-amd64.tar(13.13 MB)
  • v1.3.0(Jan 10, 2019)

    * * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * This version of Kelp is deprecated and no loner supported because it is incompatible with the latest Horizon API. Download the latest Kelp release to continue using it on the Stellar Network. * * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** *

    This is v1.3.0 of kelp.

    See the CHANGELOG for details on this release.


    Download the package for your platform and begin making the market! After you untar the downloaded file, change to the generated directory (kelp-v1.3.0) and invoke the kelp binary.

    Here's an example to get you started (replace filename with the name of the file that you download):

    tar xvf filename
    cd kelp-v1.3.0
    ./kelp
    

    To run the bot in simulation mode, try this command:

    ./kelp trade -c sample_trader.cfg -s buysell -f sample_buysell.cfg --sim
    

    Be sure to check out our walkthroughs section in the README for a quick intro on how to get started with Kelp.

    We welcome any feedback that you have. Feel free to open a bug report or submit a feature request, we're listening to what you have to say.

    Hope you enjoy this release.

    Source code(tar.gz)
    Source code(zip)
    kelp-v1.3.0-darwin-amd64.tar(12.93 MB)
    kelp-v1.3.0-linux-amd64.tar(12.92 MB)
    kelp-v1.3.0-linux-arm5.tar(11.37 MB)
    kelp-v1.3.0-linux-arm6.tar(11.31 MB)
    kelp-v1.3.0-linux-arm64.tar(12.54 MB)
    kelp-v1.3.0-linux-arm7.tar(11.31 MB)
    kelp-v1.3.0-windows-amd64.tar(13.08 MB)
  • v1.2.0(Nov 26, 2018)

    * * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * This version of Kelp is deprecated and no loner supported because it is incompatible with the latest Horizon API. Download the latest Kelp release to continue using it on the Stellar Network. * * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** *

    This is v1.2.0 of kelp.

    Download the package for your platform and begin making the market! After you untar the downloaded file, change to the generated directory (kelp-v1.2.0) and invoke the kelp binary.

    Here's an example to get you started (replace filename with the name of the file that you download):

    tar xvf filename
    cd kelp-v1.2.0
    ./kelp
    

    To run the bot in simulation mode, try this command:

    ./kelp trade -c sample_trader.cfg -s buysell -f sample_buysell.cfg --sim
    

    Be sure to check out our walkthroughs section in the README for a quick intro on how to get started with Kelp.

    We welcome any feedback that you have. Feel free to open a bug report or submit a feature request, we're listening to what you have to say.

    Hope you enjoy this release.

    Source code(tar.gz)
    Source code(zip)
    kelp-v1.2.0-darwin-amd64.tar(12.62 MB)
    kelp-v1.2.0-linux-amd64.tar(12.61 MB)
    kelp-v1.2.0-linux-arm5.tar(11.10 MB)
    kelp-v1.2.0-linux-arm6.tar(11.04 MB)
    kelp-v1.2.0-linux-arm64.tar(12.34 MB)
    kelp-v1.2.0-linux-arm7.tar(11.04 MB)
    kelp-v1.2.0-windows-amd64.tar(12.77 MB)
  • v1.1.2(Oct 30, 2018)

    * * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * This version of Kelp is deprecated and no loner supported because it is incompatible with the latest Horizon API. Download the latest Kelp release to continue using it on the Stellar Network. * * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** *

    This is v1.1.2 of kelp.

    Now you can fetch prices from Binance, Poloniex, and Bittrex via the CCXT integration. See the CHANGELOG for details.

    Download the package for your platform and begin making the market! After you untar the downloaded file, change to the generated directory (kelp-v1.1.2) and invoke the kelp binary.

    Here's an example to get you started (replace filename with the name of the file that you download):

    tar xvf filename
    cd kelp-v1.1.2
    ./kelp
    

    To run the bot in simulation mode, try this command:

    ./kelp trade -c sample_trader.cfg -s buysell -f sample_buysell.cfg --sim
    

    Be sure to check out our walkthroughs section in the README for a quick intro on how to get started with Kelp.

    We welcome any feedback that you have. Feel free to open a bug report or submit a feature request, we're listening to what you have to say.

    Hope you enjoy this release.

    Source code(tar.gz)
    Source code(zip)
    kelp-v1.1.2-darwin-amd64.tar(11.83 MB)
    kelp-v1.1.2-linux-amd64.tar(11.81 MB)
    kelp-v1.1.2-linux-arm5.tar(10.42 MB)
    kelp-v1.1.2-linux-arm6.tar(10.36 MB)
    kelp-v1.1.2-linux-arm64.tar(11.58 MB)
    kelp-v1.1.2-linux-arm7.tar(10.36 MB)
    kelp-v1.1.2-windows-amd64.tar(11.97 MB)
  • v1.1.1(Oct 22, 2018)

    * * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * This version of Kelp is deprecated and no loner supported because it is incompatible with the latest Horizon API. Download the latest Kelp release to continue using it on the Stellar Network. * * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** *

    This is v1.1.1 of kelp.

    Now you can fetch prices from Binance, Poloniex, and Bittrex via the CCXT integration. See the CHANGELOG for details.

    Download the package for your platform and begin making the market! After you untar the downloaded file, change to the generated directory (kelp-v1.1.1) and invoke the kelp binary.

    Here's an example to get you started (replace filename with the name of the file that you download):

    tar xvf filename
    cd kelp-v1.1.1
    ./kelp
    

    To run the bot in simulation mode, try this command:

    ./kelp trade -c sample_trader.cfg -s buysell -f sample_buysell.cfg --sim
    

    Be sure to check out our walkthroughs section in the README for a quick intro on how to get started with Kelp.

    We welcome any feedback that you have. Feel free to open a bug report or submit a feature request, we're listening to what you have to say.

    Hope you enjoy this release.

    Source code(tar.gz)
    Source code(zip)
    kelp-v1.1.1-darwin-amd64.tar(11.83 MB)
    kelp-v1.1.1-linux-amd64.tar(11.81 MB)
    kelp-v1.1.1-linux-arm5.tar(10.42 MB)
    kelp-v1.1.1-linux-arm6.tar(10.36 MB)
    kelp-v1.1.1-linux-arm64.tar(11.58 MB)
    kelp-v1.1.1-linux-arm7.tar(10.36 MB)
    kelp-v1.1.1-windows-amd64.tar(11.97 MB)
  • v1.1.0(Oct 19, 2018)

    * * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * This version of Kelp is deprecated and no loner supported because it is incompatible with the latest Horizon API. Download the latest Kelp release to continue using it on the Stellar Network. * * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** *

    This is v1.1.0 of kelp.

    Now you can fetch prices from Binance, Poloniex, and Bittrex via the CCXT integration. See the CHANGELOG for details.

    Download the package for your platform and begin making the market! After you untar the downloaded file, change to the generated directory (kelp-v1.1.0) and invoke the kelp binary.

    Here's an example to get you started (replace filename with the name of the file that you download):

    tar xvf filename
    cd kelp-v1.1.0
    ./kelp
    

    To run the bot in simulation mode, try this command:

    ./kelp trade -c sample_trader.cfg -s buysell -f sample_buysell.cfg --sim
    

    Be sure to check out our walkthroughs section in the README for a quick intro on how to get started with Kelp.

    We welcome any feedback that you have. Feel free to open a bug report or submit a feature request, we're listening to what you have to say.

    Hope you enjoy this release.

    Source code(tar.gz)
    Source code(zip)
    kelp-v1.1.0-darwin-amd64.tar(11.83 MB)
    kelp-v1.1.0-linux-amd64.tar(11.81 MB)
    kelp-v1.1.0-linux-arm5.tar(10.42 MB)
    kelp-v1.1.0-linux-arm6.tar(10.36 MB)
    kelp-v1.1.0-linux-arm64.tar(11.58 MB)
    kelp-v1.1.0-linux-arm7.tar(10.36 MB)
    kelp-v1.1.0-windows-amd64.tar(11.97 MB)
  • v1.0.0(Oct 15, 2018)

    * * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * This version of Kelp is deprecated and no loner supported because it is incompatible with the latest Horizon API. Download the latest Kelp release to continue using it on the Stellar Network. * * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** *

    This is v1.0.0 of kelp. See the CHANGELOG for details.

    Download the package for your platform and begin making the market! After you untar the downloaded file, change to the generated directory (kelp-v1.0.0) and invoke the kelp binary.

    Here's an example to get you started (replace filename with the name of the file that you download):

    tar xvf filename
    cd kelp-v1.0.0
    ./kelp
    

    To run the bot in simulation mode, try this command:

    ./kelp trade -c sample_trader.cfg -s buysell -f sample_buysell.cfg --sim
    

    Be sure to check out our walkthroughs section in the README for a quick intro on how to get started with Kelp.

    We welcome any feedback that you have. Feel free to open a bug report or submit a feature request, we're listening to what you have to say.

    Hope you enjoy this release.

    Source code(tar.gz)
    Source code(zip)
    kelp-v1.0.0-darwin-amd64.tar(11.74 MB)
    kelp-v1.0.0-linux-amd64.tar(11.73 MB)
    kelp-v1.0.0-linux-arm5.tar(10.35 MB)
    kelp-v1.0.0-linux-arm6.tar(10.35 MB)
    kelp-v1.0.0-linux-arm64.tar(11.45 MB)
    kelp-v1.0.0-linux-arm7.tar(10.35 MB)
    kelp-v1.0.0-windows-amd64.tar(11.88 MB)
  • v1.0.0-rc3(Sep 29, 2018)

    * * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * This version of Kelp is deprecated and no loner supported because it is incompatible with the latest Horizon API. Download the latest Kelp release to continue using it on the Stellar Network. * * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** *

    This is the third release-candidate for v1.0.0 of kelp. See the CHANGELOG for details.

    Download the package for your platform and begin making the market! After you untar the downloaded file, change to the generated directory (kelp-v1.0.0-rc3) and invoke the kelp binary.

    Here's an example to get you started (replace filename with the name of the file that you download):

    tar xvf filename
    cd kelp-v1.0.0-rc3
    ./kelp
    

    To run the bot in simulation mode, try this command:

    ./kelp trade -c sample_trader.cfg -s buysell -f sample_buysell.cfg --sim
    

    Be sure to check out our walkthroughs section in the README for a quick intro on how to get started with Kelp.

    We welcome any feedback that you have and will try to include it in the final release. Feel free to open a bug report or submit a feature request, we're listening to what you have to say.

    Hope you enjoy this pre-release.

    Source code(tar.gz)
    Source code(zip)
    kelp-v1.0.0-rc3-darwin-amd64.tar(11.74 MB)
    kelp-v1.0.0-rc3-linux-amd64.tar(11.73 MB)
    kelp-v1.0.0-rc3-linux-arm5.tar(10.35 MB)
    kelp-v1.0.0-rc3-linux-arm6.tar(10.35 MB)
    kelp-v1.0.0-rc3-linux-arm64.tar(11.45 MB)
    kelp-v1.0.0-rc3-linux-arm7.tar(10.35 MB)
    kelp-v1.0.0-rc3-windows-amd64.tar(11.88 MB)
  • v1.0.0-rc2(Sep 28, 2018)

    * * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * This version of Kelp is deprecated and no loner supported because it is incompatible with the latest Horizon API. Download the latest Kelp release to continue using it on the Stellar Network. * * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** *

    This is the second release-candidate for v1.0.0 of kelp. See the CHANGELOG for details.

    Download the package for your platform and begin making the market! After you untar the downloaded file, change to the generated directory (kelp-v1.0.0-rc2) and invoke the kelp binary.

    Here's an example to get you started (replace filename with the name of the file that you download):

    tar xvf filename
    cd kelp-v1.0.0-rc2
    ./kelp
    

    To run the bot in simulation mode, try this command:

    ./kelp trade -c sample_trader.cfg -s buysell -f sample_buysell.cfg --sim
    

    Be sure to check out our walkthroughs section in the README for a quick intro on how to get started with Kelp.

    We welcome any feedback that you have and will try to include it in the final release. Feel free to open a bug report or submit a feature request, we're listening to what you have to say.

    Hope you enjoy this pre-release.

    Source code(tar.gz)
    Source code(zip)
    kelp-v1.0.0-rc2-darwin-amd64.tar(11.74 MB)
    kelp-v1.0.0-rc2-linux-amd64.tar(11.73 MB)
    kelp-v1.0.0-rc2-linux-arm5.tar(10.35 MB)
    kelp-v1.0.0-rc2-linux-arm6.tar(10.35 MB)
    kelp-v1.0.0-rc2-linux-arm64.tar(11.45 MB)
    kelp-v1.0.0-rc2-linux-arm7.tar(10.35 MB)
    kelp-v1.0.0-rc2-windows-amd64.tar(11.88 MB)
  • v1.0.0-rc1(Aug 13, 2018)

    * * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * This version of Kelp is deprecated and no loner supported because it is incompatible with the latest Horizon API. Download the latest Kelp release to continue using it on the Stellar Network. * * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** * * * * * * * * * * * * * ** *

    This is the first release-candidate for v1.0.0 of kelp. See the CHANGELOG for details.

    Download the package for your platform and begin making the market! After you untar the downloaded file, change to the generated directory (kelp-v1.0.0-rc1) and invoke the kelp binary.

    Here's an example to get you started (replace filename with the name of the file that you download):

    tar xvf filename
    cd kelp-v1.0.0-rc1
    ./kelp
    

    To run the bot in simulation mode, try this command:

    ./kelp trade -c sample_trader.cfg -s buysell -f sample_buysell.cfg --sim
    

    Be sure to check out our walkthroughs section in the README for a quick intro on how to get started with Kelp.

    We welcome any feedback that you have and will try to include it in the final release. Feel free to open a bug report or submit a feature request, we're listening to what you have to say.

    Hope you enjoy this first pre-release.

    Source code(tar.gz)
    Source code(zip)
    kelp-v1.0.0-rc1-darwin-amd64.tar(11.77 MB)
    kelp-v1.0.0-rc1-linux-amd64.tar(11.77 MB)
    kelp-v1.0.0-rc1-linux-arm5.tar(10.41 MB)
    kelp-v1.0.0-rc1-linux-arm6.tar(10.35 MB)
    kelp-v1.0.0-rc1-linux-arm64.tar(11.52 MB)
    kelp-v1.0.0-rc1-linux-arm7.tar(10.35 MB)
    kelp-v1.0.0-rc1-windows-amd64.tar(11.91 MB)
IRC, Slack, Telegram and RocketChat bot written in go

go-bot IRC, Slack & Telegram bot written in Go using go-ircevent for IRC connectivity, nlopes/slack for Slack and Syfaro/telegram-bot-api for Telegram

null 686 Jul 17, 2021
A golang implementation of a console-based trading bot for cryptocurrency exchanges

Golang Crypto Trading Bot A golang implementation of a console-based trading bot for cryptocurrency exchanges. Usage Download a release or directly bu

Alessandro Sanino 574 Jul 22, 2021
Slack Bot Framework

slacker Built on top of the Slack API github.com/slack-go/slack with the idea to simplify the Real-Time Messaging feature to easily create Slack Bots,

Raed Shomali 536 Jul 23, 2021
Telegram Bot Framework for Go

Margelet Telegram Bot Framework for Go is based on telegram-bot-api It uses Redis to store it's states, configs and so on. Any low-level interactions

Gleb Sinyavskiy 62 Jul 15, 2021
The modern cryptocurrency trading bot written in Go.

bbgo A trading bot framework written in Go. The name bbgo comes from the BB8 bot in the Star Wars movie. aka Buy BitCoin Go! Current Status Features E

Yo-An Lin 331 Jul 24, 2021
easy-peasy wg tg bot

wireguard-telegram-bot Simple-Dimple Telegram Bot for Wireguard VPN config generation Functionality /menu — list available commands /newkeys — create

Sergey Skaredov 12 Jun 7, 2021
Flexible message router add-on for go-telegram-bot-api library.

telemux Flexible message router add-on for go-telegram-bot-api library. Table of contents Motivation Features Minimal example Documentation Changelog

Andrew Dunai 12 Jul 20, 2021
Buy crypto low/Sell high on Binance. Simple, powerful configuration, trade multiple assets simultaneously, single binary deployment with no external dependencies!

bnc-trading-bot Download the latest release for your OS This bot automatically trades crypto / fiat assets on Binance.com according to simple, configu

Matej Ľach 5 Jul 19, 2021
Chatto is a minimal chatbot framework in Go.

chatto Simple chatbot framework written in Go, with configurations in YAML. The aim of this project is to create very simple text-based chatbots using

Jaime Tenorio 88 Jul 12, 2021
Golang bindings for the Telegram Bot API

Golang bindings for the Telegram Bot API All methods are fairly self explanatory, and reading the godoc page should explain everything. If something i

null 3k Jul 23, 2021
The pool price management bot to stabilize overpriced pools

The pool price management bot to stabilize overpriced pools during the Gravity DEX incentivized testnet. This project is developed solely for the purpose of pool price management during the incentivized testnet.

B-Harvest 6 Jun 27, 2021
Bot that polls activity API for Github organisation and pushes updates to Telegram.

git-telegram-bot Telegram bot for notifying org events Requirements (for building) Go version 1.16.x Setup If you don't have a telegram bot token yet,

Skycoin 3 May 13, 2021
Telebot is a Telegram bot framework in Go.

Telebot "I never knew creating Telegram bots could be so sexy!" go get -u gopkg.in/tucnak/telebot.v2 Overview Getting Started Poller Commands Files Se

Ian P Badtrousers 2k Jul 22, 2021
A fast cryptocurrency trading bot implemented in Go

A fast cryptocurrency bot framework implemented in Go. Ninjabot permits users to create and test custom strategies for spot markets. ⚠️ Caution: Worki

Rodrigo Brito 823 Jul 21, 2021