QL Integration into Scala and Excel. Martin Dietrich



Similar documents
Centralized logging system based on WebSockets protocol

SwiftScale: Technical Approach Document

API Solutions. Flexible, powerful technology. Integrate IRESS solutions into your. IRESS API Solutions systems and workflows with IRESS API

FIVE SIGNS YOU NEED HTML5 WEBSOCKETS

Developing a Web Server Platform with SAPI Support for AJAX RPC using JSON

Outline SOA. Properties of SOA. Service 2/19/2016. Definitions. Comparison of component technologies. Definitions Component technologies

Japan Communication India Skill Development Center

Realtime

4D and SQL Server: Powerful Flexibility

Load and Performance Load Testing. RadView Software October

Development Techniques for Native/Hybrid Tizen Apps. Presented by Kirill Kruchinkin

Continuous Integration The Full Monty Artifactory and Gradle. Yoav Landman & Frederic Simon

Adobe ColdFusion (2016 release) Enterprise Edition

Introducing Apache Pivot. Greg Brown, Todd Volkert 6/10/2010

Google Web Toolkit (GWT) Architectural Impact on Enterprise Web Application

Adobe ColdFusion 11 Enterprise Edition

Responsive, resilient, elastic and message driven system

Christian Thum, Michael Schwind, Martin Schader

Using DeployR to Solve the R Integration Problem

Apache Jakarta Tomcat

SOA REFERENCE ARCHITECTURE: WEB TIER

Cloud Powered Mobile Apps with Azure

PHP vs. Java. In this paper, I am not discussing following two issues since each is currently hotly debated in various communities:

Pro ASP.NET 4 CMS. Using the JET 4 Framework. Advanced Techniques for C# Developers. Apress. Alan Harris

SAP HANA Core Data Services (CDS) Reference

Research of Web Real-Time Communication Based on Web Socket

70-487: Developing Windows Azure and Web Services

NoSQL web apps. w/ MongoDB, Node.js, AngularJS. Dr. Gerd Jungbluth, NoSQL UG Cologne,

Smartphone Enterprise Application Integration

SaaS-Based Employee Benefits Enrollment System

Introduction to IBM Worklight Mobile Platform

Internet Engineering: Web Application Architecture. Ali Kamandi Sharif University of Technology Fall 2007

Japan Communication India Skill Development Center

Chapter 22: Integrating Flex applications with portal servers

JavaScript Programming

ebay : How is it a hit

NUTECH COMPUTER TRAINING INSTITUTE 1682 E. GUDE DRIVE #102, ROCKVILLE, MD 20850

Monitoring Pramati EJB Server

Accelerating Enterprise Applications and Reducing TCO with SanDisk ZetaScale Software

YouTrack MPS case study

CERTIFIED MULESOFT DEVELOPER EXAM. Preparation Guide

Mobility Introduction Android. Duration 16 Working days Start Date 1 st Oct 2013

Mojolicious. Marcos Rebelo

Japan Communication India Skill Development Center

MEGA Web Application Architecture Overview MEGA 2009 SP4

Resource Utilization of Middleware Components in Embedded Systems

FRAFOS GmbH Windscheidstr. 18 Ahoi Berlin Germany

This course provides students with the knowledge and skills to develop ASP.NET MVC 4 web applications.

RTC:engine. WebRTC SOLUTION SIPWISE AND DEUTSCHE TELEKOM / TLABS ANNOUNCE COOPERATION FOR THE

How To Retire A Legacy System From Healthcare With A Flatirons Eas Application Retirement Solution

Mobility Information Series

Titolo del paragrafo. Titolo del documento - Sottotitolo documento The Benefits of Pushing Real-Time Market Data via a Web Infrastructure

Java in Web 2.0. Alexis Roos Principal Field Technologist, CTO Office OEM SW Sales Sun Microsystems, Inc.

The fabryq IoT prototyping platform

a division of Technical Overview Xenos Enterprise Server 2.0

Oracle WebLogic Server 11g Administration

Practical Android Projects Lucas Jordan Pieter Greyling

Eclipse Summit Europe 2008

"Build and Test in the Cloud "

ICE econfirm. FAQs April 2012

Cross-Platform Software Considerations for Internet of Things

... Introduction... 17

WebRTC: Why and How? FRAFOS GmbH. FRAFOS GmbH Windscheidstr. 18 Ahoi Berlin Germany

WEBAPP PATTERN FOR APACHE TOMCAT - USER GUIDE

Microsoft Azure Data Technologies: An Overview

Sisense. Product Highlights.

Mobile development with Apache OFBiz. Ean Schuessler, Brainfood

World-wide online monitoring interface of the ATLAS experiment

CHAPTER 1 - JAVA EE OVERVIEW FOR ADMINISTRATORS

Bayeux Protocol: la nuova frontiera della comunicazione a portata di mano. Relatore Nino Guarnacci

Lessons from Building Asterisk GUIs. Presented by Gaston Draque

Revolution R Enterprise DeployR 7.1 Installation Guide for Windows

Integrating Mobile apps with your Enterprise

.NET and J2EE Intro to Software Engineering

Selenium WebDriver. Gianluca Carbone. Selenium WebDriver 1

Enterpise Mobility Lexicon & Terminology

Advantages of PML as an iseries Web Development Language

Real Time Data Communication over Full Duplex Network Using Websocket

FormAPI, AJAX and Node.js

Performance Testing for Ajax Applications

ArcGIS for Server: Administrative Scripting and Automation

Evaluation of Load/Stress tools for Web Applications testing

Oracle Communications WebRTC Session Controller: Basic Admin. Student Guide

Building a Scalable News Feed Web Service in Clojure

Framework Adoption for Java Enterprise Application Development

ntopng: Realtime Network Traffic View

FRAFOS GmbH Windscheidstr. 18 Ahoi Berlin Germany

WEB SERVICES FOR MOBILE COMPUTING

STeP-IN SUMMIT June 2014 at Bangalore, Hyderabad, Pune - INDIA. Mobile Performance Testing

How To Develop An Open Play Context Framework For Android (For Android)

How To Improve Your Communication With An Informatica Ultra Messaging Streaming Edition

CRITICAL CONSIDERATIONS WHEN BUILDING ENTERPRISE NODE.JS APPLICATIONS. Dave Anderson & Greg Neiheisel / differential.io

A Native Client for the Hadoop Distributed Filesystem by Colin P. McCabe

The MoCA CIS LIS WSDL Network SOAP/WS

Gofer. A scalable stateless proxy for DBI

SIP Protocol as a Communication Bus to Control Embedded Devices

Dynamic Web Programming BUILDING WEB APPLICATIONS USING ASP.NET, AJAX AND JAVASCRIPT

MO 25. Aug. 2008, 17:00 UHR RICH INTERNET APPLICATIONS MEHR BISS FÜR WEBANWENDUNGEN

Apache Karaf in real life ApacheCon NA 2014

MEAN/Full Stack Web Development - Training Course Package

Transcription:

QL Integration into Scala and Excel Martin Dietrich

E.ON Global Commodities Over 1000 professionals, active on over 20 exchanges in more than 40 countries Over 1000 counterparties in more than 50 countries 850,000 trades in 2011 Market energy, mange commodity risk and provide asset optimization services for the E.ON Group and its third party customers Main trading activities: Power, Gas, Emissions, Oil, Coal, Storage Spot, physical forward, options, futures, spread, swaps Swaps, virtual storage, swing gas Physical coal, own fleet of vessels 2

What makes it special? Asset-backed trading Permanent obligation to mark and hedge E.ON s asset portfolio Physical delivery with hundreds of physical constraints in fuel supply and power generation Limited liquidity with a significant market share in physical positions Simple products like options and forwards Complex and structured products like VPP and Swing 3

Example: Swing Contract Periodic delivery within a given delivery period at a given strike price Buyer has the right to exercise nomination at short notice (day ahead) Min and max number of exercises Min and max volume per sub period (month) Min and max volume for the whole period (gas year) Coupled American style options flexible but limited exercise Complex optimization problems solved by dynamic or linear programming 4

Why QuantLib Demand in financial and numerical open source library Advanced, mature and tested Not reimplementing pricing engines, volatility modelling, Brownian bridge and many more 5

Why not exclusively QuantLib Commodity markets are different Additional financial engineering requirements Want to leverage functional programming languages Access identical logic and underlying market data regardless of client Big data, half-hourly profiles or forward curves Interacting with pricing engines from ETRM, Excel or just a simple browser Access the power and performance of a grid from the desktop Agile development 6

Technology Stack 7

Development Dependencies WebSocket JSON eet.apps.quantlib-swig OS/Arch dependent dll 8

Why Excel-DNA Integrating.Net into Excel Packaging tool for script files and assemblies to generate a single XLL 32/64-bit support Asynchronous non-blocking calls Task-based operations (.Net 4.0) Per-call WebSocket using WebSocket4Net Message transfer via JSON using Json.NET Automatically resizing the result range 9

10

11

Interacting with WebSockets 12

Why WebSockets Stateless protocol Real-time full-duplex communication (sending and receiving at a time) Alternative to long polling or Comet Less bandwith usage Initial HTTP request with an upgrade request to the WebSocket protocol Independent in and out streams No request/response cycle 13

Why favouring JavaScript Object Notation JSON is a text-based data format for data exchange Lightwight no tags, no attributes, less bandwith-intensive Limited data types (strings, numerics, Booleans, arrays, objects, nulls) Java and.net APIs at hand for (de)serialization Can be persisted in NoSQL databases like MongoDB 14

15

Continuous Integration the Plugin 16

Continuous Integration the Plugin 17

Continuous Integration the Plugin 18

Why Play Full-stack web framework for scala Integrated HTTP server, build system and cache Asynchronous I/O Stateless web application Live code and configuration changes Remote debugging in single threaded environment Type safety Build-in support for JSON validation Build-in support for WebSockets 19

Exposing a WebSocket with Play Specifying the routes Exposing the WebSocket 20

Exposing QuantLib to Play SWIG Simplified Wrapper and Interface Generator Java extension to SWIG writes the Java Native Interface (JNI) SWIG wraps C++ code using Java proxy classes Embedded 32/64bit dll delivered with the jar file, extraction on the fly no need for a separate dll deployment QuantLib in a multi-threaded environment SWIG/QuantLib Objects are not shared between different threads Deregister observer during garbage collection via call back hook Thread local singleton pattern 21

Continuous Integration - QuantLib 22

Continuous Integration - QuantLib 23

Continuous Integration - SWIG 24

Continuous Integration - SWIG 25

Artifactory Central artifact repository for local and remote repositories Integrates with maven, ivy and NuGet 26

Debugging Start from VS in debug mode - debug your c# code 27

Debugging Run play in debug mode Attach remote debugger - debug your scala code 28

Hands-On Pricing a set of vanilla gas options from a spread sheet Sending a pricing request from a web browser Pricing a vanilla option from LexiFi 29

Conclusion QuantLib can be integrated into multi-language/architechture system High throughput Scalable with standard web components Continous Integraiton and TDD Central pricing server 30

Links and Tutorials Principles of Reactive Programming https://www.coursera.org/course/reactive Functional Programming Principles in Scala https://www.coursera.org/course/progfun 31