<!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>Automatic Creation of Stock Trading Rules on the Basis of Decision Trees</article-title>
      </title-group>
      <contrib-group>
        <aff id="aff0">
          <label>0</label>
          <institution>Dmitry Iskrich, Dmitry Grigoriev St. Petersburg State University St. Petersburg</institution>
          ,
          <country country="RU">Russia</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>|The main task of any trader is the selection of pro table strategies for trading a nancial instrument. One of the simplest ways to represent trading rules is binary decision trees based on the comparison of current values of technical indicators with some absolute values. This approach simpli es the creation of trading systems but their validity is limited to short-term intervals of trade. This paper represents an approach for generating more universal trade rules in the form of binary decision trees based on the comparison of the current values of technical indicators with relative levels. The ranges of these levels are recalculated on a daily basis which allows the trading rule to remain relevant within a long term. The proposed system analyzes the historical price data for a long period and using the genetic algorithm causes trading strategies optimized relatively to the Sharpe ratio.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        A strategy of a trader concluded in the formalization of
rules for opening and closing a position. Quite often these
rules are based on methods of the technical analysis and
processing of such data as the current price of the
instrument, the volume of trading, the maximum / minimum
price for a certain period, the price at the time of opening
/ closing of the trading session. Based on the series of
these data, so-called technical indicators are generated.
In accordance with postulates of the technical analysis
technical indicators allow to predict the probable trend
direction in a given security. Thus, the combination of the
indicator and its value can serve as a basis for the trading
strategy [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ].
      </p>
      <p>
        The discovery of pro table patterns is a non-trivial task.
Typically a trader manually programmes his trading
system and then optimizes its key parameters by exhaustive
search or by heuristic algorithms [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. In this paper we
describe a method for automatic building the rules of a
trading system without human intervention. Obviously, its
use will allow us to discover a greater number of e ective
patterns of price behavior.
      </p>
      <p>
        One of the simplest representations of trade strategy
is binary decision trees [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. In this case nodes
contain various assumptions about the state of a technical
indicator or another characteristic of the current market
situation, and its truth or falsity is determined by both
branches. Methods, which use this data structure have a
wide area of application [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ].
      </p>
      <p>
        In our work, a similar approach is used, which was rst
presented in [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]. Its speci city is the use of the genetic
algorithm for the generation and selection of optimal
decision trees. This algorithm relies on the daily historical data
of indicators and generates the most "trained" trading
decision tree. Unlike in [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] and [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ], the values of technical
indicators in the tree are compared not with the real value,
but with one of the levels relative to the dynamics in the
past. This increases the time of the rule's relevance, as the
ranges of levels are recalculated on a daily basis and thus
they re ect the latest state of the market.
      </p>
      <p>It should be noted that similar systems use BUY/SELL
signals allowing opening short positions and working with
them symmetrically to the long ones. In practice,
however, there are limitations: the adequate estimation of the
e ectiveness of short positions is di cult because of the
necessity to pay for the borrowed securities; the period of
their retention should be as short as possible; there are
temporary or permanent prohibitions on their opening.</p>
      <p>There are systems based on the markup of historical
data with instructions to take a trade action. This stage is
necessary for training some classi ers the essence of which
is to nd the relationship between a particular class and
the values of technical indicators. However, at the moment
there is no optimal way of such a markup.</p>
      <p>
        So, for example, in paper [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] for the arrangement of
BUY, SELL and HOLD signals for a certain day the
trading indicators of the next two days were used. After
that using algorithm ID3 with these data a decision tree
was created. At the same time, according to allegations
[
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] for the determination of the trade action it may be
insu cient to have several subsequent values. The general
trend of price changes plays an important role, and its
duration time is not always obvious. In system [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] the
arrangement of BUY and SELL signals is shown on the
basis of a fall or rise in prices for 2 years by 10 or 15 percent
respectively. Data with the assigned marks are used by
algorithm C4.5 to create the optimal decision tree. The
same algorithm is used in paper [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ], however, the markup
of the data for training is based on the real actions of the
most successful trader on a speci c day.
      </p>
      <p>Thus, the abundance of all possible variants of the
markups of historical data per trading actions led to the
decision to use the genetic algorithm as a classi er. This
approach requires only the existence of the objective
function from the data for the decision tree, thus eliminating
the need to subjectively mark out historical data.</p>
      <p>The contribution of this paper is as follows:
1) In trade rules only long positions are allowed.
2) A new optimization algorithm for the decision tree
is presented which is obtained after the application of
crossover and mutation operators.</p>
      <p>3) The principle of calculating the levels of indicators is
described.</p>
      <p>A more detailed description of the tree structure is given
in Section II. Section III contains a description of the
genetic algorithm including the initialization process and
the classical evolutionary steps. Principles of testing the
best systems and the analysis of their e ectiveness are
presented in Section IV.</p>
    </sec>
    <sec id="sec-2">
      <title>II. Trading decision tree</title>
      <p>A decision tree is a connected acyclic graph with the
leaves represented by decisions, in our case these can be
signals for opening a long position (LONG) and exit from
it (CLOSE LONG). The process of determining decisions
starts from the root, then, depending on the node value,
the transition into either the right or the left node takes
place. As a result, the leaf at the end is taken, i.e. an order
to buy a stock and open a long position (LONG) or sell out
the purchased volume (CLOSE LONG). The system starts
with the CLOSE LONG state allowing the rst purchase
with the LONG signal. The position size is determined
by the maximum possible number of shares that can be
purchased at the current balance. Thus, all the received
income is reinvested.</p>
      <p>A tree node is a predicate de ning a transition to one
of the two children. In every non-terminal node, the value
of the technical indicator is compared to a certain level to
see whether they match.</p>
      <sec id="sec-2-1">
        <title>A. Calculation of the indicator level</title>
        <p>
          Most often indicators have real values, but their current
state can be associated with a certain level, this approach
proved itself in [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ]. In other words, at a given time, a
technical indicator can have one value from the enumeration:
fVery Low, Low, Medium, High, Very High g.
        </p>
        <p>To calculate this value, the system uses n previous
values of the indicator. In this system, n equals to the
duration of the training period. After that the calculation
of the ranges for each level takes place:
1) The maximum (M ax) and minimum (M in) values of
the indicator for the previous n days are computed.
2) On the basis of these indicators, an interval [M in,</p>
        <p>M ax] is generated and divided into 5 equal segments.
3) The current level is determined by the segment into
which the real value of the indicator falls.</p>
        <p>If the value exceeds M ax, the indicator level is assigned
V eryHigh. Similarly, if the value is less than M in the
indicator level will be V eryLow.</p>
        <p>It should also be noted that the current level of indicator
is determined after closing the trading session and it is
valid for the whole next trading day.</p>
        <p>In the simplest form, the decision tree is shown in Fig.
1.</p>
        <p>To identify the best tree the genetic algorithm is used.
All steps of the classic evolution are involved.</p>
      </sec>
      <sec id="sec-2-2">
        <title>A. Initialization</title>
        <p>The initial population is initialized with a preset number
of random generated trees, with each node created by
selecting a random indicator and associating it with a
random level. The height of the tree is determined by
the number of indicators available to the system (in our
case 3). After this height has been reached, the generation
of non-terminal nodes ceases and random LONG/CLOSE
LONG leaves are created.</p>
      </sec>
      <sec id="sec-2-3">
        <title>B. Selection</title>
        <p>For the further tree modi cation with the genetic
operators the individuals that t most are selected and thus
the next generation is formed. The selection is done by
the roulette wheel method. For each tree the probability
of being chosen is:
pi =</p>
        <p>fi
Pn
j=1 fj
(1)
where fi is the tness function of tree Ti</p>
      </sec>
      <sec id="sec-2-4">
        <title>C. Fitness function</title>
        <p>
          For the evaluation of the tree the Sharpe ratio (Sharpe
Ratio), an indicator of the e ectiveness of the strategy,
introduced by W.F. Sharpe [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ] was chosen. It determines
the relationship between the pro t and the possible risk.
It is calculated as:
f =
rp
        </p>
        <p>Rf
(x)
;
(2)
where rp is the average income, Rf is the income with
a zero risk, (x) is the standard deviation of income. As a
risk-free rate, the value of 2.5% was taken as an analogue
of the 10-year US Treasuries.</p>
      </sec>
      <sec id="sec-2-5">
        <title>D. Genetic operators</title>
        <p>
          Genetic operators are constructed by analogy with
paper [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ] and include crossover and mutation operators.
        </p>
        <p>Due to these two operations, the principles of
inheritance and self-adaptivity can be achieved. Taking into
account the speci cs of the tree-shape data structure, the
basis for the modi cation consists of manipulations with
the terminal and non-terminal nodes.</p>
        <p>In the process of crossover, two individuals (in the form
of decision trees) are selected for crossing. The probability
of selection of each one is consistent with the roulette
method and it is computed using formula (1). After that
copies of the both trees exchange their randomly selected
subtrees and get included into the population (together
with the original trees). An example of the operator's
action is shown in Fig. 2.</p>
        <p>The mutation operator is a unary operator, whose
purpose is to prevent from premature convergence of the
generation to each other. It is based on the same principle
as the crossover - two nodes are randomly selected and
swapped in the tree.</p>
        <p>After these operators are applied, an important step is
needed to remove inconsistent nodes. In Fig. 3 a typical
case of this kind of errors is presented. As it can be seen,
when visiting node IND1 is LOW it is already known that
this predicate is false, since on the way from it to the root
there is node IND1 is HIGH. The process of removing
excess nodes goes by raising their respective child. In this
example, if IND1 is HIGH is true, there will be a transition
to IND3 is MEDIUM (i.e. to the subtree, to which would
be a transition in case of falsity of node IND1 is LOW ).</p>
        <p>After creating a new generation, an excess node removal
algorithm (Algorithm 1) is run for each tree that had been
modi ed by crossover or mutation. As a result, a tree
either retains its structure, or, if an unnecessary predicate
is found in a node, the nodes are replaced according to the
algorithm suggested below. The output is an optimized
tree (optimizedT ree) that works exactly the same way as
the original one.</p>
        <p>As the input the algorithm accepts two nodes which
are swapped. In this case the nodes can belong to both
di erent trees and to one tree. So, it can be used both
in case of a crossover and a mutation. In this algorithm
replacedN ode1, replacedN ode2 are the nodes that are
swapped around; RightT ree is the subtree node in the
case of truth of the predicate, Lef tT ree is the subtree in
case of falsity; N ame - the name of the indicator in the
predicate, V alue is its amount; parent is the parent of the
node.</p>
        <p>The estimation of computational complexity is
O(n log n), where n is the number of nodes in the tree.
This complexity allows, in principle, to use a large number
of indicators to build a trading system.</p>
      </sec>
      <sec id="sec-2-6">
        <title>E. General algorithm</title>
        <p>The general algorithm consists of the steps of the
classical genetic algorithm. Iteratively (in 25 steps) new
generations (200 individuals) are created, after which their
tness function is calculated and the selection is carried
out by means of the roulette method. To a certain number
of winners the operators of crossover (35%) and mutation
(5%) are applied. The trees that underwent these
permutations are optimized by Algorithm 1. The result will be
the best tree (by the tness function value) in the latest
generation.</p>
        <p>
          All parameters are chosen empirically to ensure a
balance of quality and running time. The algorithm scheme,
its parameters and time characteristics are described more
in detail in our work [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ]. Sometimes sustainability of
the result can be required from the genetic algorithm.
That is, subsequent start-ups of the system with identical
parameters must bring the identical decision tree. In case
of three technical indicators, this will require increasing
the number of individuals to 800 and for generations to
50.
        </p>
        <sec id="sec-2-6-1">
          <title>Input : replacedNode1, replacedNode2</title>
          <p>Output: optimizedTree
// Traversal of the children of the changed nodes
TraversalOptimize(replacedN ode1);
TraversalOptimize(replacedN ode2);</p>
        </sec>
      </sec>
      <sec id="sec-2-7">
        <title>Procedure TraversalOptimize(tree)</title>
        <p>if tree:Lef t 6= N ull then</p>
        <p>Traversal(tree:Lef t);
end
if tree:Right 6= N ull then</p>
        <p>Traversal(tree:Right);
end</p>
        <p>FixRepetitions (tree);
/* /* Procedure for checking and removing excess
nodes */
Procedure FixRepetitions (node)
/* Remember the true and false branch of the
veri ed node */
trueW ay node:RightT ree;
f alseW ay node:Lef tT ree;
currentN ode node:parent;
/* Going up to the root and checking</p>
        <p>currentN ode with each node on the path */
while currentN ode 6= N ull do
if currentN ode:N ame = node:N ame then
if currentN ode:V alue = node:V alue then
// An identical predicate is found
if node in currentN ode:Lef tT ree
then
/* If the node is in the left
descendants subtree of the
current node, replace it with the
false branch. */
node f alseW ay;
else
/* Otherwise, for the true one
node trueW ay
end
else
/* If only the names of the indicators
coincide, it is su cient to check
whether the node is in the right
descendants subtree of the current
one. In this case, the node is
obviously false, since the values
di er.
if node in currentN ode:RightT ree
then</p>
        <p>node f alseW ay;
end
end
end
end
/* Going one level up
currentN ode currentN ode:parent</p>
        <sec id="sec-2-7-1">
          <title>Algorithm 1: Removing excess node */ */ */</title>
        </sec>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>IV. Testing</title>
      <sec id="sec-3-1">
        <title>A. Metrics</title>
        <p>In addition to the objective function { the Sharpe ratio,
for the analysis of the results, additional metrics were used.
1) Return is a pro t rate in percent and it is
calculated by trade simulations using historical data. The
higher it is, the better.</p>
        <p>F inalBalance
Return = ( 1) 100; (3)</p>
        <p>StartBalance
where F inalBalance is the amount of money after
the simulation and StartBalance is the amount of
money at the beginning.
2) Max drawdown is the maximum reduction of the
account balance value from its local high in percent.
It allows to estimate the maximum loss of capital
when using this strategy. The lower it is, the better.
3) Trades count is the number of open positions for the
period under review. The index is proportional to
the possible value of the commission costs.
4) Buy and Hold represents the stock return, which is
provided by the market. The essence of this strategy
is in the purchase of the instrument at the very
beginning and its retention until the end of the given
trading period. For a comparison, the pro t indices
and the Sharpe ratio (B&amp;H Returns, B&amp;H Sharpe)
were taken.</p>
      </sec>
      <sec id="sec-3-2">
        <title>B. Indicators</title>
        <p>
          Below there are indicators [
          <xref ref-type="bibr" rid="ref1">1</xref>
          ], on which the system
builds up its trade recommendations:
1) Relative strength index (RSI), this oscillator
compares the number of recent asset price rises with the
number of its falls.
2) Stochastic oscillator (STO), shows the position of
the current price relative to the price range for a
certain period.
3) Average True Range (ATR) is an indicator of the
current market volatility.
        </p>
        <p>A greater number of indicators increases the sensitivity
of the trading system, which increases the number of
transactions.</p>
      </sec>
      <sec id="sec-3-3">
        <title>C. Results of testing</title>
        <p>As a testing object, ve large IT companies were
selected: Citrix Systems (CTXS), Electronic Arts (EA),
eBay Inc (EBAY), Intel (INTC), Oracle (ORCL).
Consistently for each year a selection of the best trading decision
tree and its veri cation in the next one is carried out. One
year has 251 trading signals, each of which corresponds to
a certain stock market day.</p>
        <p>
          It should be noted that the time characteristics of our
algorithm allow to apply it to the analysis of 5-minute
timeframes and higher. However, for liquid shares the
greater the timeframe is, the lower the in uence of the
"noise" component of the market is. This component is
caused by unpredictable actions of large players, as well
as by a random combination of actions of many trading
robots and traders. Vulnerability of the trading system
to such a random component leads to premature signals.
Therefore, similarly to works [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ] and [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ], testing is carried
out on daily historical data.
        </p>
        <p>The results are shown in Tables I - V. The lines with
the better system performance than the B&amp;H strategy are
highlighted in grey.</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>V. Future work</title>
      <p>Obviously, the e ciency of the constructed trading
strategies substantially depends on the set of technical
indicators and their parameters. In this regard, it is
necessary to investigate the applicability of other technical
indicators and to automate the selection of optimal parameters
of the indicators. Also in the future it is planned to expand
the set of nodal predicates. At the moment indicator values
are only able to belong to the level but later it is planned
to add the relationships between several indicators within
a predicate. An important area is the study of applicability
of the approach for BUY/SELL/HOLD signals.
Year</p>
      <p>As it can be seen from the presented examples, on
average in 6 out of 9 cases the integral Sharpe ratio was
better with our system than with the market. At the same
time, the maximum loss of capital was 48% against 65%
for a simple investment. This means that there are stocks
and periods for which this approach can be e ective. The
number of entries into the long position varies from 58 to
7, which indicates a low sensitivity of the rules received.
This may be due to the fact that a period of 1 year was
taken as a sliding interval to determine the level ranges.
Reducing this interval leads to an increase in the speed of
the system reaction, but more false signals emerge.</p>
      <p>It should be noted that during the training this trade
system is adjusted to a certain ratio of trend and
consolidation movements of the share price. If in the next period this
ratio changes, then the trader can expect whether pro t
or loss. This fact is inherent in most algorithmic trading
strategies based on methods of the technical analysis.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <surname>M.J John,</surname>
          </string-name>
          \
          <article-title>Technical analysis of the nancial markets: a comprehensive guide to trading methods and applications</article-title>
          (2nd
          <source>ed.)"</source>
          , New York Institute of Finance,
          <year>1999</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>R.</given-names>
            <surname>Morta</surname>
          </string-name>
          ,
          <string-name>
            <surname>E.</surname>
          </string-name>
          <article-title>Dadios \Proposed system for predicting Buy, Hold and Sell recommendations for a publicly listed Philippine company using computational intelligence"</article-title>
          ,
          <source>TENCON 2015-2015 IEEE Region 10 Conference</source>
          ,
          <year>2015</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>8</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>S.</given-names>
            <surname>Yodphet</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Rimcharoen</surname>
          </string-name>
          , and Leelathakul, \LARG:
          <article-title>Loss avoidance technical trading rules using genetic algorithm</article-title>
          .
          <source>In Knowledge and Smart" Technology (KST)</source>
          ,
          <year>2016</year>
          8th International Conference,
          <year>2016</year>
          , pp.
          <fpage>33</fpage>
          -
          <lpage>38</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>F.</given-names>
            <surname>Giacomel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Galante</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <surname>A. Pereira. \</surname>
          </string-name>
          <article-title>An Algorithmic Trading Agent based on a Neural Network Ensemble: a Case of Study in North American and Brazilian Stock Markets."</article-title>
          ,
          <source>In Web Intelligence and Intelligent Agent Technology (WI-IAT)</source>
          ,
          <year>2015</year>
          , IEEE/WIC/ACM International Conference on (Vol.
          <volume>2</volume>
          , pp.
          <fpage>230</fpage>
          -
          <lpage>233</lpage>
          ). IEEE.
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>B.A.</given-names>
            <surname>Sheldon</surname>
          </string-name>
          , \
          <article-title>Binary Decision Diagrams"</article-title>
          ,
          <source>IEEE Transactions on Computers</source>
          , pp.
          <volume>509</volume>
          {
          <issue>516</issue>
          ,
          <year>1978</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>L.</given-names>
            <surname>Rokach</surname>
          </string-name>
          and
          <string-name>
            <given-names>O.</given-names>
            <surname>Maimon</surname>
          </string-name>
          , \
          <article-title>Data mining with decision trees: theory and applications"</article-title>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>F. X. Satriyo D.</given-names>
            <surname>Nugroho</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T. Bharata</given-names>
            <surname>Adji</surname>
          </string-name>
          , S. Fauziati, \
          <article-title>Decision support system for stock trading using multiple indicators decision tree"</article-title>
          ,
          <source>The 1st International Conference on Information Technology</source>
          , Computer, and Electrical Engineering,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>C. N.</given-names>
            <surname>Ochotorena</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C. A.</given-names>
            <surname>Yap</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Dadios</surname>
          </string-name>
          and E. Sybingco, \
          <article-title>Robust stock trading using fuzzy decision trees", Computational Intelligence for Financial Engineering</article-title>
          and Economics (CIFEr), pp.
          <fpage>1</fpage>
          -
          <lpage>8</lpage>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>R.</given-names>
            <surname>Dash</surname>
          </string-name>
          and
          <string-name>
            <given-names>P.K.</given-names>
            <surname>Dash</surname>
          </string-name>
          , \
          <article-title>A hybrid stock trading framework integrating technical analysis with machine learning techniques"</article-title>
          ,
          <source>The Journal of Finance and Data Science</source>
          , pp.
          <fpage>42</fpage>
          -
          <lpage>57</lpage>
          ,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>D.</given-names>
            <surname>Iskrich</surname>
          </string-name>
          ,
          <string-name>
            <surname>D.</surname>
          </string-name>
          <article-title>Grigoriev \Generating Long-Term Trading System Rules Using a Genetic Algorithm Based on Analyzing Historical Data"</article-title>
          ,
          <source>Proceedings of the International FRUCT Conference on Intelligence, Social Media and Web</source>
          , 2017
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>J.</given-names>
            <surname>Potvin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Soriano</surname>
          </string-name>
          ,
          <string-name>
            <surname>M.</surname>
          </string-name>
          <article-title>Vallee \Generating trading rules on the stock markets with genetic programming"</article-title>
          ,
          <source>Computers &amp; Operations Research</source>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <surname>Iba</surname>
          </string-name>
          , Hitoshi, and Claus C.
          <article-title>Aranha \Practical Applications of Evolutionary Computation to Financial Engineering"</article-title>
          , Springer,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>Nur</given-names>
            <surname>Aini</surname>
          </string-name>
          <string-name>
            <surname>Rakhmawati</surname>
          </string-name>
          ,
          <article-title>Erma Suryani \DECISION FOR BUYING AND SELLING STOCK WITH DECISION TREE ALGORITHM"</article-title>
          , Sepuluh Nopember Institute of Technology.
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <surname>Al-Radaideh</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Qasem</surname>
          </string-name>
          , Aa Assaf, and Eman Alnagi. \
          <article-title>Predicting stock prices using data mining techniques."</article-title>
          ,
          <source>The International Arab Conference on Information Technology (ACIT'2013)</source>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>A.</given-names>
            <surname>Ghandar</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Z.</given-names>
            <surname>Michalewicz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Schmidt</surname>
          </string-name>
          , T. To, and
          <string-name>
            <given-names>R.</given-names>
            <surname>Zurbrugg</surname>
          </string-name>
          , \
          <article-title>Computational Intelligence for Evolving Trading Rules"</article-title>
          ,
          <source>IEEE TRANSACTIONS ON EVOLUTIONARY COMPUTATION 1</source>
          , pp.
          <fpage>71</fpage>
          -
          <lpage>86</lpage>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>W.F.</given-names>
            <surname>Sharpe</surname>
          </string-name>
          , \
          <article-title>The sharpe ratio"</article-title>
          ,
          <source>The journal of portfolio management</source>
          ,
          <year>1994</year>
          , pp.
          <fpage>49</fpage>
          -
          <lpage>58</lpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>