Release Notes

Version 0.5.0

  • Added Windows installer that installs all Marketcetera components on a single box
  • Added Authentication
  • Tradebase now installs and runs on Windows
  • Restructured our code repository and simplified the process of building the Marketcetera from source (details to follow)

Known Issues

  • In Photon, when you enter an option symbol in the Option Market Data window and Option Order Ticket no market data is displayed.
  • In Photon, when you enter an equity symbol in the Stock Order Tick window, no market data is displayed.
  • In Photon, if user login fails in ORS Login screen, the following message is displayed in Photon's console:
    15:14:46,649 ERROR - Error connecting to ORS (JMS connect failed)
    Error creating bean with name 'scriptingControllerContainer' defined in class path resource [jms.xml]: 
    Invocation of init method failed; nested exception is org.springframework.jms.UncategorizedJmsException: 
    Uncategorized exception occured during JMS processing; nested exception is javax.jms.JMSException: User name or password is invalid.
    
  • In Tradebase, Server Diagnostics always reports this error:
    /etc/hosts does not contain valid IP for 'marketcetera'
    

and also the following warning:

WARNING: /etc/hosts does not appear to have a valid IP address for host 'marketcetera'. Please check and modify if necessary.

Both of those do not indicate a real problem with the installation or the server and can be ignored.

  • View current open tickets here

Bugs Fixed (12):

  • #510: Improve logging in QuickfixApp in case we get an exception in !fromAdmin
  • #454: Strategy object does not have any lifecycle callbacks
  • #481: Side "SS" should not be available for Option Orders
  • #501: OMS doesn't output errors in case of bad incoming JMS->FIX message conversion
  • #437: "RejectReason" Column in FIX Message views blank
  • #482: Retire 2007 Options
  • #494: Photon barfs on receving an ExecutionReport from OMS when OMS is not logged on to a destination
  • #397: Need to switch to version of QFJ that uses BigDecimals instead of Doubles for fields
  • #488: Execution report coming back from OMS should be "Pending New" and not "NEW" to avoid confusion
  • #486: OptionSplitter modifier needs to only apply to New Order Single orders
  • #479: Use internationalization for abbreviations of field value constants.
  • #438 Cancel / Replace should immediately activate "Price" field on Replace Equity Order ticket

Version 0.4.2

Bugs Fixed (43):

  • #466: Add documentation for Forex use in Tradebase
  • #467: Update docs for new P&L
  • #468: Add documentation for Stomp and incoming execution report subscriptions
  • #472: Add documentation for message routing in message-modifiers.xml
  • #464: Fix NTP clock drift on VMWare appliance
  • #476: OMS should send a copy of outgoing rejects to JMS topic
  • #477: Positions should be as of "now" not "this morning"
  • #475: NPE in JRuby engine in Photon when running scripts
  • #474: Make it easier to update senderCompID from Tradebase on Appliance
  • #445: Trade lists in Trade Database are sorted by date but not by time
  • #364: Provide method for uploading log files from the appliance
  • #404: Shorten values of Side column in message views in Photon
  • #431: Shorten values of OrdType column in message views in Photon
  • #421: Cancel / Replace options should be limited
  • #429: Order Ticket should activate "Side" field after sent order
  • #427: One-button trade imports for Trade Database
  • #433: Cancel Orders is flawed when OMS is logged off
  • #439: "Short Sell Exempt" no longer exists
  • #463: P&L for Account doesn't display the name of account correctly
  • #449: Augment Cancel/Replace request messages with same logic as new order
  • #471: Message Route Manager should handle field DeliverToCompID (128)
  • #456: Have appliance automatically start up the JMS poller for Tradebase
  • #470: Republish incoming OMS command messages on a separate topic
  • #469: P&L by account shows errors for marks missing in trades in other accounts
  • #406: P&L calculation should not ask for a mark if trade occurred on one of the start/end dates
  • #465: OrderLoader doesn't correctly insert header/trailer fields into the message
  • #462: Deleting existing trades in Tradebase fails with an exception
  • #376: Sanity Check/Diagnostic scripts don't adjust correctly for time zone offset for clock sync checks
  • #460: Add check for STOMP and Tradebase JMS poller to sanity check scripts
  • #319: NullPointerException from quickfixj when OMS fails to connect to exchange
  • #426: Stay in Import Trades section of Trade Database after importing some trades
  • #434: AvgPx field in Trade Database's Import Trades function blank for some orders
  • #457: Modify sanityCheck.rb and Tradebase status script to checl /etc/hosts file for valid local IP address
  • #366: Enable Stomp connections in OMS JMS configuration
  • #455: Enable direct trade recording from JMS
  • #452: GTC orders to NYSE / ARCA rejecting
  • #442: Message modifiers are not applied to outgoing Logon messages
  • #448: Price field (40) is not cleared when switching to market order
  • #419: Price field should accept lower-case values
  • #424: Specifying a TIF of CLO during cxl/replace does not work in Photon
  • #416: FIX Messages with Yesterday's Date and 18:00:00 and 18:00:01 "SendingTime"
  • #408: Photon doesn't handel cancel/replace for orders with + as route symbol
  • #403: TIF field not handled correctly in outgoing orders in Photon

Version 0.4.1

  1. Integration of Quickfix/J 1.3.0
  2. Bug fixes for OpenFIX and Merrill Lynch PAX Clearing Certification
  3. Added message modifiers to duplicate fields and split option symbols in orders

Bugs Fixed (22):

  • #401: Add preference setting to Photon to specify ClOrdID prefix
  • #395: OpenFIX certification test: 18 - Support Third-Party Addressing fails
  • #384: Photon sends incorrect MaturityMonthYear when underlying option chain is not loaded from quote feed
  • #381: Photon does not correlate "cancelled" execution reports correctly from some brokers
  • #392: OrdStatus not correct after OrderCancelReject
  • #394: Order state "Replaced" is an "open" order state
  • #368: Execution reports that are rejected by QFJ end up logged in database and show up in Tradebase
  • #393: Order quantity contains comma in cancel/replace workflow
  • #388: Going from command-line to option order ticket loses the Open/Close field
  • #385: Photon needs to send OrderID in the OrderCancelReplaceRequest message
  • #370: Add a general-purpose field-copy order modifier
  • #363: Remove FIX4x-Marketcetera.xml files from core
  • #362: OMS should send all "valid" fields from order route mgr/order modifiers back in immediate execution report
  • #387: OrderCancelRequest was not preserving all fields from initial order
  • #383: Phtoon doesn't send OpenClose field for options under FIX.4.2
  • #377: Photon should specify SecurityType (167) when sending orders
  • #361: OMS should have separateSuffix config turned off by default
  • #382: OrderRouteManager does not route CancelReplace orders correctly
  • #380: Photon does not correlate "cancelle" execution reports correctly from some brokers
  • #367: Photon sends incorrect TransactTime in orders sent from stock/option order ticket
  • #365: OMS should forward Logon/Logout messages to JMS topic subscribers
  • #360: OMS should send immediate execution reports after doing route modification not before

Version 0.4.0

Major Features:

  1. Equity options support in Photon
  2. Improved algorithmic scripting support
  3. Marks import in Tradebase
  4. SSL support in OMS
  5. FIX message detail view in Photon
  6. Improved exchange and market data simulators

Bugs Fixed (81):

  • #359: Switching from "Bogus" to another Marketcetera feed with existing outstanding option subscriptions results in IllegalArgumentException
  • #304: Port to Eclipse 3.3
  • #357: Quotefeed doesn't send out a quote when it receives a cancel
  • #315: Some option order ticket combos turn red (fail validation) when clicking on the drop down for the first time
  • #345: Improve sanity checking script in appliance
  • #283: Audit Glazed Lists synchronization code in Photon
  • #58: Title of first entry in Ruby menu is incorrect
  • #354: Specifying pre-existing custom field in Photon order ticket does not provide enough feedback when order is rejected
  • #349: Eclipse 3.2 -> 3.3 upgrade functionality broken
  • #340: Photon doesn't update quote when last position has ben closed
  • #240: host-ip script may be causing problems for static IP users
  • #241: Appliance and NTP don't appear to be playing nicely
  • #352: Photon "leaks" listeners
  • #284: Upgrade the appliance to Ubuntu Feisty
  • #227: (Mac-only) Market Data view doesn't allow for shift-up/down arrow selection of symbols
  • #350: Option subscriptions are not unsubscribed properly_ resulting in very heavy quote feed load.
  • #344: Custom fields in the wrong place on the option order ticket
  • #248: User should be able to enter option contract symbols in the order ticket
  • #185: Need to verify FIX mapping for OrderCapacityImage (in options branch)
  • #332: Need a way to retrieve the underlying when the user enters the option root or the specific option contract.
  • #338: Strike prices sort improperly
  • #341: Strike combo is too small in OptionOrderTicket
  • #331: Option order ticket's market data only works once
  • #278: (Mac-only) Sorting of FIX message view in Photon is abysmally slow
  • #318: Need to re-wire up option contract market data in the option market data view and option ticket.
  • #323: Option order ticket truncates "Option Symbol"
  • #320: Tab order incorrect in option order ticket
  • #322: Photon option orders are rejected by exchange simulator due to wrong tag OrderCapacity (528)
  • #306: (Mac-only) Wrong size for combo boxes for Option and Order tickets
  • #316: Blue text in option market data view show up on resize
  • #274: Missing i18n messages from bundle causes errors on startup
  • #292: OptionOrderTicket BindingException caused by use of PutOrCall (Integer) instead of CFICode in FIX4.4
  • #299: Unable to place option orders: Tag not defined for this message type
  • #276: Command parser needs update for option orders
  • #231: P&L not calculated correctly when there's no mark on to_date and last txn is on to_date
  • #243: Need to be able to upload a CSV of marks into tradebase
  • #311: Enabling Photon extension registry prevents application from starting
  • #313: Order ticket occasionally doesn't set side field.
  • #314: When market data comes back for the option order ticket_ fields get cleared
  • #307: Finish OptionOrderTicketViewTest test cases
  • #305: Send button doesn't get enabled for OptionOrder Ticket even if all values are valid
  • #184: Extra fields are discarded on trade import
  • #297: OptionOrderTicketViewTest fails in setup() due to system color being "Disposed"
  • #277: Photon should stop executing script after it's been unregistered even if it has callbacks
  • #301: Provide a way to generate the SQL without having to actually run rake migration against a live database
  • #300: Right-click no longer works in Photon FIX message views
  • #298: Modifying photon_customization.ini file in installed Photon doesn't change FIX version
  • #296: Need to audit use of validators in databinding code
  • #282: Make options orders work with FIX 4.2 - PutOrCall / CFICode needs to be abstracted.
  • #217: (Mac-only) Empty custom fields section doesn't get auto-refreshed after addding fields
  • #271: OrderQty not showing correctly for multiple buys of same equity in Average Price view
  • #289: Data bindings omit option symbol in OptionTicket - see failing OptionOrderTicketViewTest
  • #291: Options quote display should display better error in case quote comes back with 560=2 error
  • #269: The sort arrow on market data views does not show after restarting the application.
  • #252: Context menu Cancel/Replace order should not be shown for the Fills view
  • #256: FIX messages view Replace order context menu item should not be enabled
  • #275: Edit->Select All functionality in FIX message views
  • #272: Need a "Panic Button" to cancel all open orders
  • #254: Market data view should remember the column width
  • #279: Photon does not remember size of columns after restarting it
  • #285: Only the equity perspective shows up in the perspective toolbar.
  • #169: Copy nightly builds
  • #160: Alert user in the case of Reject or Business Message Reject
  • #286: OMS chokes on undexpected message types
  • #264: When Photon fails to reconnect to the market data feed the user won't know why
  • #258: Failure canceling order without any feedback to the user
  • #281: Expose JRuby stack traces to user
  • #136: Search menu has been removed from Photon product
  • #280: Photon gets delayed processing incoming execReports under heavy load
  • #229: Cancel/Replace doesn't copy all values when right clicking on execution report
  • #71: Need visual cues for current sorting direction
  • #267: Deleting symbols from market data does not unregister market data quote requests
  • #244: cVol field appears twice
  • #245: pVol field missing
  • #186: Assigning controllers for data bindings in postWindowOpen and having a singleton controller on Plugin prevents multiple bound views for StockOrderTicket
  • #213: Reconnecting to the data feed stops the old quotes from being updated in the marketdata feed
  • #239: Unify the P&L query page same way as Trade query
  • #179: "Download. Run. Trade." image sizing problem
  • #232: Stock order ticket doesn't recognize lowercase 'day' or other TIF options
  • #224: The Custom Fields preferences allows users to enter non-integer keys but CustomFieldsViewPieces.addCustomFields only allows integer keys.
  • #215: Unsafe cast of IToggledValidator from EnumStringConverterBuilder

Version 0.3.1

  1. Added P&L to Tradebase
  2. New quote feed and data binding infrastructure in Photon
  3. Better UI for invalid order checking in Photon
  4. Better JMX integration

Bugs Fixed:

  • #176: Need to check Text and EncodedText for reject text
  • #230: Copying invalid order to order ticket still allows sending
  • #188: Add MOTD to appliance
  • #221: Messages sent from StockOrderTicket don't add HandlInst to outgoing orders
  • #226: Typo in MarketDataColumns constructor for bid price/size MDEntry fields.
  • #228: Tradebase doesn't work with Apache -> Mongrel proxy redirect
  • #167: Photon command-line does not support decimal order quantities
  • #198: Order ticket quantity field should not allow decimal/fractional values
  • #182: Add LD_LIBRARY_PATH to marketcetera login environment on appliance
  • #181: Create symlink to irb1.8 on the appliance
  • #163: Appliance needs to get a newer verison of Ruby Gems
  • #218: Custom Order fields in Prefrences should not allow duplicate keys
  • #220: Photon doesn't add Custom Fields when orders are sent through Order Ticket
  • #223: Stock order ticket "send" button is not enabled after pressing Ctrl-T on valid order in command-line area
  • #222: Unclearable error in StockOrderTicket
  • #216: Pressing "space" or "enter" on the send/cancel buttons should result in actions in Stock Order ticket
  • #211: LastPx in Market Data view shows up with 1 decimal if the field ends in 0
  • #214: Invalid input fieds are not cleared of color background on Mac after errors are corrected
  • #204: Dividend info in Option Market Data view is not displaying properly on Mac
  • #130: "About Photon" shows up in the middle of the Help menu
  • #212: Deletion of symbols in Market Data view is broken
  • #210: Market Data duplication check is not case-sensitive in Photon
  • #206: P&L reports aren't paginated
  • #207: Create a unified "search trades" report that combines symbol_ account and dates
  • #117: Connecting to OMS with multiple instances of Photon doesn't work
  • #30: Order History sort "configuration" needs to be saved and restored
  • #178: Numeric columns in Photon should be right- (or decimal-) aligned
  • #177: Audit use of HTTP POST and HTTP GET in forms on Tradebase
  • #179: "Download. Run. Trade." image sizing problem
  • #180: All positions should list positions including todays trades.
  • #189: List trades page in Tradeabase should start with date and be sorted by date_ then symbol
  • #190: Audit date creation for handling invalid dates - currenlty not handled
  • #205: Reorder fields in "New Trade" to reflect the order of the stock order ticket in Photon
  • #203: Reports in Tradebase should be "GET" not "POST" requests to make them bookmarkable
  • #168: Implement P&L functionality in Tradebase
  • #192: Error message label needs padding and possibly icon
  • #191: Phantom blue lines in market data in StockOrderTicket
  • #193: Order ticket validation does nothing at app startup
  • #173: Get rid of FixDataDictionaryManager.isAdminMessageType42 method or refactor it
  • #138: MsgType not displayed as human readable in FIXMessagesView
  • #174: Photon plugin build.properties file refer to non-existent jars
  • #175: Tradebase throws an exception when listing trades to import if Quickfix message is malformed
  • #170: Disable heartbeat logging in OMS in JDBC logger
  • #59: Repeated exception upon database error
  • #159: Get rid of FIXDataDictionaryManager in "core"
  • #128: Utilize yet-unpublished QuickFIX/J JMX functionality
  • #171: Nightly copy of photon builds is broken
  • #165: Order loader parses custom fields into doubles.
  • #166: OMS has floating-point number problems when calculating leavesQty for immediate exec reports
  • #133: Bid and Ask column headers don't reverse sort direction of Market Data view contents when clicked

Version 0.3

Major Changes

  1. Made OMS FIX-version-agnostic
  2. Introduced Order Limits
  3. Support for .NET integration
  4. Pretty alignment of decimals in Tradebase

The following bugs were fixed:

  • #117: Connecting to OMS with multiple instances of Photon doesn't work
  • #151: "Send Time" field sometimes missing from "open orders" display
  • #154: Photon doesn't handle reconnection to bounced OMS correctly
  • #141: Account text area not displaying correctly on Linux/GTK
  • #150: Heartbeats show up even though "don't show hearbeats" setting was remembered
  • #155: Add un-editable field with FIX version to Photon preferences page
  • #143: Photon should have better feedback when OMS has login problems
  • #124: Market Data view updates displayed in a "rolling" fashion
  • #145: "Tighten up" the tables in Tradebase
  • #83: Need to handle validation creation of a new quickfix message in JMSFixMessageConverter
  • #146: Right justify numbers in tradebase
  • #142: Create a Parallels virtual appliance for MacOS users
  • #144: Add a "trades on X" report to Tradebase
  • #148: OMS does not handle incoming BytesMessage correctly
  • #152: Appliance OMS can't log on to exchange simulator b/c of time synchronization problems
  • #156: Implement Order Limits in the OMS
  • #131: Add multiple FIX version support to the OMS
  • #110: MarketData: entering muliple symbols separated by space should parse them out to multiple quotes
  • #149: FIX Data dictionaries are not initialized during OMS startup
  • #157: Photon command-line accepts invalid values for time-in-force (TIF) field in orders
  • #31: Order History column arrangement "configuration" needs to be saved and restored
  • #147: Existing custom fields' checked state gets reset when custom fields are modified in preferences
  • #153: Photon does not show immediate execution reports when OMS not connected to Simulator
  • #122: Enabled/disabled state of Cusom Fields not preserved between Photon runs

Version 0.2.1

  1. Improvements to Ruby scripting functionality in Photon
  2. Real decimal support using BigDecimal in the Tradebase application (thanks to a switch to Rails 1.2)
  3. Rudimentary visibility into the OMS via JMX and jconsole
  4. The following bugs were fixed:
    • #140: Photon incorrectly displays "initial" ExecutionReport for filled orders
    • #139: Immediate execution report sent by OMS contains an invalid ExecTransType
    • #91: photon.ini not getting populated correctly in MacOS autobuild
    • #123: Enabled/disabled state of "Show heartbeats" not preserved between Photon runs
    • #137: OMS needs to print the FIX connection destination info at startup
    • #96: Write sanity checking script for appliance/server
    • #116: OMS->Exchange connection error log messages are being swallowed
    • #39: Menu issues on a Mac
    • #135: Date Range subset jumps visually on IE7 in Import Trades view (messages/logs/list)
    • #29: Need to be able to rearrange Order History columns by dragging
    • #27: Keyboard shotcuts can stop working in the Command entry area
    • #129: Multiple delete in the MarketData view fails the first time.
    • #90: Create a set of integration tests that starts the OMS to verify spring config is correct
    • #114: Only scripts in ActiveScripts should be available for register
    • #109: MarketData: entering duplicate symbols adds rows to marketData view
    • #103: Scripts with the same name in different projects conflict
    • #102: Get rid of use of ObjectMessage internally
    • #63: Mac version of Photon has the preferences menu under File instead of the usual place
    • #69: Photon preferences dialog lost hot-keys and Install/Update sections
    • #98: It's difficult to determine the status of the OMS
    • #84: AvgPx may be too wide for it's column and push the page over the edge
    • #82: Splashscreen no longer displayed on application startup
    • #70: The Apple-, shortcut to bring up the Preferences menu doesn't work
    • #97: Log levels on OMS are incorrect
    • #113: Script that fails to register still shows up in "script registry" as if it registers
    • #120: FIX connection dies when OMS has problems sending OMS messages downstream to clients
    • #126: View Dividend page doesn't show the currency the dividend is in
    • #125: Creating a dividend with unknown currency code doesn't give error feedback
    • #80: If the app starts up in the ruby perspective, the equity perspective is hard to get to
    • #41: "ZZ-INTERNAL" messages appear in the Open Orders editor
    • #37: MsgSeqNum's can get out of sync between Photon and OMS
    • #85: Should have "positions by account" search
    • #101: Reconnecting JMS connection creates multiple JMS connections
    • #106: Show of individual "import trade" message is broken
    • #92: Switching between Ruby and Equity perspectives messes up the bottom command toolbar
    • #112: Modifying a script in Photon that's already registered doesn't reload it in Equity perspective
    • #107: Moving the connection status bar (status image trimwidget) around resets the status to blank circles
    • #104: New projects won't get picked up by the scripting engine
    • #115: Switching to "Custom Order Fields" preference page brings up an error dialog box with "The currently displayed page contains invalid values" message
    • #108: MarketData View: pressing + on empty field (or space) adds a blank row to marketdata with no data in it
    • #119: Symbol link not displayed correctly in the "show equity" page
    • #111: Scripts don't work on production build
    • #100: Quickfixj.appctx.xml is incorrectly configured to use FIX40.xml file for all FIX versions
    • #76: Tabbing in MacOSX photon UI tabs into the triangle dropdown symbol in new order ticket
    • #16: Transact time is wrong in "open orders" and "messages" order history
    • #86: Modify app startup to load spring config files from code instead of daisy-chaining them in XML
    • #20: Stock order ticket fields don't show up properly on linux-gtk
    • #45: FeedStatusLineContribution periodically throws an exception in Ruby perpective
    • #52: Photon (macos) occasionally drops buy orders
    • #74: Displaying empty fields shifts the field up - should just display a space instead if we have no data
    • #60: Mousing over the green lights in Photon should give a tooltip explaining what they signify
    • #25: JMS connectivity indicator is not showing up on gtk platform in UI
    • #21: Provide better JMS exception feedback
    • #95: Build Server and Buld Appliance Documentation out of sync
    • #93: Eclipse classloader means trouble for Photon scripts
    • #99: JMS and quote feed indicators are broken
    • #88: Upgrade JRuby plugin
    • #68: Photon command parser should handle pressing <enter> on empty line
    • #94: Upgrade QuickFIX/J plugin
    • #48: RDT logs "Invalid Menu Extension (Path is invalid)" messages on MacOS
    • #87: OrderLoader doesn't quit the process after running

Version 0.2

The 0.2 version is a major architectural upgrade release:

  1. Made the switch from using JCyclone to a combination of embedded ActiveMQ and Spring Framework to simplify configuration and SEDA architecture
    1. This removes the dependency on an outside JMS setup
  2. Improved scripting and market data support in the Photon client
  3. Added pretty fonts and colors to the Tradebase application

In addition, we fixed the following bugs:

  • #28: Need to be able to sort Order History by clicking on the column header
  • #33: Photon build instructions need to mention RCP delta pack
  • #37: MsgSeqNum's can get out of sync between Photon and OMS
  • #41: "ZZ-INTERNAL" messages appear in the Open Orders editor
  • #56: Refactor controllers in webapp to minimize use of native QuickFIX
  • #57: Stack trace on application shutdown
  • #66: OrdId column in Photon should sort numerically
  • #67: Assembly script should create runXXX.xx scripts with each lib on its own line
  • #72: AssertionFailedException on application shutdown
  • #73: An error dialog when saving a Ruby file with a syntax error
  • #75: Photon 0.1.4 download link for Mac OS X is broken
  • #78: Script output goes into the host Eclipse console
  • #79: Migrate to ActiveMQ 4.0.2
  • #81: Need to clear queue on OMS startup with spring framework configuration
  • #85: Should have "positions by account" search
  • #87: OrderLoader doesn't quit the process after running