Algo / High Frequency Trading Black Box Design and Optmization

Algo / High Frequency Trading Design and Optmization

Infrastructure Best-of-Breed Stack for HTF/Grid

BIOS/UEFI Changes

  • Disable Hyperthreading.
  • Disable Turbo-Boost.
  • Disable Virtualisation Support.
  • Disable Intel VT-d
  • Set HP Power Profile to Maximum Performance
  • Set HP Power Regulator to HP Static High Performance Mode.
  • Disable Core C-States
  • Disable Package Power States.

Trading Software

  • 2BITS – Preconfigured software for connectivity to major exchanges, trading networks and broker dealers worldwide.
  • CQG – An industry leader in fast, accurate and reliable market data plus advanced technical and graphical analysis.
  • OnixS – Pre-certified performance trading solutions.
  • OptionsCity – Metro is a fully configurable electronic trading platform for both floor and off-floor traders.
  • ORC Group – Provides significant functionality allowing traders to customize volatility management, pricing and automated quoting.
  • ProOpticus – Professional derivatives software arming traders with comprehensive solutions for futures trading.
  • QuantHouse – QuantHouse equips algo traders with an advanced suite of trade development and management tools backed by a high-performance infrastructure.
  • RTS Realtime Systems – RTD is an innovative application that provides access to exchange traded futures and options markets.
  • Stellar Trading Systems – Stellar Trading Systems specializes in producing fast and powerful trading systems for the high frequency, high volume trader.
  • Trading Technologies (TT) – X_Trader® lets you trade multiple products and multiple markets from one fully-customizable screen in real time.
  • Patsystems –

Linux and Windows Optimisation

  • Disable CPU C-States. This prevents the CPU from going into power saving mode, which can cause latency when the CPU needs to power back up. (Kernel parameter intel_idle.max_cstate=0)
  • Disable hyperthreading. This prevents other threads being scheduled onto your core and invalidating your cache. (Manually achieved by echo 0 > /sys/devices/system/node/node0/cpu1/online etc.)
  • Isolate CPUs from the scheduler. This prevents the scheduler from scheduling work onto isolcated CPUs, preventing your work from being scheduled off, cache invalidation etc. (isolcpus)
  • Pin threads to CPUs. This prevents threads from moving between cores and invalidating caches etc. (sched_setaffinity)
  • Lock memory pages and prefault the stack. This prevents minor page faults as memory pages are paged in. (mlockall)
  • Set the scheduler for realtime threads to FIFO / up the priority. This allows our threads to preempt other threads which could be on our cores (unlikely, given that we’ve used isolcpus) (sched_setscheduler)
  • Move interrupts onto a specific CPU (specifically ethernet IRQs local to the NUMA node that the NIC is on) (/proc/irq)
  • Use RDMA NICs and their associated zero copy APIs for out networking (solarflare)
  • Use profile guided optimization / lock-free data structures / busy reads etc
  • Oprofile, callgrind, smart order routing, false sharing, kernel bypass, linux thread to core affinity, approximate, difference between cache levels, memory perforamnce, c-states hardware perforance, enable hardware cache, interrrupt coalescing, linux behcarking of function excution low latency order book.

Research 

Machine learning

Strategies

TickData

Advertisements

Quant

Courses

Quant Lectures

Research

Skills

  • Risk Management
  • Thinking outside of the Box
  •  Market Efficient Theory
  • Calculus, linear algebra
  • Stochastic Calculus
  • Information Theory”, “Game Theory
  • pattern recognition or signal processing
  • bond mathematics and basic financial mathematics
  • statistics, probability, econometrics, time-series, calculus
  • Inference
  • MatLab, R , C++. pydata
  • foreign exchange modelling
  • market microstructure
  • Monte Carlo simulation –  random walk was (for time series MC) or what a Gaussian Copula was (for a VaR or credit risk MC)
  • Gumbel Distribution theory on Extreme events
  • Hull White, Cheyette, Markovian HJM or LMM for one, two or more factors in addition experience with SABR or Heston models Lattices, Finite Differencing and Monte Carlo to model stochastic processes
  • linear algebra, statistics and probability. Especially, knowledge on basic time series analysis including the Brownian motion
    trend (aka momentum) vs. regression (aka mean-reverting)
  • Platonic ideal of statistical analysis into the gritty issues (selection bias, data quality issues, trade impact, slippage, liquidity)
Books

MatLab

Brain Teasers

Tick Data

Paper Trading Account

Learn FXCM Strategy Trader

Learning FXCM Strategy Trader
Webinars
Charting and Indicators
  • Fibonacci
  • Bollinger
  • Depth of Marker (DOM)
  • Key Indicator Market moment Advisor (Prediction advisor)
  • News Scanner
  • P/L Targets
Getting Started

• How do I learn to use the Strategy Trader platform? Click here.
• How do I activate one of the free, pre-loaded stEAs? Click here.
• How do I upload a free, downloadable stEA? Click here.
• How do I place manual trades? Click here.
• How do I change my MT4 account to a Strategy Trader account? Click here.

Automated Trading with a Strategy Trader EA

• How do I import a stEA? Click here.
• How do I activate an stEA? Click here.
• How do I backtest a stEA? Click here.
• How do I optimize a stEA?Click here.

Premium Charting Package

• How do I add a technical indicator? Click here.
• How do I upload a free technical indicator? Click here.
• How do I import historical data? Click here.
• How do I modify a chart workspace? Click here.
• What chart timeframes are available? Click here.
• What are the seven types of charts available? Click here.

High Frequency / Automated Trading Systems Research

This is my research into High Frequency Trading, Automated Trading Systems and Market Making.. ITs a very interesting industry.. Basically, all this is using mathematical formulas(Quants) Quantitative Analysis and High Speed Low Latency Networking and Servers to Crunch big data and place millions of sell and buys via automated algorithms per millisecond or even nanosecond.. Its all about ALPHA! (Quantitative statistical arbitrage /pairs trading techniques)

btw, Quants or financial Engineers starting wages are around $100K aprox + Experienced Quants get $300 aprox just to get out of bed.

High Frequency Trading Explained

Automated Trading Systems Explained

Market Making Explained – [youtube-http://youtu.be/veGQKcIokqo]

And

juxtaposition

Development Languages Used to create ATS

FPGA Algos
Infrastructure Design for ATM and HTF
Other Articles:
Software Used for ATM
OpenSource
IA Market Indicator and News Scanners

Others

  • MultiCharts
  • IRIX
  • Bloomber
  • Reutures
  • InfoMix
Synthetic  Exchanges and Back Testing:
  • Macquarie Bank Back Testing software
Books and Training for ATM

Australian Companies doing Automated Trading:

Trading Markets
  • CFD
  • Forex (24/ zero brokerage)
FX/FOREX Brokers
(Currency trading is the way to go as its a 24/5 week exchange with zero brokerage fee. But need to watchout for spreads and commission)
Global
Sydney
US Companies doing HFT :

Linked in Groups on Automated Trading, High Frequency Trading and Algo Trading:

Back Testing databases

Market Data

EAs, Algos and Code

MetaTrader and Strategy Trader EAs

Terms
  • scalping, swing, position, trend price-range,  trend.
  • Fibonacci prices

Quant Info

Study Plan

  1. ASX Training
  2. DailyFX Training
  3. MT4 and Strategy Trader EA Development
  4. C++ and other Linux Stuff (Clustering,etc)
  5. Read Financial Engineering Books and Trachtenberg system (Vedic Match, artofspeedmat, iqproblems.com)
  6. ATS Course
  7. Security Certification

TRADING OPPORTUNITIES SYSTEM (Brainstorm)

  • Trading Volatility

Links and Research

Example Source Code

Gossip

Linux C++ Latency Tweaks

Disable CPU C-States. This prevents the CPU from going into power saving mode, which can cause latency when the CPU needs to power back up. (Kernel parameter intel_idle.max_cstate=0)

Disable hyperthreading. This prevents other threads being scheduled onto your core and invalidating your cache. (Manually achieved by echo 0 > /sys/devices/system/node/node0/cpu1/online etc.)

Isolate CPUs from the scheduler. This prevents the scheduler from scheduling work onto isolcated CPUs, preventing your work from being scheduled off, cache invalidation etc. (isolcpus)

Pin threads to CPUs. This prevents threads from moving between cores and invalidating caches etc. (sched_setaffinity)

Lock memory pages and prefault the stack. This prevents minor page faults as memory pages are paged in. (mlockall)

Set the scheduler for realtime threads to FIFO / up the priority. This allows our threads to preempt other threads which could be on our cores (unlikely, given that we’ve used isolcpus) (sched_setscheduler)

Move interrupts onto a specific CPU (specifically ethernet IRQs local to the NUMA node that the NIC is on) (/proc/irq)

Use RDMA NICs and their associated zero copy APIs for out networking (solarflare)

Use profile guided optimization / lock-free data structures / busy reads etc