Skip to content

Instantly share code, notes, and snippets.

View dfischer's full-sized avatar
🔥
cooking

0x44 0x46 dfischer

🔥
cooking
View GitHub Profile

https://web.archive.org/web/20110219163448/http://howtohft.wordpress.com/2011/02/15/how-to-build-a-fast-limit-order-book/

The response to my first few posts has been much larger than I’d imagined and I’d like to thank everyone for the encouragement.

If you’re interested in building a trading system I recommend first reading my previous post on general ideas to keep in mind.

My first really technical post will be on how to build a limit order book, probably the single most important component of a trading system. Because the data structure chosen to represent the limit order book will be the primary source of market information for trading models, it is important to make it both absolutely correct and extremely fast.

To give some idea of the data volumes, the Nasdaq TotalView ITCH feed, which is every event in every instrument traded on the Nasdaq, can have data rates of 20+ gigabytes/day with spikes of 3 megabytes/second or more. The individual messages average about 20 bytes each so this means handling

https://web.archive.org/web/20110219163448/http://howtohft.wordpress.com/2011/02/15/how-to-build-a-fast-limit-order-book/

The response to my first few posts has been much larger than I’d imagined and I’d like to thank everyone for the encouragement.

If you’re interested in building a trading system I recommend first reading my previous post on general ideas to keep in mind.

My first really technical post will be on how to build a limit order book, probably the single most important component of a trading system. Because the data structure chosen to represent the limit order book will be the primary source of market information for trading models, it is important to make it both absolutely correct and extremely fast.

To give some idea of the data volumes, the Nasdaq TotalView ITCH feed, which is every event in every instrument traded on the Nasdaq, can have data rates of 20+ gigabytes/day with spikes of 3 megabytes/second or more. The individual messages average about 20 bytes each so this means handling

@dfischer
dfischer / blocktoimg.py
Created August 10, 2020 17:54 — forked from laanwj/blocktoimg.py
tools to write (block) data to png files and vice versa
#!/usr/bin/env python3
# Distributed under the MIT software license
import binascii, struct, sys, io, argparse
from PIL import Image
IMG_WIDTH = 512 # could be made adaptive...
MIN_HEIGHT = 4 # minimum height of image; twitter won't let us upload anything smaller
BYTES_PER_PIXEL = 4 # RGBA, 8 bit
def div_roundup(x,y):
@dfischer
dfischer / README.md
Created September 22, 2020 03:51 — forked from hornc/README.md
Thue-Mirr esolang Interpreter

Thue-Mirr interpreter,

https://esolangs.org/wiki/Thue-Mirr

usage: thue-mirr.py [-h] [--debug] [--char] [--num NUM] file

Thue-Mirr https://esolangs.org/wiki/Thue-Mirr Interpreter v1.0 by Salpynx. 2019 CC0

positional arguments:
 file source file to process
@dfischer
dfischer / README.md
Created September 22, 2020 03:51 — forked from hornc/README.md
Thue-Mirr esolang Interpreter

Thue-Mirr interpreter,

https://esolangs.org/wiki/Thue-Mirr

usage: thue-mirr.py [-h] [--debug] [--char] [--num NUM] file

Thue-Mirr https://esolangs.org/wiki/Thue-Mirr Interpreter v1.0 by Salpynx. 2019 CC0

positional arguments:
 file source file to process
I believe this is correct. Please let me know if there are errors.
X | - 0 +
---------
- | + 0 -
0 | - 0 +
+ | 0 + -
Call this gate "R". It's universal, assuming we have fan-out (trit-copying) and the constants. That is, a circuit of R's can be built
to represent any function f: T^n -> T where T = {-, 0, +}.
@dfischer
dfischer / SIMPL_430ASM_5
Created February 6, 2021 08:43 — forked from monsonite/SIMPL_430ASM_5
A Tiny Forth-Like interactive language for MSP430
;-------------------------------------------------------------------------------
; SIMPL - a very small Forth Inspired Extensible Language
; Implementing the Initialisation, TextTead, TextEval and UART routines in MSP430 assembly language
;
; A Forth-Like Language in under 1024 bytes
; Ken Boak May 2017
; Loops, I/O, Strings and Delays added
; This version 888 bytes
; SIMPL_430ASM_5
@dfischer
dfischer / TinyForth.asm
Created February 6, 2021 09:18 — forked from anonymous/TinyForth.asm
A Tiny Implementation of forth in AVR assebly language by T. Nakagawa - assembles to about 1800 bytes
; Tiny FORTH
; T. NAKAGAWA
; 2004/08/02-05
; Register
; r0: temporary
; r1-15: input buffer (terminated by 0x00, separated by 0x20)
; r16: temporary
; r17: temporary
; r18: temporary
; r19: temporary
@dfischer
dfischer / SIMPL_MSP430ASM_6
Created February 6, 2021 09:19 — forked from monsonite/SIMPL_MSP430ASM_6
SIMPL - a tiny forth like language implemented in under 900 bytes of MSP430 Assembly Language (For MSP430G2553 Launchpad)
;-------------------------------------------------------------------------------
; SIMPL - a very small Forth Inspired Extensible Language
; Implementing the Initialisation, TextTead, TextEval and UART routines in MSP430 assembly language
;
; A Forth-Like Language in under 1024 bytes
; Ken Boak May 22nd/23rd 2017
; Loops, I/O, Strings and Delays added
; This version 888 bytes
; SIMPL_430ASM_6
@dfischer
dfischer / lbForth.c
Created February 8, 2021 13:38 — forked from lbruder/lbForth.c
A minimal Forth compiler in ANSI C
/*******************************************************************************
*
* A minimal Forth compiler in C
* By Leif Bruder <leifbruder@gmail.com> http://defineanswer42.wordpress.com
* Release 2014-04-04
*
* Based on Richard W.M. Jones' excellent Jonesforth sources/tutorial
*
* PUBLIC DOMAIN
*