commacloner

module
v0.0.0-...-42e07c5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 11, 2021 License: MIT

README

CommaCloner - A 3Commas Deal Duplicator

Go Report Card codecov

NOTICE

If you want to test this utility without risking real money/crypto, it is feasible to have mappings redirect deals from a paper trading bot to another paper trading bot. Use on a live account at your own risk.

CommaCloner leverages both the 3Commas Deals Websocket and Bots API in order to use built-in deal start conditions across exchanges.

By leveraging CommaCloner, you can set up a bot with any deal start conditions you like on Paper Trading, and open a deal on any live bot across exchanges.

Getting Started

In order to utilize CommaCloner, you must first generate an API key and secret from 3commas. When generating your API key and secret, ensure that you click the "Bots Read" and "Bots Write" checkboxes.

Configuration

Configurations are loaded into CommaCloner via YAML. examples/config.yaml contains a basic template for setting up the application

When creating bots in 3commas, your source bot will have all the deal start conditions. Once configured, copy your bot a second time into the exchange account of your choosing, and change the "Deal Start Condition" to "Manually/API".

Note that source and destination bots can be configured any way you wish, they don't HAVE to match in terms of base/safety order sizes, max safety trades, etc. All that matters is that the destination bot has the same pairs available as the source bot (with exceptions, see "Overrides").

Startup

Use the following command to startup

./commacloner serve examples/config.yaml
About Overrides

Overrides allow you to manipulate deals "on the fly" to account for different currencies (USD, USDT, USDC, etc), before creating the deal on your destination bot. Additionally, overrides also allow you to cancel deals on your source bot that are unavailable on the destination bot.

NOTE:

  • panicSellUnavailableDeals is an extension of cancelUnavailableDeals. if cancelUnavailableDeals is false, but panicSellUnavailableDeals is true, the deal will NOT be cancelled or panic sold on the source bot.
Example Configuration
# Options for controlling the logger.
logging:
  #logging level
  level: "debug"
  # "console" or "json" are the valid formats
  format: "console"
  # log destination.  "console" just prints to stderr, "file" will print to "./logs/commacloner.log"
  destination: "console"
# The 3Commas API key and secret.
# NOTE you should not need to touch the websocket_url or rest_url.  This are only left as configuration items in the off
# chance 3commas changes their api endpoint
api:
  key: "qwertyu"
  secret: "asdfghjkl"
  websocket_url: "wss://ws.3commas.io/websocket"
  rest_url: "https://api.3commas.io/public/api"
#bot configurations
# this can be an array of 1 to n configurations.  there is no limit
bots:
  -
    #just a generic id for personal organization
    id: my_first_mapping
    source:
      #the id of the bot deals will be listened FROM
      bot_id: 1234
    dest:
      #the id of the bot deals will be sent TO
      bot_id: 5678
    overrides:
      quote_currency: "USD"
      base_currency: ""
      cancelUnavailableDeals: true
      panicSellUnavailableDeals: false
  -
    id: additional_bot
    source:
      bot_id: 4285
    dest:
      bot_id: 8675309
    overrides:
      quote_currency: ""
      base_currency: "USDC"
      cancelUnavailableDeals: true
      panicSellUnavailableDeals: true

Getting help

  • For feature requests and bugs, file an issue.

Roadmap

  • To learn about new/upcoming features I may be pondering, check the roadmap in the wiki

Tip Jar

  • BTC 3Ec8nc2kxKSZukwokG3L3s23EyiswWuQGQ
  • ETH 0xf1AD69127AE25f84F660B3A6C6cDdcd77716484F
  • DOGE DHzEhGdTZSQQZDGwHmYMRiUR6ES4JPwazG
  • USDT 0x46B626d2A13e3F309F9b88278b4bF5a38a01061A

Directories

Path Synopsis
api
cmd

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL