Current Liquidity

Good call on leaving the Decimal out. I’ll still test the dot but fall back to your suggestion if it fails. I will likely still put the tolerance of the rank in the identifier. The intention is for the pool software to be able to change the tolerance figures dynamically in response to changes in liquidity pressures. Being able to see the tolerance of the rank at that snapshot in time would be useful I think

That makes sense, but

this will create a whole lot of different liquidity identifiers in the network.

It would be amazing to record that (@willy: ALix? ) to learn from the recorded data how offsets and offset changes relate to the market situation.

Crazy idea:
We will learn that the offset needs to be bigger the steeper the change of BTCUSD price (upwards, downwards).
The offset could be tied to the first derivative of the function of BTCUSD price over time. Unfortunateily we don’t have that function and can only deal with it numerical.
Still the velocity of price change should in some way be reflected in the offsets.

In addition to the velocity, the balance between walls can play a role. For that reason I manually adjusted the offset of the dual side NuBot on Poloniex to prefer NBT sale to BTC sale:

  "bookSellwall": 3000.0,
  "bookSellOffset": 0.003,
  "bookSellInterval": 0.002,
  "bookSellMaxVolumeCumulative" : 6000,
  "bookSellType": "log",
  "bookSellSteepness": "low",

  "bookBuywall": 1500.0,
  "bookBuyOffset": 0.017,
  "bookBuyInterval": 0.02,
  "bookBuyMaxVolumeCumulative" : 6000,
  "bookBuyType": "log",
  "bookBuySteepness": "low"

The buy side is degraded to a line of defense with a big offset. The sell side is quite close to the BTC price.

So basically you are putting the buy wall far away from the peg center compared to the sell wall in order to make traders reluctant to reverting back to bitcoin at this point?

Nice overall.

What about using colon as field separator?
nud is already able to handle that:

nud getliquiditydetails B | grep BETwD8nSjtj9ADSvej2na34xmsMYwPRymv -A 1
    "BETwD8nSjtj9ADSvej2na34xmsMYwPRymv" : {
        "1:NBTBTC:poloniex:0.3.2a_1449093980642_dd6880" : {

Or is the number of fields, that can be separated by colon, limited to 4?
If we can make it 5, it could be:

and I’d prefer having the tolerance in such a field to having it mingled in the session ID:

It makes dealing with the information easier, if you know the delimiter and don’t have to hope for finding it using regex;)

The buy wall is far enough off to make traders reluctant selling into it, if all walls before it (e.g. from ALP) fail, yes.
This will not prevent the price from being more than 1% off, but can delay (or even prevent) the price to be more off than the offset of the wall - it’s just a line of defense and no ordinary liquidity operation.
At the same I try to grab BTC by having a small sell side offset, which is still enough to make Nu money if traders buy NBT outside big volatility.

The former buy side gateway, which is now dual side as well, has symmetric offsets (0.009, 0.009), operates with in the 1% offset (2% spread) and comes in between ALP and the asymmetric NuBot.

In reply to (because it fits here better):

Sure. Have a look at my last post (in that other thread).

Partially correct. The former buy side bot has an offset of (0.009, 0.009). This is creating a SAF (including tolerance before the walls get shifted) of
0.9% + 0.2% + 0.1% = 1.2%

This is more SAF than desirable, but leaning on that suggestion

it’s still ok (and in fact quite close to 1%).

The idea is to slow down trading once all funds in the front line are consumed to save Nu some money by not being used for hedging excessvely and protecting the peg by hindering trade due to/at an increased offset.
With a not very close spread traders will think twice before buying into such a wall and I bet there are a lot of bots doing the trading there, which hopefully have thresholds to make them stop at such an uplift.

Not having a super close spread is the trade-off for saving money.
But I can’t predict the future. I don’t know whether that pans out.

I’d be highly interested in feedback!

1 Like

Correct: NuBot currently calls (and reports) tier1 liquidity as the amount of liquidity on the single order at the best price. Being the best price set by custodian via offset params, that could be well above and below 5%.

I am not going to change that until we have reached an agreement on it using the thread : We need to adjust tier1 and tier2 definition .

There is an open issue planned for 0.4.2 , so I hope we have this discussion soon. It’s not something I can decide alone.

Is this issue causing troubles?

It effectively disables the parametric order book and I tried to resemble that to some degree by running two NuBots (one with curent offset 0.009, 0.009, the other currently with offset 0.003, 0.017 to drain BTC; before it was 0.012, 0.012).

I’d appreciate having the configured
"priceincrement": 0.001,
in action, leading to orders with offset
0.009, 0.009
0.010, 0.010
0.011, 0.011

We can discuss this in private and post the results here, to not spam this thread with NuBot configuration issues.

For the record: without the NuBots running on Poloniex, there would be 0 buy side at the moment:

The marked orders are from the NuBots. The first order is already being reduced from initially $2,000:

@henry, can you move NuLagoon funds to the Poloniex buy side?
According to ALix there are BTC left on NuLagoon.

edit: I’m going to reduce the sell side offset of the former sell side NuBot even further (it’s the 3,000 order on the left side). Couldn’t get any BTC with an offset of 0.004 so far.

NuBot is up with low sell side offset and immense buy side offset to drain BTC.
Except for the NuBot buy side support, there currently is none.
We need more redundancy. Just imagine a failure of my RaPis or my internet access!

How long will you rely on me?
How long will you accept that do what I do (violating the gateway operation terms to support the peg) without discussing it, alternatives, support?
I’m sounding stressed, because I am; please bear with me

It would be good to find a trade offer from an LP that tries to arrange a deal with our first (and sole) T3 custodian.
The nupool ALP is empty on buy side:

It would be good to see action from NuLagoon, which still has BTC left.

Anyway - NuBot is up:

10:14:47.927 [Strategy Secondary Task] WARN  - Initializing strategy [c.n.n.s.S.StrategySecondaryPegTask:137]
10:14:47.932 [Strategy Secondary Task] INFO  - setting up ordermanager [com.nubits.nubot.strategy.Secondary.StrategySecondaryPegTask:138]
10:14:47.949 [Strategy Secondary Task] INFO  - Sell-Wall size :  : 0.0 NBT [com.nubits.nubot.strategy.Secondary.StrategySecondaryPegUtils:538]
10:14:47.963 [Strategy Secondary Task] INFO  - Buy-Wall size :  : 0.0 NBT [com.nubits.nubot.strategy.Secondary.StrategySecondaryPegUtils:543]
10:14:47.975 [pool-1-thread-1] WARN  - Subscribing to websocket push updates from streamer @ tcp:// [c.n.n.s.Subscriber:103]
10:14:53.498 [Strategy Secondary Task] INFO  - initOrders SELL [com.nubits.nubot.strategy.Secondary.StrategySecondaryPegUtils:177]
10:14:55.011 [Strategy Secondary Task] WARN  - Putting a cap on SELL liquidity available. [Total Balance  : 14243.72156309 NBT ; capped @  6000.0 NBT] [c.n.n.t.L.LiquidityDistributionModel:85]
10:14:55.025 [Strategy Secondary Task] INFO  - SELL- OrderBook : ----- SELL-side order book :
SELL wall volume : 3000.0
SELL tier2 volume = 0.0 NBT
Total SELL volume = 3000.0 NBT
Best price :0.00264234 (1.0020017514$)
SELL balance left = 11243.72156309 NBT-----  [com.nubits.nubot.strategy.Secondary.StrategySecondaryPegUtils:227]
10:14:55.031 [Strategy Secondary Task] INFO  - Trying to place 1 orders... [com.nubits.nubot.strategy.Secondary.StrategySecondaryPegUtils:228]
10:14:55.393 [Strategy Secondary Task] INFO  - SELL wall order updated. ID : 1205522333 size: 3000.0 []
10:14:55.430 [Strategy Secondary Task] WARN  - **SELL** orders re-initialized on  **poloniex** :  1/1 placed successfully
total amount placed : 3000.0
Tier1 order size : 3000.0
Tier2 cumulative order size : 0.0 (0 orders)
10:14:59.412 [checkNud] INFO  - Executing class com.nubits.nubot.tasks.CheckNudTask [com.nubits.nubot.tasks.CheckNudTask:37]
10:15:29.405 [checkNud] INFO  - Executing class com.nubits.nubot.tasks.CheckNudTask [com.nubits.nubot.tasks.CheckNudTask:37]
10:15:59.409 [checkNud] INFO  - Executing class com.nubits.nubot.tasks.CheckNudTask [com.nubits.nubot.tasks.CheckNudTask:37]
10:16:08.757 [Strategy Secondary Task] INFO  - Order placed = OrderToPlace{type=SELL, pair=nbtbtc, size=3000.0, price=0.00264234} [com.nubits.nubot.models.MultipleOrdersResponse:88]
10:16:08.765 [Strategy Secondary Task] INFO  - Order ID = 1205522333
10:16:08.776 [Strategy Secondary Task] INFO  - initOrders BUY [com.nubits.nubot.strategy.Secondary.StrategySecondaryPegUtils:177]
10:16:14.915 [Strategy Secondary Task] WARN  - Putting a cap on BUY liquidity available. [Total Balance  : 22.59977556 BTC ; capped @  15.82236755 BTC] [c.n.n.t.L.LiquidityDistributionModel:85]
10:16:14.922 [Strategy Secondary Task] INFO  - BUY- OrderBook : ----- BUY-side order book :
BUY wall volume : 1500.0
BUY tier2 volume = 0.0 NBT
Total BUY volume = 1500.0 NBT
Best price :0.00258959 (0.9819984239$)
BUY balance left = 7070.06089011 NBT-----  [com.nubits.nubot.strategy.Secondary.StrategySecondaryPegUtils:227]
10:16:14.927 [Strategy Secondary Task] INFO  - Trying to place 1 orders... [com.nubits.nubot.strategy.Secondary.StrategySecondaryPegUtils:228]
10:16:15.336 [Strategy Secondary Task] INFO  - BUY wall order updated. ID : 1205533322 size: 1500.0 []
10:16:15.348 [Strategy Secondary Task] WARN  - **BUY** orders re-initialized on  **poloniex** :  1/1 placed successfully
total amount placed : 1500.0
Tier1 order size : 1500.0
Tier2 cumulative order size : 0.0 (0 orders)

Poloniex looks like this now:

The 3,000 sell order at 0.00264234 is from one NuBot (former sell side gw).
The 2,000 sell order at 0.00266607 is from the other one (former buy side gw).
The 1,500 buy order at 0.00258959 is from one NuBot (former sell side gw).
The 2,000 buy order at 0.00260805 is from the other one (former buy side gw).

In case this was overlooked:

We need additional NuBot operators on Poloniex. Soon.
As long as I’m away, I can’t maintain the NuBot. It will run with the last startup config as long as it runs. If the SD card is over a threshold due to the verbose logs from NuBot, nud crashes and the liquidity broadcast stops. I don’t know what happens to NuBot, if the SD card has 0 space left. Maybe it crashes as well.
Funds still can be deposited on the side that’s about to run dry. I won’t be able to withdraw funds from Poloniex, though. Putting more and more funds into the Poloniex account increases the risk, step by step.
I strongly advise agaist doing that!

Sorry for the drama, but the current situation isn’t sustainable.
And we can considerus “lucky”, that due to the de facto centralization of the current liquidity operation, we only need to focus on one exchange.

We could lean back and state that as long as NuLagoon Tube offers 1 NBT at 1 USD (plus spread), the peg is kept. Customers might think differently.


I can setup a dual side nubot for Polo in order to be used by FLOT, like MoD did.
I guess i will need a motion or grant?
The only thing i have to learn is how to submit liquidity (in win7 64 with NU wallet)
and to apply for a credential token since i use it without one right now.


Submitting liquidity is done by nubot. Just get a grant passed and feed nubot your grant address and itll do it all for you.

You need settings like


in nu.conf and a NuBot configuration according to these parameters.


Please do Nu, me and yourself a favour and don’t offer your services cheaply.

Until friction issues have been sorted out, dynamic offset is available, etc., you might have more work than you like, if you really intend to do all youo can to support the peg.
Your computer needs to be on 24x7, which will create some noise and costs in addition.

As long as gateways or dual side NuBots are available for free (or cheaply), NSR holders are tempted to make the ostensible cheap, but very risky choice of relying on them.
Make a bold offer, it should still be accepted, if NSR holders are wise.
There are times ahead, in which I won’t be available.
Nu needs a backup!

Fixed cost ALP based on NuBot need to provided with sufficient funding to compensate LP in these pools.
Ostensibl cheap NuBots, run with Nu funds, must not hinder that.

It’s two hours ago since I was last pinging people, alarming about the situation, adjusting NuBot configuration to support Poloniex liquidity.

The orders sized 2,000 and 1,5000 are still pretty much the only ones on the buy side:

nupool buy side is empty:

Believe me, operating with Nu funds at an exchange is more demanding than you might realize before you have started doing it, especially, because it’s way off from an emergency solution at the moment - or we are in permanent emergency; I don’t know.

The only good thing is, that it seems to be worth it:


I then have to prepare a grant and ask for a payment. But please give me a hint what would be a proper operator payment
in this situation since i will not use my own funds.
edit: i just checked your grant and “Compensation scheme” :wink:

NuLagoon Tube buy side is cleared on ALix but nothing’s changed on the website. Not sure what’s happening.

Polo buy side was gobbled up when there’s a sudden change in BTC/USD; I’m guessing we have given too much arbitrage opportunity.

We just need to find the suit spot between “LPs vs peg” thus everyone will be happy.
Perhaps a higher spread would be a good candidate?

1 Like

NuLagoon is using a different BTC price feed.
I’ve noticed this behaviour when the BTC price is swinging fast, should return to normal when the swing is over.

1 Like

I’m using the default price feed now for NuBot:
bitfinex (with backup feeds: blockchain,bitcoinaverage,coinbase,bitstamp,kraken in order of importance).

First I tried blockchain (, but decided to rather rely on the defaults.
But I don’t think it’s related to thec choice of price feed.

My observation of the relation between NBT/BTC and price feeds is:

  • the NBT/BTC pair on Poloniex is more or less decoupled to some degree from BTCUSD at other exchanges
  • the trading volume on Polniex in the USDT (Tether), coinoUSD and bitUSD BTC pairs is low.

The conclusion:
Poloniex has no BTC/USD.
Other pegged cryptos are not liked (except for USDT to some degree).
NBT is the crypto fiat for traders on Poloniex!

Which leads to big pressure and as a result to deviation from the BTCUSD rate of other exchanges.


We arrived price wise at the line of defense created by the dual side NuBot:

I couldn’t keep the peg any tighter with $20,000 trading volume in the last 2 hours, I’m sorry.

But I could drain some BTC with the asymmetric offset at the sell side gateway:

Wed Jan 20 14:45:06 UTC 2016
status of sell side gateway:
nud getliquidityinfo B | grep BETwD8nSjtj9ADSvej2na34xmsMYwPRymv -A 2
        "BETwD8nSjtj9ADSvej2na34xmsMYwPRymv" : {
            "buy" : 14893.89,
            "sell" : 8623.7493
status of buy side gateway:
nud getliquidityinfo B | grep BFGMPykfKxXZ1otrCZcsbnTwJjKHPP9dsP -A 2
        "BFGMPykfKxXZ1otrCZcsbnTwJjKHPP9dsP" : {
            "buy" : 9342.79,
            "sell" : 11919.2544

I will change the offset to be symmetric and close to the dual side NuBot formerly known as buy side gateway.

gee, now I know why: BTCUSD surged above $400…

The situation could be stabilized:

Take into account that in total $10,000 on the sell side and $10,000 on buy side are Nu funds:

former buy side gateway (in total $8,000; first line of defense):
Type	Price (BTC)	Amount (NBT)	Total (BTC)	Rate/Stop	Date	Action
Buy	0.00241906	1999.99999905	4.83811999	--	2016-01-20 15:00:44	Cancel
Buy	0.00242396	2000.00000000	4.84792000	--	2016-01-20 15:00:44	Cancel
Sell	0.00247788	2000.00000000	4.95576000	--	2016-01-20 14:59:26	Cancel
Sell	0.00248278	2000.00000000	4.96556000	--	2016-01-20 14:59:26	Cancel
former sell side gateway (in total $12,000, second line of defense):
Type	Price (BTC)	Amount (NBT)	Total (BTC)	Rate/Stop	Date	Action
Buy	0.00241500	3999.99999830	9.65999999	--	2016-01-20 15:02:23	Cancel
Buy	0.00241989	2000.00000000	4.83978000	--	2016-01-20 15:02:23	Cancel
Sell	0.00246877	2000.00000000	4.93754000	--	2016-01-20 15:01:03	Cancel
Sell	0.00247366	4000.00000000	9.89464000	--	2016-01-20 15:01:03	Cancel

well, with BTC you can expect anything! :stuck_out_tongue:

I expect to break down soon.