High-level Overview As of: November 29, 2010 Core developers: Scott Atwell, John Shields Founding developers: Danilo Tuler, Renato Gallart.

Slides:



Advertisements
Similar presentations
MicroKernel Pattern Presented by Sahibzada Sami ud din Kashif Khurshid.
Advertisements

Certification Test Tool Jon Wheeler Test Lead Microsoft Corporation.
Introduction to Maven 2.0 An open source build tool for Enterprise Java projects Mahen Goonewardene.
Module 12: Auditing SQL Server Environments
Apache Struts Technology
FIX TEACHING STREAM Scott Atwell Co-Chair FPL Global Steering Committee American Century Investments FPL Americas Trading Conference October 21, 2010 Implementing.
FIX Algorithmic Trading Definition Language (FIXatdlSM)
Software Frame Simulator (SFS) Technion CS Computer Communications Lab (236340) in cooperation with ECI telecom Uri Ferri & Ynon Cohen January 2007.
MP IP Strategy Stateye-GUI Provided by Edotronik Munich, May 05, 2006.
Open Source and XBRL the Arelle Project 5th University of Kansas International Conference on XBRL April 29, 2011 open source xbrl platform.
George Blank University Lecturer. CS 602 Java and the Web Object Oriented Software Development Using Java Chapter 4.
1 Frameworks. 2 Framework Set of cooperating classes/interfaces –Structure essential mechanisms of a problem domain –Programmer can extend framework classes,
Eclipse Architecture Dwight Deugo Nesa Matic
OOP in Java Nelson Padua-Perez Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.
Presented by IBM developer Works ibm.com/developerworks/ 2006 January – April © 2006 IBM Corporation. Making the most of Creating Eclipse plug-ins.
WebDynpro for ABAP Short introduction.
Application Architectures Vijayan Sugumaran Department of DIS Oakland University.
UNIT-V The MVC architecture and Struts Framework.
Securing Legacy Software SoBeNet User group meeting 25/06/2004.
ESB Guidance 2.0 Kevin Gock
Introduction to Java Appendix A. Appendix A: Introduction to Java2 Chapter Objectives To understand the essentials of object-oriented programming in Java.
MVC pattern and implementation in java
Model Bank Testing Accelerators “Ready-to-use” test scenarios to reduce effort, time and money.
The FIX Protocol as an Effective Solution for Algorithmic Trading Kevin Houstoun, Co-chair FPL Global Technical Committee, Consultant to HSBC.
Interoperability Tests for IEC Scott Neumann November 12, 2009.
Students: Avner Barr, Eitan Vadergorn Supervisor: Rami Mankevich Lecturer in Charge: Chaim Gotsman.
W. Sliwinski – eLTC – 7March08 1 LSA & Safety – Integration of RBAC and MCS in the LHC control system.
Eric Westfall – Indiana University Jeremy Hanson – Iowa State University Building Applications with the KNS.
1 v1.6 08/02/2006 Overview of Eclipse Lectures 1.Overview 2.Installing and Running 3.Building and Running Java Classes 4.Refactoring 5.Debugging 6.Testing.
Definition of the SDK for FIspace Augusto Morales & Hector Bedón UPM.
THE GITB TESTING FRAMEWORK Jacques Durand, Fujitsu America | December 1, 2011 GITB |
Automatic Generation Tools UNICOS Application Builder Overview 11/02/2014 Ivan Prieto Barreiro - EN-ICE1.
Department of Mechanical Engineering, LSUSession VII MATLAB Tutorials Session VIII Graphical User Interface using MATLAB Rajeev Madazhy
XML in Development of Distributed Systems Tooling Programming Runtime.
Capture and Replay Often used for regression test development –Tool used to capture interactions with the system under test. –Inputs must be captured;
Java Software Solutions Lewis and Loftus Chapter 10 1 Copyright 1997 by John Lewis and William Loftus. All rights reserved. Graphical User Interfaces --
Microsoft Application Virtualization 5.0: Introduction Mohnish Chaturvedi & Ian Bartlett Premier Field Engineer WCL312.
INTRODUCTION TO ANDROID. Slide 2 Application Components An Android application is made of up one or more of the following components Activities We will.
0 OCAP Reference Implementation – CableLabs tru2way Workbench October 29, 2008.
Python – Part 1 Python Programming Language 1. What is Python? High-level language Interpreted – easy to test and use interactively Object-oriented Open-source.
IBM Software Group ® Overview of SA and RSA Integration John Jessup June 1, 2012 Slides from Kevin Cornell December 2008 Have been reused in this presentation.
Oracle Data Integrator Procedures, Advanced Workflows.
An OO schema language for XML SOX W3C Note 30 July 1999.
Creating Graphical User Interfaces (GUI’s) with MATLAB By Jeffrey A. Webb OSU Gateway Coalition Member.
Tuscany: a SOA framework Jeffrey Guo Accelrys, Inc.
TEST-1 6. Testing & Refactoring. TEST-2 How we create classes? We think about what a class must do We focus on its implementation We write fields We write.
FIX Algorithmic Trading Definition Language Webcast Wednesday, April 7, 2010 Rick Labs, CPA CFA, Co-Chairman FIX Algorithmic Trading Working Group.
Frameworks CompSci 230 S Software Construction.
1 CSC/ECE 517 Fall 2010 Lec. 3 Overview of Eclipse Lectures Lecture 2 “Lecture 0” Lecture 3 1.Overview 2.Installing and Running 3.Building and Running.
INNOV-10 Progress® Event Engine™ Technical Overview Prashant Thumma Principal Software Engineer.
Chính phủ điện tử TS. Phạm Văn Tính Khoa CNTT, ĐH Nông Lâm TP.HCM
Graphical Enablement In this presentation… –What is graphical enablement? –Introduction to newlook dialogs and tools used to graphical enable System i.
Copyright 2007 SpringSource. Copying, publishing or distributing without express written permission is prohibited. Spring MVC Essentials Getting started.
August 2003 At A Glance The IRC is a platform independent, extensible, and adaptive framework that provides robust, interactive, and distributed control.
Graphical Design Environment for a Reconfigurable Processor IAmE Abstract The Field Programmable Processor Array (FPPA) is a new reconfigurable architecture.
New Project Model UI Primary Author: Mikhail Sennikovsky Major contributors: Mikhail Voronin, Oleg Krasilnikov, Leo Treggiari Intel Corporation September,
Chapter – 8 Software Tools.
Python: Building Geoprocessing Tools David Wynne, Ghislain Prince.
Creating Java Applications (Software Development Life Cycle) 1. specify the problem requirements - clarify 2. analyze the problem - Input? Processes? Output.
IceCube DAQ Mtg. 10,28-30 IceCube DAQ: Implementation Plan.
Apache Struts Technology A MVC Framework for Java Web Applications.
Active-HDL Server Farm Course 11. All materials updated on: September 30, 2004 Outline 1.Introduction 2.Advantages 3.Requirements 4.Installation 5.Architecture.
UMass Lowell Computer Science Java and Distributed Computing Prof. Karen Daniels Fall, 2000 Lecture 10 Java Fundamentals Objects/ClassesMethods.
Interstage BPM v11.2 1Copyright © 2010 FUJITSU LIMITED FORMS.
Solvency II Tripartite template V2 and V3 Presentation of the conversion tools proposed by FundsXML France.
Java FX: Scene Builder.
Muen Policy & Toolchain
EIN 6133 Enterprise Engineering
Developing and testing enterprise Java applications
Ponder policy toolkit Jovana Balkoski, Rashid Mijumbi
Presentation transcript:

High-level Overview As of: November 29, 2010 Core developers: Scott Atwell, John Shields Founding developers: Danilo Tuler, Renato Gallart

Contents Overview of atdl4j Project Can Serve Two Functions Standalone Testing Tool Embedded “Pop-Up” within an OMS Package Structure GUI Composition Listeners Configuration

Overview of atdl4j Project

Overview atdl4j is an open source and not-for-profit Java TM implementation of FIXatdl SM, the FIX Protocol SM Algorithmic Trading Definition Language standard developed by FIX Protocol Limited (FPL). atdl4j is a collaboration between Buy-side and Sell-side innovators within the Electronic Trading industry, and is integrated within the trading systems of several major investment banks and FIX providers. The atdl4j project is intended to promote open source standards within finance, and to increase the adoption rate of the FIXatdl standard itself. While the atdl4j open source effort encourages the use of and implementation of the FIXatdl standard, it is an independent effort and not directly affiliated with the FIX Protocol Limited organization.

Features Displays algo input screens based on the latest industry-standard FIXatdl 1.1 XML schema Reads and generates algorithm-specific FIX message content Can be integrated into a trading system, or run as a standalone testing/validation tool. Supports the full set of UI widgets defined in FIXatdl 1.1 Support for message validation and widget state rules (such as show/hide and enable/disable.) Supports strategy filtering, customizable settings, and context-specific views (for example Cancel/Replace mode) Written in the Java language using standard libraries Source code can be modified to support in-house FIXatdl schema extensions

Open Source License atdl4j is licensed under the MIT License.MIT License The MIT License permits reuse within proprietary software on the condition that the license is distributed with that software, making it ideal for use within the legal guidelines of most financial firms. Please consult the Legal and Compliance department at your firm before adopting atdl4j or other open source software.

Key Contributors Scott Atwell, American CenturyAmerican Century John Shields, NomuraNomura Danilo Tuler, InvesttoolsInvesttools Renato Gallart, InvesttoolsInvesttools

Community We kindly ask that those who do get value from the atdl4j platform contribute back to the community. If you wish to contribute code to atdl4j, please fork the atdl4j project on GitHub.GitHub

Can Serve Two Functions Standalone Testing Tool Embedded “Pop-Up” within an OMS

Standalone Testing Tool

As Standalone Testing Tool (SWT) SWTAtdl4jTesterApp Select and Load FIXatdl XML file Main Content Pane (embeddable within OMS) Atdl4jCompositePanel Perform Validation and View Resulting FIX tag=value message Simulate OMS order-specific input Populate with FIX msg fragment

As Standalone Testing Tool (SWT) Simulate OMS order-specific input and control configuration Drives FIXatdl’s Strategy Filtering Msg Type, Cxl Replace Mode Region, Country, MIC, Sec Type Order Input that can be referenced via StateRule or StrategyEdit as “FIX_OrdType”, “FIX_Side”, “FIX_OrderQty”, “FIX_Price”, etc eg, Buy 10,000 Limit of 375 Control atdl4j-specific settings Specify default Lot and/or Tick Size Debug logging Strategy Selection Pre-select a Strategy Control sequence of Strategy List display Ability to filter out ‘other’ strategies

As Standalone Testing Tool (SWT) Simulate OMS order-specific input – Strategy Filtering FILTER FOR REGION

As Standalone Testing Tool (SWT) Externally Configure Strategy List Display Sequence CHANGE ORDER ‘AS FILTER’ EXCLUDES OTHERS OTHERS APPEAR IN FILE’S ORDER OMS could make these file/broker-specific config settings (without altering the broker-provided FIXatdl file)

As Standalone Testing Tool (SWT) Repetitive Unit Testing – Output 847=3 9682= =MODELEX 9624=3 21=1 5945=1 847=3 9682= =MODELEX 9624=2 21=1 5945=1 847=3 9682= =W 57=MODELEX 9624=2 21=1 5945=1 847=3 9682= =W 57=MODELEX 9624=2 21=1 5956= =1

As Standalone Testing Tool (SWT) Repetitive Unit Testing – Required parameters, ranges, etc

As Standalone Testing Tool (SWT) Repetitive Unit Testing – Validation Rules (StrategyEdit) OK: End > Start OK: No Start OK: No End

As Standalone Testing Tool (SWT) Test StateRule execution Unchecked: Disabled Checked: Enabled

As Standalone Testing Tool (SWT) Simulate Re-loading screen (eg for Cancel/Replace) 847=3 9682= =W 57=MODELEX 9624=2 21=1 5956= =1 Load Message button: Selects appropriate strategy Populates controls with parameter values And fires StateRule events if applicable

Embedded “Pop-Up” within an OMS

Embedded “Pop-up” within an OMS Atdl4jCompositePanel

Package Structure

—FIXatdl schema: — —org.atdl4j.fixatdl.core JAXB-generated classes for FIXatdl spec's core schema — —org.atdl4j.fixatdl.flow JAXB-generated classes for FIXatdl spec's flow schema — —org.atdl4j.fixatdl.layout JAXB-generated classes for FIXatdl spec's layout schema — —org.atdl4j.fixatdl.regions JAXB-generated classes for FIXatdl spec's regions schema — —org.atdl4j.fixatdl.timezones JAXB-generated classes for FIXatdl spec's timezones schema — —org.atdl4j.fixatdl.validation JAXB-generated classes for FIXatdl spec's validation schema —Data/Validation Rule handling: — —org.atdl4j.data ValidationRule interface, ControlTypeConverter, ParameterTypeConverter. StrategyRuleset, etc — —org.atdl4j.data.converter AbstractTypeConverter, type-specific Converter classes — —org.atdl4j.data.exception ValidationException — —org.atdl4j.data.fix PlainFIXMessageBuilder, Tag959Helper — —org.atdl4j.data.validation ValidationRuleFactory, Length, Logical, Parameter, Pattern, Value, etc Rule classes

Package Structure ——Config: — —org.atdl4j.config Atdl4jConfiguration interface, Atdl4jConfig (contains static Atdl4jConfiguration), AbstractAtdl4jConfiguration, InputAndFilterData, StrategyFilterInputData —Base UI Infrastructure: — org.atdl4j.uiFIXatdl Layout interfaces: StrategiesUI, StrategyUI, Atdl4jWidget, etc — org.atdl4j.ui.implBase/Abstract UI classes implementing interfaces — —org.atdl4j.ui.app Interfaces: Atdl4jTesterPanel, Atdl4jCompositePanel, StrategySelectionPanel, etc plus Listeners — org.atdl4j.ui.app.implAbstract UI classes implementing interfaces —SWT-specific UI: — org.atdl4j.ui.swt.configSWTAtdl4jConfiguration org.atdl4j.ui.swtSWTWidget interface — org.atdl4j.ui.swt.implSWTStrategiesUI, SWTStrategyUI, etc — org.atdl4j.ui.swt app.implSWTAtdl4jTesterApp, SWTAtdl4jCompositePanel, etc — org.atdl4j.ui.swt.widget FIXatdl’s Control: AbstractSWTWidget, SWTTextFieldWidget, SWTClockWidget, SWTDropDownListWidget, SWTSliderWidget, etc — org.atdl4j.ui.swt.util — org.atdl4j.ui.swt.test SWTMenuHelper, SWTNullableSpinner, SWTNumberFormatVerifyListener, SWTParameterListenerWrapper, SWTDebugMouseTrackListener, SWTSideListener

Package Structure InterfacesBase/AbstractGUI system-specific —org.atdl4j.config—org.atdl4j.swt.config org.atdl4j.uiorg.atdl4j.ui.implorg.atdl4j.ui.swt.impl org.atdl4j.ui.swt.widget org.atdl4j.apporg.atdl4j.app.implorg.atdl4j.swt.app.impl

GUI Composition

GUI Composition Nesting - Overall SWTAtdl4jTesterApp main() Atdl4jTesterAppPanel SWTAtdl4jTesterAppPanel Atdl4jCompositePanel SWTAtdl4jCompositePanel

GUI Composition ui.app.Atdl4jTesterAppPanel, ui.swt.app.SWTAtdl4jTesterAppPanel ui.app.Atdl4jCompositePanel ui.swt.app.SWTAtdl4jCompositePanel ui.Atdl4jInputAndFilterDataSelectionPanel ui.app.impl.AbstractAtdl4jInputAndFilterDataSelectionPanel ui.swt.app.impl.SWTAtdl4jInputAndFilterDataSelectionPanel ui.app.FixMsgLoadPanel ui.app.impl.AbstractFixMsgLoadPanel ui.swt.app.impl.SWTFixMsgLoadPanel ui.app.FixatdlFileSelectionPanel ui.app.impl.AbstractFixatdlFileSelectionPanel ui.swt.app.impl.SWTFixatdlFileSelectionPanel ui.Atdl4jInputAndFilterDataPanel ui.app.impl.AbstractAtdl4jInputAndFilterDataPanel ui.swt.app.impl.SWTAtdl4jInputAndFilterDataPanel popup Atdl4jTesterPanel setVisibleTestingInputSection() setVisibleFileSelectionSection() setVisibleValidateOutputSection() setVisibleOkCancelButtonSection()

GUI Composition ui.app.Atdl4jCompositePanel, ui.swt.app.SWTAtdl4jCompositePanel ui.app.Atdl4jCompositePanel ui.swt.app.SWTAtdl4jCompositePanel ui.app.StrategySelectionPanel ui.app.impl.AbstractStrategySelectionPanel ui.swt.app.impl.SWTStrategySelectionPanel ui.app.StrategyDescriptionPanel ui.app.impl.AbstractStrategyDescriptionPanel ui.swt.app.impl.SWTStrategyDescriptionPanel Atdl4jCompositePanel’s own OK / Cancel buttons Atdl4jCompositePanel setVisibleOkCancelButtonSection()

Listeners

ListenerMethods ui.app.Atdl4jTesterPanelListenerokButtonSelected() cancelButtonSelected() ui.app.Atdl4jCompositePanelListenerokButtonSelected() cancelButtonSelected() ui.app.StrategiesUIListenerstrategySelected() ui.app.FixatdlFileSelectionPanelListenerfixatdlFileSelected() ui.app.FixMsgLoadPanelListenerfixMsgLoadSelected() ui.app.StrategySelectionPanelListenerstrategySelected() ui.app.StrategyEventListenerstrategyNotValidated() strategySelected() strategyValidated() strategyValidationFailed() ui.app.Atdl4jInputAndFilterDataPanelListenerinputAndFilterDataSpecified()

Configuration

Configuration Atdl4jConfiguration – static / global settings Interface config.Atdl4jConfiguration getClassNameAtdl4jWidgetFor___() is/setDebugLoggingLevel() is/setCatchAll___Exceptions() is/setShow___() config.Atdl4jConfig – static data member/methods Atdl4jConfiguration get/setConfig() createAtdl4jCompositePanel() createAtdl4jTesterPanel()

Configuration SWTAtdl4jConfiguration – SWT-specific class names ui.swt.config.SWTAtdl4jConfiguration extends AbstractAtdl4jConfiguration private static String PACKAGE_PATH_ORG_ATDL4J_UI_SWT = "org.atdl4j.ui.swt."; protected String getDefaultClassNameAtdl4jTesterPanel() { return PACKAGE_PATH_ORG_ATDL4J_UI_SWT + "app.impl.SWTAtdl4jTesterPanel" ; } protected String getDefaultClassNameAtdl4jCompositePanel() { return PACKAGE_PATH_ORG_ATDL4J_UI_SWT + "app.impl.SWTAtdl4jCompositePanel" ; } protected String getDefaultClassNameStrategiesUI() { return PACKAGE_PATH_ORG_ATDL4J_UI_SWT + "impl.SWTStrategiesUI" ; } protected String getDefaultClassNameStrategyUI() { return PACKAGE_PATH_ORG_ATDL4J_UI_SWT + "impl.SWTStrategyUI" ; } protected String getDefaultClassNameStrategySelectionPanel() { return PACKAGE_PATH_ORG_ATDL4J_UI_SWT + "app.impl.SWTStrategySelectionPanel" ; } protected String getDefaultClassNameAtdl4jInputAndFilterDataPanel() { return PACKAGE_PATH_ORG_ATDL4J_UI_SWT + "app.impl.SWTAtdl4jInputAndFilterDataPanel" ; } protected String getDefaultClassNameAtdl4jUserMessageHandler() { return PACKAGE_PATH_ORG_ATDL4J_UI_SWT + "app.impl.SWTAtdl4jUserMessageHandler" ; } protected String getDefaultClassNameAtdl4jWidgetForCheckBoxListT() { return PACKAGE_PATH_ORG_ATDL4J_UI_SWT + "widget.SWTCheckBoxListWidget" ; } protected String getDefaultClassNameAtdl4jWidgetForClockT() { return PACKAGE_PATH_ORG_ATDL4J_UI_SWT + "widget.SWTClockWidget“; } ………

Configuration Atdl4jOptions – Non-static input and behavior overrides config.Atdl4jOptions config.InputAndFilterData get/setStrategyListUsingInputStrategyNameListFilter(List ) Spinner-specific behavior get/setDefaultDigitsForSpinner___() get/setDefault___IncrementValue() Clock-specific behavior get/setClockControlStart / EndTimeIDValueFragmentList() get/setClockStart / EndTimeSetFIXValueWithPastTimeRule() get/setClock___PastTimeSetFIXValueRule() get/setClockUnknownSetFIXValueWithPastTimeRule() is/setClockControlStart / EndTime() Behavior overrides is/setAccommodateMixOfStrategyPanelsAndControls() is/setRestoreLastNonNullStateControlValueBehavior() is/setShowEnabledCheckboxOnOptionalClockControl() is/setTreatControl___FalseAsNull()

Configuration InputAndFilterData – broker file/order-centric settings config.InputAndFilterData List eg multiple orders to be assigned same algo settings Strategy name list / filter control get/setInputStrategyNameList() get/setApplyInputStrategyNameListAsFilter() Cancel/Replace get/setInputCxlReplaceMode() get/setInputSelectStrategyName() is/setStrategySupported() Input Hidden Field Map addMapToInputHiddenFieldNameValueMap() get/setInputHiddenFieldNameValueMap() getInputHiddenFieldValue() Increment Policy size get/setInputIncrementPolicy_LotSize() get/setInputIncrementPolicy_Tick()

Configuration StrategyFilterInputData – order-specific data for filter config.StrategyFilterInputData get/setRegion_name() get/setCountry_CountryCode() get/setMarket_MICCode() get/setSecurityType_name() get/setFixMsgType() isFixMsgTypeSupportedForStrategy() isMarketSupportedForStrategy() isRegionCountrySupportedForStrategy() isSecurityTypeSupportedForStrategy() isStrategySupported()