I had a few questions about how to properly execute a large order of crypto currency without moving the price much.

I know a lot of funds employ a TWAP/VWAP algorithm to liquidate or purchase a large number of shares. But I am not sure if this would work in an HFT style setting.

What I am trying to do is this.

Say I have 100 BCH (bitcoin cash) and I want to sell it at the best price I can, without moving the price much in a short amount of time (under 5 mins). If I was to market sell this, I would walk the book massively and the price would fluctuate very largely due to this. Now If I was to space orders out, it wouldn't affect price much but I'm not sure if I would get the right price.

I am trying to figure out a formula to calculate the optimal timing between orders, the size of the orders, and total time of execution.

I am leaning towards a model I found that uses the theory of stochastic optimal control to do this, however I am not quite sure how to implement this into python.

I have access to live feeds of both executed trades, and the orderbook.

Any help with this would be much appreciated.

  • $\begingroup$ I think @lehalle has a paper on this, I can't quite remember what it's called but it's been referenced on this board a few times. Also of interest may be Almgren-Chriss and its prodigy $\endgroup$
    – Kch
    Feb 2, 2018 at 16:54
  • $\begingroup$ Found Almgren's paper, ill give it a read. Any additional research would be greatly appreciated though thank you! $\endgroup$
    – xxen0nxx
    Feb 2, 2018 at 19:25
  • $\begingroup$ I got one of my programmers to take a look and they actually figured it out. Thank you! $\endgroup$
    – xxen0nxx
    Mar 8, 2018 at 20:34
  • $\begingroup$ Have you the possibility to act on multiple exchange ? $\endgroup$
    – A. STEFANI
    Nov 22, 2018 at 5:23
  • $\begingroup$ 100 bch is nothing lol! $\endgroup$
    – emcor
    Jan 16, 2020 at 23:07

1 Answer 1


It depend if you have the capability to act on multiple exchanges.

  • If you can:

Best method is to pre-study the orderbook topology on different platforms, then sort the platform by order-book resistance to price fluctuation. Then split your large volume sell order into multiple volume sell sub-orders, and then dispatch sub-orders in parallel on different platforms. More the resistance is important, more the sell order will be important and finally, more available exchanges = Less price fluctuation

  • If you cannot:

The timing will depend essentially on the average volume pair activity and how this specific pair is under surveillance by inter-exchange arbitrage robots. Note that the price fluctuation (due to your order execution) on your exchange imply a price difference (between your platform and others) and it is the main trigger for arbitrage robots activation. So finally the time to wait will depend essentially on this. The problematic is that robot arbitrages's activity is not really predictable.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.