PROGRAMMING LANGUAGES FOR WHEN USING QUANT ANALYSIS FOR HIGH FREQUENCY TRADING.

Slides:



Advertisements
Similar presentations
Introduction to .NET Framework
Advertisements

MatLab API in C++ Christopher Dabney. Purpose MatLab … MatLab … is an interpreted scripting language is an interpreted scripting language conversion to.
COM vs. CORBA.
Introduction To Java Objectives For Today â Introduction To Java â The Java Platform & The (JVM) Java Virtual Machine â Core Java (API) Application Programming.
Java.  Java is an object-oriented programming language.  Java is important to us because Android programming uses Java.  However, Java is much more.
The road to reliable, autonomous distributed systems
Micro Focus Studio Micro Focus Studio Doug Evans GDT 2006 International User Conference: Evolving the Legacy – Revolutions June  Palm Springs,
Kashif Jalal CA-240 (072) Web Development Using ASP.NET CA – 240 Kashif Jalal Welcome to week – 2 of…
Chapter 10 Application Development. Chapter Goals Describe the application development process and the role of methodologies, models and tools Compare.
Business Intelligence components Introduction. Microsoft® SQL Server™ 2005 is a complete business intelligence (BI) platform that provides the features,
Unity 3D game IDE 1.  Unity is a multi-platform, integrated IDE for scripting games, and working with 3D virtual worlds  Including:  Game engine ▪
Visual Basic 6.0 Derived from BASIC Developed by Microsoft in 1998 An event driven programming language Associated with a development environment.
- Chaitanya Krishna Pappala Enterprise Architect- a tool for Business process modelling.
Client/Server Architectures
Introduction to Java Programming. Contents 1. Java, etc. 2. Java's Advantages 3. Java's Disadvantages 4. Types of Java Code 5. Java Bytecodes 6. Steps.
JAVA v.s. C++ Programming Language Comparison By LI LU SAMMY CHU By LI LU SAMMY CHU.
Microsoft Visual Basic 2012 CHAPTER ONE Introduction to Visual Basic 2012 Programming.
ISYS 350 Business Application Development
Visual Basic: An Object Oriented Approach 12 – Creating and using ActiveX objects.
Title slide to be used at the start of a module. Developing Mobile Apps Roland Guijt
M1G Introduction to Programming 2 4. Enhancing a class:Room.
Dr. Chris Musselle – Consultant R Meets Julia Dr Chris Musselle.
Basics of Web Databases With the advent of Web database technology, Web pages are no longer static, but dynamic with connection to a back-end database.
1 8/29/05CS360 Windows Programming Professor Shereen Khoja.
Architecture of.NET Framework .NET Framework ٭ Microsoft.NET (pronounced “dot net”) is a software component that runs on the Windows operating.
@2011 Mihail L. Sichitiu1 Android Introduction Platform Overview.
Programming Fundamentals 2: Background/ F II Objectives – –give a non-technical overview of Java Semester 2, Background.
Office 365 Platform Flexible Tools Understand different provisioning options and their advantages and disadvantages…
ISYS 573 Special Topic – VB.Net David Chao. The History of VB Early 1960s:BASIC-Beginner’s All-Purpose Symbolic Instruction Code –Teaching –Simple syntax,
Android for Java Developers Denver Java Users Group Jan 11, Mike
Scalable Game Development William Roberts Senior Game Engineer
1 3. Computing System Fundamentals 3.1 Language Translators.
Ch 1. A Python Q&A Session Spring Why do people use Python? Software quality Developer productivity Program portability Support libraries Component.
Microsoft Programming Technologies By George SquillaceGeorge Squillace New Horizons of Michigan MCT, MCSE, MCDBA, CompTIA A+, CompTIA Network+ MCITP –
PHP Features. Features Clean syntax. Object-oriented fundamentals. An extensible architecture that encourages innovation. Support for both current and.
.Net – The First Glance What Is.Net, Why Use.Net.
C# AND ASP.NET What will I do in this course?. MAJOR TOPICS Learn to program in the C# language with the Visual Studio IDE (Interactive Development Environment)
Microsoft.NET Norman White Stern School of Business.
Active Server Pages (ASP), also known as Classic ASP or ASP Classic, was Microsoft's first server-side script engine for dynamically generated web pages.
Getting started with Programming using IDE. JAVA JAVA IS A PROGRAMMING LANGUAGE AND A PLATFORM. IT CAN BE USED TO DELIVER AND RUN HIGHLY INTERACTIVE DYNAMIC.
Presentation Name / 1 Visual C++ Builds and External Dependencies NAME.
JAVA Programming “When you are willing to make sacrifices for a great cause, you will never be alone.” Instructor: รัฐภูมิ เถื่อนถนอม
In the Labs… X-Bot 2003 by Overtech Technologies.
ASP. ASP is a powerful tool for making dynamic and interactive Web pages An ASP file can contain text, HTML tags and scripts. Scripts in an ASP file are.
Modern Programming Language. Web Container & Web Applications Web applications are server side applications The most essential requirement.
CIS 595 MATLAB First Impressions. MATLAB This introduction will give Some basic ideas Main advantages and drawbacks compared to other languages.
Java to C++: What would be needed ? Norman Graf (SLAC) ILC-CLIC Software, CERN May 28, 2009.
GPU Computing for GIS James Mower Department of Geography and Planning University at Albany.
Northwest Arkansas.Net User Group Jay Smith Tyson Foods, Inc. Unit Testing nUnit, nUnitAsp, nUnitForms.
Best 5 Mobile App Development Tools for Developer's to think beyond the Limitation.
PowerBuilder is an integrated development environment (IDE) used to create applications. PowerBuilder 12.5 has good integration with the Microsoft.
Introduction to Programming AP Computer Science. Computers What is a computer? –CPU –ALU –Memory –Hard Drive.
Presented By P.SRIVIDYA 085D1A0552 Programming Language.
Android. Android An Open Handset Alliance Project A software platform and operating system for mobile devices Based on the Linux kernel Developed by Google.
A Detailed Introduction To Visual Studio.NET CRB Tech ReviewsCRB Tech Reviews introduces you to the world of Visual.
The Basics of Android App Development Sankarshan Mridha Satadal Sengupta.
Programming vs. Packaged
Platform as a Service.
Introduction to R Programming with AzureML
CE-105 Spring 2007 Engr. Faisal ur Rehman
IBM Start Now Host Integration Solutions
Programming vs. Packaged
Getting Started ARCS Lab..
Introduction to MATLAB
.NET and .NET Core Foot View of .NET Pan Wuming 2017.
.Net Framework Details Imran Rashid CTO at ManiWeber Technologies.
Java History, Editions, Version Features
Simulation And Modeling
Running C# in the browser
CS4540 Special Topics in Web Development Introduction to .NET
Presentation transcript:

PROGRAMMING LANGUAGES FOR WHEN USING QUANT ANALYSIS FOR HIGH FREQUENCY TRADING

COVERING FOR BEST TRADING USES Notes Prototyping research and interpretive scripting languages Legacy compiled languages Why MATLAB is special CRITICAL Factors to consider for live trading

NOTES No comments on database or other coding applications

MODEL IDEA RESEARCH PROTOTYPING LANGUAGES R PYTHON MATLAB (left to end of presentation)

SCRIPTING AND INTERPRETIVE LANGUAGES: R Splintering into two versions of 2.15 and 3.xx? R packages are not compatible with each path so not future proof R packages can be broken for months with potential NO fix Transforming between data type for compatibility with other packages limits performance and simplicity of code

SCRIPTING AND INTERPRETIVE LANGUAGES: R Rstudio excellent IDE for self contained scripts but cannot extend Rjava and Rcaller seems to be riddled with complexity No order management Painfully slow but have fun

SCRIPTING AND INTERPRETIVE LANGUAGES: PYTHON Splintering into two versions of 2.7 and 3.xx? Splintering Too many options with IDEs which confuses with no standard Data packages stand outs like Pandas or Numpy S-l-o-w: No matter how they speed it up, still cryptic and painful Matlab 2015b and Visual Studio 2015 natively call it How to easily extend into a live trading app built in C++ or Java? Limited order management capability with no direct support for standard Interactive Brokers API

LEGACY LANGUAGES FOR LIVE OR PRODUCTION TRADING Java C#/.NET C/C++

LEGACY LANGUAGES FOR LIVE TRADING: JAVA Over engineered frameworks which become heavy and complex Write once deploy anywhere For ultra lowest frequency, many need to hack JVM for optimal performance GUI based is highly limited pretty well only on Java FX Performance out of box is peppy Extending into other languages can be limited New to programming? 2 nd language of choice to learn from nothing Performance COULD be limited by garbage collection

LEGACY LANGUAGES FOR LIVE TRADING:.NET/C# Best language to start with for Newbies since it is easy to grasp Visual Studio best IDE hands down Limited since you can run only on Windows exclusively for optimal performance GUI library choices is best for charting or front end design Advanced techniques do exist thanks to Microsoft Research Integrates nicely with C++ back end DLLs Multiple database integration Performance COULD be limited by garbage collection but optimal performance options available

LEGACY LANGUAGES FOR LIVE TRADING: C/C++ Complex but highly adaptable language Most optimal performing language for speed and memory management with no garbage collection Defacto language for both quant analysis and high frequency trading High end/High speed Institutional systems are Deployed on Linux with optimal integration with Kernel customization or hardware deployment (i.e. FPGA)

MATLAB IS UNIVERSAL WITH PROTOTYPING, SCRIPTING, AND EXTENDING TO LEGACY LANGUAGES All newbies should embrace this platform Powerful toolboxes to cover all universal needs of all aspects of trading including data acquisition, analysis, and extending for order management Ability to code generate certain toolboxes to C or C++ with strict compliance Ability to extend ANY M script to be directly called from Python, C++, C, Java,.NET, and even Excel addins

MATLAB IS UNIVERSAL WITH PROTOTYPING, SCRIPTING, AND EXENDING TO LEGACY LANGUAGES (CONT’D) Prototyping for research can access any Java,.NET, or Python component Advanced trendy support of machine language, quant, advance math support, etc Ability to embed scripts into a high performing web server (i.e. Matlab Production Server) which can be even run in a co-located on a trading exchange Visually design trading models with Simulink and Stateflow with code generation to C+, C, or even FPGA for ultra lowest latency (think HFT) Mupad used to verify any scientific notation equation Home Edition makes Matlab affordable

CRITICAL FACTORS FOR LIVE TRADING Your broker will limit you e.g. Interactive Brokers API is layered of confusion so I use TWSLink2 which is Windows only Data provider also limits but my choice of IQFeed works on Windows but can work within Linux using WINE Would prefer Linux since it is more lightweight and more control of experience Can move to pure Linux but trading account needs be significant for advanced broker options (i.e. >$500k for Lime etc) ATT NEWBIES: Windows is easier to use and make you more productive