Considerations before starting Part 2:

I will not be going in to full detail on every step and I will be assuming you have a basic understanding of MATLAB. Feel free to leave a reply if you have any questions.

Example of recording order-book movement through time:

After Part 2 we will have the functions necessary to start capturing useful data.


Capturing Data:

Initially, we want to have our data constructed in a way that will be easy for us to use and manage.

To start, I have created a main function to initiate when we want to record the status of the order-books and the corresponding price fluctuation. retreiveorders

There are 3 sub-functions that pertain to the three pairs I am collecting order-book data on.

We will be get started by creating those first.

ltcbtc_orderbookMovement does the following:


Every function underlined in blue you will find in the BTC-e Trading API link I referred to in part one. I underlined urlread2 to emphasize that it needs to be in the same folder as all of the BTC-e API files and functions (Which should be the directory you’re working from).

On the last line we are simply converting the incoming information from a structure  to a data-set.

Continuing ltcbtc_orderbookMovement :


During the for loop we are using strcmp to separate the two types of orders, ‘ask’ and ‘bid’.

We are allocating the ask orders and bid order to individual output cell arrays. After doing so, we then use cellfun to remove all empty cells in the array. This is important because we will be concatenating this data with whatever it was previously. If it is your first time running the function and you do not have variables set up, don’t worry. The following rest of this function will take care of that.

Continuing ltcbtc_orderbookMovement :


Now that you have an idea on how we want the incoming information structured, you can go ahead and create two more of these function for BTC/USD and LTC/USD. Rename the variables however you please but make sure to check line 34 and change “orderbook=dataset.ltc_btc;” to which ever pair you’re waiting to gather data from.

This process can also be repeated to create the function priceHistory() referenced to at the beginning of this entry. Just change the necessary information to pull from the function realtime_ticker() referenced to in Part 1.

Now that data gathering is out of the way. We can get to the fun stuff!

Any and all tips are greatly appreciated.

Part 1: MATLAB, Neural Networks and the BTC-e trading API.

Let’s get started:

This might contain around 5 parts, so here we go..


I’m in the beginning process of developing a trading-bot using Matlab. Right now the plan is to save data concerning what the order-books look like before and after a dump. This data will be used for training the Neural Network through identification using pattern recognition.


Multiple indicators will be incorporated as input data also, but we will save that part for later.

The bot needs to have an understanding of order-book trends and the following implications to the price.

A Brief Walk-through on Data Retrieval:

The data is sourced from the BTC-e Trading API

(You will find the need to add urlread2 to your project folder in MATLAB).

urlread2 can be found at the following:

Trading API for MATLAB at the following:

Here is a list of all possible requests:

% response = GetInfo()
% response = TransHistory()
% response = TradeHistory(‘count’,2)
% response = ActiveOrders()
% response = Trade(‘pair’,’btc_usd’,’type’,’buy’,’rate’,200,’amount’,1)
% response = CancelOrder(‘order_id’,651389)
% ticker_output = realtime_ticker(‘btc_usd’);

The default amount is set to only retrieve 150 listings in the orderbooks, whether they are bidding or asking.

We definitely want to get a larger data set than 150 listings. The reason being is that we are going to be creating an Artificial Neural Network and training it with this data. The larger the data set, the better life we all live. The maximum limit for the GET method from BTC-e is 2000 listings. So we’ll go ahead and use that.

To change that we make our own function to change the get method limit to ‘2000’:


You don’t have to do it like this, but this is just one way.

I’ve been recently recording the history of order-book movement for the  LTC/BTC pair.


While resting at a somewhat steady exchange rate of 0.0076 for a few days, we recently witnessed a dump to around 0.0073. Having said that, take a look at the order-book movement through the dump. We will be collecting this data to train the bot to recognize a dump before it happens.



Let the dump begin:

dumpltcbtc dump

Bid Volume starts increasing:


The Recovery stage:


I will have a break down on gathering and allocating the data to the neural network in part 2.

Thanks for reading!

Any and all tips are greatly appreciated.
Part 1: MATLAB, Neural Networks and the BTC-e trading API.