Skip to main content

Quanta G-Type

tested_in type_custom developer

date_of_upload date_of_edit


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

v0.8 latest
removed manual requirement for overrides STARTING_VALUE, STARTING_QUOTE and ENTRY_PRICE on first start
added automagic storing of starting portfolio values in state file if they dont exist
created ability to override stored starting values anytime by using overrides STARTING_VALUE, STARTING_QUOTE, STARTING_BASE and ENTRY_PRICE
added ability to manually reset portfolio values by using a manual override of "RESET_BALANCES": true
added additional logging to some conditions
added additional variable "startingBase" for future features
small tweaks to sidebar naming confluence and descriptions
rate limited limit order cancellations and creation to get over FTX limits
created ability to override rate limit in overrides for edge cases - "RESET_BALANCES": true
change actual base calculation to loop openOrders to derive baseholding & fix Mex issue
fixed some typeErrors inc. actualTvic.toFixed
changed conditional aggressiveness of auto switching algorithm from auto to accumulate / decumulate (feedback needed thank you)

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 - 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
  • 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)

  • 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)
  • auto - conditional behaviour which will flip between accumulation, decumulation and auto (uses distinct buy BOV and sell SOV values if they are over minNotional)

Starting the strategy - How I do it in 4 steps

Market making over a large range requires a little preparation. You can do this anyway you wish but to accelerate you, this is how I do it.

  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). They become your upper and lower trading bounds and will need to be completed in pair overrides

  2. I have created a starting calculator you can make a copy of which will calculate the amount of initial quote to purchase and you can do some ‘what if’ calculations based on trading range, capital, spreads and initial entry price in the trading range -

  3. Once you have split your starting base capital into base and quote, make sure both currencies are in the exchange account you will trade from

  4. Before you press start, head over to currentmillis and get a timestamp for a time after you split your starting capital and add it to IGNORE_TRADES_BEFORE override. This strat wants a clean start. - Order depth is how many limit orders are placed above and below mid-spread price. These can be changed anytime - you want enough to catch large candle tails. For USDT-BTC I use 3 at 1% spread.

Additional important info


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 sub account on your exchange when using this 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 $hitcoins, lower delay
  • Your trading pair state file is important for accurate calculation of performance - don’t go deleting it
  • Over the first day of trading, you might see some NaN’s and strange looking numbers, this is ok. The performance indicators use actual trading data to derive performance, projections get more accurate over time etc
  • You can add additional base or quote at anytime - the entire range array 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
  • Why 4h tf? This is market bootstrapping, it is not bound to trading timeframes as it uses quantitative trading rather than technical analysis. 4h is used for visualisation and trend direction

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

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

Example basic overrides

"override": {
"BUY_ENABLED": true,
"UPPER_BOUND": "47000",
"LOWER_BOUND": "16000",
"IGNORE_TRADES_BEFORE": 1657720288320,
"TRADING_MODE": "auto",
"BUY_METHOD": "custom",
"SELL_METHOD": "custom",
"PERIOD": 240,
"unit_cost": true,
"dave": true

Example additional overrides (for advanced use cases)

    "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": false, // to force an order refresh
"RESET_BALANCES": false, // to remove and recreate starting balances held in state file
"ORDER_DELAY": 300 // to change the rate limit of order firing in milliseconds

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) 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.