automated traders in commodities markets: case of producer–consumer institution

9
Automated traders in commodities markets: Case of producer–consumer institution F. Laib a,, M.S. Radjef b a CEVITAL Group, Ilot D n 6 Zhun, Garidi 2, Kouba, 16050 Algiers, Algeria b LAMOS Laboratory, Department of Operational Research, University of Bejaia, Bejaia 06000, Algeria article info Keywords: Automated trading Benchmark price Strategy performance Commodities’ e-commerce Futures market abstract Automatizing commodities’ price negotiation was hard to achieve in practice, mainly because of logistical complications. The purpose of our work is to show that it is possible to automatize thoroughly commod- ities’ trading in the futures market by replacing human traders with artificial agents. As a starting step, we designed a market institution, called producer–consumer, where only an automated seller and an automated buyer can trade on behalf of the producer and consumer, respectively. The producer and con- sumer periodically feed their trading agents with supply and demand (S&D) forecasts. We suggested a parameterizable trading strategy, called bands and frequencies, for the agents. To measure the overall efficiency of this trading system in terms of price stability and liquidity, we made some hypotheses on the benchmark price curve and its linkages to S&D curves and other relevant market variables. Then we proposed analytical tools to measure strategy performance. Finally, we conducted some computer simulations to prove the workability of this approach. Ó 2011 Elsevier Ltd. All rights reserved. 1. Introduction In the last two decades, internet advent has facilitated the emergence of electronic trading, gathering a lot of interest from both academic and professional organisms. The ultimate purposes were (a) creating stable and efficient trading platforms running on the internet and (b) designing autonomous agents able to trade on behalf of human buyers and sellers (Tesfatsion, 2003), the agents should be able to take decisions from market variables like S&D, 1 price history, etc. Furthermore, the generated price pattern should reflect the underlying S&D situation. Among the earliest experi- ments, the Santa Fe simulator was a typical computer model of the stock market allowing to carry out simulations and tests the effects of different trading scenarios on the price behavior (LeBaron, Arthur, & Palmer, 1999; Palmer, Arthur, Holland, LeBaron, & Tayler, 1994), leading the way to agent-based technology entering the arena of electronic trading. A genetic approach developed by Arthur, Holland, LeBaron, Palmer, and Tayler (1997) helped to clarify the links be- tween fundamental and technical trading, this explained partially how bubbles and financial crushes occur (Levy, 2008; Roll, 1988). Automated trading had met success in several fields (Kearns & Ortiz, 2003), tough in the case of commodities the progress was hampered by some considerations, mainly logistical features and product characterizations (Arunachalam & Sadeh, 2005). An automated agent is a software program which acts on behalf of its designer or owner to satisfy his/her interests. The owner del- egates to his agent the authority to search opportunities and trans- act with other agents on his behalf. Preist (1999) has designed an agent-based technic for trading commodities via the Internet: the participants dictate to their automated agents rules like ‘‘if the price is $ x then buy or sell y units’’. Agent-based were also used to evaluate the performance of trading strategies in heterogeneous populations of traders (Cai, Niu, & Parsons, 2008) and analyzing linkages between price and volumes (Chen & Liao, 2005). Auto- mated traders with limited intelligence were tested by Gode and Sunder (1993), their setup achieved market price equilibrium. Shelton (1997) described an interesting trading strategy for the fu- tures market in the context of stochastic games against nature. The futures market is a major part of nowadays commercial ex- changes, it is the place where futures contracts are traded. A futures contract is a binding agreement between a seller and a buyer, it is related to a specific commodity, 2 like crude oil, gold, metals, grains, oilseeds, etc. A typical feature of a futures transaction is that the price of the commodity is fixed at the present time, whereas the effective delivery of the merchandize, from the seller to the buyer, will occur at a future date, which could be several months or years later. The majority of raw commodities’ producers, processors, con- sumers, and merchants buy and/or sell futures contracts in order to hedge their price risk, i.e. protect themselves against unforseen sharp price variations (Hull, 2002; Teweles & Jones, 1999). 0957-4174/$ - see front matter Ó 2011 Elsevier Ltd. All rights reserved. doi:10.1016/j.eswa.2011.05.091 Corresponding author. Tel.: +213 21 56 37 10; mobile: +213 550 47 21 68; fax: +213 21 56 37 55. E-mail addresses: [email protected] (F. Laib), [email protected] (M.S. Radjef). 1 S&D: abbreviation of supply and demand. 2 There are also futures contracts on financial instruments like stocks, indexes, foreign currencies, etc. Expert Systems with Applications 38 (2011) 15134–15142 Contents lists available at ScienceDirect Expert Systems with Applications journal homepage: www.elsevier.com/locate/eswa

Upload: f-laib

Post on 05-Sep-2016

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Automated traders in commodities markets: Case of producer–consumer institution

Expert Systems with Applications 38 (2011) 15134–15142

Contents lists available at ScienceDirect

Expert Systems with Applications

journal homepage: www.elsevier .com/locate /eswa

Automated traders in commodities markets: Case of producer–consumer institution

F. Laib a,⇑, M.S. Radjef b

a CEVITAL Group, Ilot D n 6 Zhun, Garidi 2, Kouba, 16050 Algiers, Algeriab LAMOS Laboratory, Department of Operational Research, University of Bejaia, Bejaia 06000, Algeria

a r t i c l e i n f o

Keywords:Automated tradingBenchmark priceStrategy performanceCommodities’ e-commerceFutures market

0957-4174/$ - see front matter � 2011 Elsevier Ltd. Adoi:10.1016/j.eswa.2011.05.091

⇑ Corresponding author. Tel.: +213 21 56 37 10; mo+213 21 56 37 55.

E-mail addresses: [email protected] (F. LaibRadjef).

1 S&D: abbreviation of supply and demand.

a b s t r a c t

Automatizing commodities’ price negotiation was hard to achieve in practice, mainly because of logisticalcomplications. The purpose of our work is to show that it is possible to automatize thoroughly commod-ities’ trading in the futures market by replacing human traders with artificial agents. As a starting step,we designed a market institution, called producer–consumer, where only an automated seller and anautomated buyer can trade on behalf of the producer and consumer, respectively. The producer and con-sumer periodically feed their trading agents with supply and demand (S&D) forecasts. We suggested aparameterizable trading strategy, called bands and frequencies, for the agents. To measure the overallefficiency of this trading system in terms of price stability and liquidity, we made some hypotheses onthe benchmark price curve and its linkages to S&D curves and other relevant market variables. Thenwe proposed analytical tools to measure strategy performance. Finally, we conducted some computersimulations to prove the workability of this approach.

� 2011 Elsevier Ltd. All rights reserved.

1. Introduction

In the last two decades, internet advent has facilitated theemergence of electronic trading, gathering a lot of interest fromboth academic and professional organisms. The ultimate purposeswere (a) creating stable and efficient trading platforms running onthe internet and (b) designing autonomous agents able to trade onbehalf of human buyers and sellers (Tesfatsion, 2003), the agentsshould be able to take decisions from market variables like S&D,1

price history, etc. Furthermore, the generated price pattern shouldreflect the underlying S&D situation. Among the earliest experi-ments, the Santa Fe simulator was a typical computer model of thestock market allowing to carry out simulations and tests the effectsof different trading scenarios on the price behavior (LeBaron, Arthur,& Palmer, 1999; Palmer, Arthur, Holland, LeBaron, & Tayler, 1994),leading the way to agent-based technology entering the arena ofelectronic trading. A genetic approach developed by Arthur, Holland,LeBaron, Palmer, and Tayler (1997) helped to clarify the links be-tween fundamental and technical trading, this explained partiallyhow bubbles and financial crushes occur (Levy, 2008; Roll, 1988).Automated trading had met success in several fields (Kearns & Ortiz,2003), tough in the case of commodities the progress was hamperedby some considerations, mainly logistical features and productcharacterizations (Arunachalam & Sadeh, 2005).

ll rights reserved.

bile: +213 550 47 21 68; fax:

), [email protected] (M.S.

An automated agent is a software program which acts on behalfof its designer or owner to satisfy his/her interests. The owner del-egates to his agent the authority to search opportunities and trans-act with other agents on his behalf. Preist (1999) has designed anagent-based technic for trading commodities via the Internet: theparticipants dictate to their automated agents rules like ‘‘if theprice is $ x then buy or sell y units’’. Agent-based were also usedto evaluate the performance of trading strategies in heterogeneouspopulations of traders (Cai, Niu, & Parsons, 2008) and analyzinglinkages between price and volumes (Chen & Liao, 2005). Auto-mated traders with limited intelligence were tested by Gode andSunder (1993), their setup achieved market price equilibrium.Shelton (1997) described an interesting trading strategy for the fu-tures market in the context of stochastic games against nature.

The futures market is a major part of nowadays commercial ex-changes, it is the place where futures contracts are traded. A futurescontract is a binding agreement between a seller and a buyer, it isrelated to a specific commodity,2 like crude oil, gold, metals, grains,oilseeds, etc. A typical feature of a futures transaction is that theprice of the commodity is fixed at the present time, whereas theeffective delivery of the merchandize, from the seller to the buyer,will occur at a future date, which could be several months or yearslater. The majority of raw commodities’ producers, processors, con-sumers, and merchants buy and/or sell futures contracts in order tohedge their price risk, i.e. protect themselves against unforseensharp price variations (Hull, 2002; Teweles & Jones, 1999).

2 There are also futures contracts on financial instruments like stocks, indexes,

foreign currencies, etc.
Page 2: Automated traders in commodities markets: Case of producer–consumer institution

F. Laib, M.S. Radjef / Expert Systems with Applications 38 (2011) 15134–15142 15135

So far, automated trading in the futures market was limited tocomputerizing exchanges’ platforms which once were operated byhuman pit brokers receiving orders, by telephone or other means,from external human traders, then proceed to their execution inan open outcry market. This first-step automatization process hasmet a great success with the advent of electronic platforms, conse-quently pit brokerage is progressively disappearing (Barcley, Hen-dershott, & McCormick, 2003; Weber, 2006). However, humantraders, representing the interest of commercial companies (pro-ducers, farmers, refiners, consumers, etc.) are still operating. Theyconstantly asses the market S&D balance as well as with their spe-cific needs, then translate their judgments into sale or buy orders(CBOT, 1998). Our investigation is an attempt to expand the autom-atization process into a new border by eliminating human traders inthe decision making process, and replace them by artificial agentswho analyze the market fundamentals (supply and demand), thenissue sale and buy orders to the exchange platform. Arunachalamand Sadeh (2005) enumerated the difficulties in automatizing com-modities, markets. In earlier works, like Preist (1999), the decisionprocess was directly supervised by human traders. In other setups(Cheng, 2008), only one automated trader is playing the marketgame with other human traders. In our setup, all traders are autom-atons, and the decision process is thoroughly in their hands. Further-more, in contrast to several works where the purpose wasmaximizing the profit of participants, our work is rather focusingon market stability, that is designing a market institution with lesscrushes and bubbles.

Hereafter,3 we create autonomous trading agents able tonegotiate the price of futures contracts. The trading agents willbe equipped with trading strategies reacting to S&D forecastsand other market data in order to generate sale and purchase or-ders. In turn, the interactions of these market orders will gener-ate a price curve over the trading horizon. To measure theperformance of the trading strategies, we propose to measurethe distance between the generated price curve (or market pricecurve) compared to a benchmark price curve. For this reason, adiscussion over the price’s role in the market is necessary toestablish some hypotheses on the properties of the benchmarkprice curve. Then we formulated the corresponding mathematicalcriteria allowing to measure the actual distance between thebenchmark and market price curves. To show how this can workin practice, we suggested a framework of an artificial futuresmarket composed from a seller agent and a buyer agent repre-senting the interests of a producer and a consumer respectively.The agents are fed with a regular stream of forecasts on S&D lev-els over a trading horizon of m periods. The agents react first byadjusting their forecasts then they issue sale and purchase or-ders. To run the model, we suggested a parameterized tradingstrategy based upon the gap between S&D levels and price bandsbuilt around a nominal price. Finally, we used simulation tosearch for optimal parameters of the trading strategies by maxi-mizing an aggregate performance function.

The next section is a discussion over the price’s role in the marketand its important link to the S&D balance. This will lead to formulat-ing some hypotheses on the benchmark price curve, then derivinganalytical measures to evaluate the performance of a given tradingstrategy. The third section describes the setup of the futures marketadapted to the producer–consumer case. The forth section providesan example of a trading strategy for the autonomous trading agents.Illustrative tabular and graphical results are provided in the lastsection.

3 An initial version of this work was presented by the authors at the 7th workshopof International Society of Dynamic Games (ISDG), Djerba (Tunisia), July 2009.

2. Measuring performance of a trading strategy

Price plays at least two important roles in the market. It couldbe seen as a thermostat measuring the pressure of the market, thentaking the right decisions to equilibrate the market by regulatingS&D levels.

In fact, if supply exceeds demand then the market is in a surplusstatus, leading generally to a price decline which in turn will beperceived as a buying opportunity by consumers, consequently con-sumption is encouraged to grow. Simultaneously, this price declineshould be a signal towards the producers to reduce their output ormomentarily halt it at all in order to erase the surplus status; conse-quently, this price decline has allowed to solve the prevailing sur-plus problem. Similarly, in a deficit market, the contrary of whatwas described heretofore should occur: the price should increasein order to reduce consumption and encourage production. If pro-duction capacity is insufficient to meet demand then producers willbe attempted to invest more to raise their production capacities.

If the automated agents are to succeed in their trading missionthen the price curve generated by their trading strategies needs tosatisfy the spirit of the above discussion. In this optic, we suggestedanalytical tools to quantify and measure the degree of thissatisfaction.

Our market institution is composed of an automated seller andan automated buyer. The trading game evolves over discrete peri-ods t0, t1, . . ., tm. At the start of period tj, the automatons get the fol-lowing information:

� S(tj): the forecast available at instant tj about the supply level;the final supply forecast, S(tm), will be the actual size of the crop.Set S ¼ fSðtjÞ; j ¼ 0;mg as the time series of supply forecasts.� D(tj): the forecast available at instant tj about demand level; the

final demand forecast, D(tm), will be the actual size of demand.Set D ¼ fDðtjÞ; j ¼ 0;mg as the time series of demand forecasts.� pN(tj): nominal price of the commodity; it represents mainly

production cost augmented by a profit margin. Nominal priceis almost constant for long periods.

We assume the market is transparent, that is both automatedtraders have access simultaneously to the available information U:

UðtjÞ ¼ Uðtj�1Þ [ fSðtjÞ;DðtjÞ;pNðtjÞ;U1ðtjÞ;U2ðtjÞg; ð1Þ

where

� U1 and U2 are the market orders of the automated seller andautomated buyer, respectively. At the initial period t0, theyissue no order.� U(t0) = {S(t0), D(t0), pN(t0)}.

The agents build their market orders utilizing their tradingstrategies c1 and c2, respectively (Basar & Olsder, 1982):

U1ðtjÞ ¼ c1ðUðtjÞÞ and U2ðtjÞ ¼ c2ðUðtjÞÞ: ð2Þ

The interaction of these orders will generate:

� p(tj): transactional (or market) price of instant tj, withp(tj) = f1(U1,U2) where f1 is the market mechanism allowing tobuild market price. We set p ¼ fpðtjÞ; j ¼ 0;mg.� q(tj): transactional quantity, this is the number of contracts sold

by the seller to the buyer at instant tj, with q(tj) = f2(U1,U2)where f2 is the market mechanism allowing to build marketquantities.4 We set q ¼ fqðtjÞ; j ¼ 0;mg.

4 In case of the producer–consumer market institution, f1 is given by relation (29and f2 by (30).

)

Page 3: Automated traders in commodities markets: Case of producer–consumer institution

15136 F. Laib, M.S. Radjef / Expert Systems with A

Hereafter we introduce some hypotheses on the desired proper-ties that a benchmark price pattern, pB ¼ fpBðtjÞ; j ¼ 0;mg, shouldhave in respect to the curves of S, D and pN, then we define norms,kp � pBkk, to measure the distance between the actual market pricep and the benchmark price pB in respect to hypothesis k.

The market price p was generated using trading strategies c =(c1,c2) applied to the time series of supply S and demand D, there-fore we note zk(c,S,D) = kp � pBkk as the performance of tradingstrategies c when applied to S and D.

First we define the gap function G, which is simply the differ-ence between supply and demand:

GðtjÞ ¼ SðtjÞ � DðtjÞ; ð3Þ

with j ¼ 0;m. The gap function G will be the analytical measure ofthe S&D balance. If G(tj) > 0 then the market is in surplus status atinstant tj, otherwise it is in deficit (G(tj) < 0) or neutral (G(tj) = 0).

Hypothesis 2.1 (S&D determines price’s trend). An increase indemand or decrease in supply at instant tj compared to tj�1, i.e.G(tj) < G(tj�1), should trigger an opposite move in the benchmarkprice, i.e. pB(tj) > pB(tj�1), to offset this situation. In mathematicalwords, taking into account all situations, one should have

GðtjÞ < Gðtj�1Þ ) pBðtjÞ > pBðtj�1Þ; ð4ÞGðtjÞ > Gðtj�1Þ ) pBðtjÞ < pBðtj�1Þ; ð5ÞGðtjÞ ¼ Gðtj�1Þ ) pBðtjÞ ¼ pBðtj�1Þ: ð6Þ

Measure: Implications (4)–(6) can be described by a single relation:

signðGðtjÞ � Gðtj�1ÞÞ ¼ �signðpBðtjÞ � pBðtj�1ÞÞ: ð7Þ

Using the conditional function51[�], we define a measure kp � pBk1 inrespect to Hypothesis 2.1. This is done by counting the number oftimes p has respected the spirit of this hypothesis. For this purpose,we substitute pB by p in relation (7) and we count the number oftimes this equality was satisfied, then we take the average as ameasure:

z1ðc; S;DÞ ¼1m

Xm

j¼1

1½signðGðtjÞ�Gðtj�1ÞÞ¼�signðpðtjÞ�pðtj�1ÞÞ�: ð8Þ

Interpretation. By construction, z1 2 [0,1]. If z1 ? 1 then p is veryclose to pB, in other words market price p fully respects Hypothesis2.1. However, if z1 ? 0 then market price p is far from benchmarkprice, or equally trading strategies (c1,c2) are not efficient in respectto Hypothesis 2.1. The interpretations of the measures below go inthe same stream.

Hypothesis 2.2 (Price is driving S&D’s next move). A significantincrease in benchmark price at instant tj, compared to tj�1, wouldencourage investment in the next period tj+1 which in turn willincrease supply level, at the same time consumption will bereduced due to higher price, and vice versa. This could beformulated as follows

pBðtjÞ > pBðtj�1Þ ) Gðtjþ1Þ > GðtjÞ; ð9ÞpBðtjÞ < pBðtj�1Þ ) Gðtjþ1Þ < GðtjÞ; ð10ÞpBðtjÞ ¼ pBðtj�1Þ ) Gðtjþ1Þ ¼ GðtjÞ: ð11Þ

Measure: Following the same methodology than above, we definethe following measure for Hypothesis 2.2

5 The conditional function is defined by

1½C� ¼1; if condition C is satisfied;0; otherwise:

z2ðc; S;DÞ ¼1

m� 1

Xm�1

j¼1

1½signðGðtjþ1Þ�GðtjÞÞ¼signðpðtjÞ�pðtj�1ÞÞ�: ð12Þ

pplications 38 (2011) 15134–15142

Hypothesis 2.3 (Nominal price determines the level of benchmarkprice). In case of a surplus, benchmark price should fall belownominal price in order to discourage production and encourageconsumption, that is

GðtjÞ > 0 ) pBðtjÞ < pNðtjÞ: ð13Þ

Inversely, in case of a deficit, benchmark price should be abovenominal price in order to encourage production and ration con-sumption, that is

GðtjÞ < 0 ) pBðtjÞ > pNðtjÞ: ð14Þ

If at any time tj, supply level is equal to demand level, thenbenchmark price should be equal to nominal price, that is

GðtjÞ ¼ 0 ) pBðtjÞ ¼ pNðtjÞ: ð15Þ

Measure: Similarly, we define the following measure for Hypothesis2.3:

z3ðc; S;DÞ ¼1m

Xm

j¼1

1½signðGðtjÞÞ¼�signðpðtjÞ�pNðtjÞÞ�: ð16Þ

Hypothesis 2.4 (S&D volatility transferred to price). The volatilityof S&D should induce an equivalent volatility in the benchmarkprice curve, that is in any subset of time {tk, . . . , tk+h} � {t1, . . . , tm},the following relation should be satisfied

jrGðtk; tkþhÞ � rpBðtk; tkþhÞj 6 �; ð17Þ

where � is a positive small real number, rG(tk, tk+h) and rpBðtk; tkþhÞ

are respectively the standard deviations of the gap function G andbenchmark price pB over the period (tk, tk+h), with h 2 N and h < m.

Measure: As a measure for Hypothesis 2.4, we build the ratioof the number of times inequality (17) was satisfied by marketprice:

z4ðc; S;DÞ ¼1

m� h

Xm�h

k¼1

1½jrGðtk ;tkþhÞ�rpðtk ;tkþhÞj6��: ð18Þ

Hypothesis 2.5 (Liquid market). Among the properties that abenchmark price curve should have the following: transactionstake place almost at each period, that is the benchmark tradedquantity, qB(tj), at instant tj should be positive most of the time,j ¼ 1;m.

Measure: This measure evaluates the distance kq � qBk betweenthe market transactional quantity, q, and the benchmark transac-tional quantity, qB ¼ fqBðtjÞ; j ¼ 0;mg. We build a ratio of the num-ber of times a transaction has occurred:

z5ðc; S;DÞ ¼1m

1½qðtjÞ>0�: ð19Þ

Hypothesis 2.6 (Homogenous volumes). In a balanced market,transactions should occur at almost every period, and tradingactivity should be distributed equally over the time span to avoidperiods of huge volumes and others with no volume, because thisdisparity in volumes can lead to bubbles or crashes. Therefore,the volatility of the benchmark transactional quantity, qB(tj),should be kept to a minimum, that is in any subset of time {tk, . . . ,tk+h} � {t1, . . . , tm},

rqBðtk; tkþhÞ 6 �; ð20Þ

Page 4: Automated traders in commodities markets: Case of producer–consumer institution

F. Laib, M.S. Radjef / Expert Systems with Applications 38 (2011) 15134–15142 15137

where rqBðtk; tkþhÞ is the standard deviation of the variable qB over

the period (tk, tk+h), with h 2 N and h < m.Measure: As a measure for Hypothesis 2.6, we take the ratio of

the number of times the transactional quantity q has satisfiedinequality (20):

z6ðc; S;DÞ ¼1

m� h

Xm�h

k¼1

1½rqðtk ;tkþhÞ6��: � ð21Þ

We may favor one hypothesis over another, this is done by asso-ciating different weights w1, . . . , w6 to their measures, with0 6wk 6 1, k ¼ 1;6, and

P6k¼1wk ¼ 1. The average performance of

the trading strategies c is

�zðc; S;DÞ ¼X6

k¼1

wkzk: ð22Þ

Now, assuming that two sets of K representative samples of S&Dforecasts, S ¼ fSð1Þ; . . . ; SðKÞg and D ¼ fDð1Þ; . . . ;DðKÞg, are available,and the strategies c = (c1,c2) were parameterized by a vector ofparameters a 2 A, where A is the set of possible values of a. Fora specific a0 2 A, the global performance of strategies c over the setsof samples S and D, is

��zðcða0Þ;S;DÞ ¼1K

XK

k¼1

�zðcða0Þ; SðkÞ;DðkÞÞ: ð23Þ

Therefore, the vector of optimal parameters for this strategies overS and D, is

a� ¼ arg maxa2A

��zðcðaÞ;S;DÞ: ð24Þ

6 Components u11 and u12 (respectively u21 and u22) are almost standard to almarket institutions of the real world, whereas u13 (respectively u2 3) are specific toour market institution.

3. The producer–consumer market microstructure

We suggest herein a simplified model of a futures market madeup with one producer and one consumer only. An agent seller is de-signed to hedge the production of the producer, and an agent buyeris designed to hedge the needs of the consumer. The trading pro-cess starts at period t1 and carries on until the final time tm. An ini-tial period t0 is added to the model to initialize some variables likeS, D, etc., though no trade takes place at t0. At each period tj,j ¼ 1;m, forecasts of supply S(tj) and demand D(tj) are sent to theagents, as well as other information like nominal price pN(tj) of thisperiod. As such, these agents are designed to react to the flow offorecasts, then generate automatically their actual decisionsU1(tj) and U2(tj) respectively.

The order of the seller agent is

U1ðtjÞ ¼ ðu11ðtjÞ;u12ðtjÞ;u13ðtjÞÞ; ð25Þ

where

� u11ðtjÞ 2 Rþ is the ask-price: this is the minimum price at whichthe seller would like to sell at instant tj.� u12ðtjÞ 2 N the ask-quantity: this is the maximum quantity the

seller would like to sell at instant tj. In practice, we add a minussign ‘�’ to the ask-quantity in order to make a distinctionbetween sale and purchase orders.� u13(tj) 2 [�1,+1] is an adjustment factor: this is the ratio by

which the seller intends to increase, or decrease, his supply inreaction to the most recent information. For instance, if pricep(tj�1) of the prior period is under nominal price pN(tj�1), thenthe producer may decide to cut supplies by 15%. Inversely, ifthe price is high, he may decide to hire an additional productioncapacity to boost his supplies, therefore he will announce anincrease, say 10%, of his forecast supplies.

On the other hand, the order of the buyer agent has the follow-ing form

U2ðtjÞ ¼ ðu21ðtjÞ;u22ðtjÞ;u23ðtjÞÞ; ð26Þ

where

� u21ðtjÞ 2 Rþ is the bid-price: this is the maximum price at whichthe buyer would like to buy at instant tj.� u22ðtjÞ 2 N is the bid-quantity: this is the maximum quantity

the buyer would like to buy at instant tj.� u23(tj) 2 [�1,+1] is the adjustment factor6 on the demand side.

For instance, if the price p(tj�1) is so high, the consumer maydecide to cut his consumption by 10%.

The actual production of the producer will be ready at the finaltime tm, and only at this time the exact amount of supply, S(tm),will be known. Prior to this period, only forecasts were available,that is S(tj) were forecasts released at instants j ¼ 0;m� 1 aboutthe supply level that will occur actually at period tm. The same ap-plies on the demand side, i.e. D(tj), j ¼ 0;m� 1 are just forecasts ofthe actual demand that will be known exactly at the final period tm.Trading on the basis of forecasts is a typical feature of the futuresmarket.

To understand the unfolding of events in period tj, one may as-sume that this period was split into tiny subintervals as shown inFig. 1. First, the forecasted supply and demand S(tj) and D(tj) are is-sued at instant tj + �, then at instant tj + 2� both agents announcetheir adjustment factors, u13(tj) and u23(tj), allowing to computethe adjusted forecasts of supply and demand Sa(tj) and Da(tj) givenrespectively by

SaðtjÞ ¼ SðtjÞð1þ u13ðtjÞÞ; ð27ÞDaðtjÞ ¼ DðtjÞð1þ u23ðtjÞÞ: ð28Þ

At instant tj + 3�, both agents release their sale and buy orders in theform of (u11(tj),u12(tj)) and (u21(tj),u22(tj)), respectively, then at in-stant tj + 4� a transaction, (p(tj),q(tj)), may occur. In the following,we will consider period tj as a whole entity, but one should bearin mind that events unfold inside this period as described herein.

A transaction will occur if the two conditions:

(i) u12(tj) – 0 and u22(tj) – 0,(ii) u21(tj) P u11(tj),

are satisfied at the same time, that is (i) the requested quanti-ties u12 and u22 are positive simultaneously, and (ii) ask-price is be-low or equal to bid-price. In such event, the transactional price willbe

pðtjÞ ¼u11ðtjÞ þ u21ðtjÞ

2ð29Þ

and the transactional quantity will be

qðtjÞ ¼minfju12ðtjÞj;u22ðtjÞg: ð30Þ

If condition (i), or (ii), or both, is/are not satisfied then no transac-tion will occur in period tj, i.e. tj is a non-transactional time, andwe set conventionally in this case

pðtjÞ ¼ pðtj�1Þ and qðtjÞ ¼ 0: ð31Þ

In this market institution, we assume that the seller agent willlaunch only sale orders, therefore it is not allowed to buy backsomething that it had sold before. Equally, the buyer agent isauthorized to issue only purchase orders.

l

Page 5: Automated traders in commodities markets: Case of producer–consumer institution

Fig. 1. Unfolding of events within period tj.

15138 F. Laib, M.S. Radjef / Expert Systems with Applications 38 (2011) 15134–15142

On the other hand, each agent i ¼ 1;2, is characterized by a po-sition yi(tj). This is the number of contracts it has in his possessionat instant tj. At the starting time, we have

yiðt0Þ ¼ 0; i ¼ 1;2: ð32Þ

At instant tj, j ¼ 1;m, these positions should be updated:

y1ðtjÞ ¼ y1ðtj�1Þ � qðtjÞ; ð33Þy2ðtjÞ ¼ y2ðtj�1Þ þ qðtjÞ: ð34Þ

4. Automated trading strategies

This section describes the mathematical structure of the tradingstrategies ci of agents i 2 {1,2}, that is how agent i builds his orderUi = (ui1,ui2,ui3) from the available information, i.e. Ui(tj) = -ci(Ui(tj)). In our case, strategy ci has four parameters ai1, ai2, ai3,ai4 2 [0,1]. Parameter ai4 will be used for the computation of ui1,component ui2 is not parameterized, parameters ai1, ai2, ai3 areused by ui3.

Back to Fig. 1, we note that components u13 and u23 are com-puted first, components u11, u12 and u21, u22 are computed later.A detailed algorithm of the automated process is given at the endof this section.

4.1. Computing u13 and u23

We suggest hereunder an approach we termed price bands andfrequencies, used by the automated agent i to compute his adjust-ing factor ui3. The agent analyses the frequency of the price curvein each band around nominal price and takes a decisionaccordingly.

In the case of the seller agent, we draw bands of width a11 pN

around nominal price7 pN. If at any instant tj, the frequency ofthe price in any band has exceeded a specific threshold a12, thenan adjustment value, u13(tj) – 0, is generated, otherwise u13(tj) = 0.

First, we initialize the number of times, n1,k(t0), the price hasbeen in the kth band of the seller:

n1;kðt0Þ ¼ 0; k ¼ 0;�1;�2; . . . ;�K0; ð35Þ

where K0 2 N is a constant representing the maximum number ofbands allowed; in practice, one may set K0 = 10. The band k = 0 is aparticular one as its width is not a11pN, but it is formed only by theline of the nominal price as illustrated in Fig. 2. Then, each time theprice reaches the kth band, the counter n1,k must be incremented.

In the beginning of period tj, i.e. at instant tj + � (see Fig. 1), wecompute the relative change of the price p(tj�1) compared to nom-inal price pN(tj�1):

7 In Fig. 2, the line of pN is horizontal, i.e. it was assumed in this case that nominalprice was constant over the periods t1, . . ., tm. However, in the general case, the curveof nominal price is a step-wise line, therefore the system of bands should be displacedaccordingly each time pN increases or decreases.

rðtj�1Þ ¼pðtj�1Þ � pNðtj�1Þ

pNðtj�1Þ: ð36Þ

After that, we determine the band, v1, in which the price p(tj�1) hasbeen in period tj�1 using the following relation

v1ðtjÞ ¼ signðrðtj�1ÞÞ argk2Nþ k� 1 <jrðtj�1Þj

a116 k

� �; ð37Þ

with j ¼ 1;m. We readily note that if r(tj�1) = 0 then v1(tj) = 0.Once v1 of period tj is determined, we increment the corre-

sponding band’s counter by setting n1;v1 ðtjÞ ¼ n1;v1 ðtj�1Þ þ 1; theother bands will not be incremented, i.e. n1,k(tj) = n1,k(tj�1) fork – v1.

Later, we compute the frequency, f1;v1 , of the price in the v1-thband at instant tj using

f1;v1 ðtjÞ ¼n1;v1 ðtjÞ

m: ð38Þ

If this frequency has exceeded a12 then the automated seller shouldreact by setting u13ðtjÞ ¼ a13v1ðtjÞf1;v1 ðtjÞ, otherwise u13(tj) = 0. Wecan write this in a single relation by setting

u13ðtjÞ ¼ a13v1ðtjÞf1;v1 ðtjÞ1½f1;v1ðtjÞPa12 �: ð39Þ

In case of Fig. 2, the number of trading periods is m = 19. Theprice has been 5 times in the band k = 1, hence its frequency attime tj = 15 is f1,1(19) = 5/19; whereas at instant tj = 3, the fre-quency of the price in band k = 2 was f1,2(3) = 1/19.

In a similar way, the adjusting factor, u23, of the buyer agent willbe computed by (see details in algorithm below):

u23ðtjÞ ¼ a23v2ðtjÞf2;v2 ðtjÞ1½f2;v2ðtjÞPa22 �: ð40Þ

4.2. The adjusted gap function

After u13 and u23 were calculated by (39) and (40), the adjustedforecasts of supply and demand, Sa and Da, are obtained from (27)and (28), respectively. At this stage, the gap function (3) should beadapted to take into account the adjusted forecasts of supply anddemand, Sa and Da, consequently the adjusted forecast of the gapwill be

GaðtjÞ ¼ SaðtjÞ � DaðtjÞ: ð41Þ

This is an appropriate function for conveying the new balance ofS&D forecasts. Furthermore, the relative change in the adjustedgap function

€GaðtjÞ ¼GaðtjÞ � Gaðtj�1ÞjGaðtj�1Þj

; j ¼ 1;m ð42Þ

measures the evolution of S&D balance between instants tj�1 andtj. In return, this evolution would yield to an inversely propor-tional move in price which can be described by the followingformula

Page 6: Automated traders in commodities markets: Case of producer–consumer institution

Fig. 2. Seller’s price bands around nominal price pN.

F. Laib, M.S. Radjef / Expert Systems with Applications 38 (2011) 15134–15142 15139

€pðtjÞ ¼ �k€GaðtjÞ; ð43Þ

where k is a scale factor and €pðtjÞ reflects the evolution of price be-tween tj�1 and tj,

€pðtjÞ ¼~pðtjÞ � pðtj�1Þ

pðtj�1Þ; j ¼ 1;m; ð44Þ

where ~pðtjÞ is the projected price for period tj. From the latter weobtain

~pðtjÞ ¼ pðtj�1Þ½1� k€GaðtjÞ�: ð45Þ

In addition, most commercial exchanges (like CBOT, NYMEX, etc.) fixlimits on price moves from one tic to the next one in order to avoidlarge swings of price in a short period of time which may disrupt themarket functioning. For instance, a typical exchange may imposethat a price move from one tic to the next one should not exceed�10% of the last price level either side, or a ratio of 0.1. For this pur-pose, we add a second parameter, b 2 [0,1], which is the ratio im-posed by the exchange to limit price moves, therefore the actualrelative change in the gap, C(tj), that will be used later is defined by

CðtjÞ ¼ €GaðtjÞ1½�b<€GaðtjÞ<b� þ b1½€GaðtjÞPþb� � b1½€GaðtjÞ6�b�: ð46Þ

4.3. Computing u11, u12, u21, u22

First, regarding the desired prices u11 and u21, this strategy sug-gests to react instantaneously to S&D variations through the rate ofchange in the adjusted gap function C(tj). Explicitly, the ask-priceand bid-price of both automated traders are generated using rela-tion (45) where parameter k will be replaced by a14 for the sellerand a24 for the buyer:

u11ðtjÞ ¼ pðtj�1Þ½1� a14CðtjÞ�; ð47Þu21ðtjÞ ¼ pðtj�1Þ½1� a24CðtjÞ�: ð48Þ

Secondly, at each period tj, the quantity to sell (resp. to pur-chase) is obtained by dividing the forecasted remaining quantityby the number of remaining periods. In a mathematical form, theask-quantity is given by

u12ðtjÞ ¼SaðtjÞ þ y1ðtj�1Þ

m� jþ 1ð49Þ

and the bid-quantity is

u22ðtjÞ ¼DaðtjÞ � y2ðtj�1Þ

m� jþ 1: ð50Þ

8 Matlab is a scientific programming language and computing environment, usedworldwide by engineers and scientists (see www.mathworks.com).

Remark 4.1. The volatility of the forecasts from a period to periodare likely to cause the values of u12 and/or u22, proposed by thisstrategy, to be equal to zero, consequently causing an absence of atransaction in that period.

Algorithm of automated trading

(I) Initialization:1. Fix values of parameters ail; i ¼ 1;2; l ¼ 1;4 and b.2. Set ni,k(t0) = 0, k ¼ 0;�1;�2; . . . ;�K0; yiðt0Þ ¼ 0; i ¼ 1;2.3. Enter S(t0), D(t0), pN(t0).4. Set p(t0) = pN(t0), q(t0) = 0.

(II) Trading:FOR j = 1 TO m DO1. Enter S(tj), D(tj), pN(tj).

2. rðtj�1Þ ¼pðtj�1Þ�pNðtj�1Þ

pN ðtj�1Þ.

3. FOR i = 1 TO 2 DO vbox n o

(a) v iðtjÞ ¼ signðrðtj�1ÞÞ argk2Nþ k� 1 < jrðtj�1Þj

ai16 k .

(b) ni;v iðtjÞ ¼ ni;v i

ðtj�1Þ þ 1.

(c) ni,k(tj) = ni,k(tj�1) for k 2 {0,�1,�2, . . . ,�K0}nvi.

(d) fi;v iðtjÞ ¼

ni;viðtjÞ

m .(e) ui3ðtjÞ ¼ ai3v iðtjÞfi;v i

ðtjÞ1½fi;viðtjÞPai2 �.

END FOR i4. Sa(tj) = S(tj)(1 + u13(tj)) and Da(tj) = D(tj)(1 + u23(tj)).5. Ga(tj) = Sa(tj) � Da(tj).

6. €GaðtjÞ ¼GaðtjÞ�Gaðtj�1ÞjGaðtj�1Þj

.

7. CðtjÞ ¼ €GaðtjÞ1½�b<€GaðtjÞ<b� þ b1½€GaðtjÞPþb� � b1½€GaðtjÞ6�b�.

8. u11(tj) = p(tj�1)[1 � a14C(tj)].9. u21(tj) = p(tj�1)[1 � a24C(tj)].

10. u12ðtjÞ ¼SaðtjÞþy1ðtj�1Þ

m�jþ1 .

11. u22ðtjÞ ¼DaðtjÞ�y2ðtj�1Þ

m�jþ1 .12. IF u12(tj) – 0 and u22(tj) – 0 and u21(tj) P u11(tj) THEN

pðtjÞ ¼u11ðtjÞþu21ðtjÞ

2 .

q(tj) = min{ju12(tj)j,u22(tj)}.ELSEp(tj) = p(tj�1) and q(tj) = 0.END IF

13. y1(tj) = y1(tj�1) � q(tj) and y2(tj) = y2(tj�1) + q(tj).END FOR j

(III) Computing individual performances z1, . . . , z6 then averageperformance �z.

5. Results and discussion

We have written a Matlab8 code for the approach described inthis study. This code can be used for different purposes. It generatessamples of supply and demand forecasts following various probabil-ity distributions. Using the trading strategy bands and frequencies de-scribed earlier, the code builds the price curve and traded quantitiesbetween the automated seller and buyer, then it measures the per-

Page 7: Automated traders in commodities markets: Case of producer–consumer institution

Fig. 3. Graphical results provided by the Matlab code.

15140 F. Laib, M.S. Radjef / Expert Systems with Applications 38 (2011) 15134–15142

formances of this strategy in respect to the criteria suggested above.As inputs, the code is fed with profiles of S&D forecasts phenomena,SP and DP, nominal price pN, and the space of search parameters(ail; i ¼ 1;2; l ¼ 1;4 and b) from which optimum parameters shouldbe selected.

The supply profile SP (resp. demand profile DP) is a set of infor-mation characterizing the forecasts of supply (resp. demand) phe-nomenon. For instance, SP = {Normal;50,000;2} stands for supplyforecasts following a Normal distribution with a meanlS = 50,000 and standard deviation rS = 2; similarly DP = {Uni-form;80,000;90,000} stands for demand forecasts following a Uni-form distribution in the interval [80,000;90,000]. If thephenomenon does not belong to the set of known probabilitydistributions, then the profile can be a tabular distribution(x1;Probability (x1)), (x2;Probability (x2)), . . ..

Firstly, this code was used with given inputs to generate Fig. 3and Table 1 showing detailed execution over the first 8 periods.As can be seen in this figure, the futures price curve (solid line ofFig. 3d) follows closely the moves of supply and demand curves(Fig. 3a) and takes into account the underlying nominal price value.The performance of our trading strategy is displayed in Fig. 3f. Thestrategy has performed well in respect to all hypotheses of thebenchmark price curve, except Hypothesis 2.4 where correspond-ing measure was weak with z4 = 0.0111, that is the price was notas volatile as the S&D in this case. Therefore, we need to find anew combination of ail and b which is maximizing z4 without alter-ing other criteria or even increasing them. This can be performedby an appropriate optimization method.

The second application of the Matlab code was to constructTable 2 where the supply and demand profiles were assumed to

be SP = {Normal;5,000;1} and SD = {Normal;5,001;1}, respectively.Since the producer–consumer setup described in this approach is asymmetric case in respect to the two automatons who have thesame mechanism and information, we have decided to performour simulation on the particular case where both traders havethe same parameters, i.e. ail = al with l ¼ 1;4; this is done so in or-der to reduce the number of parameters ail to be optimized. Also,we assumed that the weight factors, wk, were all the same, i.e.wk = 1/6, for k ¼ 1;6. The purpose of this table is to show for eachcombination of parameters (al, l ¼ 1;4 and b) the correspondingindividual performances z1, . . ., z6 and average performance �z.The completed version of Table 2 shows that over the space ofsearch parameters used in this application, the highest averageperformance occurs in line 12, with �z ¼ 0:702, i.e. this tradingstrategy has a 70.2% maximum performance; line 12 lists alsothe optimal combination of parameters al, b.

The third application of our code was computing optimalparameters and the corresponding global performances for differ-ent S&D profiles; this is set out in Table 3. In practice, such a tablecan help a designer of automatons to select the adequate parame-ters depending on the environment in which the automatonsshould work. For instance, if over a period of ten years of observa-tion it was shown that, for a particular commodity, supply fore-casts follow a normal distribution with a standard deviationrS = 0.5 and the observed demand forecasts do the same withrD = 0.3, then to design automatons reacting properly to the fore-casts in such environment, the designer should tune them withthe following optimal combination of parameters a�1;a�2;

�a�3; a�4; b�Þ ¼ ð0:10; 0:20; 0:20; 0:02; 1:00Þ leading to a maximumweighed performance of 73.0% (see first line of Table 3).

Page 8: Automated traders in commodities markets: Case of producer–consumer institution

Table 1Detailed execution of the automated trade process.

Time t0 t1 t2 t3 t4 t5 t6 t7 t8

S 5000.0 4997.8 4998.5 4992.7 4998.7 5.0003 4999.4 4996.4 4995.8D 5001.0 4997.7 4998.2 5000.6 5000.6 5.0009 5002.4 5006.7 5006.9pN 100.0 100.0 100.0 100.0 100.0 0.1000 100.0 100.0 100.0

G �1.0 0.1 0.3 �7.9 �1.9 �0.6 �3.0 �10.3 �11.1C 0 1.1 2.0 �5.0 0.8 0.8 �5.0 �2.7 �0.1

u11 NA 98.9 96.9 101.8 101.0 100.2 105.2 108.0 108.1u12 NA 50.0 50.0 49.9 50.0 50.0 50.0 50.0 50.0u13 NA 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0

u21 NA 98.9 96.9 101.8 101.0 100.2 105.2 108.0 108.1u22 NA 50.0 50.0 50.0 50.0 50.0 50.0 50.1 50.1u23 NA 0.0 0.0 0.0 0.0 �0.0 �0.0 0.0 0.0

p 100.0 98.9 96.9 101.8 101.0 100.2 105.2 108.0 108.1q NA 50.0 50.0 49.9 50.0 50.0 50.0 50.0 50.0

Table 2Average performances of specified parameters.

k a1 a2 a3 a4 b z1 z2 z3 z4 z5 z6 �z

1 0.10 0.05 0.2 0.02 0.15 0.639 0.506 0.618 0 1.000 0.901 0.6102 0.10 0.05 0.2 0.02 1.00 0.724 0.504 0.652 0.075 1.000 0.901 0.6433 0.10 0.05 0.2 0.20 0.15 0.637 0.507 0.623 0.096 1.000 0.901 0.6274 0.10 0.05 0.2 0.20 1.00 0.815 0.507 0.592 0.015 1.000 0.901 0.6385 0.10 0.05 4.0 0.02 0.15 0.837 0.525 0.606 0 1.000 0.901 0.6456 0.10 0.05 4.0 0.02 1.00 0.933 0.505 0.608 0.014 1.000 0.901 0.6607 0.10 0.05 4.0 0.20 0.15 0.880 0.512 0.582 0.042 1.000 0.901 0.6538 0.10 0.05 4.0 0.20 1.00 0.797 0.515 0.591 0 1.000 0.901 0.634

9 0.10 0.20 0.2 0.02 0.15 0.908 0.515 0.740 0 1.000 0.901 0.67710 0.10 0.20 0.2 0.02 1.00 0.958 0.519 0.759 0.031 1.000 0.901 0.69511 0.10 0.20 0.2 0.20 0.15 0.850 0.507 0.747 0.051 1.000 0.901 0.67612 0.10 0.20 0.2 0.20 1.00 0.966 0.515 0.832 0.001 1.000 0.901 0.70213 0.10 0.20 4.0 0.02 0.15 0.947 0.517 0.707 0 1.000 0.901 0.678

..

. ... ..

. ...

31 0.50 0.20 4.0 0.20 0.15 0.903 0.515 0.711 0.010 1.000 0.901 0.67332 0.50 0.20 4.0 0.20 1.00 0.878 0.513 0.689 0.001 1.000 0.901 0.664

Table 3Optimal parameters and performances of different S&D profiles.

rS rD a�1 a�2 a�3 a�4 b⁄ ��z�

0.5 0.3 0.10 0.20 0.20 0.02 1.00 0.7300.5 1.0 0.10 0.20 0.20 0.20 1.00 0.7150.5 6.0 0.10 0.20 0.20 0.20 1.00 0.6721.0 0.3 0.10 0.20 0.20 0.20 1.00 0.7141.0 1.0 0.10 0.20 0.20 0.20 1.00 0.7021.0 6.0 0.10 0.20 4.00 0.20 1.00 0.6635.0 0.3 0.10 0.20 0.20 0.20 1.00 0.6625.0 1.0 0.10 0.20 0.20 0.20 1.00 0.6625.0 6.0 0.10 0.20 0.20 0.20 1.00 0.607

F. Laib, M.S. Radjef / Expert Systems with Applications 38 (2011) 15134–15142 15141

6. Conclusion and perspectives

We suggested herein a technical approach allowing to operatean artificial futures market with automated traders. The proposedproducer–consumer setup retains the most essential features ofreal futures markets: it allows fixation of price ahead of the effec-tive delivery of the merchandize, more importantly this frameworkassumes uncertainty in the levels of S&D and aggregates their up-dates easily. On the other hand, the obtained numerical resultswere appealing: the futures price follows closely the prevailingS&D balance and the underlying nominal price.

Automated trading remains an open research field necessitatingnew contributions in several directions. Looking forward, our ap-proach needs to be generalized to the case of many producers

and consumers, and even speculators should be involved to createmore liquidity. The ultimate objective should be designing an effi-cient futures market institution operated entirely by automatons.In this optic, the main hypotheses of the benchmark price curveneed to be enriched by taking into account other market subtleties.In addition, the parametrization can be conducted in a differentmanner. For instance, it would be interesting to see what happensif the requested quantities u12 and u22 were parameterized too.However, one should keep in mind that the number of parametersshould be kept to a minimum in order to obtain an optimalsolution in a reasonable time. Simulation can be bypassed byestablishing the underlying mathematical model of the approachpresented herein, then searching the optimal solution usingnumerical methods.

References

Arthur, W. B., Holland, J. H., LeBaron, B., Palmer, R., & Tayler, P. (1997). Asset pricingunder endogenous expectations in an artificial stock market. Economic Notes, 26,297–330.

Arunachalam, R., & Sadeh, N. (2005). The supply chain trading agent competition.Electronic Commerce Research and Applications, 4, 63–81.

Barcley, M. J., Hendershott, T., & McCormick, D. T. (2003). Competition amongtrading venues: Information and trading on electronic communicationsnetworks. The Journal of Finance, 58, 2637–2665.

Basar, T., & Olsder, G. J. (1982). Dynamic non-cooperative game theory. London:Academic Press Inc..

Cai, K., Niu, J., & Parsons, S. (2008). Using evolutionary game theory to analyse theperformance of trading strategies in a continuous double auction market. InSymposium on adaptive learning agents and multi-agent systems.

Page 9: Automated traders in commodities markets: Case of producer–consumer institution

15142 F. Laib, M.S. Radjef / Expert Systems with Applications 38 (2011) 15134–15142

CBOT (1998). Commodity trading manual. Chicago, Illinois: Glenlake PublishingCompany.

Cheng, S. F. (2008). Designing the market game for a commodity trading simulation.Technical Report. School of Information Systems. Singapore ManagementUniversity.

Chen, S. H., & Liao, C. C. (2005). Agent-based computational modeling of the stockprice-volume relation. Information Sciences, 170, 75–100.

Gode, D. K., & Sunder, S. (1993). Allocative efficiency of markets with zero-intelligence traders: Market as a partial substitute for individual rationality.Journal of Political Economy, 101, 119–137.

Hull, J. C. (2002). Fundamentals of futures and options markets (4th ed.). Upper SaddleRiver, New Jersey: Pearson Education Inc..

Kearns, M., & Ortiz, L. (2003). The penn-lehman automated trading project. IEEEIntelligent Systems, 18(6), 22–31.

LeBaron, B., Arthur, W. B., & Palmer, R. (1999). Time series properties of anartificial stock market. Journal of Economic Dynamics and Control, 23,1487–1516.

Levy, M. (2008). Stock market crashes as social phase transitions. Journal ofEconomic Dynamics and Control, 32, 137–155.

Palmer, R. G., Arthur, W. B., Holland, J. H., LeBaron, B. D., & Tayler, P. (1994). Artificialeconomic life: A simple model of a stock market. Physica D, 75, 264–274.

Preist, C. (1999). Commodity trading using an agent-based iterated double auction.In Proceedings of the ACM conference on autonomous agents, Seattle, Washington(pp. 131–138).

Roll, R. (1988). The international crash of october 1987. Financial Analyst Journal, 44,19–35.

Shelton, R. B. (1997). Gaming the market: Applying game theory to create winningtrading strategies. New York: John Wiley & Sons Inc..

Tesfatsion, L. (2003). Agent-based computational economics: Modeling economiesas complex adaptive systems. Information Sciences, 149(4), 262–268.

Teweles, R. J., & Jones, F. J. (1999). The futures game: Who wins? who loses? and why?New York: McGraw-Hill.

Weber, B. W. (2006). Adoption of electronic trading at the international securitiesexchange. Decision Support Systems, 41, 728–746.