Design and implement three default parametrized models for liquidity distribution

Issue #808 resolved
Desrever Nu created an issue

Design and model three basic models for liquidity distribution :

  • Implement a simple linear model
  • Implement a simple logarithmic model
  • Implement a simple exponential model
  • Models should allow for sell-side and buy-side liquidity separation
  • Models should allow for parametrisation
  • Make the liquidity model abstract class LiquidityDistributionModel

Add a method that given the model, returns a set of orders based on available liquidity and other params, similar to

public ArrayList<OrderToPlace> getOrdersToPlace(String type, Amount fundsAvailable, double pegPrice, CurrencyPair pair, double txFee) ;

Also remind to assign proper default values at config level ! NuBotOptionsDefault.java

Comments (9)

  1. Desrever Nu reporter

    All available balance should be put on tier2. which is now separately managed from tier1(walls)

  2. Desrever Nu reporter

    default model , use ,

      public static ModelParameters getStandardParams(String type) {
    
            double wallHeight = 500;
            double wallInterval = 0.008;
            double wallMaxWidth = 0.4;
    
            LiquidityCurve curve = new LiquidityCurveExp(LiquidityCurve.STEEPNESS_LOW);
    
            double offset;
            if (type.equals(Constant.SELL)) {
                offset = 0.004;
            } else {
                offset = 0.007;
            }
    
            return new ModelParameters(offset, wallHeight, wallMaxWidth, wallInterval, curve);
    
        }
    

    Screen Shot 2015-08-04 at 18.38.45.png

  3. Log in to comment