<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>CPU and GPU Implementations for High Frequency Trading in Algorithmic Finance</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Mantas Vaitonis</string-name>
          <email>mantas.vaitonis@knf.vu.lt</email>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Vilnius University Kaunas Faculty Muitinės street.</institution>
          <addr-line>8, LT-44280 Kaunas</addr-line>
          ,
          <country country="LT">Lithuania</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Vilnius University Kaunas Faculty Muitinės street.</institution>
          <addr-line>8, LT-44280 Kaunas</addr-line>
          ,
          <country country="LT">Lithuania</country>
        </aff>
      </contrib-group>
      <fpage>119</fpage>
      <lpage>124</lpage>
      <abstract>
        <p>- Today algorithmic trading and High Frequency Trading (HFT) account for a dominant part of overall trading volume in financial markets. The trade execution time has grown from daily trading to microseconds and nanoseconds.. A modern GPU allows hundreds of operations to be performed in parallel, leaving the CPU free to execute other jobs. The main objective of this research was to test the possibility and quantify how much higher speedups the use of GPUs can bring in calculations of HFT statistical arbitrage algorithms. In the research MATLAB software was applied for GPU application and computations. The statistical arbitrage- pair trading algorithm was parallelized in order to adapt it to GPU application. The effectiveness was measured according to time CPU and GPU did spent working on historical data using pair trading strategy. In the paper the final results of the research are presented and discussed. The results have proven up to 30% increase in computational speed with the application of statistical arbitrage algorithm in HFT.</p>
      </abstract>
      <kwd-group>
        <kwd>high frequency trading</kwd>
        <kwd>statistical arbitrage</kwd>
        <kwd>GPU</kwd>
        <kwd>high performance computing</kwd>
        <kwd>parallel computing</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>I. INTRODUCTION</title>
      <p>
        The computational power requirements have continuously
increased in computer science fields such as computational
physics, quantitative finance and etc. One of the examples is
high-frequency trading (HFT) which is focused on automatic
trading decisions making. All decisions to buy or to sell financial
instrument are made by computer algorithms without human
interaction. The mentioned algorithms analyze the incoming
information which is received from the exchange system.
Information from exchange system may include new
transactions taking place with their transaction prices and
volumes, but in some systems also order submission, order
modification and order deletion events of other exchange
members. If a trading algorithm decides to submit a buy or sell
order to the exchange system, then within a few milliseconds
this information is sent from exchange member’s system to the
central exchange server which is responsible for matching offer
and demand. The exchange server responds with a confirmation
message. [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]
      </p>
      <p>The trade execution time has grown from daily trading to
microseconds and even nanoseconds. By the increase in speed a
huge number of orders and order cancellations are required.</p>
    </sec>
    <sec id="sec-2">
      <title>Copyright held by the author(s). 119</title>
      <p>
        Graphics processing units (GPU) offer a new possibility for
speeding up large scale simulation of long range interacting
systems without sacrificing accuracy. GPU is a powerful device
which can process thousands of threads simultaneously with
high memory bandwidth. Compared to CPU, GPU is designed
with more transistors that are devoted to data processing rather
than data caching and flow control. It is suitable for
computation-intensive and data-parallel computations needed
for high frequency traders that are time sensitive. [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]
      </p>
      <p>
        Multi-threaded parallel CPU implementations are expected
to run faster than the single-threaded counterparts, the overhead
of creating, destroying, and synchronizing threads may be very
high. An alternative parallel computing platform is the GPU.
Originally, it was developed for graphics applications. Due to
their massive parallel processing capabilities, state-of-the-art
GPUs are the leading software computing devices for the most
parallel and computationally intensive applications such as high
frequency trading algorithms. [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]
      </p>
      <p>Our study demonstrates how the use of GPUs can bring
impressive speedups in statistical arbitrage trading algorithm,
leaving the main CPU free to focus on the remaining aspects of
trading strategy. Several vendors have recently started offering
toolkits to leverage the power of GPUs for general purpose
programming. Unfortunately, they introduce a totally new
model of computation, which requires algorithms to be fully
redesigned. In this research MATLAB was used for GPU
computing which allows to accelerate an application with GPUs
more easily than by using C or Fortran. With the MATLAB
language it is possible take advantage of the CUDA GPU
computing technology without having to learn the intricacies of
GPU architectures or low-level GPU computing libraries.</p>
      <p>In this paper, we investigate implementations of CPU and
GPU the parallel pair trading algorithm. The main aim of this
research is to explain the improved designs in detail, and report
a performance comparison between CPU and GPU
implementations in terms of speed. Improvements suggested in
the paper for CPU and GPU implementations are summarized as
faster speed due to new memory access patterns, and more
flexibility due to a more efficient use of processors, respectively.</p>
      <p>
        In order to take advantage of the CPU and GPU it is
necessary to parallelize the calculations. The effectiveness was
measured according to time CPU and GPU did spent working
on historical data using pair trading strategy. The strategy used
was first researched by D. Herlemont on his paper about pairs
trading [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ]. This trading strategy was used on high frequency
data during previous researches. [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ][
        <xref ref-type="bibr" rid="ref32">32</xref>
        ] However it was not
used with GPU. There are a number of functions of this trading
algorithm that can be parallelized like pair selection, trading
signal detection, trading and profit/loss calculation for each
trade. Thus, it had to be modified and parallelize in order to take
advantage of GPU. Importantly, not only pairs trading strategies,
but also the method of pairs selection is introduced in this
research.
      </p>
      <p>
        Cointegration method was used for trading pairs selection.
The pairs selection algorithm is based on using Augmented
Dickey Fuller Test, Engle and Grangers 2-step approach and
Johansen test. [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] Finally, the comparison of statistical
arbitrage trading strategy is given when using CPU and later
with GPU.
      </p>
      <p>The rest of the paper is organized as follows: theory and the
problem statement are presented in Sections 1 and 2, the
methodology, including the pairs trading strategy, pairs
selection algorithm, speedup of an trading algorithm is presented
in Sections 3 and 4. The results and the summary of the research,
followed by conclusions in Section 5.</p>
      <p>II. TRADING USING HARDWARE ACCELERATION</p>
      <p>
        Hardware acceleration is achieved by utilizing specific
hardware to gain higher computational results than those
provided by general purpose CPU. Most devices intended for
intense calculations include Field-Programmable Gate Array
(FPGA), IBM‟s Cell Broadband Engine Architecture (Cell BE
or, simply, Cell) and Graphics Processing Units (GPUs). Until
recently GPU remained on fringes of HPC (high performance
computing) mostly because of the high learning curve caused by
the fact that low-level graphics languages were the only way to
program the GPUs. Now, however, NVIDIA has come out with
a new line of graphics cards – Tesla. [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]
      </p>
      <p>
        One of NVIDIA GPUs‟ main features is ease of
programmability made possible with CUDA – Compute Unified
Device Architecture. CUDA provides the means to compile and
run code for NVIDIA‟s GPUs. With a low learning curve,
CUDA allows developers to tap into enormous computing
power of GPUs yielding high performance benefits. [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] As
mentioned in the introduction, we use the compute unified
device architecture (CUDA), which allows for implementation
of algorithms using MATLAB with CUDA specific extensions.
Thus, CUDA issues and manages computations on a GPU as a
data-parallel computing device. The graphics card architecture
used in recent GPU generations is built around a scalable array
of streaming multiprocessors. [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] When a program using CUDA
extensions and running on the CPU invokes a GPU kernel,
which is a synonym for a GPU function, many copies of this
kernel – known as threads – are enumerated and distributed to
the available multiprocessors, where their execution starts. [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]
      </p>
      <p>
        As shown in Fig. 3, each multiprocessor of the GPU device
contains several local registers per processor, memory which is
shared by all scalar processor cores in a multiprocessor. In order
to allow for reducing the number of involved multiprocessors,
the slower global memory can be used, which is shared among
all multiprocessors and is also accessible by the function running
in the CPU. Please note, that the GPU’s global memory is still
roughly 10 times faster than current main memory of personal
computers. However, each multiprocessor features only one
double-precision processing core and so, the theoretical peak
performance is significantly reduced for double-precision
operations. [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]
      </p>
    </sec>
    <sec id="sec-3">
      <title>III. STATISTICAL ARBITRAGE</title>
      <p>
        Correlation is a statistical term that comes from linear
regression analysis. This term defines the strength of a
relationship between two variables. The main idea of statistical
arbitrage or pairs trading is to find the pair of financial
instruments that are highly correlated. When a pair is found, a
trader must look for the changes in correlation followed by mean
– reversion to the trend of financial instruments pair, thereby,
creating a profit opportunity. This type of trading needs to
identify a relationship between two financial instruments, figure
out the direction of their relationship, and execute long and short
positions, based on the statistical data presented. Selecting a
good pair for trading becomes the most important stage of
meanreversion of the market-neutral statistical arbitrage
strategy.[
        <xref ref-type="bibr" rid="ref26">26</xref>
        ][
        <xref ref-type="bibr" rid="ref34">34</xref>
        ]
      </p>
      <sec id="sec-3-1">
        <title>A. Pairs Trading Using Cointegration</title>
        <p>
          The cointegration method uses mathematical model,
developed by Engle and Granger [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ], which have attracted a
considerable interest of the economists over the last two
decades. Cointegration states that, in some instances, despite
two given non-stationary time series, a specific linear
combination of the two time series is actually stationary. The
two time series move together in a lockstep fashion. The
cointegration can be described like this: xt and yt are two time
series that were non-stationary. If there was parameter and the
following equation:
        </p>
        <p>
          zt=yt-xt
was a stationary process, then xt and yt would be
cointegrated. This path-breaking process emerged as a powerful
tool for investigating common asset trends in multivariate time
series. [
          <xref ref-type="bibr" rid="ref25">25</xref>
          ]
        </p>
      </sec>
      <sec id="sec-3-2">
        <title>B. Data</title>
        <p>The microsecond data for this research was provided by
Nanotick company. Futures contract data is from ME group
which consists of NYMEX, COMEX and CBOT. Nanotick
provided five different futures commodity contracts: NG
(natural gas), BZ (Brent crude oil), CL (crude oil), HO (NY
Harbor ULSD) , RB (RBOB Gasoline). Time period of
commodity futures contracts was from 01-08-2015 to
31-082015.</p>
        <p>After normalization, microsecond futures commodity
contracts data consisted of 24957994 records. Upon preparation,
the data had to be applied to statistical arbitrage trading strategy.</p>
        <p>17:00:00.930168164
17:00:01.017456320
NGF6
NGF6
NGF6
NGF6
NGF6
NGF6
NGF6
NGF6
NGF6
NGF6
NGF6
NGF6
NGF6
NGF6
NGF6
NGF6
NGF6
NGF6
NG
NG
NG
NG
NG
NG
NG
NG
NG
NG
NG
NG
NG
NG
NG
NG
NG
NG
A
B
A
B
A
B
A
B
A
B
A
B
A
B
A
B
A
B
3226
3219
3227
3219
3238
3216
3238
3216
3238
3215
3238
3215
3231
3215
3231
3217
3233
3217
(1)</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>The cointegration</title>
      <p>developed
method
uses
mathematical
model,
IV. 3.</p>
    </sec>
    <sec id="sec-5">
      <title>METHODOLOGY</title>
      <p>The main purpose of pairs trading is to find two financial
instruments that move together. Once the pair of these
instruments is found, strategy has to decide when to take long
and short positions based on the trading rules. Following the
research, six main steps of pairs trading strategy were identified:
Selection of the size of the window trading and data
normalization;</p>
    </sec>
    <sec id="sec-6">
      <title>Data normalization;</title>
    </sec>
    <sec id="sec-7">
      <title>Selection of the correlated pair;</title>
    </sec>
    <sec id="sec-8">
      <title>Definition of the trading rules;</title>
    </sec>
    <sec id="sec-9">
      <title>Trading;</title>
      <p>
        Assessment of the pairs trading strategy.[
        <xref ref-type="bibr" rid="ref16">16</xref>
        ][
        <xref ref-type="bibr" rid="ref24">24</xref>
        ][
        <xref ref-type="bibr" rid="ref32">32</xref>
        ]
Before selecting trading and data normalization window,
strategy has to be trained. Thus, before starting to trade, some
data must be used for training. This data may be called out of
sample data. All data of microsecond futures commodity
contracts had to be divided into training and testing datasets. The
method of dividing data into training and testing periods was
referred to as the holdout method in statistical classification. [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ]
When selecting training or out of sample period, it is important
to select the right size of this window: if too big window is
chosen, strategy may overtrain and it cannot be too small as the
strategy will not be able to notice the abnormal behaviour. [
        <xref ref-type="bibr" rid="ref30">30</xref>
        ]
Finally, the testing period follows immediately after the training
period.
      </p>
      <sec id="sec-9-1">
        <title>A. Data Normalization</title>
        <p>Upon receiving the microsecond data for commodity futures
contracts, next step was to normalize these data to be able to
implement them in our test environment. First task was to bring
time stamp data together. For example, if we have a time stamp
of 17:00:00.869053009 in one contract and the time stamp of
17:00:00.825207610 in other futures contract, these two time
stamps have to appear in both contracts. In our case, all different
time stamps had to appear in all five different futures contacts.</p>
        <p>
          If the contract is filled with a new time stamp, the price for
that futures contract is set the same as the last time stamp. It is
assumed that the price did not change for that time. In this way,
all time stamps of futures contracts are normalized for
nanosecond and microsecond data. [
          <xref ref-type="bibr" rid="ref24">24</xref>
          ][
          <xref ref-type="bibr" rid="ref32">32</xref>
          ]
        </p>
        <p>As all time stamps for all the futures contracts were obtained,
it was time to define data out of sample, normalization and
trading periods. During this procedure, all parameter were kept
the same: out of sample period was 5 minutes, normalization and
trading period was kept the same, i.e., 20 seconds for each
trading window. One more period was selected, which is for
closing the positions, which was 20 seconds as well.</p>
        <p>
          Upon setting and defining the above parameters on the
trading strategy, price normalization follows. When normalizing
for each price of futures commodity contract P(i,t), we calculate
empirical mean µ(i,t) and standard deviation σ(i,t) for the
selected normalization period, and then apply the following
equation [
          <xref ref-type="bibr" rid="ref30">30</xref>
          ]:
 ( ,  ) =
 ( , )− ( , )
 ( , )
(2)
        </p>
        <p>
          Value p(i,t) is the normalized price of futures commodity
contract i at time t. [
          <xref ref-type="bibr" rid="ref30">30</xref>
          ]
        </p>
      </sec>
      <sec id="sec-9-2">
        <title>B. Pair Selection</title>
        <p>One of two main parts of this trading methodology is the
pairs selection algorithm which is essentially based on
cointegration testing. Cointegration method involves the
following steps:</p>
        <p>1. Identify futures contract pairs that could potentially be
cointegrated;</p>
        <p>
          2. Once the potential pairs are identified, we need to verify
the proposed hypothesis that the futures contract pairs are indeed
cointegrated based on the information from historical data;
3. Examine the cointegrated pairs to determine whether they
can be trade on. [
          <xref ref-type="bibr" rid="ref33">33</xref>
          ]
        </p>
        <p>
          The objective of this phase is to identify the pairs with linear
combination exhibiting a significant predictable component that
is uncorrelated with underlying movements in the market as a
whole. With this aim, we first measure the spread of pair prices
for stationarity. In this research, it is done by checking whether
the data series are integrated in the same order by using
Augmented Dickey Fuller Test (ADF), which is the extended
version Dickey Fuller. [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ] Having passed the ADF test,
cointegration tests are performed on all possible combinations
of pairs. To test for cointegration we adopted Engle and Granger
2-step approach and Johansen test. This methodology is based
on Caldeira and Moura. [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ]
        </p>
        <p>
          Johansen test determines the number of cointegrating
relations and also implements a multivariate extension of the
2step Engle and Granger procedure. [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ]
        </p>
        <p>All of the procedures are implemented on MATLAB. The
second part of the algorithm creates trading signals for the
detected cointegrating relations based on the predefined
investment decision rules.</p>
      </sec>
    </sec>
    <sec id="sec-10">
      <title>V. EXPERIMENTAL SETUP</title>
      <p>The two main criteria for algorithmic trading are speed – that
is the speed with which the same set of computations can be
performed on multiple sets of data – and programmability. For
this principle, general-purpose hardware – such as Intel Central
Processing Unit (CPU) – is not suitable. The CPU is designed to
execute commands in a linear fashion, however, the task at hand
will benefit most from parallelization as the same calculations
are required to be performed on multiple data; this is where
parallelization and hardware acceleration come into play.</p>
      <p>During our research CPU used was Intel i5 - 3230M 2,6 GHz
with two cores (2 MATLAB worker) and GPU GeForce 710M
with 96 CUDA cores. Firstly we did apply the pair trading
strategy only two CPU. Using “parfor” function of MATLAB
which allows hundreds of operations to be performed in parallel
with CPU we did detect calculations that were possible to
parallelize. During this stage we did speed up the strategy to
maximize its performance by using only CPU.</p>
      <p>
        When it came to GPU we did use gpuArray and arrayfun
GPU functions together with parfor, which works on CPU.
GpuArray creates array on GPU and arrayfun applys function to
each element of array. This method of using gpuArray with
arrayfun makes actual evaluation of the function happens on the
GPU, not on the CPU. Thus, any required data not already on
the GPU is moved to GPU memory, the MATLAB function
passed in for evaluation is compiled for the GPU, and then
executed on the GPU. All the output arguments return as
gpuArray objects. [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ][
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]
      </p>
      <p>In our experiment we did parallelize pair detection, detecting
buy/sell signals, the trading and profit calculation. It was
possible to parallelize these functions because every iteration the
strategy has it must perform same calculations. In order not to
wait for one function to stop we can perform multiple
calculations with multiple functions.</p>
    </sec>
    <sec id="sec-11">
      <title>VI. EXPERIMENTAL RESULTS</title>
      <p>The overall pair trading strategy performance was measured
in the profit it did generate. During the experiment we did not
use transactions cost, which was kept zero, and the amount
invested in each trade was kept the same, which was 10. The
profit/loss was measured in percentage in change of overall
difference at the end of each trading day. A more detailed
information is presented in figure below.</p>
      <p>
        Figure 2 above shows the daily profits from HFT trading
algorithm and confirms the results revealed by High Frequency
Trading market leader Virtu Financial, Inc, where only one
losing trading day out of 1237 days was generated [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ]. The
chart in Figure 1 illustrates daily results of an algorithm-based
on a statistical arbitrage HFT system. The less profitable days
occur because of fewer trades, due to less trade signals, rather
than fluctuations or a series of unproductive trades. However,
our research aim was not to measure the profit of the strategy but
to improve the speed of algorithm by using GPU. The same pair
trading strategy was applied to CPU and later to CPU working
together with GPU. In the table below we can see the amount of
records pairs trading algorithm had to process and how much
time did it take using CPU and GPU.
      </p>
      <p>From table 2 it is shown how much time in seconds did
algorithm spend on each day trading simulation using different
hardware CPU (Intel i5 - 3230M 2,6 GHz,2 cores) and GPU
(GeForce 710m, 96 CUDA Cores) and how many records it had
to process.</p>
      <p>The more detailed information is presented in figure below
where the speedup difference in percentage is shown.</p>
      <p>As shown in figure above when pair trading algorithm was
presented to GPU, the speed of simulation did improve
dramatically varying from 12% to 36% improve in overall
speed. The difference of speed for different days occurs due to
different number of trades made and different number of trade
signals. The more parameters are possible to make parallel and
move to GPU, the bigger speedup is possible to achieve. It is
shown that CPU, even with multi-threaded implementation, is
not a feasible option for large dense matrices. For the GPU
implementation, performance impact of the global memory
access patterns on the GPU board and the memory coalescing
are emphasized. In our case the bigger the matrix of trades and
pairs the more measurable is the speed up by GPU. The results
show the importance of technical advantages in HFT and how
important is to improve the algorithm in order to use the most of
the hardware it is presented to. In our research the possibility to
improve the speed of daily trading with microseconds came,
when algorithms calculations were parallelized and presented to
GPU using gpuArrays and arrayfun in MATLAB, that allows to
exploit the GPU at hand.</p>
    </sec>
    <sec id="sec-12">
      <title>VII. CONCLUSIONS</title>
      <p>Recent technological advances have made trading in the
markets fast and mostly done by computers and algorithms.
Instead of humans, computers replicate the role of market
makers, specialists or liquidity providers but at a much higher
rate of speed. The number of derived financial instruments has
caused increased opportunities for profits arising from pricing
inefficiencies or price move delays between securities. Trading
algorithms now work not only with CPU, but with GPU. These
factors have been driving forces to test the system based on pair
trading in HFT and see how the effectiveness differ when using
different hardware. In this paper, high frequency algorithmic
pairs trading was developed on the market - neutral statistical
arbitrage strategy presented by D. Herlemont. Importantly, all
five futures commodity contracts, used for the proposed pairs
trading strategy, belong to same CME group, which is the
world's largest options and futures exchange platform. proposed
trading strategy used the pairs selection algorithm which
consisted of the Augmented Dickey Fuller test. If futures
commodity contracts prices pass the Augmented Dickey Fuller
test, cointegration tests are performed on all possible
combination of pairs. To test for cointegration Engle and
Grangers 2-step approach and Johansen test was adopted.
Trading strategy was firstly presented to CPU (Intel i5 - 3230M
2,6 GHz1 2 cores) and later to GPU (GeForce 710m, 96 CUDS
cores). All trading parameters were kept the same during
research. The purpose of this was to measure the effectiveness
of hardware and to check how much higher frequency trading
evolution and performance improves when it is presented to
GPU rather than to only CPU. At the end of the research, when
all datasets were implemented to the pairs selection algorithm
working with CPU and GPU, the results were gathered. It should
be no surprise that when algorithm was presented to GPU it did
perform more effective. The speed up of daily improvement of
speed did vary from 12% to 36%. The difference of speed for
different days occurs due to different number of trades made and
different number of trade signals. The more parameters are
possible to make parallel and move to GPU, the bigger speedup
is possible to achieve. The increase could be even more dramatic
if algorithm would be presented to even more financial
instruments and more trading signals would be created.</p>
    </sec>
    <sec id="sec-13">
      <title>ACKNOWLEDGMENT</title>
      <p>We would also like to show our gratitude to the NANOTICK
for providing high frequency data in microseconds of 5
commodity futures contracts.</p>
      <p>Available</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <surname>Ahmed</surname>
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Chai</surname>
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ding</surname>
            <given-names>X.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Jiang</surname>
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sun</surname>
            <given-names>Y.</given-names>
          </string-name>
          (
          <year>2009</year>
          ), “
          <article-title>Statistical Arbitrage in High Frequency Trading Based on Limit Order Book Dynamics”</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <surname>Danelutto</surname>
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>De Matteis</surname>
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mencagli</surname>
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Torquati</surname>
            <given-names>M.</given-names>
          </string-name>
          (
          <year>2015</year>
          ),
          <article-title>“Parallelizing High-Frequency Trading Applications by Using C++11 Attributes”</article-title>
          ,
          <year>August 2015</year>
          , IEEE.
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <surname>Mustafa</surname>
            <given-names>U.</given-names>
          </string-name>
          <string-name>
            <surname>Torun</surname>
            , Onur Yılmaz,
            <given-names>Ali N. Akansu.</given-names>
          </string-name>
          (
          <year>2016</year>
          ), “FPGA,
          <string-name>
            <surname>GPU</surname>
          </string-name>
          , and
          <article-title>CPU implementations of Jacobi algorithm for eigenanalysis”</article-title>
          ,
          <source>Journal of Parallel and Distributed Computing</source>
          , Vol.
          <volume>96</volume>
          , pp
          <fpage>172</fpage>
          -
          <lpage>180</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <surname>Kozikowski</surname>
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Papamanousakis</surname>
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Yang</surname>
            <given-names>J</given-names>
          </string-name>
          . (
          <year>2015</year>
          ), “
          <article-title>Potential future exposure, modelling and accelerating on GPU and FPGA”</article-title>
          ,
          <source>WHPCF 2015 Proceedings of the 8th Workshop on High Performance Computational Finance, Article No. 4.</source>
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <surname>Liang</surname>
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Xing</surname>
            ,
            <given-names>X.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Li</surname>
            <given-names>Y.</given-names>
          </string-name>
          (
          <year>2017</year>
          ),
          <article-title>“A GPU-based large-scale Monte Carlo simulation method for systems with long-range interactions”</article-title>
          ,
          <source>Journal of Computational Physics</source>
          , Vol/
          <volume>338</volume>
          , pp.
          <fpage>252</fpage>
          -
          <lpage>268</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <surname>Preis</surname>
            <given-names>T.</given-names>
          </string-name>
          (
          <year>2011</year>
          ), “GPU - computing
          <source>in econophysics and statistical physics”</source>
          ,
          <source>The European Physical Journal Special Topics</source>
          , Vol.
          <volume>194</volume>
          , pp.
          <fpage>87</fpage>
          -
          <lpage>119</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <surname>Margara</surname>
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cugola</surname>
            <given-names>G.</given-names>
          </string-name>
          (
          <year>2011</year>
          ),
          <article-title>“High performance content-based matching using GPUs”</article-title>
          ,
          <source>Proceedings of the 5th ACM international conference on Distributed event-based system</source>
          , New York, USA
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>NVIDIA</given-names>
            <surname>Corporation</surname>
          </string-name>
          .
          <article-title>(2008) NVIDIA CUDA Compute Unified Device Architecture,</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <surname>Napoli</surname>
            <given-names>C.</given-names>
          </string-name>
          et al.,
          <article-title>A cloud-distributed GPU architecture for pattern identification in segmented detectors big-data surveys</article-title>
          .
          <source>The Computer Journal</source>
          , vol.
          <volume>59</volume>
          , issue 3 , pp.
          <fpage>338</fpage>
          -
          <lpage>352</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <surname>Matlab</surname>
          </string-name>
          . (
          <year>2016</year>
          ), se.mathworks.com. [ONLINE] Available at: https://se.mathworks.com/help/distcomp/gpu-computing.html.
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <surname>Matlab</surname>
          </string-name>
          . (
          <year>2015</year>
          ), se.mathworks.com. [ONLINE] at: https://se.mathworks.com/discovery/matlab-gpu.html.
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <surname>Caldeira</surname>
            <given-names>J. F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Moura</surname>
            <given-names>G. V.</given-names>
          </string-name>
          (
          <year>2013</year>
          ),
          <article-title>“Selection of a portfolio of pairs based on cointegration: A statistical arbitrage strategy”</article-title>
          , Revista Brasileira de Financas, Vol.
          <volume>11</volume>
          (
          <issue>1</issue>
          ), pp.
          <fpage>49</fpage>
          -
          <lpage>80</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <surname>Bogoev</surname>
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Karam</surname>
            <given-names>A.</given-names>
          </string-name>
          (
          <year>2016</year>
          ),
          <article-title>“An Empirical detection of High Frequency Trading Strategies”</article-title>
          ,
          <source>6th International Conference of the Financial Engineering and Banking Society. June 10-12</source>
          ,
          <year>2016</year>
          Melaga.
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <surname>Cifu</surname>
            <given-names>D. A.</given-names>
          </string-name>
          (
          <year>2014</year>
          ),
          <source>“FORM S-1, Registration Statement Under The Securities Act Of</source>
          <year>1933</year>
          ”, Virtu Financial, Inc.
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <surname>Dickey</surname>
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fuller</surname>
            <given-names>W.</given-names>
          </string-name>
          (
          <year>1979</year>
          ), “
          <article-title>Distribution of the Estimator for Autoregressive Time series with a Unit Root”</article-title>
          ,
          <source>Journal of the American Statistical Association</source>
          , Vol.
          <volume>74</volume>
          , pp.
          <fpage>427</fpage>
          -
          <lpage>431</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <surname>Driaunys</surname>
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Masteika</surname>
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sakalauksas</surname>
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Vaitonis</surname>
            <given-names>M.</given-names>
          </string-name>
          (
          <year>2014</year>
          ), “
          <article-title>An algorithm-based statistical arbitrage high frequency trading system to forecast prices of natural gas futures”, Transformations in business and economics</article-title>
          . Vol.
          <volume>13</volume>
          (
          <issue>3</issue>
          ), p.
          <fpage>96</fpage>
          -
          <lpage>109</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <surname>Engle</surname>
            ,
            <given-names>R. F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Granger</surname>
            ,
            <given-names>C. W. J.</given-names>
          </string-name>
          (
          <year>1987</year>
          ),
          <article-title>“Co-integration and error correction: Representation, estimation</article-title>
          , and testing”,
          <source>Econometrica</source>
          , Vol.
          <volume>55</volume>
          (
          <issue>2</issue>
          ), pp.
          <fpage>251</fpage>
          -
          <lpage>276</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <surname>Fox</surname>
            <given-names>M. B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Glosten</surname>
            <given-names>L. R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rauterberg</surname>
            <given-names>G. V.</given-names>
          </string-name>
          (
          <year>2015</year>
          ), “The New Stock Market: Sense and Nonsense” , 65 Duke L.J.
          <volume>191</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <surname>Herlemont</surname>
            <given-names>D.</given-names>
          </string-name>
          (
          <year>2013</year>
          ), “Pairs Trading, Convergence Trading, Cointegration”,
          <string-name>
            <surname>Quantitative</surname>
            <given-names>Finance</given-names>
          </string-name>
          , Vol.
          <volume>12</volume>
          (
          <issue>9</issue>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <surname>Kaya</surname>
            <given-names>O.</given-names>
          </string-name>
          (
          <year>2016</year>
          ), “High - frequency trading.
          <source>Reaching the limits”</source>
          ,
          <source>Automated trader magazine</source>
          . Vol.
          <volume>41</volume>
          , p.
          <fpage>23</fpage>
          -
          <lpage>27</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <surname>Kirchner</surname>
            <given-names>S.</given-names>
          </string-name>
          (
          <year>2015</year>
          ), “
          <article-title>High frequency trading: Fact and fiction”</article-title>
          ,
          <source>Policy: A Journal of Public Policy and Ideas</source>
          , Vol.
          <volume>31</volume>
          (
          <issue>4</issue>
          ), pp.
          <fpage>8</fpage>
          -
          <lpage>20</lpage>
          ..
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <surname>Lau</surname>
            <given-names>C. A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Xie</surname>
            <given-names>W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wu</surname>
            <given-names>Y.</given-names>
          </string-name>
          (
          <year>2016</year>
          ),
          <article-title>“Multi - Dimensional Pairs Trading Using Copulas”</article-title>
          ,
          <source>European Financial Management Association 2016 Annual Meetings June 29-July 2</source>
          , 2016 Basel, Switzerland.
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <surname>Madhavaram</surname>
            <given-names>G. R.</given-names>
          </string-name>
          (
          <year>2013</year>
          ), “
          <article-title>Statistical Arbitrage Using Pairs Trading With Support Vector Machine Learning”</article-title>
          , Saint Mary's University.
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <string-name>
            <surname>Masteika</surname>
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Vaitonis</surname>
            <given-names>M.</given-names>
          </string-name>
          (
          <year>2015</year>
          ), “
          <article-title>Quantitative Research in High Frequency Trading for Natural Gas Futures Market”</article-title>
          ,
          <source>Business Information Systems Workshops</source>
          , Vol.
          <volume>228</volume>
          , pp.
          <fpage>29</fpage>
          -
          <lpage>35</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [25]
          <string-name>
            <surname>Miao</surname>
            <given-names>G. J.</given-names>
          </string-name>
          (
          <year>2014</year>
          ), “
          <article-title>High Frequency and Dynamic Pairs Trading Based on Statistical Arbitrage Using a Two-Stage Correlation and Cointegration Approach”</article-title>
          ,
          <source>International Journal of Economics and Finance</source>
          , Vol.
          <volume>6</volume>
          (
          <issue>3</issue>
          ), pp.
          <fpage>96</fpage>
          -
          <lpage>110</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          [26]
          <string-name>
            <surname>Miao</surname>
            <given-names>G. J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Clements</surname>
            <given-names>M. A.</given-names>
          </string-name>
          (
          <year>2002</year>
          ), “Digital Signal Processing and Statistical Classification”,
          <string-name>
            <surname>Artech</surname>
            <given-names>House</given-names>
          </string-name>
          , ISBN
          <volume>1580531350</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          [27]
          <string-name>
            <surname>Miller</surname>
            <given-names>R. S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Shorter</surname>
            <given-names>G.</given-names>
          </string-name>
          (
          <year>2016</year>
          ), “
          <article-title>High Frequency Trading: Overview of Recent Developments”</article-title>
          ,
          <source>report, April</source>
          <volume>4</volume>
          , 2016; Washington D.C
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          [28]
          <string-name>
            <surname>Mushtaq</surname>
            <given-names>R.</given-names>
          </string-name>
          (
          <year>2011</year>
          ), “Augmented Dickey Fuller Test”. Available at SSRN: https://ssrn.com/abstract=1911068.
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          [29]
          <string-name>
            <surname>Ohara</surname>
            <given-names>M.</given-names>
          </string-name>
          (
          <year>2015</year>
          ), “
          <article-title>High frequency market microstructure”</article-title>
          ,
          <source>Journal of Financial Economics</source>
          , Vol.
          <volume>116</volume>
          (
          <issue>2</issue>
          ), pp.
          <fpage>257</fpage>
          -
          <lpage>270</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          [30]
          <string-name>
            <surname>Perlin</surname>
            <given-names>M. S.</given-names>
          </string-name>
          (
          <year>2009</year>
          ),
          <article-title>“Evaluation of Pairs-trading strategy at the Brazilian financial market”</article-title>
          ,
          <source>Journal of Derivatives &amp; Hedge Funds</source>
          , Vol.
          <volume>15</volume>
          (
          <issue>2</issue>
          ), pp.
          <fpage>122</fpage>
          -
          <lpage>136</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref31">
        <mixed-citation>
          [31]
          <string-name>
            <surname>Vaitonis</surname>
            <given-names>M.</given-names>
          </string-name>
          (
          <year>2017</year>
          ), “
          <article-title>Pairs Trading Using HFT in OMX Baltic Market”</article-title>
          ,
          <source>Baltic J. Modern Computing</source>
          , Vol.
          <volume>5</volume>
          (
          <issue>1</issue>
          ), pp.
          <fpage>37</fpage>
          -
          <lpage>49</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref32">
        <mixed-citation>
          [32]
          <string-name>
            <surname>Vaitonis</surname>
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Masteika</surname>
            <given-names>S.</given-names>
          </string-name>
          (
          <year>2016</year>
          ), “
          <article-title>Research in High Frequency Trading and Pairs Selection Algorithm with Baltic Region Stocks”</article-title>
          , In: Dregvaite G.,
          <string-name>
            <surname>Damasevicius</surname>
            <given-names>R.</given-names>
          </string-name>
          <string-name>
            <surname>Information</surname>
            and
            <given-names>Software</given-names>
          </string-name>
          <string-name>
            <surname>Technologies</surname>
          </string-name>
          .
          <source>ICIST 2016. Communications in Computer and Information Science</source>
          , Vol
          <volume>639</volume>
          . Springer.
        </mixed-citation>
      </ref>
      <ref id="ref33">
        <mixed-citation>
          [33]
          <string-name>
            <surname>Vidyamurthy</surname>
            <given-names>G.</given-names>
          </string-name>
          (
          <year>2004</year>
          ), “Pairs Trading - Quantitative
          <source>Methods and Analysis</source>
          , New Jersey”, John Wiley &amp; Sons, Inc., p.
          <fpage>210</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref34">
        <mixed-citation>
          [34]
          <string-name>
            <surname>Zubulake</surname>
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lee</surname>
            <given-names>S.</given-names>
          </string-name>
          (
          <year>2011</year>
          ),
          <article-title>“The High frequency game changer: how automated trading strategies have revolutionized the markets”</article-title>
          , Aite group. Wiley trading.
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>