[This message was posted by Mahesh Kumaraguru of <[email protected]> to the
"Algorithmic Trading" discussion forum at http://fixprotocol.org/discuss/31.
You can reply to it on-line at http://fixprotocol.org/discuss/read/bc034502 -
PLEASE DO NOT REPLY BY MAIL.]
Last weekend was a major software release at BuySide MAX. Monday Market open
started with live tests using ZVZZT on Acct 0000000000 and "all hands on deck"
with no incidents. On Thursday morning, within a few minutes of trading, alarm
bells started going off in the MAX organization's CEO's office because of the
huge loss in milliseconds of trading when large buying of GE to cover short
positions pushed up GE prices and selling large volume of GM pushed down GM
prices.
Now a senior management committee in incident review meeting with trader,
developer, tester, FIX analyst etc.
[Snip of chat Transcript from Tuesday evening USA EST electronic chat session
between BuySide trader=MAX & SellSide Broker=NATX]
MAX (4:08 PM): Hi GM
NATX (4:09 PM): Hi GE
At your order sir.
[End Tuesday snip]
[Snip Thursday morning USA EST]
MAX (9:04 AM): Hi GE
NATX (9:04 AM): Hi GM
At your order sir.
[End snip]
Dev : See the chat texts have GM and GE Ticker symbols and FIX keyword Order.
This gives OneTriggersOther FIX Order for Buy GM by using money thats received
by Selling / short selling / naked short selling GE.
Trader: B*****IT, GM means "Good morning" and GE means "Good Evening". You know
where Broker NATX is located ? In Asia. Look at the timestamp 4 PM, its evening
for me and morning for him.
Dev : But how come you are trading a US security using a broker in Asia?
Trader : Its their operations which are run from offshore, its a NY-US
brokerage firm. I did not want to Trade in GM or GE at the close of market.
Dev : OK. Sorry.
Trader: B*****IT FIX keyword Order, I wish NATX had said "at your service".
Dev : Then InterpretChatSignalsAsDayTradingOrders.java would have called a POJO
Web service to trigger portfolio(s) rebalancing using these ticker symbols.
CIO to Dev: You wrote this "Interpret Chat Signals as Day Trading Orders"
routine ?
Dev : Acually many MultiThreaded overloaded and overridden methods in
InterpretChatSignalsAsDayTradingOrders.java non abstract class.
CIO : May I ask why you wrote it?
Dev : Managers kept asking me to appy Artificial intelligence in trading
systems functionality / Algorithimic trading, a senior manager commented "To
apply artificial intelligence, natural intelligence is needed, Haa Haaa". My
design was "If chat text has FIX Keywords and / or values, it indicates the
chatters are interested in those FIX / trading actions, use information from
dynamic market data feed & RIXML / New feeds, do Complex-Event-processing which
would lead to a partial rebalance that can be triggered on available
portfolio(s) and or position closing can be done and present the CEP results of
analysis (of data from feeds into the REBAL routines) to the Trader(s) so
(t)(s)he(y) can make an "intelligent" choice of trading using that result set
or manually adjust the New Order List quantities / prices / order type(s) /
TIFs etc to own preferences or discard the list of generated orders
altogether.Anyway they have manual order entry screen and XML data upload."
CIO : How does your program decide Order quantity, Market or Limit order, Limit
price etc.?
Dev : As per FIX.4.2 spec, for a New Order Single ^35=D^, OrderQty 38 is a
Req'd=N ie its an optional field.
CIO : So ?
Dev : The program looked up its AI dictionary of action to be taken when a
piece of information is absent and implemented the solution to defer assigning
a concrete value to the missing field to a later component using
ChainOfResponsebility GOF design pattern.
CIO : Keep going.
Dev : Absence of Quantity was interpretted as Buy or sell / shortSell as many
shares as available in the market by the front end trading engine FANTOMS FIX
Automated Neural Trading & Order Management System. Its runs a background
Thread and uses method generateBuySell to keep creating the actual orders using
small quantities of MaxFloor and keeps scrapping the market. It also listens to
IOIs from Market and triggers rebalances to generate orders. Broker is setup to
not send these auto orders into the market as IOIs.
CIO : May we ask what your program uses to decide OrderType 40?
Dev : I analyzed the FIX / electronic trading logs for the last many years
since we started using electronic trading and found that
1. More than 95% of the orders were market orders which came from
automated rebalancing portfolio management engines which did Cost basis
analysis.
2. The remaining less than 5% of Limit orders were manually created by
traders without using an electronic rebalance. Since I was only trigerring an
partial rebalance using an existing tested module, I let the rebalancing module
assign the order type. Order Type market did not require Price tag and one
lesser tag in the FIX message improved performance. Also market orders trade
faster than limit orders, so I thought traders would like it better.
CIO Nods his head in sign of hopelessness of situation.
Trader: {Keeps fuming} This is why I say these dangerous tools should NOT be
made available to all people.
CIO : And what may I ask is a dangerous tool ? A weapon of Mass desctruction.
Haa Haaa.
Trader: Complex Event processing and Algorithmic trading, Background
multithreading in Java (I dont like anything behind my back), Class heirarchies
etc. Did you read the recent "Time to Reign in Algorithims" news article ? and
the post "Dark Liquidity Pools — Friend or Foe?" ? I do not like dark liquid
pools, reminds me of blobs from crude oil spills. or "Algos Gone Wild on the
OSE" ? Its a Wild Wide World :-( www.*.*/
CIO : Yes I read them. I had also read an article in the past about class
hierarchies dividing ancient Indian society into 4 classes and how that was bad
for that society as a whole. I dont know how we the people would clean up this
dark liquidity pool's mess or tame the wild Electronic financial monsters.
CCO: Now Dev, explain to me why you think your automated trading program is not
in violation of this organization's policies regarding automated software
systems.
CLO : To quote this organization's policy "Human action would always be the
final step before any electronic trade communication is done and details
regarding all compliance overriding / human actions shall be sent
electronically to legal department for acceptance."
CTO : Dev, has this rule be adhered to ?
Dev : Yes, the GM and GE orders were presented to the Trader and logs prove he
overrode compliance and sent those trades to FANTOMS which released orders for
these securities into the markets in waves.
FIX Analyst : Tag 105 Wave No String Deprecated in FIX.4.2 Are we actually
using Wave trading given that its not "in the latest waves"? Thats why I keep
reccomending that we upgrade to latest FIX version.
CEO : Trader, is it true that you over-rode compliance and sent the orders to
FIX broker ?
Trader : What have I done different / new compared to what I have been doing
since I joined this trading post as an apprentice trader fresh out of college
with an MBA degree in finance with specialization in modern electronic trading
? Every time the portfolio management system rebalances to create buy / sell
orders, there will always be some compliance failures, senior traders have
advised me "the idea is to keep the ball rolling by doing trading, don't get
stuck up in some silly compliance rules. Get the big picture, look at the
dollars, not the fractions of cents."
CEO : Just doing something u r told to do without fully understanding the
implications of what u r doing is simply unforgivable. Period.
Trader : Sorry but this is life.
CEO : Messaging support has provided the FIXML sent to LEGACA (Legal Committee
Approval) application and logs indicate these compliance checks overriding was
approved by Legal.
CCO : Its true that the Legal Committee gave approval for these orders.
Chief Systems architect : All electronic orders comming out of REBAL and having
compliance failures overridden by trades are automatically marked approved
because the cost basis calculation would have passed before REBAL generates
orders.
CCO : Is this scenario "Interpret chat message contents as FIX keywords /
values to generate FIX actions" in the testcases suite?
Tester: Yes, we have test cases, but in last release this was untested because
we testers are not given access to chat applications.
CEO : Why were u not given access to chat applications when traders have access
to it ?
CTO : Due to organization's "Need to have & use" policy. I believe everybody
should have access to everything, but this organization's IT policies were
written much before I took office here and I am only implementing the policies.
Dev : Actually all of us in technology do not have access to chat applications.
I wrote the auto trader code and since I did not have access to chat
applications, it was tested using stubs and skeletons.
Trader : Could you not find any real human testers, u had to use skeletons ? So
disgusting to imagine using a program tested by a skeleton...
Dev : Tested by a human using a skeleton.
Trader : Skeleton wherever, whenever doing whatever...
CIO : Thats why I keep saying lets outsource / offshore and use real humans
sitting somewhere else instead of skeletons here.
Trader : There is beauty in symmetry but there is no beauty in cemetery.
[Pause]
The CEO concluded that global action is required to stop these weapons of mass
destruction with various bogus names like Artificial intelligence, Expert
systems, Complex event processing, Dynamic heuristics, Background
MutiThreading, Class hierarchy, C, MVC, C#, Java, Phython, Jython etc. are the
real culprits. All should be done to stop the spread of these dangerous tools
to inexperienced users who could create a global financial catastrophe and
destroy the worldly way of life as we know of it presently by destroying the
financial structures of the world.
CIO : Somebody had rightly said - To err is human, but to really foul up large
numbers, you need computers ;-(
Implemented improperly, Agile model became Fragile model.
Note :- All names of people / companies, ids, places, incidents, etc bear no
relationship any entity living or dead. All softwares are real and copyright
owned by their respective organizations / companies.
[You can unsubscribe from this discussion group by sending a message to
mailto:[email protected]]
--
You received this message because you are subscribed to the Google Groups
"Financial Information eXchange" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/fix-protocol?hl=en.