The Brain¶
The Brain is tool for crypto-currency markets aiming to help with users trading activities. It features programmatic, config based and on-the-fly strategies, data and opportunity analyzers.

Contents¶
About¶
Why?¶
As trading hundreds of cryptocoins in tens of markets could be really hard for users, The Brain aims to help with decision taking by presenting the user best possible summarized information.
How?¶
The Brain consists of multiple parts for use; The UI and Engine. The Brain Engine
is responsible for running everything behind the curtain including reading & analyzing market data and processing it with opportunity analyzers & strategies.
Market Data¶
The Brain can read market data from hundres of possible cryptocoin exchanges. Yet again users can also develop their own market data reader programmatically and The Brain will be then executing it.
Yet again, The Brain can read from fiat conversion API’s available through the web to execute cross-fiat conversions.
Data Analyzers¶
Once the market data from all available sources are read, The Brain Engine
will then
will start executing the available data-analyzer modules.
A data analyzer
is a basic module that can read, process and finally manipulate the data from markets.
As an example MergedMarketsForPairs
data analyzer merges all currency pairs within the market data and will then find each market with best ask & bid prices.
Opportunity Analyzers¶
Once data analyzers are all processed, The Brain Engine
will move on executing opportunity analyzers
.
An opportunity analyzers
is a basically another type of module that has access to results from data analyzers
.
They can basically take the results and check for any outstanding opportunities for the current market state.
As an example, a simple opportunity analyzer
can read from the previous MergedMarketsForPairs
data analyzer’s results and
calculate if any outstanding opportunities stand for available currency pairs, in which our case buying from the lowest ask market and
selling it back in highest bid market would be one.
As well as presenting the user percentage profit, the opportunity analyzer
can then create a on-the-fly strategy
which will be then later executed and calculate the exact outcome.
Strategies¶
Strategies
are basically executed by The Brain Engine
to calculated expected outcome & profit for a given set of actions. The Brain Engine
can run 3 kind of strategies;
- Configuration based strategies
- Programmatic strategies
- On-the-fly strategies.
Strategies¶
Strategies
are basically executed by The Brain Engine
to calculated expected outcome & profit for a given set of actions. The Brain Engine
can run 3 kind of strategies;
- Configuration based strategies
- Programmatic strategies
- On-the-fly strategies.
Configured¶
Configuration based strategies
are simple YAML markup
based strategies. Although it has a pretty basic syntax, it can
easly handle the most basic tasks for creating simple strategies.
name: TR markets - BTC
description: BTC arbitrage strategy for Turkish markets
region: TR
author: Bonesoul
version: 1.0
enabled: true
defaults:
input: &input 1000 TRY # default input amount
variants:
- name: Koinim > Paribu
description: Buy BTC [Koinim] > Sell BTC [Paribu]
exec:
- cashin: # Cash in TRY to Koinim.
- market: Koinim
- amount: *input
- buy: BTC # Buy BTC using TRY.
- transfer: Paribu # Transfer Btc to Paribu.
- sell: TRY # Sell BTC for TRY.
- cashout: # Cash out TRY.
The above strategy will basically execute these actions;
- The above strategy will basically cash in
1000 USD
to Bitcoin exchange calledKoinim
. - Will buy
Bitcoin
with all it’s fiat. - Transfer
Bitcoins
to another exchange calledParibu
. - Will sell all the
Bitcoins
. - Will cash out from the market.
Programmatic¶
Programmatic strategies
are custom developed strategies by the user with C#
or any other .Net based
language. They are far more
powered compared to Configuration based strategies
as the user will be able to develop virtually every possible trading & arbitrage strategy.
As an example, the code below executes the same above strategy;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using Brain.Framework.Finances.Currencies;
using Brain.Framework.Finances.Generic;
using Brain.Framework.Strategies.Programmatic;
using Brain.Framework.Strategies.Variants;
using Brain.Framework.Strategies.Variants.Programmatic;
namespace Brain.Strategies
{
[Serializable]
public class Strategy : IProgrammaticStrategy
{
public string Name { get; }
public string Author { get; }
public IReadOnlyCollection<IVariant> Variants { get; }
[NonSerialized]
private readonly IList<IVariant> _variants;
private readonly FiatCurrency _try = new FiatCurrency("TRY");
private readonly CoinCurrency _btc = new CoinCurrency("BTC");
public Strategy2()
{
Name = "TR markets - BTC";
Author = "Bonesoul";
_variants = new List<IVariant>();
Variants = new ReadOnlyCollection<IVariant>(_variants);
}
public void Load()
{
var variant = new ProgrammaticVariant(this, "Koinim -> Paribu");
variant1.Execute = new Action(() =>
{
variant.CashIn("Koinim", new Amount(1000, _try));
variant.Buy(_btc);
variant.Transfer("Paribu");
variant.Sell(_try);
variant.CashOut();
});
_variants.Add(variant);
}
}
}
Yet again it will execute the same actions;
- The above strategy will basically cash in
1000 USD
to Bitcoin exchange calledKoinim
. - Will buy
Bitcoin
with all it’s fiat. - Transfer
Bitcoins
to another exchange calledParibu
. - Will sell all the
Bitcoins
. - Will cash out from the market.
On-the-fly¶
On-the-fly strategies
are strategies that are not created by the user but The Brain Engine
itself based on current market oppurtunities.
Once the market data is read and processed by data analyzers
, a oppurtunity analyzer
that can evaluate possible profit opportunities within the markets and if so, it can dynamically create a suitable on-the-fly strategy
for it.
The basic workflow for On-the-fly strategies
is;
The Brain Engine
will read data from markets.- Available
data analyzers
will be executed where they will process the market data. Opportunity analyzers
will be evaluating the outcome fromdata analyzers
. Once an opportunity is found, it’ll present the user percentage profit and create aon-the-fly strategy
utilizing it to exactly calculate the expected outcome.