Skip to main content

Quanta G-Type

tested_in type_custom developer

date_of_upload date_of_edit

note

This strategy is integrated in Gunbot and does not need to be downloaded. It does however require Gunbot Ultimate as minimum license level, due to being a custom strategy.
You'll have to activate this strategy by adding specific overrides to your config.js file, or adding them one-by-one through the 'add custom setting' feature in the GUI. You can find the overrides further below.

Change log

beta v0.9.9
code optimisation
take into consideraton GB unit cost as an additional indicator in trade mode flip to "rebalance"
ability to store GB unit cost time series in state for external analysis - override STORE_UNIT: true
ability to store trade profit time series in state for external analysis - override STORE_TP: true
ability to store inventory uPNL time series in state for external analysis - override STORE_INV: true
above data stores snapshot only on Trade Profit change
refactor order cancellation and creation functions
order creation now cyclical around mid-spread (buy, sell - moving out to order depth) - thanks @cryptokoala4
code refactor to make it work with GB simulator
new feature AUTO SETUP. You add upper and lower bounds, leave base in your account and this feature exchanges base to the right amount of quote - no more manual intervention !! PLEASE READ DOCUMENTATION !!
trading timeframe can be set to whatever you want (was 240, go for what you like now)
misc fixes and code clean up as we move closer to stable

First and important. If you ask a question in Elite then get a PM response from me - its NOT me. Check the name very carefully and ping me in Elite. My username is @flightcommander, no 1's 0's or 3's - I will NEVER ask you to do anything apart from send a statefile, safeconfig or GB logs to help fix a problem - period. I will NOT PM you first but only after discussion in Elite, I may ask you to PM me. Telegram is scam central, be vigilant and validate before talking to me.

This strategy is a geometric market maker hybrid designed to bootstrap and long term trade very large market price movements (100’s to 1000’s% price moves). A quantitative algorithm is very different to a technical analysis algorithm.

As an always in strategy, it performs to a markets 3 states:

  • Sidewards Market - Spread trading (price bouncing buy/sell intervals)
  • Price Pump: Decumulation of assets when conditions are right
  • Price Dump: Accumulation of asset when conditions are right

At the time of writing, Gunthar has this running on his demo server - https://demo.gunthy.org so take a look and see what its doing.

Is this strategy for you?

Market bootstrapping is a long game, making dumps fun and it loves volatility over massive ranges. This is a long term strategy with a long trading time horizon meaning it’s for traders who want to set & forget and are focused on long term investment and return. If you like fast action or find yourself swapping quote coins every 5 minutes, this might not be for you. You can however make this ultra aggressive but it will require significant starting capital, not for the faint hearted (you have a link to a calculator below, so you can see the triangle of market range, spreads and capital required).

How are profits generated?

Profits come from 3 functions:

  • Spread Profits - The price derivative of spread trading (small)
  • Accumulation of Spread Derivative - Using excess quote from spreads to increase sell interval values (medium)
  • Inventory Swing - automatic management of inventory between upper and lower bounds (large)

What are my risks?

Due to the trading time horizon, choose a coin you have high confidence will still be around for a year plus, you will be trading all market seasonality. The biggest risk is if price falls below lower bounds - we mitigate this by trading massive ranges but important to get setup right. This means that you will get spread trading gains on the way down which will offset a little against decreased inventory value.

REMEMBER: In any market, during long declines the effect of market making is to decrease losses NOT to realise actual profits.

Operational features

  • Auto compounding - trade profits perpetually added back to trading range
  • Auto inventory management by flipping profits in either quote or base
  • Auto trading limits by refreshing balances and order arrays on each buy or sell
  • Auto buy/sell sloping of limit order value (highest first on both buy/sell sides around price midpoint, profits increase TL from the middle down/up to bounds)
  • In-depth & comprehensive performance indicators showing all aspects of the strategy performance (inc. HODL vs. Trade comparison, clear uPNL breakdown, projected annualised wallet growth)
  • Very light API weight. This strategy catches up with market price and triggered limit orders. Exchange refresh of 2-10mins is fine (dependant on the volatility of your trading pair. Higher price volatility, lower refresh rate) - this means you can stack a VPS full of instances
  • Operational Depth Control - user specified to ensure you always catch large volatile moves

Trading Modes (can be set in overrides)

  • auto - conditional behaviour which will flip between accumulation, decumulation and rebalance
  • accumulation - sell orders have the same base value as buy orders (profit comes in quote)
  • decumulation - sell orders have the quote value as buy orders (profit comes in base)
  • rebalance - buy orders value (BOV) and sell order value (SOV) use distinct values (or will use min notional if below)

Starting the strategy with Auto Setup - How I do it in 3 steps

IMPORTANT: This version works with simulator using Auto Setup. I 100% recommend running this in simulator first until you get comfortable with setup, how the strat works and it's financial performance - this is not a copy/paste and press play strategy, your funds your risk. Please use simulator to get through the learning curve. Now with that over...

Make sure you have enough base currency in your trading account to cover trades between in your trading range (upper/lower bounds - calculator here if you need it - https://docs.google.com/spreadsheets/d/1ycVTNctPpkJSgVM7KMMf1oXkzK8K_YecxJpdfH78lZM/edit?usp=sharing).

  1. Understand macro market support and resistance (i.e. TradingView weekly or monthly charts - USDT-BTC weekly you can see clear support at $16,000 and resistance at $47,000). Set these values in overrides (Example: "UPPER_BOUND": 47000, "LOWER_BOUND": 16000)

  2. Set "IGNORE_TRADES_BEFORE" in overrides - use a timestamp for just before you start the strategy. You can get valid timestamps from https://currentmillis.com

tip

Before starting the strategy, its important to start fresh. Ensure that current state files for the pair you are about to trade DO NOT ALREADY EXIST in your json folder. If they do, please ENSURE you make a copy of them and move them all to another location outside of JSON. Previous trading data held in the state file will create inconsistent results

  1. Press Start Trading... What will now happen is the correct amount of quote for your trading range will be market bought, once balances are updated - trading will start

Important info - please read

danger

Quanta G-Type will use your entire wallet balance (base/quote) for trading the pair you have setup. It’s highly advisable to use a distinct account on your exchange when using this strategy or ensure no conflict between bases and quotes. For example:

Is NOT OK (conflict with ETH and BTC balances): BTC-ETH BUSD-ETH BUSD-BTC

Is OK (no conflict between bases or quotes): BTC-ETH BUSD-SOL USDT-LTC

  • "IGNORE_TRADES_BEFORE" timestamp must be added with a timestamp just before starting the strat
  • Before starting this strat, your state files for pairs you want to trade with this strat must be copied to another location outside of JSON folder if they already exist
  • Trading funds are not 100% guarenteed to extend to hitting Upper or Lower bounds. Whilst many conditions are in place to make this strategy precise and predictable, sometimes our fund size cannot beat the the volatility of crypto. Personally if lower bounds is hit or funds run out before lower bounds I'll move that quote to cold storage and wait it out then once above macro support again, I'll push them back into the strategy
  • Cancel orders must be disabled in the global bot settings (you can do that on the setup page)
  • You can use a large exchange delay, 120 seconds or greater. Delay is negatively correlated with volatility i.e high volatility, lower delay
  • Once trading. your trading pair state file is very important for accurate calculation of performance - don’t delete it. As with any GB strategy, your state file is your trade history
  • You can add additional base or quote at anytime - the trading limits and modes will adapt and recalculate on every buy or sell, this will however cause some skewness in the performance indicators but will average out over time

Tested on Binance, Mex, FTX, Huobi, Bybit, okGunbot

If you want to start the strategy without placing orders, you can set BUY_ENABLED, SELL_ENABLED and/or WATCH_MODE accordingly.

Example basic overrides for starting a new instance with Auto Setup

"override": {
"UPPER_BOUND": 47000,
"LOWER_BOUND": 16000,
"IGNORE_TRADES_BEFORE": 1671313953488,
"MIN_VOLUME_TO_SELL": 11, // this needs to be min notional of the base on the exchange you trade on
"AUTO_SETUP": true,
"BUY_ENABLED": true,
"SELL_ENABLED": true,
"BUY_METHOD": "custom",
"SELL_METHOD": "custom",
"IS_MARGIN_STRAT": false,
"PERIOD": 240, // used for GUI display, you can set this to whatever you want and your exchange allows
"unit_cost": true,
"dave": true
}

Example additional overrides (for advanced use cases / customisation)

    "BUY_INTERVAL": 1, // the percent distance buy orders are posted from mid-spread price
"SELL_INTERVAL": 1, // the percent distance sell orders are posted from mid-spread price
"ORDER_DEPTH": 3, // controls the amount of orders posted above and below mid-spread price
"TRADING_MODE": "auto", // allows forcing of accumulation, decumulation or rebalance
"STARTING_VALUE": 2000, // for manually controlling starting balance
"STARTING_QUOTE": 0.06952, // for manually controlling starting quote
"STARTING_BASE": 300, // for manually controlling starting base
"ENTRY_PRICE": 19273, // for manually controlling starting entry price
"RESET_ORDERS": true, // to force an order refresh
"STORE_UNIT": true, // enables storage of timeseries unit cost in state file
"STORE_TP": true, // enables storage of timeseries trade profit data in state file
"STORE_INV": true, // enables storage of timeseries inventory uPNL in state file

Closing comments

You made it to the end! Congrats. There is a lot to unpack in this strat - I will be doing a series of YouTube videos showing setup, performance interpretation etc. Please ping me in Elite chat (dont directly PM pls and I will NEVER PM you first) if you have a question and try to resist the temptation to YOLO straight in with this thing. Take some time to read a couple of times whilst drink coffee, beer, kvass whatever and ask if unsure. Really looking forward to your results, your approaches and of course, how you will manage to technically break it 🙂 Please share your experiences and results with others in Elite, we have an amazing community and will all learn faster and benefit more with profits if we use our collaborative brain.

Screenshots