Saturday, November 12, 2011

trading decisions require human not just machine intelligence


(another blog post)

You questioned if so much of trading decision-making is reliably handled by computers, then what special skills would a trader need? If not much, then you and me can also be traders. Well, you have more trading experience than I have (0.000), but here's my 2 cents worth.

There are important pricing decisions beyond pre-trade (PnL check, funding, borrowing...) but I assume your question is about pre-trade esp. pricing decisions. In that space, I feel below are some skills/tasks a machine won't, can't or shouldn't do --

* configuration - trade decision making software offers a bunch of tunable parameters on a per-name basis, name being a cusip, a stock symbol etc. Generally machines don't derive these values as these are inputs to the machines.

** pricing rules - A special type of configuration is a pricing rule. A trader often has to pick one from a pool of rules. Each rule follows some market data to compute prices, which drive pre-trade decisions. A machine won't pick the rule -- it applies rules you pick.

* hedging - after (sometimes before) a non-trivial trade, there's usually a need to adjust hedging. I feel often a machine needs guidance from a human. I feel it's dangerous to let machines make hedging decision. Even in a liquid market, machines may pay too high. Hedging is a more complex task than pricing a bid/offer, perhaps too complex for a machine.

* timing - a trader often steps in to change pricing rules, configuration numbers, or stop/start a machine, when she sees some market event

* conflicting signals - most algorithms process tons of market data to pick up signals according to some strategy -- strategy chosen by humans, but in a storm, market data can present conflicting signals. One machine will see signals to sell; another in the same desk may see signals to buy. There are basic rules to prevent computers from make self-contradictory trades, but a human may have a better chance making out what's happening in the market. After that, we can put together a coherent view and plan.

** exception is high-frequency trading. I feel HFT algos can tolerate more ambiguity and conflicting signals. They aim to make quick in-and-out trades, so they may not need any view at all.

* RFQ - some RFQ are answered by machines, but other RFQ are large or unique, (or the trader knows the requester well) so traders may step in to review these RFQs.

* news - machines can't understand news and adjust trading.

* trends - machines can spot statistical trends, but how about industry trends and economic trends. I don't have good examples of such trends. Although such insights don't affect everyday trading, they set long term goals.

* information overload -- In all financial markets, there is lots of information. The amount of information (sometimes misleading or distracting) makes trading not easier but trickier. Evolution has given human brains special capacity to handle information overload. We discard 99% of the information to focus on critical factors; we see through smoke and mirrors; we question; we debate... That allows us to figure out what's happening. Not for a machine.

* specialization -- Quite often, the more complex, the more human insight is required. Many mainstream trading desks are organized by product, so that each trader can specialize and focus on a limited body of information and knowledge so as to gain insight. Similarly, a stock/bond exchange often appoints 1 or 2 traders as specialist market-makers for a particular "name", so they should know everything about that security.

* mistakes - machines make many stupid trades in terms of timing, pricing, quantity etc. That's my short answer and ultimate answer to your question.

No comments:

Total Pageviews

my favorite topics (labels)

_fuxi (302) _misLabel (13) _orig? (3) _rm (2) _vague (2) clarified (58) cpp (39) cpp_const (22) cpp_real (76) cpp/java/c# (101) cppBig4 (54) cppSmartPtr (35) cppSTL (33) cppSTL_itr (27) cppSTL_real (26) cppTemplate (28) creditMkt (14) db (65) db_sybase (43) deepUnder (31) dotnet (20) ECN (27) econ/bank` (36) fin/sys_misc (43) finGreek (34) finReal (45) finRisk (30) finTechDesign (46) finTechMisc (32) finVol (66) FixedIncom (28) fMath (7) fMathOption (33) fMathStoch (67) forex (39) gr8IV_Q (46) GTD_skill (15) GUI_event (30) inMemDB (42) intuit_math (41) intuitFinance (57) javaMisc (68) javaServerSide (13) lambda/delegate (22) marketData (28) math (10) mathStat (55) memIssue (8) memMgmt (66) metaProgram` (6) OO_Design (84) original_content (749) polymorphic/vptr (40) productive (21) ptr/ref (48) py (28) reflect (8) script`/unix (82) socket/stream (39) subquery/join (30) subvert (13) swing/wpf (9) sysProgram` (16) thread (164) thread_CAS (15) thread_cpp (28) Thread* (22) timeSaver (80) transactional (23) tune (24) tuneDB (40) tuneLatency (30) z_ajax (9) z_algoDataStruct (41) z_arch (26) z_arch_job (27) z_automateTest (17) z_autoTrad` (19) z_bestPractice (39) z_bold (83) z_bondMath (35) z_book (18) z_boost (19) z_byRef^Val (32) z_c#GUI (43) z_c#misc (80) z_cast/convert (28) z_container (67) z_cStr/arr (39) z_Favorite* (8) z_FIX (15) z_forex (48) z_fwd_Deal (18) z_gz=job (33) z_gzBig20 (13) z_gzMgr (13) z_gzPain (20) z_gzThreat (19) z_hib (19) z_IDE (52) z_ikm (5) z_IR_misc (36) z_IRS (26) z_javaWeb (28) z_jdbc (10) z_jobFinTech (46) z_jobHunt (20) z_jobRealXp (10) z_jobStrength (15) z_jobUS^asia (27) z_letter (42) z_linq (10) z_memberHid` (11) z_MOM (54) z_nestedClass (5) z_oq (24) z_PCP (12) z_pearl (1) z_php (20) z_prodSupport (7) z_py (31) z_quant (14) z_regex (8) z_rv (38) z_skillist (48) z_slic`Problem (6) z_SOA (14) z_spring (25) z_src_code (8) z_swingMisc (50) z_swingTable (26) z_unpublish (2) z_VBA/Excel (8) z_windoz (17) z_wpfCommand (9)

About Me

New York (Time Square), NY, United States