Compare commits

..
3201 Commits
Author SHA1 Message Date
Jake Norbut 9d1b03d1e2 fixing merge 2020-03-04 11:51:05 -06:00
Jake Norbut 9a677cf980 merging master into csv_export; taking master 2020-03-04 11:50:56 -06:00
Eric Harding 08bdd9c8c7 Update bad links on api doc site 2020-03-03 17:14:03 -05:00
Jake Norbut 886b606093 moving endif for release mode 2020-03-02 14:02:55 -06:00
Jake Norbut b70510b614 Merged in SP-69-fix-stop-and-stop-limit-orders (pull request #400)
SP-69 fix stop and stop limit orders

Approved-by: John Colvin <john.colvin@bluetradesys.com>
2020-03-02 19:46:11 +00:00
John Colvin 6db9a227b1 Merged in SP-287-algo-params-piq-update (pull request #399)
SP-287 algo params piq update

Approved-by: Jake Norbut <jake.norbut@bluetradesys.com>
2020-03-02 19:36:24 +00:00
Jake Norbut a819eb921d PR edit; removing unused local variable 2020-03-02 13:07:01 -06:00
Jake Norbut af4317a7f9 Merge branch 'master' of bitbucket.org:bluetradesys/spark into SP-69-fix-stop-and-stop-limit-orders 2020-02-27 14:27:21 -06:00
John Colvin 5edd7d5467 OrderBookRowVM only resets prospective_qty when the real qty changes 2020-02-27 14:07:05 -06:00
John Colvin 60d2cb5bc1 SP-287 fix algo params piq update bug 2020-02-27 14:05:04 -06:00
John Colvin f26e3d27c4 refactor IEnumerable to IReadOnlyCollection in common_value_group_changed event 2020-02-27 14:01:22 -06:00
Jake Norbut 31dab6ca09 allow stop/stop limit price to occupy same level as price 2020-02-26 12:10:05 -06:00
Jake Norbut 1498bf17bb when modifying stop-limit stop_price, don't change the price price 2020-02-26 12:09:32 -06:00
Jake Norbut 1cafe23bd0 stop_price and stop_limit_price now reference Pedro's new StopPx field in NativeState 2020-02-25 15:42:33 -06:00
Jake Norbut 25290df798 remove stop* modification logic from badge vm 2020-02-25 15:41:27 -06:00
Jake Norbut 20ca48e365 modification logic of stop* orders is now done centrally in OrdersModel 2020-02-25 15:40:08 -06:00
Pedro Pinto 78dfb03b8e Reported stop px in order state 2020-02-25 14:30:26 -05:00
Jake Norbut a1f71153c8 hook OB col filter up to UI price 2020-02-24 14:34:46 -06:00
Jake Norbut b1d260d98c OB RowVM to use ui_price to stop/limit shows expected value in Price column 2020-02-24 14:33:11 -06:00
Jake Norbut a81aafefe0 get_root_at_price to use ui_price so mini ob opens from Ladder 2020-02-24 14:31:43 -06:00
John Colvin 454330e360 fix typo in DiscretePropertyChangedDetector constructor (don't trim the whole array) 2020-02-21 18:51:37 -06:00
John Colvin 995159b365 pnl hyperlinks display hand cursor on hover 2020-02-21 18:49:25 -06:00
John Colvin fd1a33e9d2 PNLView - set Hyperlink/TextCell 'SnapToDevicePixels' to true 2020-02-21 17:39:48 -06:00
John Colvin e9615bc3aa PNLView - get rid of magic const row height 2020-02-21 17:39:35 -06:00
John Colvin b1b1597686 PNLView.xaml - factor out common TextCell props into base style 2020-02-21 17:24:01 -06:00
John Colvin bc2eb65c0a PNLView.xaml - factor out common HyperlinkCell props into base style 2020-02-21 17:22:46 -06:00
John Colvin 7baa7ca8a1 add OrderTicket.close_on_send config toggle 2020-02-21 16:56:30 -06:00
John Colvin 9bbc73b48c fix silent exception in SparkCommandVM.is_selectable 2020-02-21 16:56:30 -06:00
John Colvin b07a379ee1 orderbook LastMessage background always reverts to black on settings saved 2020-02-21 16:56:30 -06:00
John Colvin af2c6174e8 add 'AffectsRender' flag to Hyperlink/TextCell HorizontalContentAlignment dps 2020-02-21 16:56:30 -06:00
John Colvin 6e5444709d fix Hyperlink/TextCell padding (actually use it) 2020-02-21 16:56:30 -06:00
John Colvin 831aa43f0e tweak HyperlinkCell mouse-capture/mouse-over-click-area logic 2020-02-21 16:56:30 -06:00
John Colvin 50a8592e5e clean up DIYGrid TextColumn (mimic recent changes in HyperlinkColumn) 2020-02-21 15:57:25 -06:00
John Colvin cb7b6ef5cd fix TextCell alignment issues 2020-02-21 15:57:07 -06:00
John Colvin b7c72d1607 HighPerformanceRow does not depend on TColumn 2020-02-21 15:56:27 -06:00
John Colvin cb2747528b fix typo in ColumnGeometry (was assigning 'left' to 'unclicpped_left') 2020-02-21 15:50:58 -06:00
John Colvin 52ad4ad2c9 add 'HyperlinkClickMode' to HyperlinkCell to support cmd on click anywhere 2020-02-21 15:50:32 -06:00
John Colvin 93c81089f6 fix HyperlinkCell HorizontalAlignment binding 2020-02-21 15:42:36 -06:00
John Colvin d7d23a7a93 clip mview animations to scroll content presenter bounds 2020-02-21 15:41:14 -06:00
John Colvin 5525e35d1a OrderTypeItem template uses Rectangle instead of Badge (the latter has some unresolved rounding issues) 2020-02-21 15:39:27 -06:00
John Colvin cdd7856ba0 WPFHelper.measure_content() rounds to layout correctly 2020-02-21 14:14:05 -06:00
John Colvin 7a6de46b17 fix WPFHelper.measure_visual_content - 'left edge' calculation for right align; 'bottom edge' for bottom align 2020-02-21 14:13:08 -06:00
John Colvin 1fcccc674a fix HyperlinkCell Alignment issues 2020-02-21 14:11:09 -06:00
John Colvin c0e6b5556d DIYGrid CellRender.draw_text with layout rounding 2020-02-21 14:07:36 -06:00
John Colvin 8aa2a7e44e add spark menu dock/hide commands to pnl 2020-02-21 13:52:14 -06:00
John Colvin 0303d999ed Merged in algo-studio-style-tweaks (pull request #363)
RTM Algo studio style tweaks

Approved-by: Michael Harding <michael.harding@bluetradesys.com>
2020-02-21 19:44:03 +00:00
Pedro Pinto 914a817ddb Fixed crash in handling of stop limit orders 2020-02-21 14:39:18 -05:00
Pedro Pinto 4873e523a9 Re-merged server side stop/stop limit changes 2020-02-21 14:15:56 -05:00
John Colvin 672ef518e2 Merge branch 'SP-279-time-and-sales-column-width' 2020-02-20 12:29:33 -06:00
Pedro Pinto d22cb150f6 Merged 2020-02-20 12:59:51 -05:00
John Colvin 8605b4f11f Merged in SP-281-hidden-toolbar (pull request #393)
SP-281 hidden toolbar

Approved-by: Jake Norbut <jake.norbut@bluetradesys.com>
Approved-by: Kevin Darby <kevin.darby@bluetradesys.com>
2020-02-20 17:18:15 +00:00
John Colvin 20eb661fb0 Merged in SP-282-algo-favorite-params (pull request #396)
SP-282 option for algo favorites button to revert modifications after order entry

Approved-by: Jake Norbut <jake.norbut@bluetradesys.com>
2020-02-20 17:14:31 +00:00
John Colvin fad1ca2b6e Merged in SP-285-pnl-working-orders (pull request #395)
SP-285 pnl working qty should only include exchange orders

Approved-by: Kevin Darby <kevin.darby@bluetradesys.com>
2020-02-20 17:10:58 +00:00
John Colvin 747a687fe5 Merged in SP-278-smaller-ladder-columns (pull request #394)
SP-278 Smaller minimum size for Ladder columns

Approved-by: Jake Norbut <jake.norbut@bluetradesys.com>
Approved-by: Kevin Darby <kevin.darby@bluetradesys.com>
2020-02-20 17:10:18 +00:00
Jake Norbut e34c63382c merging master and fixing merge conflicts in 3 files by taking master 2020-02-20 08:41:02 -06:00
Pedro Pinto 4b5c744ba5 Updated externals, tools 2020-02-20 08:45:07 -05:00
Eric Harding cb0dfa50b3 Fix dockerfile 2020-02-11 15:02:41 -05:00
Eric Harding 2429e6019c Merge branch 'master' of bitbucket.org:bluetradesys/spark into prod 2020-02-11 14:16:14 -05:00
Eric Harding e0bb48b0c7 Merged in client_sdk (pull request #397)
Client sdk
2020-02-11 18:31:09 +00:00
Eric Harding a38b0dbc79 Merge branch 'master' of bitbucket.org:bluetradesys/spark into client_sdk 2020-02-11 13:29:43 -05:00
Eric Harding 73065ab48a client sdk sample 2020-02-11 13:29:09 -05:00
Eric Harding bd07c96504 Merged in mdsource_crash (pull request #389)
Fix for assert when algo subs to security w/o MD
2020-02-11 17:11:07 +00:00
Eric Harding dc4033875a Fixes from code review feedback 2020-02-11 11:43:04 -05:00
Eric Harding 130794c538 Merge fixup 2020-02-11 11:22:02 -05:00
Eric Harding b1743f0b1c Uninitialized heap, ffs 2020-02-10 18:58:21 -05:00
Eric Harding 33492c9131 Fixes for _WIN32 2020-02-10 18:27:41 -05:00
Eric Harding d434778a82 MarketDataService 2020-02-10 17:06:13 -06:00
Eric Harding 4c6cc9b3e0 Merge branch 'client_sdk' of bitbucket.org:bluetradesys/spark into client_sdk 2020-02-10 12:32:18 -06:00
Eric Harding 6aaeddb7e9 update vscode for linux on linux development 2020-02-10 12:32:10 -06:00
Eric Harding 1685a13994 Add linux on linux build task (vscode) 2020-02-10 13:24:56 -05:00
Eric Harding 54633dd6db note correct config value for local sparkd 2020-02-10 13:21:03 -05:00
Eric Harding 510f163e5b Add to_string methods for Product for new md api 2020-02-10 12:50:05 -05:00
Eric Harding ee4779da73 MarketDataService 2020-02-09 22:39:01 -05:00
Eric Harding 28e98259f6 Add client sdk example 2020-02-07 22:20:42 -05:00
John Colvin 8e6a17cd0c fix sticky algo behavior in LadderVM 2020-02-07 14:18:10 -06:00
John Colvin cbde36e9e0 Merge branch 'master' into algo-studio-style-tweaks 2020-02-07 13:29:50 -06:00
John Colvin 6fc20924bd SP-282 option for algo favorites button to revert modifications after order entry 2020-02-07 13:01:42 -06:00
John Colvin 381b8064fc SP-285 pnl working qty should only include exchange orders 2020-02-07 12:54:32 -06:00
John Colvin fc1a3ff7dc SP-278 Smaller minimum size for Ladder columns 2020-02-06 13:37:31 -06:00
John Colvin 5fd3d13cfe add spark menu dock/hide commands to synthetic management 2020-02-06 12:27:58 -06:00
John Colvin 1b38822459 add spark menu dock/hide commands to orderbook 2020-02-06 12:27:26 -06:00
John Colvin 8b7ecc430b add spark menu dock/hide commands to fills 2020-02-06 12:26:01 -06:00
John Colvin d9d7a08fd6 add spark menu dock/hide commands to time and sales 2020-02-06 12:25:08 -06:00
John Colvin 2383c00bb9 add spark menu dock/hide commands to mview 2020-02-06 12:23:35 -06:00
John Colvin dcce738d53 SP-281 SparkWindow toolbar can be docked to any side of the window, or hidden 2020-02-06 12:22:37 -06:00
John Colvin 0daa3e0685 add 'is_select_changed' event to ISelectable 2020-02-06 10:17:05 -06:00
Eric Harding 82bc402216 Update client examples 2020-02-05 14:58:46 -05:00
Eric Harding ff70e9694b Set spark version from jenkins environment when available 2020-02-05 10:02:17 -05:00
John Colvin e06daa349c normalize white space in SparkMenuItem.cs 2020-02-04 13:11:06 -06:00
Jake Norbut 525d0eda30 fix typo in notes 2020-01-30 07:39:22 -06:00
Jake Norbut e9e85b44c9 updating release notes 2020-01-30 07:37:51 -06:00
John Colvin 13aa693da1 TimeAndSales status bar 2020-01-29 14:12:33 -06:00
John Colvin f8afa7fc57 SP-280 remove Date portion from Time and Sales time column 2020-01-29 14:00:40 -06:00
John Colvin 2f6a66a2ce DIYGrid DragRect/Selection adorners respond to selection highlight property changes 2020-01-29 13:51:42 -06:00
John Colvin b4674a9120 cache sorting criteria to avoid accessing ColumnBase.SortingDirection on another thread when settings are collected 2020-01-29 13:51:42 -06:00
John Colvin d76eb1153b actually assign TimeAndSalesWindow.thread_id 2020-01-29 13:51:42 -06:00
John Colvin 0934c0014d RowSelectionAdorner listens to ItemContainerGenerator changes (invalidates visual) 2020-01-29 13:51:42 -06:00
John Colvin 19da3e1390 added configurable 'pause updates' menu item to TimeAndSales (hidden by default) 2020-01-29 13:51:42 -06:00
John Colvin 2654b2e446 SP-283 Ladder does not display 6c spreads correctly 2020-01-29 12:43:01 -06:00
John Colvin 61d0ae5257 SP-279 Time and Sales not remembering column width 2020-01-29 10:21:16 -06:00
John Colvin ebea6a8f50 move TimeAndSales classes into their own files/namespace 2020-01-27 16:55:51 -06:00
John Colvin f0b3baaf3f remove unused [TimeAndSales] OrderType column enum 2020-01-27 15:29:48 -06:00
John Colvin 956837d3f3 add ShowOrderTicketAutoLookupTag/SparkCommand 2020-01-27 15:15:25 -06:00
Eric Harding be45938b51 Fix for assert when algo subs to security w/o MD 2020-01-22 14:08:26 -05:00
Eric Harding 663f9ecc52 Merge branch 'master' of bitbucket.org:bluetradesys/spark into client_sdk 2020-01-16 17:23:42 -05:00
Eric Harding a6edbbe7b5 Fix spark sdk build 2020-01-14 17:13:07 -05:00
Eric Harding 51276d161c Revert "Add diagnostic logs to SharedMemory open/close"
This reverts commit 3fa699b4c9 because of
log spam
2020-01-13 11:39:51 -05:00
Eric Harding 3fa699b4c9 Add diagnostic logs to SharedMemory open/close 2020-01-13 11:13:15 -05:00
Eric Harding c9396bd6af Stabilize spark_vm_shell.sh ssk keys 2020-01-13 11:13:00 -05:00
Kevin Darby b80f96fa5e Merged in ice_excel (pull request #388)
fix RTD crash for ice

Approved-by: Jake Norbut <jake.norbut@bluetradesys.com>
2020-01-10 22:39:27 +00:00
Kevin Darby b7dea6817c fix RTD crash for ice 2020-01-10 14:43:06 -05:00
Pedro Pinto f4dc550f1a Fixed slowness in FIX log parsing.
This slowness was actually causing us to take too long to complete the
FIX connection logon process, resulting in a timeout and failure to
establish the session. It took almost 1ms per log line, with
logs commonly having 20K lines. k
2020-01-10 08:35:33 -05:00
Pedro Pinto bc978ed065 Merge branch 'master' of bitbucket.org:bluetradesys/spark 2020-01-10 08:30:17 -05:00
Eric Harding 202c5faffd update devcontainer to allow 2g shm 2020-01-09 10:40:47 -05:00
Kevin Darby a565dcbab7 fix tests 2020-01-06 14:30:04 -05:00
Pedro Pinto 65d55a7618 Added a parser of historical MD to facilitate analysis. 2020-01-02 13:57:54 -05:00
Pedro Pinto 57c3ec34c2 Fixed clang build. 2020-01-02 13:55:49 -05:00
Kevin Darby 4e85218d02 update dev keycodes to 3/31/2020 2020-01-02 10:12:18 -05:00
Taha Afzal f6784f1196 Merged in SP-253-spread-trading-needs-future-posit (pull request #386)
pos neutral spreads's fuures are not checked for pos limits
2019-12-20 23:38:00 +00:00
Taha Afzal 7f05a2c2af pos neutral spreads's fuures are not checked for pos limits 2019-12-20 16:35:29 -05:00
John Colvin c3d2101dcd infinity ticks be gone 2019-12-20 14:12:50 -06:00
John Colvin 8855ea44b0 remove ugly border around expander buttons in grid settings dialog 2019-12-20 13:19:36 -06:00
Kevin Darby 51f70ad5ed Merge branch 'prod' of bitbucket.org:bluetradesys/spark 2019-12-20 10:12:35 -05:00
Kevin Darby 5aa3f1a684 downgrade log 2019-12-19 16:06:26 -05:00
Pedro Pinto 5cd3a710bd Skipped lines that do no match a FIX prefix in FIX logs.
This is needed at the ICE where some messages can have new lines. We
use the new line separator to separate FIX messages so the parser was
getting confused when it saw multi-line messages.
2019-12-19 14:04:34 -05:00
John Colvin 6d8b4636ab fix synthetic import qty & side 2019-12-19 11:11:07 -06:00
Jake Norbut 64a75c4b48 updating release notes 2019-12-19 10:22:42 -06:00
Pedro Pinto 143b6ce5d8 Merged in multi-line-FIX-messages (pull request #385)
Skipped lines that do no match a FIX prefix in FIX logs.

Approved-by: Kevin Darby <kevin.darby@bluetradesys.com>
2019-12-19 15:29:06 +00:00
John Colvin aa5c0a5613 added create/clone synthetics test 2019-12-18 16:21:26 -06:00
Pedro Pinto d5fc0c5a56 Skipped lines that do no match a FIX prefix in FIX logs.
This is needed at the ICE where some messages can have new lines. We
use the new line separator to separate FIX messages so the parser was
getting confused when it saw multi-line messages.
2019-12-18 17:16:12 -05:00
Jake Norbut 25445d58d0 refactoring TaS CSV export 2019-12-18 13:48:14 -06:00
Jake Norbut 0b313a8aa8 refactoring Fills CSV export 2019-12-18 13:47:36 -06:00
Jake Norbut 54f954fd4b adding CSV export to order book 2019-12-18 13:47:03 -06:00
Jake Norbut 980f38ba03 using OrderedDictionary to CSVs are output with a predictable column order 2019-12-18 13:46:22 -06:00
Jake Norbut 9eada2724b Having the Command be on the Window rather than the VM; nice thinking John 2019-12-18 10:11:10 -06:00
Jake Norbut b5f53ee918 adding csv_properties to TimeAndSalesVM.Row 2019-12-18 10:10:04 -06:00
Kevin Darby 7c4daa0f4b we are trying to log in for a deleted user 2019-12-18 10:32:26 -05:00
Taha Afzal ab430e4afb Merged in SP-272_IB_slowness (pull request #384)
Reports transition to end state right away (vs on a timer)
2019-12-18 15:24:14 +00:00
Taha Afzal 29f6ea6d48 Merged in SP-273-fills-highlighting (pull request #383)
SP-273 fills highlighting
2019-12-18 15:20:41 +00:00
Taha Afzal e46372d08e Merged in SP-271-synthetic-cloning (pull request #382)
SP-271 synthetic cloning
2019-12-18 15:18:48 +00:00
Taha Afzal 1d2faeba3e Merged in SP-270-piq-bug (pull request #381)
SP-270 Order Book - PIQ Bug (fix OrderSecurityAlgo.Equals impl)
2019-12-18 15:16:07 +00:00
Taha Afzal 23cffc0630 Merged synthetic-importer into master 2019-12-18 10:03:45 -05:00
Jake Norbut 90b597fc70 Merged in SP-267_ladder_message (pull request #380)
SP-267 ladder status message visibility
2019-12-18 14:57:34 +00:00
Kevin Darby 5ea2a8d6b6 build 2019-12-18 09:36:53 -05:00
Kevin Darby 6e64f7c6df ice login 2019-12-18 09:28:02 -05:00
Eric Harding 8a210f39b6 Merge branch 'master' of bitbucket.org:bluetradesys/spark into prod 2019-12-17 15:36:40 -05:00
Kevin Darby 2aacd141ad only log in with ice users that have the authorized user set 2019-12-17 15:34:46 -05:00
Jake Norbut efc175f654 adding export to csv command to Fills window 2019-12-17 10:32:58 -06:00
Jake Norbut 6074afd999 adding csv export command to fills vm 2019-12-17 10:32:15 -06:00
Jake Norbut 219dff4055 adding new export_csv IDialogCommand which just creates a new file 2019-12-17 10:28:57 -06:00
Jake Norbut 9a3b07b622 adding ToCsv IEnumerable ext method in a new util namespace 2019-12-17 10:21:38 -06:00
Taha Afzal 5c01e6a99a Reports transition to end state right away (vs on a timer) 2019-12-16 13:46:26 -05:00
Eric Harding 2688281a10 Protect against ICE 0-leg spread data on cert 2019-12-16 10:26:34 -05:00
Eric Harding c6cd5fcf93 services.md 2019-12-15 22:09:20 -05:00
Eric Harding 177b96b453 manual updates 2019-12-13 17:46:22 -05:00
Eric Harding 292f66a774 Add package id for nuget 2019-12-13 17:46:03 -05:00
John Colvin 7ccd9134c4 SyntheticSecurityParser trims whitespace from leg type text 2019-12-10 18:11:26 -06:00
John Colvin 54d82e1773 DeleteSyntheticDaemon - improve logging, support batch delete 2019-12-10 18:01:44 -06:00
John Colvin 9483962e7b DiscretePropertyChangeDetector uses generic/strong types rather than boxing to object 2019-12-04 13:27:44 -06:00
John Colvin f94c5bc542 SP-273 Fills are unselected when order tree changes 2019-12-04 13:24:30 -06:00
John Colvin ce985f4b44 FillsVM state doesn't need to be observable (every usage is equiv to Observable.Return) 2019-12-03 14:02:26 -06:00
John Colvin 032f2253a7 ExecutionStrategyEditor 'Remove Leg' tooltip 2019-12-03 12:49:42 -06:00
John Colvin 4b4eb66ef0 SP-271 Synthetic cloning 2019-12-03 12:49:42 -06:00
Eric Harding 8c837f9f64 Expound on service fundamentals / ServiceContext 2019-12-03 13:16:41 -05:00
John Colvin a71914d566 TickFactorsPicker - disable auto complete behavior 2019-12-02 16:16:41 -06:00
John Colvin bd00183f7a SP-270 Order Book - PIQ Bug (fix OrderSecurityAlgo.Equals impl) 2019-12-02 15:24:10 -06:00
Jake Norbut 2674e526be formatting 2019-12-02 13:11:44 -06:00
Jake Norbut 4ea2c08cc3 hooking up message Visibility to new vm property 2019-12-02 13:06:30 -06:00
Jake Norbut 99432ad7ac adding status message visibility property to ladder vm 2019-12-02 13:05:43 -06:00
Jake Norbut 8c210bff34 adding status message visibility to setting vm 2019-12-02 13:04:57 -06:00
Jake Norbut e566a94380 adding status_message_visible to settings 2019-12-02 13:04:15 -06:00
Eric Harding 85f97ae552 Combine rpc/streams into services.md 2019-12-01 21:50:17 -05:00
Eric Harding 7ca0d10eb0 client/overview.md 2019-11-29 11:49:24 -05:00
John Colvin 07da9fd296 Import Synthetics manual test 2019-11-25 12:55:13 -06:00
John Colvin 436dbd217c SP-266 synthetic csv parser/import dialog 2019-11-25 12:55:13 -06:00
John Colvin 0937381a3f INotifyDataErrorInfo 'subscribe_has_errors' extension only notifies observers when HasErrors changes 2019-11-25 12:55:13 -06:00
John Colvin d42f6b6fff EnumHelper - generic add/remove_flags methods 2019-11-25 12:55:13 -06:00
John Colvin 03940b291b ArrayHelper.trim was not actually reassigning ref with trimmed result 2019-11-25 12:55:13 -06:00
John Colvin 2a72b03afc TickFactorsPicker - disable auto complete behavior 2019-11-25 12:55:13 -06:00
John Colvin 98caeb5410 MDDaemon - check that synthetic metadata.HasStrategy before adding to map 2019-11-25 12:55:13 -06:00
John Colvin 73cb56a661 DIYGridRowPresenter - don't perform drag selection when SelectionMode=Single 2019-11-25 12:55:13 -06:00
John Colvin 88932081b7 add WindowMaxSizeConverter to implement 'SizeToContent' max dimensions 2019-11-25 12:55:13 -06:00
Eric Harding ca8aed1f2b client pages outline 2019-11-22 18:49:58 -05:00
John Colvin a5f27d0d35 AlgoStudio - fix typos in name/badge header tooltip 2019-11-22 11:28:59 -06:00
John Colvin ce7ff0d14f MDDaemon - check that synthetic metadata.HasStrategy before adding to map 2019-11-22 11:25:38 -06:00
John Colvin d08571e862 Merge remote-tracking branch 'origin/master' into algo-studio-style-tweaks 2019-11-22 11:25:09 -06:00
Eric Harding b62d9751cf chown duplicates files in docker image 2019-11-20 14:57:56 -05:00
Eric Harding b32d63fcda Update api site template 2019-11-20 12:39:59 -05:00
Jake Norbut 26b5fe5699 updating release notes 2019-11-20 09:47:48 -06:00
Jake Norbut 2fccceb91d Merged in ladder_recenter_no_kb (pull request #379)
Ladder recenter no kb
2019-11-20 15:47:09 +00:00
Jake Norbut fa49a0de07 adding new test 2019-11-20 09:45:51 -06:00
Jake Norbut bd28a0fa54 delete old test 2019-11-20 09:45:27 -06:00
Jake Norbut 14ebe5ef51 (shift or alt) + double click to recenter all ladders 2019-11-20 09:14:20 -06:00
Jake Norbut a9b4049307 relocating bus.post of recenter all to common public ladder function 2019-11-20 09:13:58 -06:00
Eric Harding 54d9d5e2f3 Add google analytics 2019-11-19 16:38:30 -05:00
Jake Norbut 234d499731 adding ladder spacebar test 2019-11-19 08:51:38 -06:00
Eric Harding 324b9c1cc7 Merge branch 'prod' of bitbucket.org:bluetradesys/spark 2019-11-19 09:04:33 -05:00
Eric Harding 6aad329e09 Include ice symbol list in defaults for windows 2019-11-18 13:04:00 -05:00
Jake Norbut 0641cf45d9 Merged in SP-261_bye_bye_butterfly (pull request #366)
RTM - no more butterfly defaults

Approved-by: Jake Norbut <jake.norbut@bluetradesys.com>
2019-11-18 16:34:35 +00:00
Jake Norbut 1fe0efe5c3 Merged in SP-264_price_display_format (pull request #374)
RTM - SP-264 drop tick separator in ladder prices

Approved-by: John Colvin <john.colvin@bluetradesys.com>
2019-11-18 16:17:31 +00:00
Jake Norbut 93938b6ef2 fix merge 2019-11-18 10:15:19 -06:00
Jake Norbut 818806a4e1 Merged in SP-263_recenter_on_spacebar (pull request #371)
RTM - SP-263 recenter on spacebar

Approved-by: Eric Harding <eric.harding@bluetradesys.com>
2019-11-18 15:35:59 +00:00
Jake Norbut 261bf3e475 Merged in SP-260_local_max_clip (pull request #370)
RTM SP-260 local max clip

Approved-by: Eric Harding <eric.harding@bluetradesys.com>
2019-11-18 15:34:30 +00:00
John Colvin dbe2194ed3 Merged in SP-265-pnl-cast-exception (pull request #376)
SP-265 pnl cast exception

Approved-by: Jake Norbut <jake.norbut@bluetradesys.com>
2019-11-18 15:26:06 +00:00
John Colvin 45e10ca377 SP-265 use 'is' instead of explicit cast to IPNLCellData (the cast should work; this is defensive) 2019-11-14 21:09:31 -06:00
Eric Harding c3299232f1 Update release notes 2019-11-14 17:44:24 -05:00
John Colvin 4de77ce339 pnl sometimes duplicates grouping columns when they are changed in settings dialog 2019-11-14 16:12:58 -06:00
John Colvin 96f71290a4 SP-265 pnl crash due to CastException 2019-11-14 16:12:19 -06:00
Jake Norbut e2b80942df adding manual test 2019-11-14 15:58:59 -06:00
Jake Norbut 51fb068469 adding manual test 2019-11-14 15:51:40 -06:00
Eric Harding 81b36edfe3 Merged in subprocess (pull request #375)
[RTM] Simple sparkd subprocess runner
2019-11-14 20:26:38 +00:00
Eric Harding 90976ffeba Merged in init_spark_plugin (pull request #372)
[RTM] Always init_spark_plugin() for libspark.so
2019-11-14 20:24:50 +00:00
Eric Harding 43aad8b53f merge master 2019-11-14 15:24:36 -05:00
Eric Harding 5434647ecb Merged in SP-262-read_latest_crash_dump-crahes (pull request #368)
[RTM] SP-262 check for directory exists in keep_n_matching_files

Approved-by: Jake Norbut <jake.norbut@bluetradesys.com>
2019-11-14 20:22:53 +00:00
Eric Harding 7c4aa11c69 Merged in SP-259-elliots-tas-algo-not-firing (pull request #369)
[RTM] SP-259 - Fix md exchange status transitions.

Approved-by: Jake Norbut <jake.norbut@bluetradesys.com>
2019-11-14 20:22:44 +00:00
Eric Harding 176c1f8d92 Update sdk overview.md with blog edits 2019-11-14 15:22:01 -05:00
Jake Norbut 8b0c9e7722 adding some TAS-style symbols so we get md recording on them 2019-11-14 07:56:27 -06:00
Eric Harding a5c2e8b287 SP-230 Disable GMI_import for sdk 2019-11-13 15:37:38 -05:00
Eric Harding 24e766ba59 SP-230 include futures.coconut in dockerfile 2019-11-13 14:45:34 -05:00
Eric Harding ddd81ea93a Allow sdk shell to always skip stunnel 2019-11-13 14:45:06 -05:00
Eric Harding 5481cce34c Simple sparkd subprocess runner 2019-11-13 13:50:21 -05:00
Jake Norbut 58d39c4833 rendering ladder prices approparitely based on price_display_format 2019-11-13 10:38:26 -06:00
Jake Norbut 367d9be724 adding price_display_format to settings view 2019-11-13 10:38:04 -06:00
Jake Norbut 99f2ab7c8a adding price_display_format to vm 2019-11-13 10:37:46 -06:00
Jake Norbut 8b091b39eb adding PriceDisplayFormat enum to proto 2019-11-13 10:37:24 -06:00
Eric Harding 9d1f0e5538 Remove bad symlink breaking build. 2019-11-12 16:58:30 -05:00
Eric Harding 02ade1e0c9 Merged in SP-230-api-experience (pull request #373)
SP-230 api experience
2019-11-12 21:36:11 +00:00
Eric Harding 296749bae3 remote docker part from udpate_github 2019-11-12 16:34:29 -05:00
Eric Harding 49ec9885eb Merge branch 'master' of bitbucket.org:bluetradesys/spark into SP-230-api-experience 2019-11-12 13:28:28 -05:00
Eric Harding 04264e70b9 add spark_client.cmd 2019-11-12 11:54:15 -05:00
Eric Harding eaadc74242 SP-230 overview/blog 2019-11-12 10:56:29 -05:00
Eric Harding 6760ca1898 Always init_spark_plugin() for libspark.so 2019-11-12 08:50:31 -05:00
Eric Harding 5f2d3c7c26 SP-230 algo overview draft 2019-11-11 16:49:12 -05:00
Eric Harding 326532ed5c Urls change /algo/ to /server/ 2019-11-11 11:43:31 -05:00
Eric Harding 5cfb4a65e9 SP-230 add faq/join 2019-11-11 10:19:17 -05:00
Eric Harding f955fef680 SP-230 orders 2019-11-08 17:31:54 -05:00
Eric Harding 2214988442 SP-230 rename Algo sdk to Server sdk 2019-11-08 16:51:25 -05:00
Eric Harding e80ab05969 SP-230 subscriptions 2019-11-08 16:26:51 -05:00
Eric Harding 92bdbd460a initialization : editing 2019-11-08 15:43:31 -05:00
Jake Norbut a357d978ca misc string formatting fix; this is only used for debugging focus issues 2019-11-08 13:45:03 -06:00
Jake Norbut dfb673bd63 recenters all ladders via posting to appropriate tag to bus when spacebar is pressed over a ladder 2019-11-08 13:43:29 -06:00
Jake Norbut 24f366491b update view with appropriate controls for enforce_max_clip and max_clip 2019-11-08 10:44:03 -06:00
Jake Norbut 55134bf172 check max clip for crossing market dialog as well 2019-11-08 10:42:23 -06:00
Jake Norbut b6b33f14ef enforce max clip at order entry 2019-11-08 10:40:43 -06:00
Jake Norbut 12d532a17f adding enforce_max_clip and max_clip to settings vm 2019-11-08 10:39:38 -06:00
Jake Norbut 09679ff494 adding enforce_max_clip and max_clip to proto 2019-11-08 10:38:10 -06:00
Eric Harding 781e7c98a0 SP-230 initialization 2019-11-08 10:09:33 -05:00
Eric Harding 4189b05665 SP-262 check for directory exists in keep_n_matching_files 2019-11-07 18:08:13 -05:00
Eric Harding ff5b04f8ee SP-259 - Fix md exchange status transitions. 2019-11-07 17:52:10 -05:00
Jake Norbut 4180b9a8ec removing price and quantity special case when legs = 3 2019-11-06 11:45:42 -06:00
Taha Afzal b3369db7cc Release notes 2019-11-04 13:07:02 -05:00
Taha Afzal 279abcfefd Made the fractional_hedging test a bit easier to do 2019-11-04 10:41:27 -05:00
Taha Afzal 872e2465a6 Fixing the test 2019-11-01 14:15:11 -04:00
Eric Harding 5ba244c982 Editing initialization 2019-10-31 17:24:20 -04:00
Eric Harding 4029a6a58a registration.md 2019-10-31 16:48:06 -04:00
Taha Afzal 89fb79c556 Manual tests added 2019-10-29 18:53:17 -04:00
Taha Afzal c92e9df77b Merge branch 'hide_deleted_accounts' 2019-10-29 14:58:11 -04:00
Taha Afzal 81aaa853d5 Merging SP-248 2019-10-29 14:40:00 -04:00
Taha Afzal 4f308faba2 Merge branch 'SP-247-order-entry-sounds' 2019-10-29 14:09:30 -04:00
Taha Afzal 0b924033c2 Merge branch 'SP-252-root-spreader-security' 2019-10-29 14:08:29 -04:00
Taha Afzal 3606c707e4 Merge branch 'SP-204-local-fills' 2019-10-29 14:07:42 -04:00
Taha Afzal 5998107e6a Merge branch 'SP-225-investigate-the-lack-of-price-rep' 2019-10-29 14:03:12 -04:00
Taha Afzal 297982433b Merge branch 'SP-249' 2019-10-29 13:58:28 -04:00
Taha Afzal 15ac9d945b Modified tests 2019-10-29 13:53:20 -04:00
Eric Harding c03d05285b Copy images locally so Michael doesn't steal them 2019-10-28 17:15:18 -04:00
Jake Norbut a0f1d11692 adding manual fills don't show admin fills test 2019-10-28 16:15:01 -05:00
Jake Norbut e7890a459c test for order sent sound 2019-10-28 15:57:27 -05:00
Jake Norbut f7fb5ed400 adding test for deleted accounts 2019-10-28 15:48:47 -05:00
Jake Norbut 75e98d353f adding left panel test steps 2019-10-28 15:41:39 -05:00
John Colvin 5fc6ff4c00 SP-204 Local fills UI erroneously shows admin fills too 2019-10-26 16:40:32 -05:00
Eric Harding 78323d09e8 SP-230 Development with other editor 2019-10-25 17:40:10 -04:00
Taha Afzal 6951272633 Just has to update the last_price 2019-10-25 13:05:44 -04:00
Eric Harding f2621da423 SP-230 Development with VScode 2019-10-25 12:19:38 -04:00
Taha Afzal 548611b44f Adding tooltips, and hooking to the right proto 2019-10-24 18:04:54 -04:00
Eric Harding cf2bc03dd1 SP-230 Editing 2019-10-24 17:36:27 -04:00
Taha Afzal 322da04723 Merge branch 'SP-249' of bitbucket.org:bluetradesys/spark into SP-249 2019-10-24 17:09:30 -04:00
Taha Afzal 3544eac815 Cleaned up the quote throttling code 2019-10-24 17:09:24 -04:00
John Colvin 7fef7d88ce refactor QuoteInsideMarketDistance to new proto type (cannot recycle old type bc it must be null in existing synths) 2019-10-24 15:41:30 -05:00
John Colvin 7531cf5eb4 remove unused synth param 'QuoteInsideMarketDistanceAwayModel' 2019-10-24 15:38:15 -05:00
John Colvin 5826a083c0 SyntheticEditor - remove Quote Inside Market Away Distance param 2019-10-24 12:44:47 -05:00
John Colvin ec0d5d22f1 SyntheticEditor - disable Quote Throttle/Inside Market Distance by default 2019-10-24 12:37:13 -05:00
John Colvin d433368795 fix typo in 'order sent alert' predicate (creation time comparison was backwards) 2019-10-24 11:51:39 -05:00
Eric Harding 88e17743ef Disable onixs for sdk sparkd 2019-10-24 11:28:04 -04:00
Jake Norbut dc4453e510 SP-256 - hide deleted accounts 2019-10-24 08:32:38 -05:00
Eric Harding 950073703f SP-230 Scripts to deploy to api.bluetradesys.com 2019-10-23 19:40:11 -04:00
Jake Norbut 1b1583abda removing OJ and KC IFU entries; regen cme ref data file 2019-10-23 09:24:28 -05:00
Jake Norbut 9d2f2888bb updating reference data with latest for RodrigoSGU and CNH 2019-10-23 09:08:20 -05:00
Eric Harding 504d09eb6c SP-230 devcontainers are pretty neat 2019-10-22 17:36:51 -04:00
Eric Harding c2ea5aa36f ServiceContext needs to include port when deciding to connect to sparkvm:8000 for debuggin 2019-10-22 16:35:00 -04:00
John Colvin 26816f0048 SP-249 New spreader quoting throttle parameter 2019-10-22 12:12:17 -05:00
Eric Harding c367488844 sdk: refactor example build 2019-10-22 13:02:10 -04:00
Taha Afzal e97e6b93c7 Adding proto 2019-10-21 16:44:00 -04:00
John Colvin 0d8252e131 SP-252 Parent spreader badge should show the spreader name as well 2019-10-21 12:58:21 -05:00
Eric Harding fb19dd8ce5 Add sdk dockerfile and create it on build 2019-10-17 17:43:19 -04:00
Eric Harding c0a2c6a24a Split examples into separate directories and add devcontainer 2019-10-17 17:42:30 -04:00
Eric Harding 7cbd5adccc Advance linux docker to include 'zip' executable 2019-10-17 17:28:38 -04:00
Eric Harding 3b8a4f89cc Rename Log subsystem ClientSdk to just Sdk 2019-10-17 17:25:20 -04:00
Taha Afzal 801b9622f8 Merge branch 'master' of bitbucket.org:bluetradesys/spark 2019-10-17 15:09:19 -04:00
Taha Afzal a5df3f2da2 Dynamic Algos are now loaded only when explicitely enabled by name in Toggles config 2019-10-17 15:09:10 -04:00
John Colvin f03a413855 SP-247 Order Entry Sounds 2019-10-17 13:55:52 -05:00
Michael Harding f3a692bda2 Delete ex_sim_orders_venue_sim in system tests 2019-10-17 13:30:11 -04:00
Kevin Darby 6c3bdbdc34 make sim datapaths pretty again 2019-10-17 12:09:05 -04:00
Eric Harding d4749dd381 Tool to test c# api latency 2019-10-17 11:57:20 -04:00
Taha Afzal a008f4d0fd Hiding pyramid, ignoring timer (which was faking market status) 2019-10-17 11:38:35 -04:00
Taha Afzal 0ee9521454 Merge branch 'TAS' 2019-10-17 11:16:03 -04:00
Kevin Darby 62cef7c2f7 release notes 2019-10-17 09:44:53 -04:00
Taha Afzal 1b39f4e47c Merge branch 'master' into TAS 2019-10-16 21:54:24 -04:00
Taha Afzal 3212b2fcee Added logs for TAS Algo 2019-10-16 16:38:12 -04:00
Taha Afzal 1576541bd1 Clean up 2019-10-16 14:59:34 -04:00
Kevin Darby 62e97364fb Merged in ice_exec3 (pull request #230)
Ice execution

Approved-by: Kevin Darby <kevin.darby@bluetradesys.com>
2019-10-16 18:47:10 +00:00
Taha Afzal 93b954ce46 Some cleanup remains, mostlty done 2019-10-16 11:37:32 -04:00
John Colvin c9da022c58 SP-248 Ladder left panel scroll 2019-10-15 12:12:20 -05:00
John Colvin 0772a13b09 introduce ladder settings 'profile-equivalent' logic to avoid disconnecting ladders from profiles due to trivial settings changes 2019-10-14 20:55:00 -05:00
John Colvin c53f6ad906 finally remove mutable members from LadderSettings GetHashCode impl 2019-10-14 16:01:24 -05:00
Taha Afzal 1058c8a80e Merge branch 'pyramid' into TAS 2019-10-14 11:45:56 -04:00
Taha Afzal 7ecb106880 Done 2019-10-14 11:39:27 -04:00
Taha Afzal b0c1d93c50 Corner cases fixed 2019-10-14 11:08:29 -04:00
Kevin Darby 0c5a039226 tested buffered cancel and replace with lean_controlled.txt, verified in fix 2019-10-11 14:04:32 -04:00
Kevin Darby 2677144bfa buffer cancel and updates because ice sucks 2019-10-10 17:43:28 -04:00
Eric Harding 04f165b1a3 api docs: change info icon 2019-10-10 17:12:25 -04:00
Kevin Darby 6b30c42c0d added gt_cert jetfix rule to conf per Pete 2019-10-10 14:56:32 -04:00
Eric Harding 893aa7a370 api sdk - development 2019-10-09 20:01:56 -04:00
Eric Harding 245b5d0f99 sdk docs - downloading 2019-10-09 18:56:30 -04:00
Kevin Darby 2f62d29f66 Merge branch 'master' of bitbucket.org:bluetradesys/spark into ice_exec3 2019-10-09 14:03:11 -04:00
Taha Afzal 828f867a80 Merge branch 'pyramid' of bitbucket.org:bluetradesys/spark into pyramid 2019-10-09 13:46:19 -04:00
Taha Afzal c9663cf7ab made the child orders configurable 2019-10-09 13:46:08 -04:00
John Colvin b85de51d0c bring back DefaultAlgoVM for 'None' case (dynamic children placeholders do not have specific impl) 2019-10-09 12:33:40 -05:00
John Colvin dc8e65923d fix adminModel typo '&&' -> '||' (users need admin OR trade permissions to see account) 2019-10-09 12:00:25 -05:00
Eric Harding d5225aa75b spark sdk Installing 2019-10-09 12:21:03 -04:00
Eric Harding 48e6e1e139 client sections need work 2019-10-08 17:39:51 -04:00
Eric Harding 1ebd0be57c api docs outline 2019-10-08 17:24:01 -04:00
Eric Harding 28779d333c api docs "landing page" 2019-10-08 16:53:40 -04:00
Eric Harding c9387a92be Add docs/api 2019-10-08 16:41:59 -04:00
Eric Harding 1469373b9c fix Sparkcmd -h help printer 2019-10-08 15:59:15 -04:00
Kevin Darby 820e937336 Merge branch 'master' of bitbucket.org:bluetradesys/spark into ice_exec3 2019-10-08 12:49:58 -04:00
John Colvin 8b73878782 null check for TradingPermissions (fixes login crash) 2019-10-08 11:46:32 -05:00
Kevin Darby b15106dac4 Merge branch 'master' of bitbucket.org:bluetradesys/spark into ice_exec3 2019-10-08 11:43:22 -04:00
Michael Harding 100316b791 SP-246: Fix System Tests 2019-10-08 11:06:41 -04:00
John Colvin a4694462ed flip combobox gradient back (there was a light/medium typo in resource keys) 2019-10-07 16:52:23 -05:00
John Colvin f404b0e936 center align ratio checkbox in QuantityMeasureControl 2019-10-07 16:10:47 -05:00
John Colvin 2df1e94fb3 algo studio pr feedback; clean up visual states 2019-10-07 16:05:18 -05:00
John Colvin acd0d7c343 remove 'Cannot change...while templates present' tooltip 2019-10-07 15:27:51 -05:00
John Colvin 1e8a7f09dd make generic algo template child order padding consistent 2019-10-07 14:21:24 -05:00
Kevin Darby 3c98425226 Merge branch 'master' of bitbucket.org:bluetradesys/spark into ice_exec3 2019-10-07 12:53:44 -04:00
John Colvin b65d50a9c7 AlgoStudio uses Adorner to display name/abbrev. text prompts 2019-10-07 11:03:33 -05:00
John Colvin 909b4b6cfe AlgoStudio - put badge/name/abbrev uis on a single row 2019-10-07 11:03:33 -05:00
John Colvin 2fbc238ecc AlgoDefinitionVM - update 'is_dirty' when algo_root changes 2019-10-07 11:03:33 -05:00
John Colvin 7c73024919 ObservantAsyncCommand can_execute was not actually changing in response to parameter 2019-10-07 11:03:33 -05:00
John Colvin 0d85aa1644 AlgoStudio - remove old/erroneous 'algo templates' code 2019-10-07 11:03:33 -05:00
John Colvin df16acc4af AlgoStudio - better 'Clone' icon 2019-10-07 11:03:28 -05:00
John Colvin 7ad0c23704 AlgoStudioView - reduce save/revert button width to 90 2019-10-07 11:02:38 -05:00
John Colvin e85e0322e3 AlgoStudio uses consistent vertical padding between params; get rid of cartoonish circle in expander button 2019-10-07 11:02:38 -05:00
John Colvin 1a6a31c857 AlgoStudio - (Glbx)Iceberg/Splitter help button margin is consistent with other algos 2019-10-07 11:02:38 -05:00
John Colvin 65b09c6802 [non-functional] white space changes in AlgoContentTemplateSelector.xaml 2019-10-07 11:02:38 -05:00
John Colvin 148dae32d5 AlgoStudio - remove algo name from buttons, dock save/revert on bottom 2019-10-07 11:02:38 -05:00
John Colvin 9c116fa3d6 AlgoStudio - hide vertical scrollbar 2019-10-07 11:02:38 -05:00
John Colvin 1aa9c46367 fix build (bad using directives after merge) 2019-10-07 10:48:12 -05:00
Kevin Darby 5211cab351 Merge branch 'master' of bitbucket.org:bluetradesys/spark into ice_exec3 2019-10-07 10:24:36 -04:00
Pedro Pinto e89a4cce53 Merged in sim_prorata (pull request #350)
RTM. Documented OrderMatcher better.
2019-10-07 13:38:41 +00:00
Eric Harding cb56b90737 Merged in SP-229-shell-crash-dumps (pull request #346)
RTM: SP-229 shell crash dumps

Approved-by: Jake Norbut <jake.norbut@bluetradesys.com>
2019-10-07 13:38:00 +00:00
Pedro Pinto 761a89f052 Updated release notes 2019-10-07 09:37:00 -04:00
Pedro Pinto cab6b56606 Merged master 2019-10-07 09:36:21 -04:00
Pedro Pinto 8a743a91a5 Updated release notes. 2019-10-07 09:29:30 -04:00
Taha Afzal 5dec5dc392 Merged in SP-232 (pull request #345)
RTM. Fixing SP-232

Approved-by: Pedro Pinto <pedro.pinto+atlassian@bluetradesys.com>
2019-10-07 13:28:30 +00:00
Eric Harding 27aa4fca26 Merged in system-tests (pull request #349)
RTM: System tests

Approved-by: Michael Harding <michael.harding@bluetradesys.com>
Approved-by: Pedro Pinto <pedro.pinto+atlassian@bluetradesys.com>
2019-10-07 13:20:35 +00:00
Pedro Pinto 84a2e50bf7 Updated release notes. 2019-10-07 09:19:18 -04:00
John Colvin 297eb5b25b Merged in SP-181-no-spreads-in-man-fills (pull request #352)
RTM SP-181 Remove the option to enter manual fills of spreads

Approved-by: Jake Norbut <jake.norbut@bluetradesys.com>
2019-10-07 13:18:26 +00:00
Pedro Pinto d9d0e1f4ef Updated release notes. 2019-10-07 09:15:21 -04:00
Eric Harding 6ec0cc8bbe Merged in SP-236-websocketpp (pull request #353)
RTM: SP-236 Disable websocketpp open_handshake timeout
2019-10-07 13:13:30 +00:00
Pedro Pinto 795b77ea3f Updated release notes. 2019-10-07 09:12:45 -04:00
John Colvin 91c97d32bb Merged in SP-223-som-synth-crash (pull request #355)
RTM add dispatcher thread name to assert log

Approved-by: Eric Harding <eric.harding@bluetradesys.com>
2019-10-07 13:11:57 +00:00
John Colvin e0c50703d7 Merged in SPARK-2534-fills-time-filter-bug (pull request #357)
RTM SPARK-2534 fills time filter bug

Approved-by: Jake Norbut <jake.norbut@bluetradesys.com>
2019-10-07 13:11:03 +00:00
Pedro Pinto dab1e76766 Updated release notes. 2019-10-07 09:10:32 -04:00
Pedro Pinto b8c927df27 Merge branch 'master' into SPARK-2534-fills-time-filter-bug 2019-10-07 09:02:25 -04:00
Pedro Pinto 2684d25f09 Updated release notes 2019-10-07 09:01:48 -04:00
John Colvin 7c95a77ae2 Merged in update-naggle-test (pull request #360)
RTM unit test for update.naggle fix
2019-10-07 13:00:06 +00:00
John Colvin 31b115d13b Merged in bts-admin-permissions (pull request #356)
RTM Bts admin permissions
2019-10-07 12:58:42 +00:00
Pedro Pinto d681a6924b Updated release notes. 2019-10-07 08:39:01 -04:00
Pedro Pinto d0cce84d2e Merge branch 'master' into bts-admin-permissions 2019-10-07 08:38:07 -04:00
Pedro Pinto 532591c34f Updated release notes. 2019-10-07 08:36:14 -04:00
Taha Afzal 562b9419bd hedge is a lean now 2019-10-04 17:32:03 -04:00
John Colvin 7f187224c1 add .Replay(1).RefCount() to AdminModel.on_accounts 2019-10-02 13:40:29 -05:00
John Colvin 79b2121f5e OrderBookVM disposes order_mod_vm 2019-10-02 13:40:28 -05:00
John Colvin 0bd477594c FillsVM disposes filters 2019-10-02 13:36:58 -05:00
John Colvin 149cd90fb4 apply permission filter to pnl stream 2019-10-02 11:54:38 -05:00
John Colvin f74e719a9f sort accounts/users in filter dropdowns for OrderBook/Fills/PNL 2019-10-02 11:54:38 -05:00
John Colvin 8b68beae96 Merge remote-tracking branch 'origin/master' into bts-admin-permissions 2019-10-02 10:52:45 -05:00
Pedro Pinto 9cc0b471f2 Added support for tag 1031, defaults to Y. 2019-10-02 10:32:23 -04:00
Taha Afzal 3e035197d0 Top Spread is also a security (forgot to mark it as a security, so it was showing as a uint in the ui) 2019-10-01 20:42:06 -04:00
Taha Afzal c9d8a640b6 Merge branch 'pyramid' of bitbucket.org:bluetradesys/spark into pyramid 2019-10-01 19:44:49 -04:00
John Colvin 1d97e620fd add security map to view's resources for dynamic security key param's ContractPickerPopup 2019-10-01 17:17:31 -05:00
John Colvin f6299ab5c3 clean up DynamicOrderParamVM - don't store value with the descriptor, make 'param' prop readonly 2019-10-01 17:08:32 -05:00
John Colvin eaff4774e0 refactor some Disposable.replace calls so that the prev hook is disposed before the new one is created 2019-10-01 17:08:32 -05:00
John Colvin bed52db98a dynamic order SecurityKey DataTemplate 2019-10-01 17:08:32 -05:00
John Colvin bd3ef33607 AlgoStudio dynamic order 'SecurityKey' template 2019-10-01 17:08:32 -05:00
John Colvin 25a594895e ladder/ticket/algo studio views store SecurityMap in resource dictionary 2019-10-01 17:08:31 -05:00
John Colvin 4d468c8026 DynamicOrderVM 'SecurityKey' descriptor impl 2019-10-01 17:08:31 -05:00
John Colvin 68ed90487b AlgoParamVM template key impl 2019-10-01 17:08:31 -05:00
John Colvin ddc2c67fea add SelectedSecurityKey dp to ContractPickerPopup 2019-10-01 17:08:31 -05:00
Taha Afzal 77459e9c64 price changes dont have the algo params filled in 2019-10-01 16:15:36 -04:00
John Colvin db64f2f45b migrate common ManualFills resource keys into central location 2019-09-30 18:21:06 -05:00
John Colvin 3f7ea71de7 [non-functional] normalize whitespace in AlgoContentTemplateSelector.xaml 2019-09-30 18:11:18 -05:00
John Colvin d334418655 PyramidAlgo uses 'SecurityKey' dynamic param descriptor 2019-09-30 18:09:11 -05:00
John Colvin d1844afeae server side impl for 'SecurityKey' dynamic param descriptor 2019-09-30 18:08:41 -05:00
John Colvin b6dc2bd4d4 add 'SecurityKey' dynamic param descriptor 2019-09-30 18:03:52 -05:00
Taha Afzal 58906eb3b6 Code complete 2019-09-30 16:55:35 -04:00
Kevin Darby 50e61604ba move default keycode exp to 12/31/2019 to fix unit tests 2019-09-30 11:53:44 -04:00
Kevin Darby 6bd23f106f Merged in fix_nan_pnl (pull request #361)
add temporary config to ignore nan day pnl to stop the loss limit from keeping traders out of market
2019-09-30 15:07:11 +00:00
Kevin Darby dfd8348724 add temporary config to ignore nan day pnl to stop the loss limit from keeping traders out of market 2019-09-30 11:03:03 -04:00
Taha Afzal 963a4207e2 Code complete, need cleanup and testing 2019-09-26 19:00:15 -04:00
John Colvin d2e9352e48 unit test for update.naggle fix 2019-09-25 12:01:31 -05:00
Kevin Darby da42e95754 fixed externals and docker 2019-09-25 10:59:58 -04:00
Kevin Darby a878a55ac1 moved externals 2019-09-25 10:00:20 -04:00
John Colvin 4305d560aa Merged in pnl-rounding-error (pull request #359)
RTM Pnl rounding error

Approved-by: Jake Norbut <jake.norbut@bluetradesys.com>
Approved-by: Eric Harding <eric.harding@bluetradesys.com>
2019-09-25 13:57:52 +00:00
John Colvin 055f0015e7 Update.naggle pr edit: 'TryPop' is an innappropriate name (just use 'Remove') 2019-09-24 17:28:06 -05:00
Kevin Darby a39d91ceb3 Merge branch 'pnl-rounding-error' of bitbucket.org:bluetradesys/spark into ice_exec3 2019-09-24 14:38:26 -04:00
John Colvin ddc50e1fba pnl initial calc type was not being applied to data 2019-09-24 13:32:54 -05:00
John Colvin ffb571d1cf fix pnl rounding issues (use 9 decimal places) 2019-09-24 13:32:53 -05:00
John Colvin 2a36c05d75 fix PNLRowData Equals impl (was not comparing market prices) 2019-09-24 13:32:53 -05:00
John Colvin a3730eb203 Update.naggle merge maintains changes (could get into state where changes became adds/removes) 2019-09-24 13:32:53 -05:00
John Colvin d033275694 remove unused member OrdersModel.on_account_pnl 2019-09-24 13:32:53 -05:00
Taha Afzal 4e58342677 Merge branch 'master' into Pyramid 2019-09-24 13:12:56 -04:00
Taha Afzal 5eeb5a534c Adding logs 2019-09-24 13:12:16 -04:00
Jake Norbut 016ddf9b69 fixing pay less definition 2019-09-24 08:21:56 -05:00
John Colvin 0cc5817932 expand synthetic leg columns to fit name 2019-09-24 01:04:28 -05:00
Michael Harding 032836dea4 Test updates 2019-09-23 15:54:33 -04:00
Taha Afzal f20c53bced Organized the code better 2019-09-23 14:08:21 -04:00
Kevin Darby a06461eb5e Merge branch 'master' of bitbucket.org:bluetradesys/spark into ice_exec3 2019-09-23 13:58:22 -04:00
Kevin Darby 34e7d6a617 remove ice bust handling 2019-09-23 13:57:43 -04:00
Kevin Darby 276e9ad0ef Merged in fix_expired_fill_crash (pull request #358)
Fix expired fill crash
2019-09-23 17:50:02 +00:00
Pedro Pinto 5968ac10d2 The fix is right, but the code was a bit clumsy. 2019-09-23 13:48:26 -04:00
Kevin Darby 31e44d8c10 Merge branch 'master' of bitbucket.org:bluetradesys/spark into ice_exec3 2019-09-23 13:03:20 -04:00
John Colvin 9bf7666c30 downgrade pnl rounding error Log assert to warning 2019-09-23 11:56:57 -05:00
Kevin Darby 8fdab4a510 note about expired securities in sod tests 2019-09-23 12:47:48 -04:00
Kevin Darby 385adaa1b0 Merge branch 'fix_expired_fill_crash' of bitbucket.org:bluetradesys/spark into ice_exec3 2019-09-23 12:36:16 -04:00
Kevin Darby f9506bc9ad Merge branch 'master' of bitbucket.org:bluetradesys/spark into ice_exec3 2019-09-23 12:36:00 -04:00
Kevin Darby b9fd0e2e28 in SIM you can trade an expired security and if we leave it out of this map
we will later attempt to add this fill twice while testing SOD because the test
asks to delete the fills db
2019-09-23 12:31:03 -04:00
Kevin Darby 6b5b517d70 slight nit in GLBXExecutionGateway 2019-09-23 12:29:38 -04:00
John Colvin 80850146c1 TableUpdate.AggregateLatest shouldn't share seed across subscriptions 2019-09-23 00:08:12 -05:00
John Colvin 0680dddab4 normalize line endings in TickUpDown.xaml 2019-09-22 15:22:57 -05:00
John Colvin 70aa62c0cf add border to DateTimePicker 'time' part view 2019-09-22 15:22:20 -05:00
John Colvin 06165b3842 SPARK-2534 Fills Form seems to always have SOD orders in there 2019-09-22 15:06:03 -05:00
John Colvin f21902d60d remove unused files AdminModelWrapper/PermissionFilter.cs 2019-09-22 14:46:52 -05:00
John Colvin a27f383b62 remove LoginContainer MEF Export consts (replace usages with UserTuple) 2019-09-22 12:58:46 -05:00
John Colvin 35d4fcc513 make UserTuple public (it's referenced in multiple assemblies) 2019-09-22 12:58:46 -05:00
John Colvin 8a96b00f64 add 'User' column to Synthetic Management window 2019-09-22 12:58:46 -05:00
John Colvin 2d06fd3d92 [non-functional] style cop/whitespace changes to SyntheticManagementDialogVM.cs 2019-09-22 12:58:45 -05:00
John Colvin 76050e0722 SyntheticManagement vm uses 'DataGridFilterHelper.hook_all' method to eliminate risk of omitting column filters 2019-09-22 12:58:45 -05:00
John Colvin a3f0c2fbf6 pass UserTuple to SyntheticManagement row (for imminent user column), remove dependency on securitymd 2019-09-22 12:58:45 -05:00
John Colvin 1ccc4c3746 add 'ShowLadderAutoLookupTag' to eschew securitymd depependency 2019-09-22 12:58:45 -05:00
John Colvin e5d85db888 SP-151 BTS user can view/edit all synths/algos 2019-09-22 12:11:15 -05:00
John Colvin e47b1c3048 [non-functional] style cop/whitespace changes in MDSource/Daemon.cs 2019-09-22 12:11:15 -05:00
John Colvin 039791a296 simplify AdminModel, api 'permission filters' use new UserTuple.Permissions enum 2019-09-22 12:11:15 -05:00
John Colvin e6884b6654 add 'Permissions' enum to UserTuple 2019-09-22 11:39:26 -05:00
John Colvin 8cbae28dd8 move UserTuple.cs into spark_api 2019-09-22 11:39:26 -05:00
John Colvin 010a1fecb1 remove unused function 'OrderFactory.subscribe_user_tuples' 2019-09-22 11:39:26 -05:00
Pedro Pinto ec1d925dbe Added to .gitignore 2019-09-22 08:25:10 -04:00
Kevin Darby 96bec55ee7 fix build, we will have to handle these ice cpps someplace else 2019-09-20 15:01:56 -04:00
Kevin Darby 424bb36fc7 update jakes script for ice cpps 2019-09-20 14:30:27 -04:00
Kevin Darby c24700195f fixed cpp coming from market data for ice, added the obligatory overrides 2019-09-20 14:15:27 -04:00
Jake Norbut f7184b0949 updating tests 2019-09-20 09:13:01 -05:00
John Colvin 633ebf38a2 restore original ComboBox default padding on the left 2019-09-19 18:58:19 -05:00
John Colvin 1eb8352b6b OrdersModel blocks GlbxIceberg orders from going out to non-glbx exchange 2019-09-19 17:21:48 -05:00
John Colvin 33c201b395 remove unused SparkTag.CreateOrder 2019-09-19 17:21:17 -05:00
Eric Harding 999973c349 upgrade websocketpp 0.7.0 to 0.8.1 (externals) 2019-09-19 14:59:09 -04:00
Eric Harding 4663ae9e4d SP-236 Disable websocketpp open_handshake timeout 2019-09-19 14:38:00 -04:00
Kevin Darby 34fc6af137 fix mview test 2019-09-19 14:17:53 -04:00
Kevin Darby 6cc25a7337 Merge branch 'master' of bitbucket.org:bluetradesys/spark into ice_exec3 2019-09-19 13:56:32 -04:00
Kevin Darby 0c9a9fcb5e git lfs 2019-09-19 13:56:01 -04:00
Kevin Darby 48b62f1cab new externals 2019-09-19 13:40:01 -04:00
Kevin Darby 5a0ceafa66 Merge branch 'master' of bitbucket.org:bluetradesys/spark into ice_exec3 2019-09-19 13:28:31 -04:00
Kevin Darby d31969606e Merge branch 'master' of bitbucket.org:bluetradesys/spark into ice_exec3 2019-09-19 13:27:52 -04:00
Kevin Darby 6c6fb74506 Merged in minimal_api_tests (pull request #348)
RTM. Minimal api tests

Approved-by: Pedro Pinto <pedro.pinto+atlassian@bluetradesys.com>
2019-09-19 17:26:14 +00:00
Pedro Pinto a69ed30e70 Updated release notes. 2019-09-19 13:19:52 -04:00
Eric Harding a654f302a2 Merged in SP-106-md-crashy (pull request #351)
SP-106 md crashy
2019-09-19 17:10:35 +00:00
John Colvin 9ca3285888 miniob 'CheckColumn' is visible 2019-09-19 11:56:47 -05:00
John Colvin d7d170f228 SP-181 Remove the option to enter manual fills of spreads 2019-09-19 11:23:36 -05:00
Eric Harding df4c3b9376 Merge branch 'master' of bitbucket.org:bluetradesys/spark into SP-106-md-crashy 2019-09-19 09:11:10 -04:00
Taha Afzal cf977befd1 odds and ends 2019-09-18 17:22:09 -04:00
Eric Harding 1d538b4cb0 Code review feedback. Checked DeleteValue 2019-09-18 17:04:38 -04:00
Pedro Pinto f21c9f96d1 Merged from prod 2019-09-18 16:25:35 -04:00
Pedro Pinto 16a71a9f63 Updated release notes. 2019-09-18 16:24:09 -04:00
Pedro Pinto b42febdf60 Documented OrderMatcher better. 2019-09-18 16:11:16 -04:00
Eric Harding 71915de4b0 sparkcmd CaseInsensitiveEnumValues 2019-09-18 15:47:53 -04:00
Kevin Darby facb3249d0 Merge branch 'minimal_api_tests' of bitbucket.org:bluetradesys/spark into ice_exec3 2019-09-18 15:24:51 -04:00
Kevin Darby f323efc61a Merge branch 'master' of bitbucket.org:bluetradesys/spark into ice_exec3 2019-09-18 15:24:14 -04:00
Eric Harding be5f54326e sparkcmd test should always respect test type (unit/system) 2019-09-18 15:16:28 -04:00
Kevin Darby a8689aee06 verified client api examples work 2019-09-18 15:13:53 -04:00
Kevin Darby 85b2d257a7 updated the example excel sheet, added some manual tests to vet api docs and excel 2019-09-18 14:57:40 -04:00
Michael Harding f49ca9f7bd Merged in system-tests (pull request #347)
System tests
2019-09-18 18:39:11 +00:00
Michael Harding 65cf042639 Merge branch 'system-tests' into ice_exec3 2019-09-18 13:45:26 -04:00
Michael Harding 6aae7831bc typo 2019-09-18 13:44:49 -04:00
Eric Harding 297233eae6 Clientbuild probably needs this too 2019-09-18 13:28:00 -04:00
Michael Harding 57526a5df5 merge system-tests into ice_exec3 2019-09-18 13:12:38 -04:00
Michael Harding 69dcbdd348 Set type in system tests 2019-09-18 13:08:49 -04:00
Eric Harding 0114dd0276 SP-106 MDConsumerHandle crash both managed+native 2019-09-18 12:58:15 -04:00
Michael Harding 7d26ff641e more ports 2019-09-18 12:20:26 -04:00
Michael Harding a8ffe3a6ec logging ports 2019-09-18 11:20:13 -04:00
Michael Harding bda135c435 Add more logging to system tests 2019-09-18 10:12:40 -04:00
Eric Harding ffd35aebac Enable btree_map.h on windows 2019-09-18 09:52:41 -04:00
Taha Afzal c9b2ac290c payup logic implemented 2019-09-17 22:10:53 -04:00
Pedro Pinto b92fed4f47 Merged from prod 2019-09-17 16:59:03 -04:00
Pedro Pinto 6d7290db63 Updated release notes. 2019-09-17 16:56:28 -04:00
Pedro Pinto 0d0cf11157 Fixed matching error in sim 2019-09-17 16:55:24 -04:00
Kevin Darby 0fa97aeb56 added a service call to clear the auth sessions list in case of keycode trouble 2019-09-17 16:43:24 -04:00
Kevin Darby d1422ddc58 fix auth tests 2019-09-17 16:36:16 -04:00
Taha Afzal 340d65a47c Merge branch 'master' into pyramid 2019-09-17 16:32:53 -04:00
Kevin Darby 51ffa7e7f7 set_mic for synthetics 2019-09-17 16:15:17 -04:00
Kevin Darby 2a89c3721b Merge branch 'master' of bitbucket.org:bluetradesys/spark into ice_exec3 2019-09-17 15:20:57 -04:00
Kevin Darby 0156bbfc46 fix id corner case 2019-09-17 15:06:04 -04:00
Taha Afzal f89fb76cb2 Merge branch 'master' into SP-232 2019-09-17 14:11:26 -04:00
Taha Afzal 16adb9ee18 Fixing SP-232 2019-09-17 14:09:34 -04:00
Pedro Pinto fd6eedda87 Fixed typo in release notes. 2019-09-17 13:10:21 -04:00
Pedro Pinto 1ef2b2f55d Updated release notes. 2019-09-17 11:44:51 -04:00
John Colvin e2cd1ec2f3 Merged in pnl_draft (pull request #344)
RTM Pnl draft
2019-09-17 15:22:30 +00:00
John Colvin 110a5f74de Merge remote-tracking branch 'origin/master' into pnl_draft 2019-09-16 22:38:35 -05:00
John Colvin 6d20c782ca add null check to FillTuple 2019-09-16 22:18:12 -05:00
John Colvin fa88ee6f68 PNL fills/order popups are filtered for visible rows (i.e., the item's account/sec pair must be visible) 2019-09-16 19:32:37 -05:00
Taha Afzal 22ef965840 Merge branch 'master' of bitbucket.org:bluetradesys/spark 2019-09-16 19:05:27 -04:00
Taha Afzal 09a19b702c Fixing SOD time's timezone issues 2019-09-16 19:05:21 -04:00
John Colvin c90915fb1c fix pnl 'selected total' orderbook popup input filter 2019-09-16 17:23:50 -05:00
Eric Harding 154a637ee1 Merge branch 'master' of bitbucket.org:bluetradesys/spark into SP-229-shell-crash-dumps 2019-09-16 17:34:36 -04:00
Kevin Darby 8b583fcbec Merge branch 'fix_server_bounce' of bitbucket.org:bluetradesys/spark into ice_exec3 2019-09-16 17:11:00 -04:00
Kevin Darby 48dfded132 Merge branch 'master' of bitbucket.org:bluetradesys/spark into ice_exec3 2019-09-16 17:09:52 -04:00
Kevin Darby baaa3c4f98 Fixed case where a non-super user shell denied market data after bring left up through a server restart 2019-09-16 16:28:53 -04:00
Kevin Darby 838550d78a entitlements are tricky 2019-09-16 16:15:38 -04:00
John Colvin 0fc2a55378 Merged in fills-root-algo (pull request #341)
RTM Fills root algo
2019-09-16 20:09:12 +00:00
Pedro Pinto 38b466d305 Updated release notes. 2019-09-16 16:08:41 -04:00
John Colvin 0052c88804 PNL fix filter on group working orders popup 2019-09-16 15:05:51 -05:00
Pedro Pinto 6d183e0db9 Merge branch 'master' into fills-root-algo 2019-09-16 16:01:06 -04:00
John Colvin ccbf1e1323 fix MiniOrderBookView 'base()' -> 'this()' typo 2019-09-16 14:58:32 -05:00
Michael Harding c3e43beada Merged in icons (pull request #337)
RTM Make icons more consistent
2019-09-16 19:56:37 +00:00
Kevin Darby bf8323e79b fixed ice entitlements 2019-09-16 15:53:50 -04:00
Pedro Pinto ab44da6a96 Merge branch 'master' into icons 2019-09-16 15:48:08 -04:00
John Colvin dbad27e97d discrete values filter tableupdate impl was selecting lazy items twice 2019-09-16 14:19:49 -05:00
Pedro Pinto 10656f7071 Merge branch 'master' into icons 2019-09-16 15:15:15 -04:00
Eric Harding ed00025a01 Merged in SP-214-provide-security-state-signal (pull request #338)
RTM: SP-214 provide security state signal

Approved-by: Pedro Pinto <pedro.pinto+atlassian@bluetradesys.com>
2019-09-16 19:13:15 +00:00
Pedro Pinto 7d076437a5 Updated release notes 2019-09-16 15:11:23 -04:00
John Colvin b7ee9aa208 Merge remote-tracking branch 'origin/master' into fills-root-algo 2019-09-16 13:58:40 -05:00
Pedro Pinto 601b989e75 Merge branch 'master' into SP-214-provide-security-state-signal 2019-09-16 14:55:33 -04:00
John Colvin 02c8714cfd change pnl defaults to use 'Mid' calc type and hide Selected/Total headers 2019-09-16 13:55:13 -05:00
John Colvin e25514b75e PNL closes filter popups on Apply/Clear click 2019-09-16 12:48:14 -05:00
John Colvin 0f05a45d0d organize PNL FilterStates members (use common pattern to break up sod/day/total/working/etc members) 2019-09-16 12:48:14 -05:00
Eric Harding 399e4bf654 SP-229 Detect unclean shell shutdown and automatically upload an error report 2019-09-16 13:48:12 -04:00
Eric Harding 5908b4478e Error reports should be logged on the client 2019-09-16 13:20:03 -04:00
John Colvin 8107b058b0 remove Same/Opposite pnl cacluation options 2019-09-16 12:14:24 -05:00
John Colvin 7d3efdb220 pnl supports 0 group cols (was hiding all rows in that case) 2019-09-16 12:02:05 -05:00
John Colvin e335c54f20 PNLSettingsVM - move anchor cols to the left, order wrt grouping hierarchy 2019-09-16 11:35:01 -05:00
John Colvin 5b748feb5c DIYGrid - set UseLayoutRounding=False in GridViewColumnHeader style 2019-09-16 11:09:08 -05:00
John Colvin a1b9bad321 don't use layout rounding in shell settings dialog 2019-09-16 10:58:51 -05:00
John Colvin e6ef795de7 pnl auxiliary popups open at the bottom left of the target cell 2019-09-16 10:45:29 -05:00
John Colvin aa88a0906d fix PopupAdorner initial position (when opening under target element, rather than mouse) 2019-09-16 10:44:40 -05:00
John Colvin 4b75aa6080 specify comparer for pnl working order pos cols 2019-09-16 10:23:32 -05:00
Kevin Darby e6ab7d825a fix fs build 2019-09-16 11:15:56 -04:00
John Colvin 7b5155f599 pnl default filtering: 'sec type = fut' and 'has day trades = true' 2019-09-16 09:50:26 -05:00
Kevin Darby c78e6e8315 rather large master -> ice merge 2019-09-16 10:43:19 -04:00
Eric Harding 44571a5af5 spark shell should dispose daemons 2019-09-16 10:41:58 -04:00
Eric Harding 7b833087e5 Merged in SP-233-wilson (pull request #342)
RTM: SP-233 wilson
2019-09-16 13:05:41 +00:00
Eric Harding 12f1e026d0 Update release notes 2019-09-16 09:05:10 -04:00
Eric Harding 762ce06f7c Merge branch 'prod' of bitbucket.org:bluetradesys/spark into SP-233-wilson 2019-09-16 09:00:14 -04:00
John Colvin 657973c2d4 pnl toggles group 'is_expanded' on double click 2019-09-15 20:05:15 -05:00
John Colvin c509669de9 hookup pnl grid background 2019-09-15 19:47:51 -05:00
John Colvin d79378aa28 initialize _enable_background_color in GridSettings default constructor (dropped line in master -> pnl_draft merge) 2019-09-15 19:42:44 -05:00
John Colvin 5799d5ed1e style cop method grouping in PNLVM 2019-09-15 19:24:06 -05:00
John Colvin 05a7f9fa72 most pnl columns are right aligned by default 2019-09-15 19:10:09 -05:00
John Colvin fef0143ee9 increase PNLSettings working long/short avg price col default width 2019-09-15 19:10:08 -05:00
John Colvin ece8a12f4a hook up cpp filter in PNLView.xaml 2019-09-15 19:10:08 -05:00
John Colvin 6758c94adf add 'security key' column to pnl 2019-09-15 19:10:04 -05:00
John Colvin 8930f59cd6 pnl wasn't saving cpp filter state (with ~50 columns, really helps to keep col-based members tightly organized) 2019-09-15 19:07:37 -05:00
John Colvin 967f789114 add security_key prop to PNL FilterStates (recategorize has_day_trades and cpp while we're at it) 2019-09-15 19:07:37 -05:00
John Colvin d1210b06cc fix pnl group-row sort 2019-09-15 19:07:34 -05:00
John Colvin caeda6c12a better categories for a few column enum vals in pnl window 2019-09-15 18:38:49 -05:00
John Colvin b6bf02045e DIYGrid sorting was checking wrong event args' 'Handled' 2019-09-15 12:23:33 -05:00
John Colvin 156561c976 hookup pnl group row [alternating]background colors 2019-09-15 12:02:54 -05:00
John Colvin 6a433b8cef add PartialConverter 2019-09-15 11:55:31 -05:00
John Colvin 1d9f0de409 add DynamicAlternationConverter 2019-09-15 11:53:41 -05:00
John Colvin 66b06d7190 PNLSettings invalidates _grid_cell_appearance when grid prop is assigned 2019-09-14 10:20:18 -05:00
John Colvin 9c160f5e41 define pnl auxiliary popup in xaml (also fixes overlapping text in title) 2019-09-14 10:15:06 -05:00
John Colvin 19f4bfb6ab MiniOrderBookView default constructor (so it can be declared in xaml) 2019-09-13 23:27:33 -05:00
John Colvin a06dc98b98 move 'FocusOnLoaded' attached prop from TextBoxBehavior -> Behavior (it's a general behavior) 2019-09-13 22:45:22 -05:00
John Colvin 95b6382a3a hook up pnl header row background setting 2019-09-13 19:19:27 -05:00
John Colvin 419e8550c1 PNLSettings 'with' method assigns props in same order that Equals impl checks equality (easier to spot incongruence) 2019-09-13 19:19:06 -05:00
John Colvin e29c6a1a22 PNLSettings Equals impl includes header_row_animations 2019-09-13 19:19:06 -05:00
John Colvin daceee2af9 remove 'create_dp' overload that was being called inadvertantly bc compiler interpretted assignment lambda to be a Func instead of Action 2019-09-13 18:57:14 -05:00
John Colvin 4594282f2a alphabetize non-proto props in PNLSettings 2019-09-13 18:21:12 -05:00
John Colvin 58ca003c94 ColorPicker (w/ opacity) - increase opacity % text min width so it doesn't expand at 100% (bc of the extra digit) 2019-09-13 17:45:54 -05:00
John Colvin 70c0d422c8 PNLCellAppearanceVM actually loads the font_color 2019-09-13 17:41:23 -05:00
John Colvin a04871f15f PNLSettings equals impl includes 'header_columns' 2019-09-13 17:02:58 -05:00
John Colvin f9b67c7ee4 PNL group/header font color settings work now 2019-09-13 17:01:36 -05:00
John Colvin 69fdec2866 add TypefaceProto (holds font family/weight) 2019-09-13 16:55:51 -05:00
Eric Harding 9052051872 Increase initial logging queue size. 128 is too small 2019-09-13 15:44:26 -04:00
Eric Harding ab5b4e17ad SP-233 SDK sample should avoid async due to hidden complexity 2019-09-13 15:44:12 -04:00
John Colvin 269b08e119 [non-functional] code style changes in TradingShellModule 2019-09-13 13:24:23 -05:00
John Colvin 7eb8f32ff7 TradingShellModule hides new/old pnl menu items if disabled in config 2019-09-13 13:20:57 -05:00
Eric Harding 62274f5129 Append windows event log and crash dumps to error reports 2019-09-12 17:18:47 -04:00
Eric Harding b5b5101faf SP-229 Allow ErrorReportService to accept an arbitrary list of files 2019-09-12 17:17:57 -04:00
Eric Harding bb232d8f1e Add easy convert to immutable function c# 2019-09-12 17:17:15 -04:00
John Colvin 3bb473f62d PNL account/totals only include spread positions in raw cols 2019-09-12 13:54:50 -05:00
Pedro Pinto 4295165427 Updated release notes. 2019-09-12 09:46:26 -04:00
John Colvin 10fbf30ac4 PNL - prettier 3rd level group background color (was mustard yellow, gross) 2019-09-11 18:35:21 -05:00
John Colvin bb0aedeb0d fills - [non-root] order type column filter shows badge color 2019-09-11 17:52:07 -05:00
John Colvin e01c7f5372 SP-227 Display originating top algo in the fills window 2019-09-11 17:46:39 -05:00
John Colvin d6cb22bdf8 add 'OrdersModel.on_fill_tuples_with_root' stream 2019-09-11 16:12:15 -05:00
Taha Afzal 9a1199a058 Better comments 2019-09-11 16:07:15 -04:00
John Colvin adcb5502b0 UserSettingsHub fills migration rules impl 2019-09-11 13:04:52 -05:00
Pedro Pinto 62f1911f35 Merge branch 'SP-220-raw-day-pos' into prod 2019-09-11 13:56:33 -04:00
Pedro Pinto d75c8af729 Updated release notes. 2019-09-11 13:53:03 -04:00
Taha Afzal 1b3f5bc8a6 Fixed a bug with reporting 2019-09-11 13:44:37 -04:00
Pedro Pinto da95ece9fc Merge branch 'SP-221-sound-alerts' into prod 2019-09-11 13:28:42 -04:00
John Colvin d6ff13dd00 [non-functional] style cop changes (i am ocd) 2019-09-11 12:23:24 -05:00
John Colvin 1124829aad UserSettingsHub migration rule impl uses IImmutableProperty to reduce chance of typos 2019-09-11 12:08:01 -05:00
John Colvin f9d98787a0 added IImmutableProperty interface and anonymous factory impl 2019-09-11 12:00:15 -05:00
Pedro Pinto deca2bedb5 Made GMI sftp settings empty for prod use. 2019-09-11 09:55:24 -04:00
Taha Afzal 1b767f6e5e Cleaning up 2019-09-09 18:03:07 -04:00
Taha Afzal fe647044f8 Adding comments to SpreaderUtils 2019-09-09 15:03:52 -04:00
John Colvin 5f52d81194 white space formatting in StateManager.cs 2019-09-09 13:13:33 -05:00
John Colvin 792a4bcace added 'transition_on_loaded' delegate param to StateManager.GoToState (to avoid overwriting a more recent target state) 2019-09-09 13:13:33 -05:00
John Colvin f012f4d70b remove unusued variable in 'StateManager.GoToState' 2019-09-09 13:05:07 -05:00
John Colvin aaca502500 add dispatcher thread name to assert log 2019-09-09 11:42:11 -05:00
John Colvin de64bd843c was adding account name twice to position tool tip in ladder 2019-09-09 10:40:21 -05:00
John Colvin af7897f9f3 pnl 'has day trades' col is visible by default 2019-09-07 19:25:16 -05:00
John Colvin 0defcce179 hookup pnl raw day pos hyperlink popups 2019-09-07 19:21:18 -05:00
John Colvin b69035acf7 PNL 'RemoveColumn/Animations' migration rules remove columns that are no longer in the columns enum (instead of removing specific, defined columns) 2019-09-07 19:21:18 -05:00
John Colvin 8e33343f9c include raw day pos filters in PNLFilterStates Equals impl 2019-09-07 19:08:18 -05:00
John Colvin 5f718750a3 hookup pnl raw day pos filters in 'build_predicate' extension 2019-09-07 19:08:06 -05:00
John Colvin 935227cfa2 PNLVM - fix some filter paths 2019-09-07 19:03:48 -05:00
John Colvin 940705a066 remove avg price delta columns from pnl window 2019-09-07 18:56:08 -05:00
John Colvin d2bfcf7603 remove avg price delta columns from new pnl 2019-09-06 20:04:03 -05:00
John Colvin ae4e6c2221 add SecurityType to pnl anchorable columns 2019-09-06 20:04:03 -05:00
John Colvin 2a85289c6a pnl settings dialog - bind anchor item checkboxes to vm (was hardcoded in xaml) 2019-09-06 20:04:03 -05:00
John Colvin 0047890f9d PNLSettings foreground animations shouldn't use partial opacity 2019-09-06 20:04:03 -05:00
John Colvin dab3b3cd80 impl pnl settings migration rule to add raw day pos columns 2019-09-06 20:03:56 -05:00
John Colvin 593533736b add IPNLSettingsMigrationRule interface, hookup in UserSettingsHub 2019-09-06 17:50:49 -05:00
John Colvin eb29368b80 impl raw day pos columns in pnl view/vm 2019-09-06 17:50:49 -05:00
John Colvin b93203e4b6 add raw day cols to PNLSettings 2019-09-06 17:50:49 -05:00
John Colvin f87c04a835 refactor add_missing_columns extension 2019-09-06 17:26:10 -05:00
Eric Harding a63657e0d5 SP-214 add doc comment for on_status 2019-09-06 16:06:01 -04:00
Eric Harding b702d8dc9e SP-214 simplify trading status for synthetic logic 2019-09-06 16:03:33 -04:00
Eric Harding b0e5a4929f SP-214 attempt to simplify calling securityTradingStatus 2019-09-06 16:02:02 -04:00
Kevin Darby 7d2695e602 Merge branch 'master' of bitbucket.org:bluetradesys/spark into ice_exec3 2019-09-06 11:46:40 -04:00
John Colvin 79a8a29bac LadderView.PositionToolTipConverter - restructure impl a bit, change comments 2019-09-05 19:07:00 -05:00
John Colvin 6aaed0e76e simplify LadderView.PositionToolTipConverter impl 2019-09-05 18:57:41 -05:00
John Colvin 8072eece66 SP-220 pr edit: added comment explaining confusing position display formatting 2019-09-05 18:37:33 -05:00
John Colvin 043d826442 GreaterThanTrigger IEquatable impl 2019-09-05 17:36:51 -05:00
John Colvin 3bf9fa08e5 SP-221 Deleting an alert with 'Not Between' causes the shell to crash 2019-09-05 17:32:19 -05:00
John Colvin 79a7b8504e SP-220 mview row raises invalidated event view when raw day pos changes 2019-09-05 17:01:50 -05:00
John Colvin ffd2dd22c2 SP-220 fix raw day pos tooltip in ladder 2019-09-05 16:58:46 -05:00
John Colvin 469e4636e3 overload ValueConverter.create for 4 generic input args 2019-09-05 16:53:22 -05:00
John Colvin 15b45b7494 Ladder was hiding the position button when only raw day pos was checked 2019-09-05 14:07:33 -05:00
Michael Harding edf9fd268f Merged master into icons 2019-09-05 14:59:40 -04:00
Michael Harding 9f1bae7d6f Make icons more consistent 2019-09-05 14:38:00 -04:00
John Colvin 52a35a56de add null check to ISettingsMigrationRule selector-wrapper impl 2019-09-05 12:42:56 -05:00
John Colvin 59338635f1 rename file PNLNormalizedDataVM.cs -> PNLHeaderRowVM.cs 2019-09-05 12:27:58 -05:00
John Colvin 0f3c0c2f24 remove PNLNormalizedDataVM class (no longer needed) 2019-09-05 12:27:58 -05:00
John Colvin fa76cad459 PNLRowCollectionView - remove some diagnostic code that is no longer needed 2019-09-05 12:27:54 -05:00
John Colvin b98d51cc55 PNLNormalizedDataVM doesn't need to perform net pos arithmetic (data already does) 2019-09-05 12:04:40 -05:00
John Colvin 1c10149a2c fix typo in PNLNormalizedData.ToString() 2019-09-05 12:00:13 -05:00
John Colvin 2ab063d5cd remove unused method 'PNLNormalizedData.create_nanless' 2019-09-05 11:57:19 -05:00
Eric Harding 030cf8a938 SP-214 Missed initialization of EventStream 2019-09-05 12:44:56 -04:00
John Colvin 2b8815c90d fix typo in PNL WorkingOrderData (change '<' to '<=') 2019-09-05 11:40:04 -05:00
John Colvin a7ee3b28ff [non-functional] normalize white space, remove dead comments in OrdersModel.cs 2019-09-05 11:14:59 -05:00
John Colvin 06af24666b Merge remote-tracking branch 'origin/master' into pnl_draft 2019-09-05 10:58:07 -05:00
Pedro Pinto d7a98a8a95 Updated release notes. 2019-09-05 11:44:49 -04:00
John Colvin f0a144e786 Merged in raw-day-pos (pull request #336)
RTM Raw day pos

Approved-by: Jake Norbut <jake.norbut@bluetradesys.com>
2019-09-05 15:22:53 +00:00
Jake Norbut c45f131dc0 mview settings manager should use mv grid defaults and not pnl 2019-09-05 10:15:35 -05:00
Jake Norbut b5a227f7aa I don't think we need this now that we have John's IxxxMigrations rules 2019-09-05 10:14:41 -05:00
Michael Harding b4f2de327a test updates 2019-09-05 10:08:20 -04:00
John Colvin 6bc5b35295 PNLSettings view 'header' cell background override disabled placeholder was on wrong row 2019-09-05 00:20:21 -05:00
John Colvin 562bb0423a PNLSettings view - add 'None' to header display dropdown items 2019-09-05 00:15:12 -05:00
John Colvin 122a2c6f53 PNLSettings - rename 'Selected/Total Row' -> 'Header Row' 2019-09-05 00:12:01 -05:00
John Colvin dbf6bc1bf8 PNLSettings view HeaderRowDisplay dropdown 2019-09-05 00:11:24 -05:00
John Colvin 569bcee7e7 EnumHelper.split_flags returns the default value by iteself if flag is 0 2019-09-05 00:05:23 -05:00
John Colvin 8e471af048 split PNLSettings viewmodels into separate files 2019-09-04 23:14:51 -05:00
John Colvin f7c8ceb88d SP-202 PNL feedback - get rid of checkboxes and selected row 2019-09-04 19:11:41 -05:00
John Colvin 48fca3a9cc PNLSettings HeaderRowDisplay defaults to 'Total' (hides SelectedTotal) 2019-09-04 19:10:02 -05:00
John Colvin adce1a40a8 SP-202 PNL feedback - reset to factory does not work 2019-09-04 18:59:53 -05:00
John Colvin 6f88e7585b SP-202 PNL feedback - make grouping the first tab in settings 2019-09-04 18:55:05 -05:00
John Colvin 7b0fd23b5b SP-202 PNL feedback - rename 'Waterfall' to 'Cascade' 2019-09-04 18:53:35 -05:00
John Colvin e433de5241 PNLSettings group/total headers animate foreground instead of background 2019-09-04 18:50:27 -05:00
John Colvin 8e1e96d9f8 fix merge (DIYGrid lost change that added Background/Border TemplateBindings) 2019-09-04 18:45:47 -05:00
John Colvin ff9c9e2d64 Merge branch 'master' into pnl_draft 2019-09-04 18:41:24 -05:00
John Colvin 70a1f0305e export mview 'sanitize' logic as ISettingsMigrationRules 2019-09-04 17:09:50 -05:00
John Colvin 6bb7348b54 edit TradeAlertsManualTest 2019-09-04 15:40:35 -05:00
John Colvin 1cfba93216 SP-210 Trade Alerts Manual Test 2019-09-04 15:12:06 -05:00
Kevin Darby ba33d9a657 Merge branch 'master' of bitbucket.org:bluetradesys/spark 2019-09-04 15:11:14 -04:00
Kevin Darby 5b2a6215a7 fixing tests 2019-09-04 15:09:56 -04:00
Eric Harding 9edb5625c1 Dorman Algo : Use the lower value when between entries in the step table 2019-09-04 14:41:59 -04:00
Kevin Darby a31ad90be4 shorten prorata parameter names by removing 'enable_' 2019-09-04 14:01:20 -04:00
Kevin Darby bddebfc25b fix some tests 2019-09-04 14:00:54 -04:00
John Colvin f184ec5ecf SP-218 add raw day pos column to mview 2019-09-04 11:45:23 -05:00
John Colvin b0a1d4f448 stack MarketViewView.Columns enum values vertically 2019-09-04 11:45:23 -05:00
John Colvin 5bcb75b15c SP-217 add raw day pos to ladder (expose via optional setting) 2019-09-04 11:45:23 -05:00
John Colvin 24ce565051 SP-213 add raw day pos column to original pnl window 2019-09-04 11:45:23 -05:00
Eric Harding 23d4e7f78d SP-214 Wire StatusEvent to IAlgoOrder/IAlgoServices 2019-09-04 11:49:12 -04:00
John Colvin d3aa696afb GridSettings 'add_missing_columns' extension 2019-09-04 10:30:35 -05:00
John Colvin e33028669d UserSettingsHub imports/applies IPAndLGridSettingsMigrationRules 2019-09-04 10:30:35 -05:00
John Colvin 81700b03c8 add ISettingsMigrationRule 2019-09-04 10:30:35 -05:00
Eric Harding 8e2092c3e2 SP-214 add status to MDSource.h 2019-09-04 10:39:31 -04:00
John Colvin 775ff3e2db PAndLWindow default settings was missing 'has day trades' col 2019-09-03 16:47:12 -05:00
Taha Afzal 69dcfdb2bd Delete parameter added 2019-09-03 16:57:41 -04:00
Eric Harding 51584e5e0f SP-214 Expose trading_status on MDConsumer. 2019-09-03 14:40:15 -04:00
Pedro Pinto 9f48b648b7 Added an option to run our FIX simulator standalone.
This is needed to run wire to wire speed trials.
2019-09-03 14:29:24 -04:00
Pedro Pinto f0376843db Updated CME logon file, made it so its always copied if in dev 2019-09-03 14:23:10 -04:00
Eric Harding cb46e853ee SP-214 map cme status to co2 status 2019-09-03 14:06:35 -04:00
Eric Harding 9e2ad000d4 Write exchange_status MDP3 2019-09-03 13:44:58 -04:00
Kevin Darby cb52c14db1 disable span by default 2019-09-03 10:17:14 -04:00
Taha Afzal 2b53a051d3 Presod local fills are deleted at startup, Modified the SOD test to test for this 2019-09-01 13:00:15 -04:00
Taha Afzal 768853bbe5 Merge branch 'master' of bitbucket.org:bluetradesys/spark 2019-08-30 18:30:15 -04:00
Taha Afzal cc40c523f9 Local fills are not applied to the SOD, Admin fills are applied to the SOD (if they havent been overwritten by the base) 2019-08-30 18:30:11 -04:00
Pedro Pinto c7fd8deabe Updated release notes. 2019-08-30 16:59:37 -04:00
Pedro Pinto 6a896586ce Added MD sequence number to order FIX. 2019-08-30 16:55:23 -04:00
Pedro Pinto c4f4a8ff4e Updated release notes. 2019-08-30 11:29:07 -04:00
Pedro Pinto 1cc594d3a4 Merged in SP-91-position-migration (pull request #331)
SP-91 position migration
2019-08-30 15:22:39 +00:00
Pedro Pinto 6725762fa1 Merged master 2019-08-30 11:20:18 -04:00
Eric Harding 2dd2b4e9b8 Merged in api_support (pull request #335)
Api support
2019-08-29 20:59:07 +00:00
Eric Harding 6c78a949bb Merge branch 'master' of bitbucket.org:bluetradesys/spark into api_support 2019-08-29 16:51:00 -04:00
Eric Harding ce0beafac3 CR feedback 2019-08-29 16:43:43 -04:00
Michael Harding b2f27e0a58 Manual fills updated after 1970 2019-08-29 16:24:52 -04:00
John Colvin a9152ff365 Merged in sound-alerts (pull request #332)
RTM Sound alerts
2019-08-29 19:59:31 +00:00
Michael Harding 9ea581367b Add timestamp to Position management 2019-08-29 15:58:33 -04:00
John Colvin b761e24dbc accidentally changed 'Recreate' icon (set it back to Beaker) 2019-08-29 15:51:04 -04:00
John Colvin ca8a148108 Merge remote-tracking branch 'origin/master' into sound-alerts-draft 2019-08-29 15:03:00 -04:00
John Colvin 53586d19df add comment abt accessing dispatcher in ThreadedWindowLauncher 2019-08-29 14:47:39 -04:00
Pedro Pinto 095e4bc325 Updated release notes. 2019-08-29 14:46:36 -04:00
John Colvin 5b8a5af7cd ThreadedWindowLauncher exits loop after the timeout 2019-08-29 14:42:58 -04:00
Pedro Pinto 6a8f2a4868 Updated release notes 2019-08-29 14:36:40 -04:00
John Colvin b7c9d282ea SP-212 (Alerts Feedback) - cancel button dismisses dialog 2019-08-29 14:18:15 -04:00
John Colvin 8cc61628e3 SP-212 (Alerts Feedback) - Initial dialog is too large 2019-08-29 14:15:44 -04:00
Jake Norbut 6f91d1a890 Merged in SP-211 (pull request #333)
RTM - Launcher window will always show a title in taskbar preview
2019-08-29 18:12:24 +00:00
John Colvin 548328dc41 regular settings dialog can use BTSDialog style (now that icon height/margin looks good) 2019-08-29 13:56:28 -04:00
John Colvin 12c864368d better icon margin/height in BTSDialog (Style) Template 2019-08-29 13:52:22 -04:00
John Colvin dd60692b28 better alerts icon 2019-08-29 13:35:43 -04:00
Michael Harding 9fc4b369bf Clear security dropdown 2019-08-29 13:22:53 -04:00
Eric Harding d12200e977 Allow a larger timeout for rpc connect in bts api 2019-08-29 13:17:57 -04:00
Jake Norbut 38941d9bd9 Launcher window will always show a title in taskbar preview 2019-08-29 10:36:11 -05:00
Pedro Pinto f59f6a54ce Merge branch 'SP-91-position-migration' of bitbucket.org:bluetradesys/spark into SP-91-position-migration 2019-08-29 11:29:30 -04:00
Pedro Pinto 727898fc9c Changed fills to use exchange provided timestamp. 2019-08-29 11:29:12 -04:00
Eric Harding f7b5eeb04c Increase default message queue size on windows 2019-08-29 10:49:38 -04:00
Michael Harding 908f924e28 Manual fills feedback - simple items 2019-08-29 10:33:40 -04:00
Taha Afzal 0ff2fbc4ff Modifying tests according to the limit changes 2019-08-28 22:24:54 -04:00
Taha Afzal 82535c915a Merge branch 'SP-91-position-migration' of bitbucket.org:bluetradesys/spark into SP-91-position-migration 2019-08-28 20:15:20 -04:00
Taha Afzal 038137d002 Cleaned up SOD time and modified the test 2019-08-28 20:15:15 -04:00
Pedro Pinto 031dd3779d Fixed windows build. 2019-08-28 19:04:08 -04:00
Pedro Pinto 5c552f4e50 Fixed windows build 2019-08-28 18:47:15 -04:00
Eric Harding 64d43be34a Add error checking to order sample 2019-08-28 15:56:27 -04:00
Eric Harding d544511993 Additional managed init cleanup 2019-08-28 15:47:36 -04:00
Pedro Pinto 5c2617d065 Merge branch 'master' into SP-91-position-migration 2019-08-28 14:35:43 -04:00
Pedro Pinto 27dfc14085 Updated release notes. 2019-08-28 14:32:24 -04:00
Pedro Pinto 8f43c2e172 Merge branch 'SP-175-bg_color' 2019-08-28 14:31:00 -04:00
Eric Harding e030518d60 Config bug: if configserver is down but we proceed (for unit tests or something) we don't get the right values 2019-08-28 14:25:37 -04:00
Pedro Pinto f794537868 Updated release notes. 2019-08-28 14:21:45 -04:00
Eric Harding 7a4cb105d8 Merged in entitlement_logging (pull request #327)
RTM: Add entitlement logging to everyone's favorite super long md log
2019-08-28 18:20:24 +00:00
Eric Harding 06e4e34625 Merged in SP-197 (pull request #328)
RTM  SP-197 Move onixs license file into license.h

Approved-by: Kevin Darby <kevin.darby@bluetradesys.com>
2019-08-28 18:19:47 +00:00
Jake Norbut 78be61c9ba PR suggestion - changing ISelectionHighlightListener.on_selection_fill's parameter method to be SolidColorBrush so we avoid casting 2019-08-28 13:11:48 -05:00
Jake Norbut d80045d7c0 PR suggestion - adding new _default_enable_background_color const rather than having random falses strewn throughout; good style catch John 2019-08-28 13:07:20 -05:00
Pedro Pinto 725a3dd76b Updated release notes. 2019-08-28 13:57:16 -04:00
Pedro Pinto 81e8acb459 Merge branch 'SP-174' 2019-08-28 13:54:19 -04:00
Pedro Pinto 9cc5a38213 Updated release notes 2019-08-28 13:40:01 -04:00
Pedro Pinto dd28d5375c Merge branch 'SP-163' 2019-08-28 13:32:03 -04:00
John Colvin 46c37059b2 TradeSource should not recycle List in .Scan extension 2019-08-28 13:25:09 -04:00
Jake Norbut b0bfcc861a fixing OrderBook template as well while we're in here 2019-08-28 12:14:28 -05:00
John Colvin 1e353c2a21 ThreadedWindowLauncher max_thread_count = Environment.ProcessorCount 2019-08-28 12:55:49 -04:00
Pedro Pinto e283d05d81 Merge branch 'prod' 2019-08-28 12:50:05 -04:00
Jake Norbut aaf90c5293 PR feedback - Hardening the RowSelectionAdorner 2019-08-28 11:42:09 -05:00
Michael Harding 4f5f73101d Merge branch 'SP-91-position-migration' into SP-150 2019-08-28 12:37:33 -04:00
Michael Harding e1a5c1e6cd Hide GMI upload 2019-08-28 12:35:53 -04:00
Taha Afzal e179f7e5a4 Some error handling (originating the algo from the wrong top spread) 2019-08-28 12:27:36 -04:00
Eric Harding 2ee0f0be2c buildspark.cmd should touch CMakeLists so it doesn't get lonely 2019-08-28 12:26:41 -04:00
Eric Harding 5bdaab0581 Add BTS.init() to init_spark lib and provide args 2019-08-28 12:26:03 -04:00
Jake Norbut 707b5cf016 PR suggestion - adding Flags to enum declaration 2019-08-28 11:03:25 -05:00
Jake Norbut f415cddf0b Merged in SP-208 (pull request #330)
SP-208 - no nullref when clearing empty discrete filter

Approved-by: Kevin Darby <kevin.darby@bluetradesys.com>
2019-08-28 15:52:57 +00:00
Jake Norbut 8c36b498a4 proposed release notes 2019-08-28 10:45:45 -05:00
Taha Afzal dba3747d98 Need more robust error checking, functionality works 2019-08-28 11:17:33 -04:00
John Colvin c03263ef0b SettingsModule - put global alerts menu item on top of workspaces 2019-08-28 11:14:15 -04:00
Jake Norbut 94baf15d01 Per John, adding this line back to repopulate items once again 2019-08-28 10:02:37 -05:00
John Colvin c36541cee0 GlobalAlertsDialog SizeToContent=Width 2019-08-28 10:39:07 -04:00
Jake Norbut 14aad6ece8 SP-208 - no nullref when clearing empty discrete filter 2019-08-28 08:48:34 -05:00
Michael Harding 088185d5ce Fix revert 2019-08-28 09:42:17 -04:00
Jake Norbut 08478a2663 don't skip new bool when serializing settings to disk 2019-08-28 08:01:23 -05:00
John Colvin 9fd88f2a86 model 'ToggleSwitch' style after windows 10 settings dialog toggle buttons 2019-08-28 00:30:48 -04:00
John Colvin 83b8f14aa0 added ShowGlobalAlerts SparkCommand to SettingsShellModule 2019-08-28 00:30:47 -04:00
John Colvin aba09e769b added GlobalAlertsDaemon 2019-08-28 00:30:46 -04:00
John Colvin 8de1fa00aa added GlobalAlertsView/VM 2019-08-28 00:30:46 -04:00
John Colvin d1960850e8 added Global\TradeAlertSettings 2019-08-27 18:48:39 -04:00
John Colvin b1714cbd83 SoundNotification IEquatable/Equals impl 2019-08-27 18:48:38 -04:00
John Colvin ed3a1a735e added TradeSource factory methods (creates IObservable<IReadOnlyList<TradeInfo>>) 2019-08-27 18:48:37 -04:00
John Colvin b6d1eb9773 set DIYGrid BorderBrush\Thickness TemplateBindings 2019-08-27 18:48:37 -04:00
John Colvin d39d7b8f47 added ColumnBase default constructor, made 'key' prop mutable so columns can be defined in xaml (snatched from pnl branch) 2019-08-27 18:48:36 -04:00
John Colvin fb4ffaeeb9 DIYGrid.SyncWithColumnGeometry impl (snatched from pnl branch) 2019-08-27 18:48:36 -04:00
John Colvin 19e4079864 add 'LoggerContext' (snatched from pnl branch) 2019-08-27 18:48:36 -04:00
John Colvin a38fb38f33 added DoublePredicateVM (will use in GlobalAlertsVM) 2019-08-27 18:48:36 -04:00
Jake Norbut 20df8a6597 if show_background, then set the background from the color popup, else default to the Fallback background color, transparent 2019-08-27 16:50:47 -05:00
Jake Norbut f90ef6e12c changing can we set the background color override to check for can_override_background_color 2019-08-27 16:49:30 -05:00
Jake Norbut b528e1c1ec background color default should be transparent and not black 2019-08-27 16:48:14 -05:00
Michael Harding 97a2ff9adf Sort securities 2019-08-27 17:30:11 -04:00
Jake Norbut d52ec704fb bind Foreground to font_brush 2019-08-27 15:14:49 -05:00
Jake Norbut e2d065f6b3 allow font color to change on bid/ask implied/direct/merged cols 2019-08-27 15:12:21 -05:00
Michael Harding 6454ea16ae Indicate validation errors in tab 2019-08-27 15:54:29 -04:00
Jake Norbut 298f9261b4 allow overrideable settings to not be overridden 2019-08-27 14:49:43 -05:00
Michael Harding 09805de03e Validate fills before allowing save 2019-08-27 15:23:17 -04:00
Pedro Pinto a0d3447a0d Merge branch 'SP-91-position-migration' of bitbucket.org:bluetradesys/spark into SP-91-position-migration 2019-08-27 14:05:24 -04:00
Pedro Pinto 14be87e22d Added unit test to validate is_expired logic. 2019-08-27 14:05:05 -04:00
Pedro Pinto e61f514c0b Fixed GMI test. 2019-08-27 14:01:06 -04:00
Michael Harding 5e84af4f8f Manual fills validation and style improvements 2019-08-27 13:51:52 -04:00
Pedro Pinto 5f75609d8d SP-180, Lean Redeploying After Detach/Attach 2019-08-27 13:33:34 -04:00
Pedro Pinto bd0e697ea3 Made the SFTP client use the name of the target in its temp file. 2019-08-27 13:28:07 -04:00
John Colvin 67d62f0d8c IPropertyWrapperVM.sync_with_models extension 2019-08-27 13:16:48 -04:00
John Colvin 1712069530 TradeMessage.price extension 2019-08-27 13:16:48 -04:00
John Colvin 2b12e7fee1 INotificationService.link_to_trades method/impl 2019-08-27 13:16:48 -04:00
John Colvin 0fb69c8beb PredicateBuilder.and_safe factory method (handles null args gracefully) 2019-08-27 13:16:47 -04:00
John Colvin 6f68c0f6a1 PredicateBuilder.greater/less_than_or_equal_to factory methods 2019-08-27 13:16:47 -04:00
John Colvin a9df42deec added SparkTag/Command to show GlobalAlerts dialog (not yet implemented) 2019-08-27 13:16:47 -04:00
John Colvin 258f4f394d added NotificationProcessor.process_items (handles multiple items rather than 1) 2019-08-27 13:10:38 -04:00
John Colvin d42ebd7ea5 added ExceptionAssert.Between method 2019-08-27 13:10:37 -04:00
John Colvin d9bb667351 added AppendTextConverter 2019-08-27 13:10:37 -04:00
John Colvin 8ef97d012a EnumHelper.split_flags requires all bits to match and be non-zero 2019-08-27 13:10:36 -04:00
John Colvin 76cc77485a added Side.to_aggressor extension 2019-08-27 13:10:36 -04:00
John Colvin 6572c7344d move TradeInfo into its own file 2019-08-27 13:10:36 -04:00
John Colvin 25dfa9a0a2 IEquatable impl for IPredicate impls 2019-08-27 13:10:36 -04:00
John Colvin 50f6ce9fb4 fix 'TOutter' typo 2019-08-27 13:10:36 -04:00
John Colvin cba1675da7 remove AnonymousMutablePredicate (don't need it) 2019-08-27 13:10:35 -04:00
John Colvin 3720a7728f added ThreadedWindowLauncher (will be used to launch GlobalAlertsDialog) 2019-08-27 13:10:35 -04:00
John Colvin ce26c2acaf reduce ComboBox default padding 2019-08-27 13:08:18 -04:00
Michael Harding 631964e8bd Add manual fills before validating 2019-08-27 12:41:09 -04:00
Jake Norbut 4ea32e06a9 fix ActionMenu binding in SimpleGrid template
(cherry picked from commit 3b25e181fa)
2019-08-26 16:26:42 -05:00
Jake Norbut 3b25e181fa fix ActionMenu binding in SimpleGrid template 2019-08-26 16:22:33 -05:00
Taha Afzal 3bd4dce5cb Spread positions limits can be optionally not enforced 2019-08-26 16:34:51 -04:00
Eric Harding 880dac06b9 SP-197 factor common code between onixs cme/ice 2019-08-26 15:31:44 -04:00
Pedro Pinto cb6e004931 SP-206, expiration predicate takes SOD into account 2019-08-26 14:00:17 -04:00
Kevin Darby c19aae91a6 added checkbox for ignoreSpreadPositionLimits 2019-08-26 13:54:19 -04:00
Kevin Darby 2194ea027f added default for ignoreSpreadPositionLimits 2019-08-26 13:33:59 -04:00
Taha Afzal ded84cfb1c Merge branch 'SP-91-position-migration' of bitbucket.org:bluetradesys/spark into SP-91-position-migration 2019-08-26 13:12:21 -04:00
Taha Afzal 0464b61de5 Optionally ignore spread posiiton limits 2019-08-26 13:12:15 -04:00
Michael Harding 7cbfc4d7d7 Merge branch 'SP-91-position-migration' into SP-150 2019-08-26 10:56:04 -04:00
Eric Harding af83516e38 Add user to KEYCODE logging 2019-08-26 10:22:48 -04:00
Michael Harding 8f4f0649a6 Comment out position tab 2019-08-26 09:32:40 -04:00
Taha Afzal 68834e2a6d SP-186 2019-08-25 15:49:16 -04:00
Taha Afzal 3e7627ac24 Almost done, need to hook up hedging (cover) and parameter change 2019-08-24 13:08:26 -04:00
Pedro Pinto 3181501210 Allowed GMI parser to skip option positions. Fixed default conf file 2019-08-23 17:25:39 -04:00
Pedro Pinto 0cec54dd62 Merge branch 'master' into SP-91-position-migration 2019-08-23 16:28:07 -04:00
Pedro Pinto 1766feebcb Fixed SP-157, starting up with 0 fills is no longer a problem. 2019-08-23 16:25:15 -04:00
Eric Harding e2d10bc518 SP-197 Move onixs license file into license.h 2019-08-23 15:07:30 -04:00
Eric Harding aacc5d8d27 add entitlement logging to everyone's favorite super long md log 2019-08-23 11:50:59 -04:00
Eric Harding 0ddf145ef9 Merged in settingsmanager_bugfix (pull request #319)
RTM: Settingsmanager : handle more than 9 users
2019-08-23 01:50:48 +00:00
Eric Harding e7ee32b3df SP-199 Apply cash_per_point overrides in SecurityMapper 2019-08-22 12:48:40 -04:00
Eric Harding fc41203f28 merge master 2019-08-22 12:40:35 -04:00
Pedro Pinto 13009a6d90 Fixed clang build 2019-08-22 12:00:05 -04:00
Pedro Pinto fa55a61ef3 Merge branch 'prod' of bitbucket.org:bluetradesys/spark into prod 2019-08-22 11:43:08 -04:00
Pedro Pinto e832252669 Merge branch 'master' of bitbucket.org:bluetradesys/spark 2019-08-22 11:41:30 -04:00
Pedro Pinto 31980f7c14 Updated release notes. 2019-08-22 11:41:14 -04:00
Pedro Pinto d63ee80f94 Fixed up internal tool only pp uses. 2019-08-22 11:40:53 -04:00
Jake Norbut ca69e11fff Merged in SP-190 (pull request #325)
use Spreader AlgoFormat when security is synthetic

Approved-by: John Colvin <john.colvin@bluetradesys.com>
2019-08-22 15:38:17 +00:00
Eric Harding 9d202906f0 Merged in SP-184-add-display-factor-mapping (pull request #326)
SP-184 add display factor mapping

Approved-by: Pedro Pinto <pedro.pinto+atlassian@bluetradesys.com>
2019-08-22 15:27:04 +00:00
Pedro Pinto 968dd5a4d3 Merge branch 'prod' 2019-08-22 11:03:09 -04:00
Pedro Pinto 30cb1fd800 Updated externals subrepo pointer 2019-08-22 11:02:35 -04:00
Pedro Pinto 38eb122bbc Updated docker subrepo pointer 2019-08-22 11:01:51 -04:00
Taha Afzal 1b043f77cb Basic scaffolding in place for pyramid algo, shows up in the UI 2019-08-22 11:01:42 -04:00
Eric Harding e2e31d310f SP-184 Update SOM price mult 2019-08-22 10:55:02 -04:00
Eric Harding 6890a61b26 Add SOM display factor to defaults 2019-08-22 08:51:29 -04:00
Eric Harding 36828a979f Add std::optional stand-in for _WIN32 2019-08-21 18:40:26 -04:00
Eric Harding 57bf60e6df Extract parse_enum<T> for parsing protobuf enum to optional<T> 2019-08-21 18:40:26 -04:00
Eric Harding 8e3a83d314 SP-184 Revenge of Mapping Part IV 2019-08-21 18:40:26 -04:00
Jake Norbut dc43d25c53 use Spreader AlgoFormat when security is synthetic 2019-08-21 15:54:23 -05:00
Jake Norbut 068e762f44 PR feedback - Workspaces are now Topmost true; gret suggestion Eric! 2019-08-21 11:28:19 -05:00
Jake Norbut 845fa99bd0 swapping these statements so no NullRef 2019-08-21 10:48:48 -05:00
John Colvin 2b5403bbd5 Merged in sorted-wrapper-crash (pull request #324)
SP-188 DiscreteValuesFilterVM SortedWrapper crash
2019-08-21 15:34:50 +00:00
John Colvin c9ff3e1bb3 SP-188 DiscreteValuesFilterVM SortedWrapper crash 2019-08-21 10:21:18 -05:00
Pedro Pinto c60ada3c78 Merge branch 'SP-91-position-migration' of bitbucket.org:bluetradesys/spark into SP-91-position-migration 2019-08-20 20:18:14 -04:00
Taha Afzal ed7790bc0c Admin day positions hooked up 2019-08-20 16:10:12 -04:00
Jake Norbut 63434516f8 quoting workspace names in confirmation dialogs 2019-08-20 14:44:14 -05:00
Jake Norbut 8d5715d510 adding comment 2019-08-20 14:37:29 -05:00
Jake Norbut e8b1786411 splitting date and time in UI into separate columns; formatting DateTime is now done in Style 2019-08-20 14:24:07 -05:00
Jake Norbut b2be4c58c4 Workspaces ComboBox now has a table-like appearance 2019-08-20 13:43:10 -05:00
Jake Norbut 380d263c5e stylizing ComboBox for a 2 column layout 2019-08-20 13:01:09 -05:00
Jake Norbut 9a13fb3626 adding LastSaveTime to VM for use in UI 2019-08-20 13:00:39 -05:00
Pedro Pinto 924eb31d1d Merged 2019-08-20 13:36:22 -04:00
Jake Norbut a8cd07e4d4 relocating commands here, adding confirmations, etc 2019-08-20 10:16:21 -05:00
Jake Norbut aa3dda2c57 adding DisplayName property that displays last save info if available 2019-08-20 10:15:34 -05:00
Jake Norbut 4e78938827 adding last_save_lldatetime ulong to proto; populing said field in save_workspace 2019-08-20 10:14:45 -05:00
Jake Norbut 02062ee07b removing commands 2019-08-20 10:13:40 -05:00
Jake Norbut ed10545d8a Removing no longer valid VisualState changes 2019-08-20 10:12:41 -05:00
Jake Norbut 1335813031 bringing order to Workspaces dialog UI 2019-08-20 10:10:30 -05:00
Michael Harding cacf3933be GMI file Upload 2019-08-20 11:09:28 -04:00
Taha Afzal f7b89b3d39 Flling the AdminServiceUtils::get_clearing_account_map stub 2019-08-19 17:13:00 -04:00
Eric Harding 14cbd4a174 ICE: make settlement price conditional on onMarketSnapshot 2019-08-19 16:30:37 -04:00
Taha Afzal d86e7c4ad2 Adding price multiplier to GMI_SymbolMap 2019-08-19 16:17:49 -04:00
John Colvin 6e3e4e1385 OrdersModel.on_pnl uses TableCheckedAutoCorrect() to avoid crashing due to bug in security join 2019-08-19 14:56:25 -05:00
John Colvin 0864925031 TableCheckedAutoCorrect diagnostic method 2019-08-19 14:56:25 -05:00
John Colvin d122d5704b ColorPickerPopup disabled animation 2019-08-19 13:15:00 -05:00
John Colvin 8a1a75098e organize ComboBox color resources in Colors.xaml 2019-08-19 13:15:00 -05:00
John Colvin 7063035e7b set ColorPickerWithOpacitySlider label column MinWidth, so slider's width doesn't react to text width changes 2019-08-19 13:15:00 -05:00
John Colvin 0db69f1b1b guard against potential null ref 2019-08-19 13:15:00 -05:00
John Colvin efa07fe96e impl new PNL settings dialog 2019-08-19 13:15:00 -05:00
John Colvin a36f9278d5 added DataTypeTemplateSelector 2019-08-19 13:15:00 -05:00
John Colvin 727f39b6a6 KeyedTemplateSelector 'TryMatchType' fallback behavior 2019-08-19 13:15:00 -05:00
John Colvin d0c978b71c ColorPickerPopupVM initailizes palettes lazily 2019-08-19 13:15:00 -05:00
John Colvin 6e9d164d32 added ColorPickerPopup.bind_opacity_to_alpha flag and behavior impl 2019-08-19 13:15:00 -05:00
John Colvin 50a96fc22a PopupControl Width TemplateBinding 2019-08-19 13:15:00 -05:00
John Colvin c6499976a9 config to toggle animations, and pause/resume buttons in new pnl window 2019-08-19 13:15:00 -05:00
John Colvin 4b8ca8d97e add comment explaining why ColumnBase.create() should not access dp store 2019-08-19 13:15:00 -05:00
John Colvin 7e77e510fc SP-47 Revamp PnL form 2019-08-19 13:15:00 -05:00
John Colvin bd24381986 made ExpressionSnakeToTitleCaseConverter (for pnl rules text) 2019-08-19 13:14:59 -05:00
John Colvin 5830eee68d CoreExpressionParser casts decimals to doubles (for pnl rules, wrt PNLNormalizedData) 2019-08-19 13:14:59 -05:00
John Colvin f3928f58dd added CoreExpressionEvaluator.try_create/validate methods (for pnl rules, and potential use down the road) 2019-08-19 13:14:59 -05:00
John Colvin 72d57b242e ToArray() extension for IList that accepts selector param 2019-08-19 13:14:59 -05:00
John Colvin 9a6e43e4a4 added static 'editable_columns' prop to OrderBookColumns, for easier miniob creation 2019-08-19 13:14:59 -05:00
John Colvin ffb443fcb2 added OrderBookVM constructor to specify iobservable orders_source arg 2019-08-19 13:14:59 -05:00
John Colvin f22e68f4bc added OrderDataHelper.PriceComparers for double and decimal 2019-08-19 13:14:59 -05:00
John Colvin 09f08f0a57 added error margin/epsilon comparer to MathUtils 2019-08-19 13:14:59 -05:00
John Colvin 53ca6aade8 added 'RealPrice' dp to PriceEntryCommitControl, which updates the 'prospective price' if the control doesn't have KeyboardFocus 2019-08-19 13:14:59 -05:00
John Colvin b968ebe492 (Simple)GridColumnSettingsVM were not properly clearing font/color weight overrides 2019-08-19 13:14:59 -05:00
John Colvin bbef942f86 ColumnGeometry.visible_width should not return negative value 2019-08-19 13:14:59 -05:00
John Colvin 7859b7923e hook up DIYGrid.ColumnBase 'is_visible' prop 2019-08-19 13:14:59 -05:00
John Colvin 8202b51cb9 correct ScrollViewerCorrector 2019-08-19 13:14:59 -05:00
John Colvin ddd41ab317 add ScrollViewer to DragDropListBox ControlTemplate 2019-08-19 13:14:59 -05:00
John Colvin d175a53ef8 added TriggerAnimation facilities for DIYGrid 2019-08-19 13:14:59 -05:00
John Colvin 904e238a78 DIYGridAnimationAdorner supports GroupItems 2019-08-19 13:14:59 -05:00
John Colvin 0fb1425766 refactor MappedDictionary.create, to avoid ambiguity in untyped lambdas 2019-08-19 13:14:59 -05:00
John Colvin 2104fd5ad8 add background_override prop to GridColumnSettings 2019-08-19 13:14:59 -05:00
John Colvin 26a58e82bf add argb prop to NullableColorProto 2019-08-19 13:14:59 -05:00
John Colvin 01e96c8241 added 'argb_color' uint extension (like rgb_color, but includes alpha byte) 2019-08-19 13:14:59 -05:00
John Colvin ab931bb527 add pause icon 2019-08-19 13:14:59 -05:00
John Colvin e756897f88 Price formatting delegates 2019-08-19 13:14:58 -05:00
John Colvin 05ea25a86f DIYGrid '_header_frozen' needs to be hidden when no frozen cols (still 1.6 pixels wide) 2019-08-19 13:14:58 -05:00
John Colvin a6ab49a911 normalize namespaces in DIYGrid.xaml 2019-08-19 13:14:58 -05:00
John Colvin 33ee7ac114 DIYGrid ColumnHeaders don't hide HeaderContent behind filter/sort icons 2019-08-19 13:14:58 -05:00
John Colvin 61981a0ea1 refactor ObservableAutoWrapper.connect/connect_item_hooks 2019-08-19 13:14:58 -05:00
John Colvin 204e9383fa added MutableWrapper impl to MappedDictionary 2019-08-19 13:14:58 -05:00
John Colvin d424032757 added 'wrap_selector()' util to CollectionHelper (the wrapper is an ICollection impl) 2019-08-19 13:14:58 -05:00
John Colvin 0fcdf3f4ff added 'FromEventThrottle()' to ObservableExtensions 2019-08-19 13:14:58 -05:00
John Colvin 1b48739e1e added 'ReverseWrapper()' to ListExtensions 2019-08-19 13:14:58 -05:00
John Colvin 8b96b1d835 make ExpanderToggleButton customizable by overriding default togglebutton style key 2019-08-19 13:14:58 -05:00
John Colvin 3569500111 TableUpdate 'Operate' extension 2019-08-19 13:14:58 -05:00
John Colvin 05cfcb5648 TableUpdate 'BufferTable' extension 2019-08-19 13:14:58 -05:00
John Colvin e425064730 TableUpdate 'GroupTable' extension 2019-08-19 13:14:58 -05:00
John Colvin 4a50e7f86d made System.Linq style 'Cast/Select' extensions for ObservableCollection 2019-08-19 13:14:58 -05:00
John Colvin 15cbacd1d2 WPFHelper.measure_visual_content should never return infinity for width/height 2019-08-19 13:14:58 -05:00
John Colvin cdf4a63ae8 HelpButton shouldn't overwrite the ToolTip ContentTemplate (bind style to dynamicresource to support override without breaking existing use) 2019-08-19 13:14:58 -05:00
John Colvin f35a674b9f impl TableUpdate FullJoin 2019-08-19 13:14:58 -05:00
John Colvin 03a4691bc0 added some TableUpdate diagnostic utils 2019-08-19 13:14:58 -05:00
John Colvin a990eac146 NumericSignBrushConverter uses new UniversalNumericComparer to support cross type comparisons 2019-08-19 13:14:58 -05:00
John Colvin 27f06d0f9d move NumericSignBrushConverter.cs into Converters\Numeric dir 2019-08-19 13:14:58 -05:00
John Colvin 7a05ae1714 fix TextCell (remake) 2019-08-19 13:14:58 -05:00
John Colvin 72549a7bcb redo HyperlinkCell (alignment/measurement doesn't work right outside of the HighPerformanceRow) 2019-08-19 13:14:58 -05:00
John Colvin 4f46aa5360 add PopupAdorner.StayOpen dp 2019-08-19 13:14:58 -05:00
John Colvin b07e985e8b fix typo in PopupAdorner: 'Botton' -> 'Bottom' 2019-08-19 13:14:58 -05:00
John Colvin 0c072b018e adjust mini ob 'Select All' checkbox alignment after stretching DIYGrid ColumnHeader content 2019-08-19 13:14:58 -05:00
John Colvin d7456c0528 abstracted out ladder's thread id logic into ShellWindowThreadIDProvider (max thread count = Environment.ProcessorCount for each window type) 2019-08-19 13:14:57 -05:00
John Colvin 60c5159a4a made 'property change detector' that uses prop getter delegate rather than PropertyInfo.GetValue for better performance 2019-08-19 13:14:57 -05:00
John Colvin 7388472f6a ObjectSnapshot.property_table initializes observer on Subscribe 2019-08-19 13:14:57 -05:00
John Colvin c24c31d8d3 DIYGrid features for pnl: 1) select GroupItems, 2) SyncWithColumnGeometry behavior allows Grid(panels) to mirror the DIYGrid's column layout 2019-08-19 13:14:57 -05:00
John Colvin be006051b5 rename 'GroupItem' -> 'HierarchicalGroupItem' to avoid name conflict with System.Windows.Controls.GroupItem 2019-08-19 13:14:57 -05:00
John Colvin 4590dbc056 vertically align min/max/close buttons in BTSWindowTitleTemplate 2019-08-19 13:14:57 -05:00
John Colvin b5e751e625 remove unused 'hook_filters' fns 2019-08-19 13:14:57 -05:00
John Colvin b5a8098d9e IntMinMax (filter) protos impl IEquatable 2019-08-19 13:14:57 -05:00
John Colvin 3d1de2849c added some common DiscreteValuesFilterVM factory fns 2019-08-19 13:14:57 -05:00
John Colvin 887850a612 fix vertical alignments in GridSettingsView 2019-08-19 13:14:57 -05:00
Pedro Pinto 0d910d6f6e Cleaned up docs. 2019-08-19 10:33:08 -04:00
Pedro Pinto f1fe8226b5 Cleaned column references in money parser. 2019-08-19 10:07:25 -04:00
Pedro Pinto d4cd9d5399 Cleaned column references in GMI parser. 2019-08-19 10:00:44 -04:00
Pedro Pinto 3a8d3e0104 Use CTPRIC consistently as the source of trade price. 2019-08-19 10:00:22 -04:00
Taha Afzal a053609cc9 Merge branch 'SP-91-position-migration' of bitbucket.org:bluetradesys/spark into SP-91-position-migration 2019-08-16 22:13:41 -04:00
Taha Afzal 6b311883a5 Fixed the bug which was preventing the GMI imported rows to be to shown in the PNL UI 2019-08-16 22:13:36 -04:00
Pedro Pinto c8e3258544 Broke the update cycle between money file download and admin changes. 2019-08-16 21:35:37 -04:00
Taha Afzal a24e814182 Added more logs 2019-08-16 19:33:54 -04:00
Taha Afzal 417413e8c0 Merge branch 'SP-91-position-migration' of bitbucket.org:bluetradesys/spark into SP-91-position-migration 2019-08-16 17:46:13 -04:00
Taha Afzal 1090422fa2 base pos tests 2019-08-16 17:46:09 -04:00
Pedro Pinto ff753b0550 Added an option to map GLBX to SIM in GMI import. 2019-08-16 16:25:46 -04:00
Taha Afzal 74f2e2ac50 Merge branch 'SP-91-position-migration' of bitbucket.org:bluetradesys/spark into SP-91-position-migration 2019-08-16 15:07:53 -04:00
Taha Afzal ffbed31b33 Added a basic base position text, and logs when base positions ar eupdated 2019-08-16 15:07:49 -04:00
Kevin Darby 4992d2dab6 Implemented set_cash_balance_batch
made defaults/position_cfg build
2019-08-16 14:55:34 -04:00
Taha Afzal 88dbfd4346 Merge branch 'SP-91-position-migration' of bitbucket.org:bluetradesys/spark into SP-91-position-migration 2019-08-16 13:40:10 -04:00
Taha Afzal 2c1cf5f2e0 tests for sd 2019-08-16 13:39:58 -04:00
Pedro Pinto 3d6e6ea7db Money file download code complete. 2019-08-16 12:34:02 -04:00
Pedro Pinto 73d1f67dcd Added helper class to share download logic. 2019-08-16 11:29:09 -04:00
Pedro Pinto ebb427dc90 Merge branch 'SP-91-position-migration' of bitbucket.org:bluetradesys/spark into SP-91-position-migration 2019-08-16 09:59:03 -04:00
Pedro Pinto 74bed6275a Added skelleton for money file download. 2019-08-16 09:50:15 -04:00
Taha Afzal 20f65a9196 Name changed (unnormalized to raw) 2019-08-16 09:45:36 -04:00
Taha Afzal 69208bf347 Merge branch 'SP-91-position-migration' of bitbucket.org:bluetradesys/spark into SP-91-position-migration 2019-08-15 23:43:59 -04:00
Taha Afzal 7c9eac2803 More PositionMap tests 2019-08-15 23:43:53 -04:00
Pedro Pinto 2039be54df Added money file parser. 2019-08-15 22:00:53 -04:00
Pedro Pinto 221f24827b Refactored. 2019-08-15 20:47:50 -04:00
Jake Norbut 5e0f1d450c removing unused property 2019-08-15 15:49:26 -05:00
Jake Norbut ec4f88c68f having row selection adorner reactor to selection changed events rather than key|mouse up|down 2019-08-15 15:48:59 -05:00
Pedro Pinto cad611104b Moved some files around. 2019-08-15 16:37:48 -04:00
Jake Norbut fe179d44f2 RowSelectionAdorner now responds to KeyUp (CTRL-A for example) 2019-08-15 15:15:07 -05:00
Jake Norbut c4866253b8 need a KeyUp here 2019-08-15 15:14:33 -05:00
Pedro Pinto 932b185769 Merge branch 'SP-91-position-migration' of bitbucket.org:bluetradesys/spark into SP-91-position-migration 2019-08-15 16:13:32 -04:00
Pedro Pinto a3e4576165 Allowed for multiple records for the same security in gmi file. 2019-08-15 16:13:09 -04:00
Jake Norbut 0a1cf0198d sending my NullableColorOpacityProto to /dev/null 2019-08-15 14:20:59 -05:00
Jake Norbut 6b97d55927 adding show_background_color to main GridSettingsVM so that OB bg color settings are kept hidden for now; misc comment 2019-08-15 14:09:47 -05:00
Taha Afzal 2780d6da0b Basic tests 2019-08-15 15:08:20 -04:00
Jake Norbut 2e831aa90e fixing alpha in column-level background override 2019-08-15 13:27:29 -05:00
Jake Norbut ad819dca68 can just use rgb_color() now that Popup is in alpha enabled mode 2019-08-15 13:27:04 -05:00
Jake Norbut 14f2ae481a selection highlight and background color picker popupsnow make use of the new alpha hotness 2019-08-15 10:34:31 -05:00
Jake Norbut c222181730 ColorOpacityProto can now spit out a Color with the appropriate alpha bytes 2019-08-15 10:33:42 -05:00
Jake Norbut d59f7a5bb1 new alpha-compliant ColorPickerPopupVM from John 2019-08-15 10:32:32 -05:00
Jake Norbut 0d4f97a023 visiblity of bg color Column-level override UI is now linked to GridSettings enable_background_color as well 2019-08-15 09:11:47 -05:00
Jake Norbut 6603e8ad86 another sanitization spot 2019-08-15 08:37:44 -05:00
Kevin Darby 632a86f670 Merge branch 'prod' of bitbucket.org:bluetradesys/spark 2019-08-15 09:35:33 -04:00
Taha Afzal cdbda8250f 'Fixing' the test (the test is broken, fill really fix it in the subsequent push) 2019-08-14 22:14:54 -04:00
Taha Afzal be6c2f8b35 Fixing merge conflict 2019-08-14 21:48:07 -04:00
Taha Afzal ddaf029cc7 Cleaned up the SODPosition file and added scaffolding for tests 2019-08-14 21:45:24 -04:00
Pedro Pinto fae994c057 Fixed a bug in gmi parser. 2019-08-14 21:03:06 -04:00
Pedro Pinto d72796394d Made GMI parser more configurable and more articulate. 2019-08-14 20:54:03 -04:00
Pedro Pinto a3dc6ebc2e Dropped non existing docs from SDK build. 2019-08-14 19:43:35 -04:00
Pedro Pinto 8278a20b95 Adjusted to new GMI file format. 2019-08-14 19:17:34 -04:00
Pedro Pinto 88401f0c27 Merge branch 'SP-91-position-migration' of bitbucket.org:bluetradesys/spark into SP-91-position-migration 2019-08-14 18:58:36 -04:00
Pedro Pinto 16493a9919 Made download more robust. 2019-08-14 18:58:03 -04:00
Jake Norbut 5c9c75463c GridSettings background_color should be a uint (can be tranparent by deafult), and not a NullableColorProto; fml 2019-08-14 17:39:03 -05:00
Jake Norbut 5f6742f1db adding enable_background_color to GridSettings and all the right spots 2019-08-14 16:48:08 -05:00
Taha Afzal ccb050c8b8 SP-182, Implement clearing to bts account lookup in AdminServiceUtils 2019-08-14 16:55:40 -04:00
John Colvin 43fd07dcfa Merged in SOM-ticks (pull request #320)
SPARK-1715 Handle fractional numerator tick sizes

Approved-by: Kevin Darby <kevin.darby@bluetradesys.com>
2019-08-14 20:43:00 +00:00
John Colvin efcb4f471c fix config toggle for som ticks 2019-08-14 15:40:23 -05:00
John Colvin d2f2e03e64 [SPARK-1715] config toggle for som ticks fix 2019-08-14 15:31:30 -05:00
Jake Norbut ea2aee5044 utilzing new argb 2019-08-14 15:04:40 -05:00
John Colvin cfeba74900 SPARK-1715 Handle fractional numerator tick sizes 2019-08-14 14:50:42 -05:00
Kevin Darby cc3353e243 messed up the externals 2019-08-14 15:42:16 -04:00
Kevin Darby 683b85c66b subrepos 2019-08-14 15:25:27 -04:00
Kevin Darby 789710d841 Merge branch 'master' of bitbucket.org:bluetradesys/spark into ice_exec3 2019-08-14 15:25:19 -04:00
Jake Norbut 9a76d9c857 argb-ness from John 2019-08-14 14:21:58 -05:00
Jake Norbut 231f596ad7 switching to NullableColorProto in wrap up attempt 2019-08-14 14:17:33 -05:00
Jake Norbut 41bc4f7950 re-generated conf with SOM and latest from CME ftp 2019-08-14 11:51:07 -05:00
Jake Norbut 963bd15b35 adding SOM manual list; CME does not publish SOM data in their ftp 2019-08-14 11:50:24 -05:00
Jake Norbut 3c7dbc0489 RowSelectionAdorner now implements IDisposable 2019-08-14 11:17:50 -05:00
Jake Norbut 3046871cf4 removing background_overlay property from HyperLinkColumn, et al 2019-08-14 10:59:52 -05:00
Jake Norbut dd9ca350af RowSelectionAdorner bounds check should use ScrollContentPresenter for X point 2019-08-14 10:51:06 -05:00
Jake Norbut b292f50d99 Removing Background selection/active highlighting from DIYGridRowStyle 2019-08-14 10:16:48 -05:00
Jake Norbut 910cf20473 sanitize existing persisted grid state 2019-08-14 10:05:46 -05:00
Jake Norbut 5ac8a46a6c DIYGrid makes use of new RowSelectionAdorner 2019-08-14 09:22:49 -05:00
Jake Norbut decdae424d new Adorner to convey row selection 2019-08-14 09:22:02 -05:00
Taha Afzal 4228dcab95 Added unnormalized_day position data to PositionUnit 2019-08-13 20:03:58 -04:00
Eric Harding d99a2f5b88 Settingsmanager : handle more than 9 users 2019-08-13 17:24:27 -04:00
Kevin Darby b080d4a9c4 Merged in master (pull request #318)
Spark 2.8

Approved-by: Kevin Darby <kevin.darby@bluetradesys.com>
2019-08-13 19:19:47 +00:00
pfisher 282e10cba3 fixed update.txt test 2019-08-13 12:04:11 -04:00
Eric Harding dd67252173 Merge branch 'SP-183' of bitbucket.org:bluetradesys/spark into SP-91-position-migration 2019-08-13 11:51:26 -04:00
Jake Norbut 540559de3e Adding sanitization routine for MarketViewWindowFactory 2019-08-12 16:38:15 -05:00
Michael Harding 19871752ee Merged SP-91-position-migration into SP-150 2019-08-12 16:47:09 -04:00
Eric Harding 4801a16977 Re-enable api unit tests 2019-08-12 14:15:09 -04:00
Jake Norbut 7aaae817ac higher level changes as a result of previous checkin 2019-08-12 13:02:48 -05:00
Jake Norbut d6499464cf fleshing out per Column bg color override 2019-08-12 13:01:34 -05:00
Eric Harding 52d30249fe Allow empty updates in ApiServer 2019-08-12 13:52:39 -04:00
Jake Norbut a14d449b33 this brush needs to be frozen, because of course it does 2019-08-09 15:06:25 -05:00
Jake Norbut 14a86d7b29 changing RenderColumn to use ColumnBase's background_brush; removed background property 2019-08-09 14:09:19 -05:00
Jake Norbut 19729a276d adding background color to ColumnBase as every column should be able to eventually override the grid default bg 2019-08-09 14:08:03 -05:00
Jake Norbut 0f1135d5d6 adding background color to settings and related infrastruture 2019-08-09 14:07:04 -05:00
Pedro Pinto 146b5bdd8a Merge branch 'SP-91-position-migration' of bitbucket.org:bluetradesys/spark into SP-91-position-migration 2019-08-09 14:14:26 -04:00
Pedro Pinto 1783feffe7 Adds on demand gmi parsing and fixes a few bugs. 2019-08-09 14:13:27 -04:00
Kevin Darby fa1b436fb3 added sticky button release notes 2019-08-09 10:53:02 -04:00
Kevin Darby 1a9ff09f43 Merge branch 'master' of bitbucket.org:bluetradesys/spark into ice_exec3 2019-08-08 16:58:31 -04:00
Eric Harding 38964f4d10 SP-150 Decode http multipart form data in WebServer.cpp 2019-08-08 16:39:56 -04:00
Eric Harding 637d7384b1 Add Http log subsystem for spard web server 2019-08-08 16:39:56 -04:00
Kevin Darby 191518d8bc Merged in fix_algo_docs (pull request #316)
removing duplicate mark down describing algos

Approved-by: Michael Harding <michael.harding@bluetradesys.com>
2019-08-08 20:26:11 +00:00
Kevin Darby 50768750d6 removing duplicate mark down describing algos 2019-08-08 16:14:49 -04:00
Michael Harding b3f8976922 Merge branch 'SP-91-position-migration' into SP-150 2019-08-08 15:53:53 -04:00
Michael Harding dfe906ea64 Inhibit margin polling and unsub on tab change 2019-08-08 15:52:36 -04:00
Jake Norbut 450ef7dd56 Merged in SP-128 (pull request #312)
SP-128 - Allow for configurable stickyness on Algo Favorites

Approved-by: Kevin Darby <kevin.darby@bluetradesys.com>
2019-08-08 19:26:03 +00:00
Jake Norbut 89a4f9264a LadderSaveState now at version 2; implementing upgrade mechanism for migrating existing favorite algos to stickied algos 2019-08-08 13:03:26 -05:00
Jake Norbut 55ade15574 provide upgrade mechanism when loading IShellWindow 2019-08-08 13:01:19 -05:00
Kevin Darby 36b8b35e47 Merged in fix_tooltips2 (pull request #315)
fix non-dynamic and non-generic tooltips

Approved-by: Jake Norbut <jake.norbut@bluetradesys.com>
2019-08-08 16:18:29 +00:00
Kevin Darby 23bb872052 fix non-dynamic and non-generic tooltips 2019-08-08 12:09:48 -04:00
Eric Harding 1af8247a69 Merge branch 'SP-91-position-migration' of bitbucket.org:bluetradesys/spark into SP-150 2019-08-08 11:37:27 -04:00
Eric Harding de569e2564 Merge branch 'master' of bitbucket.org:bluetradesys/spark into SP-91-position-migration 2019-08-08 11:36:58 -04:00
Kevin Darby 5a36af1ed8 more 2.8 release notes 2019-08-08 10:54:57 -04:00
Jake Norbut bc12a3bd42 Merged in SP-172 (pull request #313)
making login view a little wider and shorter so that error state doesn't look as bad

Approved-by: Kevin Darby <kevin.darby@bluetradesys.com>
2019-08-08 14:48:31 +00:00
Kevin Darby 4e831b5f89 Merged in spreader_nlegs_hedging (pull request #314)
RTM Spreader nlegs hedging - for Taha

Approved-by: Kevin Darby <kevin.darby@bluetradesys.com>
2019-08-08 14:33:18 +00:00
Kevin Darby d886327c1a Merge branch 'master' of bitbucket.org:bluetradesys/spark into spreader_nlegs_hedging 2019-08-08 09:59:46 -04:00
Kevin Darby 533ff8acf7 Merged in server_sdk_docs (pull request #310)
RTM SP-138, SP-139, SP-140 server sdk docs

Approved-by: Pedro Pinto <pedro.pinto+atlassian@bluetradesys.com>
2019-08-07 21:30:35 +00:00
Kevin Darby e64eaec240 lumping client doc changes in with server 2019-08-07 17:27:16 -04:00
Pedro Pinto fc24c768d8 Added local defaults for gmi file download. 2019-08-07 17:14:19 -04:00
Pedro Pinto 7aee876d54 Merge branch 'SP-91-position-migration' of bitbucket.org:bluetradesys/spark into SP-91-position-migration 2019-08-07 17:03:57 -04:00
Pedro Pinto 3e3e519403 Changed gmi download to only work on specific time windows. 2019-08-07 17:03:26 -04:00
Michael Harding 3e40bf9fd3 Remove uncommited fills, update numbers 2019-08-07 16:53:17 -04:00
Michael Harding 315ca96d4f Make uncommited manual fills editable 2019-08-07 15:35:18 -04:00
Eric Harding 9d1c0d7f44 Merge branch 'master' of bitbucket.org:bluetradesys/spark into SP-150 2019-08-07 15:24:24 -04:00
Michael Harding 97b2f2df75 Handle deleted users in manual fills table 2019-08-07 13:21:43 -04:00
Michael Harding 92a9127160 Better number validation in the spark admin 2019-08-07 12:51:00 -04:00
Michael Harding 388d491a0a Fix empty symbol col on manual fills 2019-08-07 12:26:24 -04:00
Taha Afzal 02a30142b7 Fixing the tests 2019-08-07 11:24:22 -04:00
Michael Harding 13b09ffc12 add 3 minute delay to system tests 2019-08-07 10:42:41 -04:00
Pedro Pinto 2ec7aa5f3f Changed gmi download to pick oldest file rather than guess its name. 2019-08-06 19:34:15 -04:00
Taha Afzal 3937939c0a Bug in sells fixed (the LegPropertyData::trading_side() is already adjusted for the spreader side 2019-08-06 18:57:49 -04:00
Taha Afzal be4bfb6152 Hooked up the hedging price calculation to the UI 2019-08-06 17:27:16 -04:00
Jake Norbut 4ff1be11e2 making login view a little wider and shorter so that error state doesn't look as bad 2019-08-06 14:32:32 -05:00
Pedro Pinto 6148a08b62 Updated dev tool. 2019-08-06 15:30:49 -04:00
Pedro Pinto e914ca9c15 Merge branch 'SP-91-position-migration' of bitbucket.org:bluetradesys/spark into SP-91-position-migration 2019-08-06 15:30:12 -04:00
Eric Harding 17c2a91a0f SP-169 sftp downloads with libssh2 2019-08-06 14:27:12 -04:00
Pedro Pinto 09d75af8c3 Improved algo API documentation slightly. 2019-08-06 14:18:22 -04:00
John Colvin dad4c1bf9b ExecutionStrategyEditor uses VisualStates to disable name, ticks, and pricing controls after creation 2019-08-06 13:07:03 -05:00
John Colvin 40aa6c518a added hedge pricing controls to synth editor 2019-08-06 12:58:58 -05:00
Kevin Darby 83a2a01789 Merge branch 'master' of bitbucket.org:bluetradesys/spark into ice_exec3 2019-08-06 12:06:46 -04:00
Kevin Darby e1137c4e1d go back to statically linked CME 2019-08-06 11:27:38 -04:00
Jake Norbut bf8df1d396 always push Limit onto the algo stack; henceforth known as the anchor 2019-08-06 10:24:59 -05:00
Michael Harding 97e1277b6a Manual Fills get data from streams 2019-08-06 11:00:15 -04:00
Taha Afzal 9f575fcdec Added spreader params for this functionality(recalc) 2019-08-06 10:37:44 -04:00
Michael Harding c198965a49 Fix enums in DynamicService.ts 2019-08-06 09:45:47 -04:00
Taha Afzal a807a09bea Merge branch 'master' into spreader_nlegs_hedging 2019-08-05 22:50:39 -04:00
Taha Afzal a10a49cf4f Cleanup, removing some decaying code which was making for bad readibility 2019-08-05 22:49:13 -04:00
Taha Afzal cfec77bb96 Removed unused cons variables 2019-08-05 22:25:19 -04:00
Taha Afzal 03e2433201 Comments added and some cleanup for the position update related changes to SecurityLimitNode and ProductLimitNode 2019-08-05 19:38:43 -04:00
John Colvin d064af817c remove unreferenced '_sticky_algos' field 2019-08-05 15:51:21 -05:00
John Colvin 7b3c4b76bc LadderVM/OrderPropertiesEditorVM sticky/stack behavior 2019-08-05 15:36:57 -05:00
John Colvin 5de431f279 make LadderVM.send_order_command an IAsyncCommand 2019-08-05 15:36:57 -05:00
John Colvin 7b63d951f0 ShellSettingsDialogVM profilevm resets 'is_dirty' whenever the internal vm's resultant value equals the target value 2019-08-05 15:36:57 -05:00
John Colvin 018887980b LadderSettingsVM 'sticky buttons' impl reacts to FavoriteAlgoItem's value (algo) changes 2019-08-05 15:06:39 -05:00
John Colvin 8b4d649bd4 ExecuteAsync should return the Task directly (no need to await internally) 2019-08-05 15:06:39 -05:00
Jake Norbut 441d3c886b fixing improper use of is 2019-08-05 15:06:39 -05:00
Jake Norbut 472e32f558 removing empty new lines; leftovers from Dispatcher debugging 2019-08-05 15:06:39 -05:00
Jake Norbut 472c9252f9 adding Stay Enabled (sticky) checkbox to Favorites UI 2019-08-05 15:06:39 -05:00
Jake Norbut 98a9ad3ef2 reset order type after non-sticky order entry 2019-08-05 15:06:39 -05:00
Jake Norbut 7b237fedea adding sticky-related bits 2019-08-05 15:06:39 -05:00
Jake Norbut 7281aa8ff1 adding is_sticky property 2019-08-05 15:06:39 -05:00
Jake Norbut d915e2f064 setting algo_def_vm.is_sticky via CollectionChanged event (hmm) 2019-08-05 15:06:39 -05:00
Jake Norbut beb5d855b1 Dispatcher debuggering with John; think does not appear to work since the if condition is never met, but commiting this part of the pair-debugging experience 2019-08-05 15:06:39 -05:00
Jake Norbut 120b86aaae popuplating stickied algo keys for persistence/restoration state 2019-08-05 15:06:39 -05:00
Jake Norbut 44eeff98e7 adding is_sticky member to which the view will Databind 2019-08-05 15:06:39 -05:00
Jake Norbut dc420a097a adding stickied_algos ProtoMember for persistence 2019-08-05 15:06:39 -05:00
Jake Norbut 69ee85dea9 misc - adding OnDispatcher after discussing with John 2019-08-05 15:06:39 -05:00
Taha Afzal c42bc45f24 PositionServiceServer uses the manual fills state in PositionMap 2019-08-05 15:55:01 -04:00
Eric Harding ebe29fec00 Merged in tool_improvement (pull request #311)
RTM: make git_switch_linux switch to current branch if not specified
2019-08-05 18:58:28 +00:00
Eric Harding aee344fc2c make git_switch_linux switch to current branch if not specified 2019-08-05 14:54:05 -04:00
Kevin Darby bd451f6f65 SP-138, SP-139, SP-140 server sdk docs 2019-08-05 14:29:13 -04:00
Taha Afzal 37a8ae6677 zero_out_pos_unit was not zering out backwards compat doubles 2019-08-05 14:00:40 -04:00
John Colvin 7476b40bf1 fix favorite buttons crash in ladder (missed line in merge) 2019-08-05 11:57:51 -05:00
Taha Afzal a271abf3c4 Merge branch 'SP-91-position-migration' of bitbucket.org:bluetradesys/spark into SP-91-position-migration 2019-08-05 10:48:07 -04:00
Taha Afzal 76f582613b Comments mainly 2019-08-05 10:47:58 -04:00
Eric Harding e15d7babbd Fix client build errors 2019-08-05 10:23:34 -04:00
Eric Harding c5cf90017e Fix failing test 'test_select_tableupdate' broken by 6430f6e 2019-08-05 10:08:20 -04:00
Eric Harding 469914c6c9 SP-150 file upload decoder 2019-08-04 21:17:22 -04:00
Taha Afzal edba0e1cd7 Positions entries published by the PositionService are never removed, if a baseposition is absent, the enrties are 0'd out 2019-08-04 19:27:02 -04:00
John Colvin c142ce2a8e Merged in SP-109-orderbook-update-panel (pull request #308)
SP-109 orderbook update panel
2019-08-03 00:09:48 +00:00
John Colvin d082c47e49 Merge remote-tracking branch 'origin/master' into SP-109-orderbook-update-panel 2019-08-02 19:09:09 -05:00
John Colvin 44d0b96f25 remove IAlgoSelector.order_kind prop (GenericOrderVM's children can bind display_name directly to OrderKind) 2019-08-02 19:07:03 -05:00
John Colvin cdb8bccb5a GenericOrderParamVM 'default_value' arg needs to be null (it is used to indicate 'no value present') 2019-08-02 19:07:03 -05:00
John Colvin 0f355dfa8f Merge branch 'master' into SP-109-orderbook-update-panel 2019-08-02 18:05:33 -05:00
Taha Afzal ac1c5566ac For backwards compat, PositionUnit's account is populated 2019-08-02 18:48:46 -04:00
Kevin Darby 47cb8e0b04 Merged in algo_doc (pull request #309)
RTM update scratch and prorata algo docs
2019-08-02 21:57:59 +00:00
Kevin Darby a75784ca02 update scratch and prorata algo docs 2019-08-02 17:55:46 -04:00
Taha Afzal 4564e630db Merge branch 'SP-91-position-migration' of bitbucket.org:bluetradesys/spark into SP-91-position-migration 2019-08-02 17:51:02 -04:00
Taha Afzal 5c77fa2799 PositionMap keeps a SODPosition around to resolve sod fills 2019-08-02 17:50:54 -04:00
Jake Norbut 0e35ab3a52 Merged in SP-127 (pull request #302)
SP-127 fix badge clipping
2019-08-02 21:46:32 +00:00
Pedro Pinto 1bb5ea8aaa Updated release notes. 2019-08-02 17:45:56 -04:00
Kevin Darby 83adfb8361 Merged in prorata (pull request #239)
RTM: Prorata
2019-08-02 21:20:34 +00:00
Michael Harding db234c7d06 fix web build after merge 2019-08-02 15:24:21 -04:00
Pedro Pinto 1bb4ce91cf Merge branch 'SP-91-position-migration' of bitbucket.org:bluetradesys/spark into SP-91-position-migration 2019-08-02 14:45:58 -04:00
Pedro Pinto d1a3857119 Removed some remaining conflicts 2019-08-02 14:42:49 -04:00
Eric Harding 6dd63156cc SP-169 Use sftp command for sftp instead of scp 2019-08-02 13:59:19 -04:00
Pedro Pinto 01f178fe3b Partial merge 2019-08-02 13:18:15 -04:00
Pedro Pinto 53672e1875 Added as of timestamp to base position call. 2019-08-02 11:27:13 -04:00
Pedro Pinto e7a20252a0 GMI parser parses. 2019-08-02 11:14:15 -04:00
Pedro Pinto 497884fe00 Added sod helper. 2019-08-02 10:02:11 -04:00
Pedro Pinto f7aa2c5bec Removed unusued timestamp for base pos call 2019-08-02 09:13:32 -04:00
Pedro Pinto 5c75507f42 Updated sub repos pointers 2019-08-02 09:06:46 -04:00
Pedro Pinto ba1b459b0b More gmi parser files. 2019-08-02 09:06:46 -04:00
Pedro Pinto bac7ea06f2 Fixed some issues with GMI import. 2019-08-02 09:06:46 -04:00
Pedro Pinto 26c577f94b GMI parsing is code complete. 2019-08-02 09:06:46 -04:00
Taha Afzal 4fc59c2ca8 Base Position incorporation but untested 2019-08-02 00:10:54 -04:00
Kevin Darby 0a6cc0cdf1 Merge branch 'master' of bitbucket.org:bluetradesys/spark into ice_exec3 2019-08-01 15:11:04 -04:00
Kevin Darby e96d9112ef SIMICE causing some trouble sharing replay and MBO 2019-08-01 14:25:17 -04:00
Taha Afzal 3a7fbe2ddf Line got deleted in FillStore when removing call to SOD 2019-08-01 14:08:22 -04:00
Taha Afzal 2bfc3148d1 merging 2019-08-01 13:50:54 -04:00
Taha Afzal 72734bb15f Moving PositionServiceServer data into PositionMap (the Service Server was getting too long and confusing) 2019-08-01 13:22:38 -04:00
Eric Harding 1dd72abc9a SP-169 sftp download 2019-08-01 12:30:58 -04:00
Kevin Darby 94e77ce2b8 fix merge 2019-08-01 09:56:54 -04:00
Kevin Darby d4a97f4b0c Merge branch 'master' of bitbucket.org:bluetradesys/spark into prorata 2019-07-31 15:02:29 -04:00
Pedro Pinto 6dfcb970b8 Fixed build 2019-07-31 14:23:15 -04:00
Pedro Pinto 72aab5bbcb Merged 2019-07-31 14:16:55 -04:00
Pedro Pinto 0afededebf Added bones of base position service. 2019-07-31 14:12:36 -04:00
Jake Norbut aa62338401 PR feedback 2019-07-31 08:46:33 -05:00
Jake Norbut ef5dc90406 Merge branch 'master' of bitbucket.org:bluetradesys/spark into SP-127 2019-07-31 08:24:16 -05:00
Michael Harding 8c8e4dd0e8 Delete fills... theoretically 2019-07-30 16:35:25 -04:00
Pedro Pinto 17769cbced Added skelleton for BasePositionService. 2019-07-30 15:58:15 -04:00
Pedro Pinto 5cb1220d05 Added stubs for base position service. 2019-07-30 14:41:39 -04:00
Pedro Pinto 37ba9f7b0d Merge branch 'SP-91-position-migration' of bitbucket.org:bluetradesys/spark into SP-91-position-migration 2019-07-30 13:58:19 -04:00
Pedro Pinto 9a1bf1bbae Removed SOD from fill store. 2019-07-30 13:45:11 -04:00
Michael Harding a404bbf654 Add Day position management table 2019-07-30 10:06:56 -04:00
Michael Harding 0b34457259 SP-97: updates to existing manual fills 2019-07-30 10:06:56 -04:00
Taha Afzal 5939b983dd Hooked up the new Limiter call set_filled_position 2019-07-29 18:33:22 -04:00
Taha Afzal c0b0ffd646 Merge branch 'SP-91-position-migration' of bitbucket.org:bluetradesys/spark into SP-91-position-migration 2019-07-29 16:59:22 -04:00
Taha Afzal 21a48ba0ad moving PositionUtilities into lib, removing 2 unused functions in Limiter 2019-07-29 16:59:12 -04:00
Eric Harding 9a21d03311 Merged master into SP-150 2019-07-29 14:59:08 -04:00
Eric Harding 46d6ca9d2c SP-152 Handle stream unsubscribe with IDisposable 2019-07-29 13:06:31 -04:00
Taha Afzal 6ef274d5d6 Merge branch 'SP-91-position-migration' of bitbucket.org:bluetradesys/spark into SP-91-position-migration 2019-07-29 13:01:10 -04:00
Taha Afzal 36d507b3ca comments 2019-07-29 13:00:58 -04:00
Pedro Pinto 54820107db Updated externals pointer. 2019-07-29 12:58:16 -04:00
Pedro Pinto 38bf521132 Position based limits in order manager code complete. 2019-07-29 12:58:16 -04:00
Pedro Pinto 4aa0d878a6 Updated cmakedeps. 2019-07-29 12:58:16 -04:00
Eric Harding 03bbf2f4a8 SP-152 unsubscribe support 2019-07-29 12:37:28 -04:00
Taha Afzal f2d284cadb Merge branch 'SP-91-position-migration' of bitbucket.org:bluetradesys/spark into SP-91-position-migration 2019-07-29 11:31:36 -04:00
Taha Afzal 9f1ac3ee80 Added a proto for an unresolved File row to be imported as a SOD 2019-07-29 11:31:29 -04:00
Eric Harding 6b81dcef7d SP-152 fix F# type definition 2019-07-29 11:29:49 -04:00
Eric Harding 1f0371e870 SP-152 c++ side 2019-07-26 17:37:38 -04:00
Pedro Pinto 2eba014203 Implement server side of stop limit orders. 2019-07-26 17:36:07 -04:00
Eric Harding 322f1164be SP-152 typescript/f# half 2019-07-26 17:35:54 -04:00
Pedro Pinto ee94289f22 Merge branch 'master' of bitbucket.org:bluetradesys/spark 2019-07-26 17:15:42 -04:00
Pedro Pinto 45ba5746a6 Added tool tip for ticks off Top algo parameter. 2019-07-26 17:15:23 -04:00
Michael Harding a327ffe7e7 Delay for limit removal 2019-07-26 17:15:00 -04:00
Eric Harding 2feef62b65 Merged in SP-141 (pull request #307)
RTM SP-141 await_cme_config() from all places that need it
2019-07-26 19:12:56 +00:00
Pedro Pinto 4b1afd914e Updated release notes. 2019-07-26 15:12:36 -04:00
Pedro Pinto 3048cabb56 Merge branch 'master' into SP-141 2019-07-26 15:04:56 -04:00
Pedro Pinto 3ad41adc48 Merge branch 'master' into SP-141 2019-07-26 14:49:07 -04:00
Eric Harding e2d0d8bbae Merged in SP-23-Dorman2 (pull request #303)
RTM: SP-23 Dorman2

Approved-by: Pedro Pinto <pedro.pinto+atlassian@bluetradesys.com>
Approved-by: Michael Harding <michael.harding@bluetradesys.com>
2019-07-26 18:44:22 +00:00
Pedro Pinto a6b803b4c3 Updated release notes. 2019-07-26 14:43:30 -04:00
Pedro Pinto 1d68aa7fa8 Merge branch 'master' into SP-23-Dorman2 2019-07-26 14:30:47 -04:00
Pedro Pinto d726018b15 Merge branch 'master' into SP-23-Dorman2 2019-07-26 14:30:01 -04:00
John Colvin 437158e7f3 Merged in SP-90-hide-workspaces (pull request #299)
RTM SP-90 hide workspaces

Approved-by: Jake Norbut <jake.norbut@bluetradesys.com>
2019-07-26 15:06:47 +00:00
Pedro Pinto c670d0012b Updated release notes. 2019-07-26 11:06:29 -04:00
Pedro Pinto 8751a8e496 Merge branch 'master' into SP-90-hide-workspaces 2019-07-26 11:05:46 -04:00
John Colvin 273145feaf OrderParamsAggregator doesn't assume parent algo has child field (dyn_join) 2019-07-25 23:35:50 -05:00
John Colvin fe71b3081c reword comment 2019-07-25 23:06:58 -05:00
John Colvin 8000ccb595 delete code added by accident 2019-07-25 23:05:53 -05:00
John Colvin b9297a86a9 AlgoDefinitionVM prohibits changing roots in factory/dynamic types (only allowed in studio algos) 2019-07-25 18:16:35 -05:00
John Colvin a68926bb4a orderbook update panel synth params grid should be readonly 2019-07-25 18:16:35 -05:00
John Colvin f4eb427241 fix data/datum typo 2019-07-25 18:16:35 -05:00
John Colvin 4c9d7ef54a SP-144/SP-122,SP-109,SP-125 (several fixes for orderbook update panel) 2019-07-25 18:16:35 -05:00
John Colvin 359a9be900 CommonValueMonitor 'clear()' impl 2019-07-25 17:46:13 -05:00
John Colvin 6430f6e2df fix TableUpdate 'SelectKeyValue' extensions (subscriptions cannot share the same cache) 2019-07-25 17:46:13 -05:00
John Colvin adac484f25 remove AlgoStudioViewController 2019-07-25 17:46:13 -05:00
John Colvin c1f7b030ba remove unused algo 'template' code, leftover from the original algo studio spec 2019-07-25 17:46:13 -05:00
John Colvin a363421de0 fix CommonValueMonitor 'SubscribeThrottled()' extensions 2019-07-25 17:46:13 -05:00
John Colvin 7428f9dbfb make ObservableSortedCollection a standalone collection (not a wrapper); implement IObservableCollectionAddRemoveOnly 2019-07-25 17:46:13 -05:00
John Colvin 72e35a5914 fix typos ExceptionBuilder.ArgumentOutOfRange 2019-07-25 17:46:13 -05:00
Karl Ellefsen 6756ba44eb Top_cover_TEST.txt edited online with Bitbucket 2019-07-25 17:58:20 +00:00
Pedro Pinto d8b8a5d710 Updated release notes. 2019-07-23 15:44:49 -04:00
Pedro Pinto 5536f5f585 Cover should always detach from hedges when completing. 2019-07-23 15:04:11 -04:00
John Colvin 7367673ba4 flip 'login/cancel' buttons to follow ok/cancel pattern 2019-07-23 13:53:45 -05:00
John Colvin 901988ec2b center-align loginview's reject message 2019-07-23 13:48:05 -05:00
John Colvin b676d22f1d rearrange loginview grid to reduce dead space; unify visual state transitions 2019-07-23 13:42:45 -05:00
John Colvin 9b7e877a0b Merge branch 'master' into SP-90-hide-workspaces 2019-07-23 13:40:15 -05:00
Eric Harding c6cae3064d SP-150 add server endpoint for file upload 2019-07-23 12:25:01 -04:00
Eric Harding 16d5341285 Remove unused messages (warnings) 2019-07-23 11:17:15 -04:00
Eric Harding 2a16ac77fb Clean up some indentation warnings 2019-07-23 10:45:11 -04:00
Eric Harding 9eb76bdfbc Fix prorata build 2019-07-23 10:42:41 -04:00
Michael Harding 7c13474e31 SP-97: Position Management tab and add fills 2019-07-22 14:50:26 -04:00
Eric Harding a658ef7711 Add SplitterAlgo to the ladder/study options 2019-07-19 15:32:06 -04:00
Kevin Darby 5ae750b2f1 Merge branch 'master' of bitbucket.org:bluetradesys/spark into prorata 2019-07-19 11:33:03 -04:00
Eric Harding 23bbe82080 Merge branch 'master' of bitbucket.org:bluetradesys/spark into SP-23-Dorman2 2019-07-19 11:26:20 -04:00
Eric Harding bd30c3f270 Add Splitter algo to the manual 2019-07-19 11:25:59 -04:00
Eric Harding 4d316034aa Fix sorting in manual (sections and pages sort separately). 2019-07-19 11:03:45 -04:00
Eric Harding 6b582e224c SP-141 await_cme_config() from all places that need it 2019-07-18 17:10:12 -04:00
Eric Harding e3a366a386 SP-23 code review feedback / code shuffling 2019-07-18 09:51:19 -04:00
Pedro Pinto f0003ff3c6 Style and doc improvement in IAlgoOrder.h 2019-07-17 17:02:34 -04:00
Pedro Pinto df5f8f6638 Fixed clang build 2019-07-17 15:05:11 -04:00
Eric Harding 3ff26f6bb0 SP-23 Add ReportStateGuard to AlgoWrapperOrder::subscribe_ticker 2019-07-17 13:42:07 -04:00
Kevin Darby c8badf5689 Merged in fix_span_error_message (pull request #306)
guard against UI setting cash and leverage factors for accounts I don't know about when span is off

Approved-by: Pedro Pinto <pedro.pinto+atlassian@bluetradesys.com>
2019-07-17 14:51:23 +00:00
Kevin Darby 58533bf16f guard against UI setting cash and leverage factors for accounts I don't know about when span is off 2019-07-17 10:48:16 -04:00
Pedro Pinto 6b3c3ded68 Fixed up release notes. 2019-07-17 10:24:51 -04:00
Pedro Pinto d65e00fade Merged in SP-132-make-algo-shutdown-orderly (pull request #305)
RTM. SP-132 make algo shutdown orderly
2019-07-17 14:23:09 +00:00
Pedro Pinto 53e787ab7f Merge branch 'master' into SP-90-hide-workspaces 2019-07-17 09:37:48 -04:00
Pedro Pinto 68e5d07aef Merge branch 'master' of bitbucket.org:bluetradesys/spark 2019-07-17 09:36:15 -04:00
Pedro Pinto 68345a181e Updated release notes. 2019-07-17 09:35:43 -04:00
Kevin Darby 69c121a19c Merged in fix_span (pull request #301)
fix crash where account name > 12 chars, tested with long account name

Approved-by: Pedro Pinto <pedro.pinto+atlassian@bluetradesys.com>
2019-07-17 13:32:33 +00:00
Pedro Pinto 780ce7416f Merge branch 'master' into SP-132-make-algo-shutdown-orderly 2019-07-17 09:07:54 -04:00
Pedro Pinto 9fe338a62a Updated release notes. 2019-07-17 09:07:24 -04:00
Jake Norbut f027af66c8 Merged in ob_price_filter_tick_comparison (pull request #304)
RTM - Ob price filter tick comparison

Approved-by: John Colvin <john.colvin@bluetradesys.com>
2019-07-16 21:43:23 +00:00
Jake Norbut 6b2708b160 PR suggestions 2019-07-16 16:34:59 -05:00
Jake Norbut 534474621f price filter should use new add_price tick-based method 2019-07-16 15:51:27 -05:00
Jake Norbut 554614ab72 add means to perform price comparsion based on tick equality 2019-07-16 15:50:44 -05:00
Pedro Pinto 2ede69a263 Updated release notes. 2019-07-16 16:21:31 -04:00
Eric Harding ffd7a9379f SP-23 Dorman tweak. Make this an error instead of cancel. 2019-07-16 16:05:44 -04:00
Pedro Pinto 9def94aceb Changed IB to cancel rather than error if it sees a child cancel.
This allows IB to remain agnostic of wheter the child cancel was a
simply a consequence of the IB itself shutting down, in which case it
would be ignored. If the IB instead errorred out than that error
superseeds the cancel and results in the IB reporting an error.
2019-07-16 15:55:28 -04:00
Pedro Pinto 0af30b3cc0 Changed cover to handle fills while canceling. 2019-07-16 15:32:38 -04:00
Eric Harding f3f34269d3 SP-148 Dorman: pause_until triggers "Unexpected fill decrease." 2019-07-16 14:00:35 -04:00
Eric Harding 595c2df65c SP-147 Splitter UI 2019-07-16 13:26:21 -04:00
Taha Afzal a91c2d9bc6 SP-146 (Limiter will not accept unresolved fills) 2019-07-16 11:20:15 -04:00
Eric Harding 40f6a1db08 Merge branch 'SP-132-make-algo-shutdown-orderly' of bitbucket.org:bluetradesys/spark into SP-23-Dorman2 2019-07-16 11:18:41 -04:00
Pedro Pinto 481c1fd2de Fixed gcc build. 2019-07-16 10:29:59 -04:00
Pedro Pinto e80fc807e0 Moved all reporting state calls to top level event handler.
Any CPU the algo order receives must originate from a top level event,
its simpler to consolidate all report guards in those events, instead
of chasing every call that comes out of the algo.
2019-07-16 10:20:30 -04:00
Pedro Pinto c8e054d079 Added algo wrapper documentation. 2019-07-16 10:10:46 -04:00
Pedro Pinto 9480e76d4b Cleaned up algo wrapper 2019-07-16 10:10:11 -04:00
Pedro Pinto 538411353a Improved cover to hedge while shutting down. 2019-07-16 08:48:36 -04:00
Eric Harding acf51e1178 Merge branch 'SP-132-make-algo-shutdown-orderly' of bitbucket.org:bluetradesys/spark into SP-23-Dorman2 2019-07-15 16:44:55 -04:00
Pedro Pinto da6998c391 Do not error out when receiving an udpate from an unknown child.
Because the child is presumably a detached child.
2019-07-15 16:43:39 -04:00
Eric Harding 2710cdd32b Merge branch 'SP-132-make-algo-shutdown-orderly' of bitbucket.org:bluetradesys/spark into SP-23-Dorman2 2019-07-15 16:33:59 -04:00
Pedro Pinto 60786b105c Handled terminate_error while shutting down. 2019-07-15 16:26:22 -04:00
Pedro Pinto f488248abf Fixed handling of child update while shutdown. 2019-07-15 16:03:36 -04:00
Eric Harding 8165d1c9d7 SP-143 Dorman sends profit orders as splitter 2019-07-15 16:02:33 -04:00
Eric Harding 46dce3ac2b SP-115 back out temporary change 2019-07-15 13:36:41 -04:00
Eric Harding e24d8bac7d SP-132 Fix for early return in algo shut down sequence 2019-07-15 12:57:36 -04:00
Jake Norbut 158d63383f Binding Height in Ladder Badge Style to new grid_row_height property 2019-07-15 10:47:09 -05:00
Jake Norbut 465b7f8bdf adding grid_row_height to VM so that Badge render fills complete grid row height regardless of font size 2019-07-15 10:46:12 -05:00
Eric Harding c434374f74 SP-115 Dorman expects child cancel when paused 2019-07-15 11:28:12 -04:00
Eric Harding 5ba1299ddf Merge SP-132 2019-07-15 11:07:44 -04:00
Eric Harding ea39014307 SP-115 Dorman: handle unexpected child cancel 2019-07-15 10:59:36 -04:00
Pedro Pinto 830b590e5b Algos now go through an orderly shutdown phase.
During which they can still process child updates.
2019-07-15 10:59:13 -04:00
Jake Norbut 8c58454e32 Be able to algo abbrev and hedge glyph when badge is not wide enough to display them 2019-07-12 17:15:41 -05:00
Jake Norbut feab43ee3f Binding Ladder's Badge Width to the LadderOrderHost; need a converter here to deal with some slop adjustment 2019-07-12 17:12:45 -05:00
Jake Norbut 15fb97c688 property to method to signify we are creating a new glyph run each time; one cannot set the BaselineOrigin after the glphy run has been created, so we need a new one 2019-07-12 17:11:00 -05:00
Eric Harding 1d275b942d SP-136 Splitter should not loop 2019-07-12 17:18:21 -04:00
Kevin Darby c9c93b3cf0 Merged in fix_span1 (pull request #300)
fix crash when acct names are > 12 chars

Approved-by: Pedro Pinto <pedro.pinto+atlassian@bluetradesys.com>
2019-07-12 18:58:13 +00:00
Eric Harding c40eef7b03 SP-131 2019-07-12 12:04:35 -04:00
Eric Harding 2bafc12502 SP-87 one more splitter test 2019-07-12 11:04:42 -04:00
Kevin Darby 9e5d43f44a fix crash where account name > 12 chars, tested with long account name 2019-07-11 17:53:48 -04:00
Eric Harding 389359dbfc SP-87 Splitter w/ exposed < target. 2019-07-11 16:47:26 -04:00
Eric Harding 390208327b SP-115 Issues found in manual testing 2019-07-11 15:49:51 -04:00
Kevin Darby 5c1965f534 fix crash when acct names are > 12 chars 2019-07-11 14:07:31 -04:00
Pedro Pinto 8553229119 Merge branch 'master' into prod 2019-07-11 10:45:10 -04:00
Eric Harding 96b63ff713 Disable market data heartbeats on dev systems to simplify debugging 2019-07-11 10:44:38 -04:00
Pedro Pinto 4903c12533 _index.md edited online with Bitbucket 2019-07-11 14:23:13 +00:00
Jake Norbut 88f23530c6 Merged in SP-119 (pull request #298)
RTM - SP-119 Ladder settings NullRef

Approved-by: John Colvin <john.colvin@bluetradesys.com>
Approved-by: Pedro Pinto <pedro.pinto+atlassian@bluetradesys.com>
2019-07-11 14:18:45 +00:00
Pedro Pinto 37d022251e Fixed another bug in stop order handling. 2019-07-11 09:48:09 -04:00
Eric Harding c9d371fb77 SP-115 Bugfixes from manual testing 2019-07-10 17:41:15 -04:00
Pedro Pinto 04cc1da4d9 Hopefully fixed stop order updates. 2019-07-10 17:10:35 -04:00
Eric Harding b173f80703 SP-56 Flatten Dorman Parameters 2019-07-10 16:29:18 -04:00
Eric Harding 5b6edc455f SP-121 Fix crash and add validation 2019-07-10 15:02:20 -04:00
Jake Norbut 56bba90fdb ladder now determines badge price level based on new ui_price() 2019-07-10 13:11:57 -05:00
Jake Norbut a95841b0e9 OB price filter to hook up to new ui_price() rather than price() 2019-07-10 13:10:32 -05:00
Jake Norbut 9c6be9e87c adding new ui_price ext method that takes into account the status of and type of order (for stop and stop limits) 2019-07-10 13:09:45 -05:00
Pedro Pinto 7c830786ef Fixed issue in stop limit trigger detection 2019-07-10 11:05:00 -04:00
Eric Harding 0b7d18301d SP-56 Register Dorman Algo 2019-07-09 19:14:22 -04:00
Jake Norbut 9eb9047249 shh...adding M4D secret key 2019-07-09 15:04:56 -05:00
Jake Norbut f7847b7767 adding new M4D cert ilink 2019-07-09 14:13:09 -05:00
Eric Harding 9fac15b473 Clean up macro in Dorman, remove invalid AlgoTestDriver assertion 2019-07-09 13:24:38 -04:00
Jake Norbut 76ff36e514 Merge branch 'master' of bitbucket.org:bluetradesys/spark into SP-119 2019-07-09 11:54:46 -05:00
Pedro Pinto ae720e4966 Merge branch 'master' into SP-69-fix-stop-and-stop-limit-orders 2019-07-09 12:52:49 -04:00
Jake Norbut 740c14c261 add LadderSettings santization on paths to VM instantiation 2019-07-09 11:52:41 -05:00
Eric Harding ceafab93ab SP-33 Trade Accumulation 2019-07-09 12:26:28 -04:00
John Colvin a8f86c38e4 SP-80 / SP-90 Do not show workspaces prior to user authentication 2019-07-08 17:30:29 -05:00
John Colvin 46cb249016 in lazy vis state transitions, hook up to the loaded event directly (awaiting a TaskCompletionSource is heavy handed, and not thread safe) 2019-07-08 17:30:29 -05:00
John Colvin 6b799bf93b [non-functional] normalize spacing/tabs in LoginView.xaml 2019-07-08 17:30:29 -05:00
Jake Norbut 33a71f5f47 Merged in SP-105_account-in-ladder (pull request #294)
RTM - SP-105 selected account in ladder

Approved-by: Pedro Pinto <pedro.pinto+atlassian@bluetradesys.com>
2019-07-08 22:21:46 +00:00
Pedro Pinto 2940601f4b Updated release notes 2019-07-08 18:15:31 -04:00
Pedro Pinto 1f7939f49a Merge branch 'SP-105_account-in-ladder' of bitbucket.org:bluetradesys/spark into SP-105_account-in-ladder 2019-07-08 18:14:45 -04:00
Pedro Pinto 48e273a607 Merge remote-tracking branch 'origin' into SP-105_account-in-ladder 2019-07-08 17:50:43 -04:00
John Colvin e35634020d Merged in SP-89-offset-algo (pull request #286)
RTM SP-89 offset algo

Approved-by: Pedro Pinto <pedro.pinto+atlassian@bluetradesys.com>
2019-07-08 21:49:12 +00:00
Pedro Pinto 1ede053f59 Merged with master 2019-07-08 17:48:16 -04:00
Pedro Pinto 93824786c7 Updated release notes. 2019-07-08 17:32:33 -04:00
Pedro Pinto 25b8c0a728 Merged with master 2019-07-08 17:31:22 -04:00
Jake Norbut 0e4fe1b47e filter the SelectorProperty source for updates that actually have items; this keeps the currently selected account through server restarts 2019-07-08 16:29:19 -05:00
Jake Norbut cd744963ff Revert "don't revert to default selected setter when server reboots"
This reverts commit d5fdcc6796.
2019-07-08 16:21:46 -05:00
Kevin Darby fb9d877938 Merged in dme (pull request #293)
RTM add mic for DME

Approved-by: Pedro Pinto <pedro.pinto+atlassian@bluetradesys.com>
2019-07-08 21:08:53 +00:00
Pedro Pinto 087b001510 Updated release notes. 2019-07-08 17:03:56 -04:00
Pedro Pinto 02a7c0ddca Merge branch 'master' into dme 2019-07-08 17:01:50 -04:00
Kevin Darby 6afa1d581d Merged in span (pull request #263)
RTM: Span

Approved-by: Pedro Pinto <pedro.pinto+atlassian@bluetradesys.com>
2019-07-08 21:01:01 +00:00
Taha Afzal 5e04abe573 Combining the account lookup for loss_limitm and span 2019-07-08 16:50:30 -04:00
Pedro Pinto 3422a44c87 Updated release notes. 2019-07-08 16:49:32 -04:00
Jake Norbut d5fdcc6796 don't revert to default selected setter when server reboots 2019-07-08 15:37:38 -05:00
Kevin Darby f12217d76c Remove mapping of DME mic per Pedro 2019-07-08 20:12:47 +00:00
Pedro Pinto d85a914046 Merge branch 'master' into span 2019-07-08 15:58:06 -04:00
Pedro Pinto 4fdc890cb5 Merged in ticks_off (pull request #296)
RTM Added ticks_off to top algo server side.

Approved-by: Kevin Darby <kevin.darby@bluetradesys.com>
2019-07-08 19:55:01 +00:00
Pedro Pinto 3ed0bd9052 Merged with master 2019-07-08 15:54:39 -04:00
Jake Norbut dbdc915ff2 populating mini_ob (LadderMiniOrderBookSettings) in LadderSettings.Default 2019-07-08 14:24:36 -05:00
Jake Norbut 10476c6662 null ref check on LadderSettings.mini_ob.value 2019-07-08 14:22:55 -05:00
Eric Harding 74a91a7d2e SP-117 typedef TradeVector type 2019-07-08 14:49:44 -04:00
Eric Harding 72a6689cd4 SP-117 Expose ticker to IAlgoOrder 2019-07-08 14:41:07 -04:00
Kevin Darby 05e09cb977 Merge branch 'master' of bitbucket.org:bluetradesys/spark into span 2019-07-08 14:33:37 -04:00
Eric Harding dab4f5acbb Merged in SP-104-HCL (pull request #289)
[RTM] SP-104 HCL

Approved-by: Pedro Pinto <pedro.pinto+atlassian@bluetradesys.com>
2019-07-08 18:28:44 +00:00
Eric Harding a20c53b23d Merged in SP-68-crash (pull request #292)
[RTM] SP-68 Fix crash on exit by not touching queue on windows.  insert_or_replace() is a no-op on windows anyway.

Approved-by: Pedro Pinto <pedro.pinto+atlassian@bluetradesys.com>
2019-07-08 18:27:59 +00:00
Pedro Pinto 8206f457b5 Updated release notes. 2019-07-08 14:27:37 -04:00
Pedro Pinto d4e6d6293d Merge branch 'master' into SP-68-crash 2019-07-08 14:26:48 -04:00
Kevin Darby d1a2197ba4 Merged in fix_auth_tests2 (pull request #297)
RTM fix auth tests to respect difference betwen admin and trader login
2019-07-08 18:20:09 +00:00
Kevin Darby 369fb55e90 fix auth tests to respect difference betwen admin and trader login 2019-07-08 14:20:14 -04:00
Pedro Pinto 37dacff74d Fixed a bug in top update 2019-07-08 14:09:37 -04:00
Taha Afzal dc922a0299 Fixed the test that was failing when Spreader:n_legs_recomp_hedges_on_fill: true 2019-07-08 14:01:24 -04:00
Eric Harding fb08533488 SP-32 profit orders 2019-07-08 13:51:54 -04:00
Pedro Pinto d297b703c7 Merge branch 'master' into ticks_off 2019-07-08 13:36:53 -04:00
Kevin Darby 33f533af9b set span to default off, hook up admin boolean to enforce span behind config key 2019-07-08 13:08:18 -04:00
Kevin Darby 085d6402f4 Merged in SPARK-2524-keycode_fixes (pull request #290)
RTM fixed SPARK-2524, allowing admin logins to not require a keycode session

Approved-by: Eric Harding <eric.harding@bluetradesys.com>
Approved-by: Pedro Pinto <pedro.pinto+atlassian@bluetradesys.com>
2019-07-08 16:26:51 +00:00
Pedro Pinto f4395ef833 Updated release notes. 2019-07-08 12:26:27 -04:00
Pedro Pinto e7a9412124 Updated release notes. 2019-07-08 12:21:39 -04:00
Pedro Pinto da4ee38abd Merge branch 'master' into SPARK-2524-keycode_fixes 2019-07-08 12:20:50 -04:00
Pedro Pinto af39fac368 Merge branch 'master' into SPARK-2524-keycode_fixes 2019-07-08 11:18:39 -04:00
Michael Harding 4f997505f3 Enforce Margin Limit in Spark Admin 2019-07-08 11:12:55 -04:00
Jake Norbut fcbb66361d Merged in SP-103_no_reset_on_agg_side_change (pull request #288)
RTM - SP-103 don't reset last when aggressor side changes

Approved-by: Eric Harding <eric.harding@bluetradesys.com>
Approved-by: Pedro Pinto <pedro.pinto+atlassian@bluetradesys.com>
2019-07-08 14:46:17 +00:00
Pedro Pinto fa16321691 Updated release notes. 2019-07-08 10:45:56 -04:00
Eric Harding 4ecbfe5f5b SP-31 Dorman auto-scratch 2019-07-08 10:42:43 -04:00
Pedro Pinto ceb3542e15 Merge branch 'master' into SP-103_no_reset_on_agg_side_change 2019-07-08 10:30:25 -04:00
Jake Norbut 32e55d07ee Merged in SP-110_volume_tooltip_nit (pull request #295)
RTM - display tooltip again when re-entering same cell where tooltip was previouly closed

Approved-by: Pedro Pinto <pedro.pinto+atlassian@bluetradesys.com>
2019-07-08 14:28:34 +00:00
Pedro Pinto e079acf91f Updated release notes. 2019-07-08 10:28:18 -04:00
Pedro Pinto fecedb203a Merge branch 'master' into SP-110_volume_tooltip_nit 2019-07-08 10:26:59 -04:00
Jake Norbut 6ac05a47e1 Merged in SP-103_bars_not_req (pull request #291)
RTM - SP-103 bars not required to show last text

Approved-by: Pedro Pinto <pedro.pinto+atlassian@bluetradesys.com>
2019-07-08 14:15:36 +00:00
Pedro Pinto 36ed80dc87 Updated release notes. 2019-07-08 10:15:14 -04:00
Taha Afzal 729acc4ad5 deleted default constructors and assignment operators on NLegsHedgeRecompData plus tightened a condition for application of recompute redhedging 2019-07-07 20:52:42 -04:00
John Colvin f5bbc4245f SP-111 / SP-113 Add ticks off parameter to top algo UI 2019-07-05 16:12:32 -05:00
Eric Harding 7e1463683f SP-30 base Dorman algo atop SplitterAlgo 2019-07-05 16:04:39 -04:00
Pedro Pinto 96fc54ff0f Added ticks_off to top algo server side. 2019-07-05 14:35:18 -04:00
Kevin Darby 25b69e4f7d fix small bug and add manual test 2019-07-05 13:29:22 -04:00
Kevin Darby d871ffca6d temporarily tie span enforcement to config while michael works 2019-07-05 12:59:41 -04:00
Jake Norbut 213567bcdb display tooltip again when re-entering same cell where tooltip was previouly closed 2019-07-05 11:49:34 -05:00
Kevin Darby b7e5c3a374 Merge branch 'span' of bitbucket.org:bluetradesys/spark into span 2019-07-05 12:30:10 -04:00
Kevin Darby ae4a8bbf46 more span 2019-07-05 12:28:58 -04:00
Taha Afzal 850386c1d4 Margin enforced in the limiter 2019-07-05 12:05:16 -04:00
Kevin Darby 2d4e94a636 Types.fs edited online with Bitbucket 2019-07-05 15:39:35 +00:00
Taha Afzal 4d559b8ec1 Reorganized the data for NLeg Hedge Recomp better 2019-07-05 11:16:24 -04:00
Pedro Pinto e447096733 Routed excess liquidity to OrderManager. 2019-07-05 11:00:42 -04:00
Jake Norbut cd68b95a3e add a mechanism for ignoring InlineUserProperty's force_override property 2019-07-05 08:19:05 -05:00
Taha Afzal 2561cb3960 Better comments 2019-07-04 19:59:21 -04:00
Kevin Darby 72aa028bd6 ice orders works again 2019-07-04 14:31:57 -04:00
Taha Afzal c4ba25bdae Merge branch 'master' into spreader_nlegs_hedging 2019-07-04 11:18:51 -04:00
Kevin Darby f8d5b9bace bookmark initial clordid 2019-07-03 18:20:11 -04:00
Kevin Darby e861e2916f Merge branch 'ice_exec3' of bitbucket.org:bluetradesys/spark into ice_exec3 2019-07-03 17:28:03 -04:00
Kevin Darby 23738b109d changes to use non-static onixs 2019-07-03 17:26:46 -04:00
Pedro Pinto 713e11d146 Merge branch 'ice_exec3' of bitbucket.org:bluetradesys/spark into ice_exec3 2019-07-03 16:26:34 -04:00
Pedro Pinto 444e3154b3 Made exchange id gen asynchronous, improved concurrency. 2019-07-03 16:26:07 -04:00
Michael Harding ebad5b389f Fix Save button 2019-07-03 16:01:50 -04:00
Kevin Darby 270ee60df9 nonstatic cme 2019-07-03 19:39:22 +00:00
John Colvin 160c49514a Merge remote-tracking branch 'origin/master' into SP-89-offset-algo 2019-07-03 14:38:50 -05:00
Kevin Darby 1ce041c5e5 called Pedro's new id generator 2019-07-03 15:23:38 -04:00
Kevin Darby 64430e4368 Merge branch 'master' of bitbucket.org:bluetradesys/spark into prorata 2019-07-03 15:15:16 -04:00
Michael Harding 4f7fcc5634 Move loss limits to the top of the limits page 2019-07-03 14:54:40 -04:00
Michael Harding 500e5b5fe4 Polling and commas 2019-07-03 14:19:51 -04:00
Eric Harding 9e7da44cce Merge branch 'SP-87-Splitter' of bitbucket.org:bluetradesys/spark into SP-23-Dorman2 2019-07-03 14:16:45 -04:00
Eric Harding 7f2988ec57 SP-87 PR feedback 2/2 2019-07-03 14:09:07 -04:00
Eric Harding 08c2762500 SP-87 PR feedback 1/2 2019-07-03 14:09:07 -04:00
Pedro Pinto 50940bfd13 Merged 2019-07-03 13:46:48 -04:00
Pedro Pinto 509a33dc53 Merged 2019-07-03 13:42:17 -04:00
Pedro Pinto 4e6e97d90b Added unit test for splitter compute_desired_sizes. 2019-07-03 13:40:41 -04:00
Michael Harding 9d924fa4ba Margin table formatting 2019-07-03 10:14:01 -04:00
John Colvin 092e63e300 OffsetAlgo attach impl (take 2) 2019-07-03 00:07:23 -05:00
Kevin Darby 4654cd4739 changes in margin workflow for webui 2019-07-02 18:29:10 -04:00
Taha Afzal 06c1f60598 update_position called is routed from Limiter to ProductNode 2019-07-02 18:23:06 -04:00
Kevin Darby f2f06d76de PR feedback 2019-07-02 17:43:28 -04:00
Kevin Darby 6bc293a58e add mic for DME 2019-07-02 17:35:29 -04:00
Kevin Darby fdb462eda4 simplify margin server states 2019-07-02 17:34:46 -04:00
Kevin Darby cc579034b2 fix bug in margin service 2019-07-02 17:05:22 -04:00
John Colvin 4b76e91757 SP-89 (pr edit) - 'can_consume_attachment()' returns false for 'Offset' 2019-07-02 15:48:24 -05:00
Eric Harding 53ad85cce0 Merge branch 'SP-87-Splitter' of bitbucket.org:bluetradesys/spark into SP-23-Dorman2 2019-07-02 16:29:45 -04:00
Eric Harding 8d34279ab0 SP-68 Fix crash on exit by not touching queue on windows. insert_or_replace() is a no-op on windows anyway. 2019-07-02 16:26:34 -04:00
John Colvin 7973b927a2 SP-89 (pr edit) - fwd price updates to child; cache update qty 2019-07-02 15:22:54 -05:00
Kevin Darby 6997aed9bd fixed SPARK-2524, allowing admin logins to not require a keycode session 2019-07-02 15:05:23 -04:00
Michael Harding b5d7d98098 Add DayPnL to SA Margin tab 2019-07-02 15:04:55 -04:00
Jake Norbut 8f22a326ab last on volume foreground text is now white 2019-07-02 14:01:50 -05:00
Jake Norbut b2c3488c5e draw volume numbers when bars not present 2019-07-02 14:01:07 -05:00
Michael Harding 23f10eac70 Add accountPnl to emptyMargin 2019-07-02 14:10:27 -04:00
Eric Harding cdabf3b023 SP-87 - Report fills to parent 2019-07-02 13:35:25 -04:00
Eric Harding 8248bd7db8 Add descriptive comment to splitteralgo 2019-07-02 13:35:25 -04:00
Kevin Darby cb31269a70 added pnl impact to margin 2019-07-02 13:14:46 -04:00
Jake Norbut 5b75b8718a updating comment to reflect change 2019-07-02 11:14:01 -05:00
Eric Harding 5a256d4634 SP-104 PEBKAC buy with negative mult is nonsense 2019-07-02 11:55:55 -04:00
Jake Norbut db2de3e8c4 remove last_side; change StructLayout Size accordingly 2019-07-02 10:53:11 -05:00
Jake Norbut b9dcad9549 don't reset last trade size when aggressor changes 2019-07-02 10:52:21 -05:00
Jake Norbut ce104479e1 removing last_side; incrementing shm_version 2019-07-02 10:51:06 -05:00
Pedro Pinto d3ae9bc891 Merge branch 'SP-87-Splitter' of bitbucket.org:bluetradesys/spark into SP-87-Splitter 2019-07-02 11:43:47 -04:00
Pedro Pinto ac90a21314 Clang build fixes. 2019-07-02 11:43:36 -04:00
Eric Harding 2d56eedf3e Bugfix in synthetic_book_merge_tests 2019-07-02 10:37:47 -04:00
Eric Harding 049381908c update gitignore 2019-07-02 10:34:28 -04:00
Eric Harding 1104f4db1d SP-87 Reject attach in before_launch 2019-07-02 09:52:24 -04:00
John Colvin 0067e52155 SP-89 (pr edit) - wait 4 mkt 2 launch; attach impl 2019-07-02 00:07:17 -05:00
Kevin Darby 8ed6d297a9 Merge branch 'master' of bitbucket.org:bluetradesys/spark into span 2019-07-01 18:01:34 -04:00
Taha Afzal a06df5099a Merged in SP-24-loss-limit (pull request #285)
RTM SP-24 loss limit

Approved-by: Pedro Pinto <pedro.pinto+atlassian@bluetradesys.com>
2019-07-01 21:44:41 +00:00
Pedro Pinto 8ddd5bdbb5 Merged with master 2019-07-01 17:06:00 -04:00
Taha Afzal 5cbe00beab Spread PNL is not counted towards the Account PNL 2019-07-01 16:33:56 -04:00
Eric Harding b8a9116ea6 SP-30 Dorman part 1 2019-07-01 16:08:28 -04:00
Jake Norbut 40cd826260 Merged in SP-79 (pull request #280)
RTM - SP-79 arrow indicator on last disappearing too fast

Approved-by: Pedro Pinto <pedro.pinto+atlassian@bluetradesys.com>
2019-07-01 20:03:34 +00:00
Pedro Pinto 8bd63f11b1 Updated release notes. 2019-07-01 16:03:13 -04:00
Pedro Pinto 2198a8d6ed Merge remote-tracking branch 'origin' into SP-79 2019-07-01 16:02:15 -04:00
Pedro Pinto 8023dc7aa8 Merge branch 'master' into SP-79 2019-07-01 16:01:53 -04:00
Eric Harding 0dcdbd540e SP-87 Splitter algo 2019-07-01 15:47:56 -04:00
Eric Harding 226fcc279b Utils for manipulating dynamic algos 2019-07-01 15:46:20 -04:00
Eric Harding a6ad70fc05 SP-28 Algo unit test utils 2019-07-01 15:46:03 -04:00
John Colvin e2b0da8103 Merged in SP-78-miniob-settings (pull request #282)
RTM SP-78 In miniob settings changing the column width directly through the grid (i.e. not through the dialog) has no effect beyond the current popup.

Approved-by: Jake Norbut <jake.norbut@bluetradesys.com>
Approved-by: Pedro Pinto <pedro.pinto+atlassian@bluetradesys.com>
2019-07-01 19:36:01 +00:00
Pedro Pinto aea233d537 Updated release notes. 2019-07-01 15:35:07 -04:00
Pedro Pinto 5756c090f3 Merge remote-tracking branch 'origin' into SP-78-miniob-settings 2019-07-01 15:28:59 -04:00
John Colvin 5ab0acb0ef Merged in SP-81-private-synths (pull request #284)
RTM SP-81 private synths

Approved-by: Jake Norbut <jake.norbut@bluetradesys.com>
Approved-by: Pedro Pinto <pedro.pinto+atlassian@bluetradesys.com>
2019-07-01 19:28:00 +00:00
Pedro Pinto 3950e5b634 Updated release notes. 2019-07-01 15:27:29 -04:00
Taha Afzal 37414d6c78 Added function signature in Limiter to acceot positions 2019-07-01 14:58:11 -04:00
Pedro Pinto 7ce8f1ed97 Updated release notes 2019-07-01 14:57:00 -04:00
Michael Harding 5d53492ab5 Merged SP-38-span-admin into span 2019-07-01 14:53:52 -04:00
Michael Harding 90fd5bd382 Handle save errors better 2019-07-01 14:52:40 -04:00
Michael Harding beff060a4f Update unchanged margin values 2019-07-01 14:27:44 -04:00
Michael Harding bc3418734f Span Columns and Formatting 2019-07-01 13:22:27 -04:00
Michael Harding ab255c8777 update ui.fsproj 2019-07-01 12:51:17 -04:00
Michael Harding cc2bde1064 Merged span into SP-38-span-admin 2019-07-01 12:43:16 -04:00
Michael Harding 94d66a8e99 Add Margin tab to Spark Admin 2019-07-01 12:40:16 -04:00
Taha Afzal 3057f8233d Merge branch 'SP-24-loss-limit' into SP-91-position-migration 2019-07-01 11:52:11 -04:00
Taha Afzal 92f08b89cc Added a sub test to the clip limits test to verify that spread clip limits are independent of futures 2019-07-01 09:01:46 -04:00
Taha Afzal 02769479ea SP-74 bundled into this (it was a small change) 2019-06-30 22:45:29 -04:00
Pedro Pinto 8cb4151f63 Added id generator to order services. 2019-06-30 20:27:48 -04:00
John Colvin 4ada322c56 bring back OffsetOrder gui in ladder/ticket 2019-06-30 12:56:59 -05:00
John Colvin 7de7f6e496 remove old OffsetOrder.cpp/h, replace with new OffsetAlgo in CMakeDeps 2019-06-30 12:47:05 -05:00
Taha Afzal e000d34766 Converting PositionUtilities into a class (vs functions) and big fixes 2019-06-30 09:46:04 -04:00
John Colvin 0700e9e80d SP-89 Port Offset order to new api 2019-06-29 16:10:34 -05:00
Taha Afzal 87a8665273 Added support for Admin fills to PositionService 2019-06-28 19:18:58 -04:00
Kevin Darby 7a47b7a85a Merge branch 'master' of bitbucket.org:bluetradesys/spark into ice_exec3 2019-06-28 13:08:44 -04:00
Taha Afzal ccca85d1c5 loss limit manual test updated 2019-06-27 15:46:44 -04:00
Taha Afzal 60e933fca9 SOD also indexes its data on account_id, Cleaned up Limiter's account_data (there was an overlap, after introducing Loss limit related PNL data) 2019-06-27 15:20:12 -04:00
Pedro Pinto a60a792dfa Ran clang-format. 2019-06-27 14:17:08 -04:00
Pedro Pinto a73a1cc4f5 CMakeDeps updates. 2019-06-27 14:16:05 -04:00
Pedro Pinto 32fbdf8a21 Better handling of unresolved securities. 2019-06-27 14:15:40 -04:00
Pedro Pinto 75c54bbe3e Refactored order factory. 2019-06-27 14:11:40 -04:00
Pedro Pinto 38575039b9 Fixed clang build. 2019-06-27 14:11:23 -04:00
Pedro Pinto 3b77bc99b6 Fixed update of stop orders. 2019-06-27 13:31:05 -04:00
Taha Afzal e2aa6034ab merging master 2019-06-26 20:22:05 -04:00
Taha Afzal 8b4c64e8f4 PositionServiceServer not indixes the state based on account_id istead of names 2019-06-26 19:34:46 -04:00
John Colvin b5ea399e7e WorkspacesDialogView - remove 'Is Shared' checkbox 2019-06-26 15:22:14 -05:00
Jake Norbut b69a0c245e Revert "change price() to report stop/limit price when stop/limit has not yet been triggered"
This reverts commit 14bcef4c0e.
2019-06-26 14:49:26 -05:00
Jake Norbut 14bcef4c0e change price() to report stop/limit price when stop/limit has not yet been triggered 2019-06-26 14:45:27 -05:00
Pedro Pinto a23fe74cdc Re-enabled stop orders 2019-06-26 15:38:06 -04:00
John Colvin 62baa6aa31 MEFExport UserTuple does not need a contract name 2019-06-26 14:19:49 -05:00
John Colvin 87433aa7c3 add comment for 'KnownUsers' prop 2019-06-26 13:41:37 -05:00
Jake Norbut 7b48f71dec adding stop/limit order modification 2019-06-26 13:34:03 -05:00
Jake Norbut c334c1f636 making use of new has been triggered definition when determining where to draw badge 2019-06-26 13:34:03 -05:00
Jake Norbut 8572ff273f adding helper for determining if stop/limit has been triggered 2019-06-26 13:34:03 -05:00
John Colvin 3252cab4bb SP-80 / SP-88 Login dialog should not expose user names (because they are private) 2019-06-26 13:22:02 -05:00
John Colvin fbe9b570a3 (forgot to run 'git add' again) 2019-06-26 12:43:48 -05:00
John Colvin 1bcb209961 remove unused delegate type, and worthless commented line 2019-06-26 11:42:47 -05:00
John Colvin b0726ad3ea just noticed some iobservables in OrderBookVM without OnDispatcher()s (adding them preemptively) 2019-06-26 11:40:10 -05:00
John Colvin e0ba27a0a9 SpreaderModel - remove unneccesary 'async/await' wrappers 2019-06-26 11:40:07 -05:00
John Colvin 345e45c5bf MEFExport UserTuple 2019-06-26 10:28:05 -05:00
Pedro Pinto e6ddc71c75 Merged with master 2019-06-26 10:43:29 -04:00
John Colvin 490add84d9 replace magic consts w/ regular consts 2019-06-25 23:19:20 -05:00
John Colvin 94fc2c4248 refactor LoginModel.Exports -> LoginContainer.Exports 2019-06-25 23:18:43 -05:00
John Colvin 8a7e2db4ac SP-80 / SP-81 Synths should be private 2019-06-25 19:01:57 -05:00
John Colvin 71c576bbc0 SP-80 / SP-82 Algos should be private 2019-06-25 17:05:41 -05:00
John Colvin 2e4dff4d91 SP-76 In miniob settings, the miniob's width seems to have a minimum that does not reflect the currently displayed columns 2019-06-25 16:20:08 -05:00
John Colvin 73336df814 SP-78 In miniob settings changing the column width directly through the grid (i.e. not through the dialog) has no effect beyond the current popup. 2019-06-25 16:04:24 -05:00
Michael Harding 633edb43eb wait longer for the system to have products 2019-06-25 14:36:52 -04:00
Pedro Pinto f4add8d464 Merged in fix_service_init_concurrency (pull request #281)
Fix service init concurrency

Approved-by: Eric Harding <eric.harding@bluetradesys.com>
2019-06-25 16:44:35 +00:00
Pedro Pinto 894335d019 Updated release notes 2019-06-25 12:29:56 -04:00
Pedro Pinto 0fc977f5d3 Merged with master 2019-06-25 12:29:02 -04:00
Pedro Pinto 3d70d35b99 Changed Run.cpp to defer qbus dispatch past service initialization. 2019-06-25 12:08:20 -04:00
Pedro Pinto 66307edf91 Added a deferred start option to qbus. 2019-06-25 12:08:00 -04:00
Taha Afzal e3e525819e Merged in SPARK-2506_qho_ib_2 (pull request #279)
RTM
2019-06-25 15:03:53 +00:00
Pedro Pinto ece25dd946 Updated release notes. 2019-06-25 10:04:14 -04:00
Pedro Pinto 24f824fd81 Downgraded logging message. 2019-06-25 10:04:04 -04:00
Pedro Pinto 7d992c84ab Merge branch 'master' into SPARK-2506_qho_ib_2 2019-06-25 09:53:45 -04:00
Pedro Pinto 1cce474485 Suppressed updates on completed/canceled orders 2019-06-25 09:51:51 -04:00
Taha Afzal 7186c0349b Added logs for order callbacks on QueueHolderOrder 2019-06-24 20:17:29 -04:00
John Colvin 3d829da004 Merged in SP-49-miniob-settings (pull request #277)
RTM SP-49 miniob settings
2019-06-24 23:48:57 +00:00
John Colvin f20fd2136e SP-78 miniob settings - column width adjustments made directly through the grid should be saved in settings 2019-06-24 17:50:30 -05:00
John Colvin 30ce85b70f fix typo in AlgoID.Equals(object) 2019-06-24 17:41:42 -05:00
John Colvin fc7a04a805 LadderSettings must assign show_warn_on_cross in the constructor with the default value since it is 'true' 2019-06-24 16:58:26 -05:00
Jake Norbut 6d96c0e2a0 fix cross check 2019-06-24 16:52:18 -05:00
Pedro Pinto ae913962b3 Updated release notes 2019-06-24 17:41:04 -04:00
Pedro Pinto b52f6fdc24 Merge remote-tracking branch 'origin' into SP-49-miniob-settings 2019-06-24 17:24:27 -04:00
Taha Afzal 29d14404e6 PositionService has access to AdminService to resolve accounts now 2019-06-24 17:15:04 -04:00
John Colvin d13f1b04ed LadderWindowFactory - actually dispose the settings subscription when ladder closes 2019-06-24 16:06:11 -05:00
John Colvin 8d234d9b8b LadderSettingsView - 'Auto Clear' default value checkbox's checkmark was backwards 2019-06-24 15:32:22 -05:00
John Colvin d261d6fc31 LadderSettingsView - fix 'Order Quantities' tab 'hint text' vertical alignment (apparently RowDefinition.Height is a just a suggestion to wpf - using MaxHeight now) 2019-06-24 14:52:23 -05:00
John Colvin 343bf25aaf ShellSettingsDialog - increase LadderSettingsView width to fit all tabs in 1 row 2019-06-24 14:47:42 -05:00
John Colvin 0f93757506 Merge remote-tracking branch 'origin/SP-51_cross_warning' into SP-49-miniob-settings 2019-06-24 14:42:26 -05:00
Taha Afzal 60b7966f2f Loss limit manual test 2019-06-24 15:33:47 -04:00
John Colvin 6cad454f9e Merged in ladder-settings-round2 (pull request #273)
RTM Ladder settings round2

Approved-by: Pedro Pinto <pedro.pinto+atlassian@bluetradesys.com>
2019-06-24 19:32:05 +00:00
Pedro Pinto b3f6649e7f Updated release notes. 2019-06-24 15:30:26 -04:00
Jake Norbut 1059351334 adding the settings_subscription to be disposed; fixes swallowed NullRef; not directly related to this branch 2019-06-24 14:15:53 -05:00
John Colvin 3263cc840a SP-77 in miniob settings, changing the column order does not seem to have an effect 2019-06-24 14:15:50 -05:00
Pedro Pinto 8d0e93a311 Merge remote-tracking branch 'origin' into ladder-settings-round2 2019-06-24 15:04:29 -04:00
Jake Norbut 179ee000a3 adding case for when the ladder is first brought up and the market has not yet moved 2019-06-24 14:02:24 -05:00
Jake Norbut 43129427f6 fix arrow disappearing from non-Last-based renders 2019-06-24 13:20:38 -05:00
Pedro Pinto f49d73640e Merge remote-tracking branch 'origin' into SPARK-2506_qho_ib_2 2019-06-24 14:18:34 -04:00
Jake Norbut 7afe1e103d refactor string formatting out of LadderRender 2019-06-24 13:18:29 -05:00
Jake Norbut c1b701ff2b Merged in SP-73 (pull request #274)
RTM - add null check on LadderVM

Approved-by: John Colvin <john.colvin@bluetradesys.com>
2019-06-24 18:16:37 +00:00
John Colvin 06ca15ccac Merged in SP-75-ladder-security (pull request #275)
RTM SP-75 OrderBook's Ladder uses actual selected order's to get security (not roots)

Approved-by: Jake Norbut <jake.norbut@bluetradesys.com>
Approved-by: Pedro Pinto <pedro.pinto+atlassian@bluetradesys.com>
2019-06-24 18:15:15 +00:00
Pedro Pinto 027efa9d2a Updated release notes 2019-06-24 14:14:35 -04:00
Pedro Pinto 026695d0d1 Merged with master 2019-06-24 14:01:09 -04:00
Jake Norbut 50775b3925 Merged in SP-50-prime (pull request #278)
SP-50 prime last trade accumulation

Approved-by: John Colvin <john.colvin@bluetradesys.com>
Approved-by: Pedro Pinto <pedro.pinto+atlassian@bluetradesys.com>
2019-06-24 17:59:31 +00:00
Pedro Pinto c695b43647 Updated release notes. 2019-06-24 13:58:13 -04:00
John Colvin 56ace9514a MiniOrderBook - set 'Cancel' column [default]width to 37, give other 'magic consts' widths fields in DefaultColumnWidths 2019-06-24 11:48:06 -05:00
Taha Afzal 7c6a26ebd9 All hooked up, on updates, loss limit is checked only on size increases 2019-06-23 19:25:06 -04:00
John Colvin c6c1659953 ShellSettingsDialog - adjust dialog skrit margin to stretch to the edges of the window 2019-06-23 13:36:59 -05:00
John Colvin dc696e9468 ShellSettingsDialog uses 'Admin' icon (gears) 2019-06-23 13:19:18 -05:00
John Colvin a6189d910c ShellSettingsDialog - apply NegativeResizeBorderThickness margin to content root (not just dialog skirt) 2019-06-23 12:25:01 -05:00
John Colvin 049cc69a4f settings dialogs title matches actual shell window titles 2019-06-23 12:18:10 -05:00
Taha Afzal b2766c283d Setting account id in PositionUnit 2019-06-22 22:05:32 -04:00
John Colvin 0b14b048e4 fix ViewModelBase.backing<string>() conflicts between 'string default_value' arg and 'string[] params invalidating props' 2019-06-22 17:26:07 -05:00
John Colvin ffc03a4055 ExpanderToggleButton was getting clipped in GridSettingsEditor 2019-06-22 16:56:45 -05:00
John Colvin 992eb7b104 added 'ImmutableHeader' flag for MiniOB 'Commit' column 2019-06-22 16:47:37 -05:00
John Colvin 314eca0e89 GridSettings - fix DefaultValue attributes/list initialization 2019-06-22 16:41:17 -05:00
John Colvin 626ec79af4 SortingCriteria implements IEquatable 2019-06-22 16:38:02 -05:00
John Colvin 953272b231 GridSettings (Simple)ColumnVM - remove unneccesary Property<T>s, simplify flags logic 2019-06-22 16:38:02 -05:00
John Colvin 4c185093bb make ShellSettingsDialog resizable 2019-06-22 16:38:02 -05:00
Pedro Pinto 6b5b4ea2b1 Merge branch 'SP-24-loss-limit' of bitbucket.org:bluetradesys/spark into SP-24-loss-limit 2019-06-22 16:30:39 -04:00
Pedro Pinto 6f7c6db918 Updated fill account_id in FillStore. 2019-06-22 16:29:55 -04:00
Taha Afzal a1ead3d1c1 cpp routed correctly now 2019-06-22 14:24:15 -04:00
Taha Afzal 1fc35ee3cd Merge branch 'SP-24-loss-limit' of bitbucket.org:bluetradesys/spark into SP-24-loss-limit 2019-06-21 18:43:31 -04:00
John Colvin af576bbee7 SP-37 / SP-49 Add miniob settings to ladder settings 2019-06-21 17:29:16 -05:00
John Colvin 7b9ed4326a DragDropListBox - null check AdornerLayer 2019-06-21 17:27:42 -05:00
John Colvin 615e585c82 simplify mini ob editable price/qty column insertion 2019-06-21 17:21:32 -05:00
Taha Afzal a014dcc984 abstracted _get_handle in PositionServicePNLHelper::HandleIndex 2019-06-21 17:58:08 -04:00
Pedro Pinto 81a0f9193d Support for server side stop orders is code complete. 2019-06-21 17:41:02 -04:00
John Colvin 42645f1246 OrderBookGridSettings.with() was dropping algo_tree_display_mode value 2019-06-21 16:26:29 -05:00
Taha Afzal 1c5507a3f4 QueueHolderOrder's QHOOrderManager kills the spurious price/qty updates 2019-06-21 16:09:19 -04:00
Eric Harding a92dd5a841 SP-50 last_trade accumulation 2019-06-21 15:21:57 -04:00
Eric Harding 91a6c946f8 SP-50 last_trade should accumulate trades at the same price 2019-06-21 14:25:15 -04:00
John Colvin cfbd7855a5 OrderBookVM - remove a few unused methods 2019-06-21 11:51:15 -05:00
John Colvin 00e9862844 refactor 'begin_update()' -> 'defer_updates()' for consistency's sake 2019-06-21 11:46:31 -05:00
John Colvin 4d413fb92c OrderBook - remove security->security_md conversion logic from OrderParamsAggregator, get rid of SelectedSecurityMon 2019-06-21 11:45:19 -05:00
Pedro Pinto 6e07a0c109 Fixed build. 2019-06-21 11:51:20 -04:00
Pedro Pinto e936b80dc6 Forwarded pnl updates to order manager. 2019-06-21 11:45:50 -04:00
Taha Afzal 4046f82e06 refactoring accidentally omitted conditional check 2019-06-21 08:35:40 -04:00
Taha Afzal 699a6526f5 Merge branch 'master' into SPARK-2506_qho_ib_2 2019-06-20 21:53:10 -04:00
Taha Afzal 12a4c67e4d Modified SingleLegQuoter::_compute_price_quantity to deal with show qty and qho 2019-06-20 21:52:06 -04:00
Jake Norbut e9562b55f3 pr refactoring 2019-06-20 20:16:32 -05:00
Jake Norbut 43735e1dab adding icon param Confirm overload 2019-06-20 20:16:12 -05:00
John Colvin 930723dd0e move ObservableExtensions into spark_core 2019-06-20 18:15:56 -05:00
John Colvin 3e4ee9d6b6 abstract SelectedParamsMon out of OrderBookVM into new class 'OrderParamsAggregator' 2019-06-20 17:11:55 -05:00
John Colvin c771aea311 RefCountMap implements IDictionary/IReadOnlyDictionary 2019-06-20 16:53:16 -05:00
Jake Norbut 7b35467d59 adding warn on cross message box for the approparite criteria 2019-06-20 15:12:01 -05:00
Jake Norbut 192354946d exposing a couple settings as readonly properties so we don't have to expose the entire settings object 2019-06-20 15:09:15 -05:00
Jake Norbut 1eacb7f0f0 adding new Safety Checks tab on which Warn on Market Cross is found 2019-06-20 15:07:16 -05:00
Jake Norbut d0695fd5d7 adding show_warm_on_cross to LadderSettingsVM 2019-06-20 15:05:46 -05:00
Jake Norbut ad8377d13f adding show_warn_on_cross to LadderSettings 2019-06-20 15:04:39 -05:00
Pedro Pinto 60ab67213f Ran clang format. 2019-06-20 15:57:09 -04:00
Pedro Pinto 4055a06601 Merged master 2019-06-20 15:28:27 -04:00
John Colvin 883582630d SP-75 OrderBook's Ladder uses actual selected order's to get security (not roots) 2019-06-20 14:01:47 -05:00
Jake Norbut e7728203cf PR feedback 2019-06-20 12:04:40 -05:00
Jake Norbut dd8586133f add null check on LadderGridHost and LadderVM 2019-06-20 10:18:39 -05:00
Kevin Darby e47af3d7bd update api docs 2019-06-20 10:34:06 -04:00
John Colvin f4aa5cfa8c sec picker in Ladder/Orderbook settings dialogs does not change security when cancel clicked 2019-06-20 00:10:52 -05:00
John Colvin bc3f2db0f9 add OK/Cancel buttons to sec pickers in ladder/orderbook settings dialogs 2019-06-19 19:56:20 -05:00
John Colvin ed08cb11d7 convert ContractPickerPopup ok/cancel actions to events 2019-06-19 19:43:53 -05:00
Pedro Pinto 719d460372 Merged with master 2019-06-19 16:59:50 -04:00
John Colvin 7b0549c4cb (forgot to add 'GlbxIceberg' case when fitting non-synth algos to synth ladders) 2019-06-19 15:47:16 -05:00
John Colvin 2ee0568159 ShellSettingsDialog - added 'not applicable to custom' tooltip for security picker menu item 2019-06-19 15:37:46 -05:00
John Colvin df907fcb96 SPARK-2521 / SPARK-2522 rename 'Local' -> 'Custom' (take 2) 2019-06-19 15:37:46 -05:00
John Colvin b945f9f090 Ladder Profles - synth ladders convert all non-synth default_algos to 'Spreader' 2019-06-19 15:37:46 -05:00
Jake Norbut 4cebe8b6be updating mini ob manual test 2019-06-19 15:25:46 -05:00
Jake Norbut c899904f3a Merged in miniob_deselect (pull request #272)
fixing unselect all
2019-06-19 20:20:50 +00:00
Jake Norbut 8e6ccd5b1b fixing unselect all 2019-06-19 15:16:42 -05:00
Taha Afzal 32eeeee94f Adding logs and removing the show qty hardcoded value in QHO 2019-06-19 16:00:23 -04:00
Pedro Pinto 007054f2b8 Updated release notes. 2019-06-19 15:45:54 -04:00
Jake Norbut 43822134e3 Merged in mini_ob_ireqeustrowselection (pull request #271)
miniob / DIYGrid - keep selected_rows in sync with row_vm.IsSelected

Approved-by: John Colvin <john.colvin@bluetradesys.com>
2019-06-19 19:26:08 +00:00
John Colvin 68c1415cf8 Merged in SPARK-2489-ladder-settings (pull request #270)
SPARK-2489 ladder settings

Approved-by: Jake Norbut <jake.norbut@bluetradesys.com>
2019-06-19 19:16:25 +00:00
John Colvin d9b25fb778 threadstatic fields cannot be initialized inline 2019-06-19 14:10:50 -05:00
John Colvin 0a3e12e012 SPARK-2521 / SPARK-2522 rename 'Local' -> 'Custom' 2019-06-19 14:10:50 -05:00
John Colvin 8b33c7fb5c Ladder Profile's 'default_algo' is fit to the security type (allows profiles to be shared between outrights/synths) 2019-06-19 14:10:50 -05:00
Pedro Pinto 831b042c35 Updated release notes. 2019-06-19 15:04:29 -04:00
Pedro Pinto c9af55f59d Fixed clang build. 2019-06-19 14:56:07 -04:00
Pedro Pinto 056176ff47 Hide Cover in the lader when its done with its child. 2019-06-19 14:55:39 -04:00
Pedro Pinto 297a925f22 Fixed a bug in cover where cover would not terminate properly. 2019-06-19 14:54:16 -04:00
John Colvin 11ca6326f3 refactor 'AlgoID.from_order_def' -> 'AlgoID.from_custom_def' 2019-06-19 13:19:09 -05:00
Kevin Darby c3c427742d Merge branch 'master' of bitbucket.org:bluetradesys/spark into span 2019-06-19 13:34:52 -04:00
Kevin Darby 132bee0d27 Merge branch 'prorata' of bitbucket.org:bluetradesys/spark into prorata 2019-06-19 12:41:48 -04:00
Jake Norbut efa78ee5fc OrderBookVM now implements IRequestRowSelection and appropriately invokes it via all_rows_selected setter 2019-06-19 09:15:38 -05:00
Jake Norbut c52b98d17c DIYGrid now hooks up to request_selection event and passes that along to the underlying row presenter's SetSelectedItems 2019-06-19 09:13:55 -05:00
Jake Norbut 06506be398 Exposing a public SetSelectedItems that calls the protected ListBox equivalent 2019-06-19 09:11:34 -05:00
Jake Norbut d951942a95 Creating new interface to handle the select all checkboxbox in the mini ob the right way 2019-06-19 09:06:28 -05:00
Michael Harding 1f99cc68f8 Re: the 5:30 problem 2019-06-19 09:51:59 -04:00
Michael Harding d4f27a65f5 Harden system tests against 5:30PM 2019-06-19 09:37:15 -04:00
John Colvin 2b3901fdbe dispose LadderSettingsDialog viewmodel when window closes 2019-06-18 22:44:16 -05:00
John Colvin fa51d7f441 LadderSettingsView - abstract magic const out into StaticResource 2019-06-18 22:14:29 -05:00
John Colvin 2bc54b0dbb LadderSettingsView - 'Market Price/Size' tab Grid.IsSharedSizeScope=True 2019-06-18 19:52:38 -05:00
John Colvin 5b767482d7 LadderSettingsView - rearrange GroupBoxes in 'Left Panel' tab 2019-06-18 19:52:20 -05:00
John Colvin 8594708073 LadderVM.get_save_state - null check for order_properties_vm 2019-06-18 18:47:24 -05:00
John Colvin ac4cdc0e2d Merge remote-tracking branch 'origin/master' into SPARK-2489-ladder-settings 2019-06-18 18:09:08 -05:00
John Colvin c66dfdaf27 LadderSettingsView - add 'Auto Clear' value checkbox, minor style tweaks 2019-06-18 18:00:18 -05:00
Michael Harding 83c432d8e2 Merged in SP-34-loss_limit_admin (pull request #268)
SP-34: Add Loss Limit to Spark Admin

Approved-by: Pedro Pinto <pedro.pinto+atlassian@bluetradesys.com>
2019-06-18 21:25:47 +00:00
Pedro Pinto dcd42367e1 Updated release notes. 2019-06-18 17:14:55 -04:00
Jake Norbut 1fd4212a4e Merged in mini_ob_perf (pull request #266)
mini-ob - delaying popup Child control creation until approparite button is actually clicked

Approved-by: Pedro Pinto <pedro.pinto+atlassian@bluetradesys.com>
2019-06-18 21:12:13 +00:00
Pedro Pinto aa5b88e1a2 Merge branch 'master' of bitbucket.org:bluetradesys/spark 2019-06-18 17:07:16 -04:00
Pedro Pinto 3f86968937 Rejected stop and stop limit orders until we can fix them. 2019-06-18 17:06:55 -04:00
Kevin Darby 0385376d04 Merged in fix_auth_tests (pull request #267)
fix auth tests

Approved-by: Pedro Pinto <pedro.pinto+atlassian@bluetradesys.com>
2019-06-18 20:55:38 +00:00
Kevin Darby 914ec09b4f fix auth tests 2019-06-18 16:44:54 -04:00
Michael Harding 6a4930767b SP-34: Add Loss Limit to Spark Admin 2019-06-18 16:32:14 -04:00
Kevin Darby fd106559da Merged in key_codes (pull request #253)
RTM: Key codes
2019-06-18 20:16:31 +00:00
Pedro Pinto a1270fb928 Updated release notes. 2019-06-18 16:15:49 -04:00
John Colvin 1f8b0bf1e6 in profile settings dialog, revert restores the 'persisted' profile (not necessarily the same value from when the dialog was opened) 2019-06-18 15:03:55 -05:00
John Colvin 292acd64e6 Merge remote-tracking branch 'origin/master' into SPARK-2489-ladder-settings 2019-06-18 14:44:26 -05:00
John Colvin 453f70259a AlgoID.from_algo_key was losing dynamic type name 2019-06-18 14:24:44 -05:00
John Colvin 18a80516d5 SPARK-2489 / SPARK-2499 eliminate 'window specific settings,' treat all props like regular settings 2019-06-18 14:24:43 -05:00
Kevin Darby 685e69adcc Merge branch 'key_codes' of bitbucket.org:bluetradesys/spark into span 2019-06-18 15:21:10 -04:00
Kevin Darby 1ebd0e8d62 Merge branch 'master' of bitbucket.org:bluetradesys/spark into key_codes 2019-06-18 15:08:13 -04:00
Kevin Darby c09ef31061 Added a warning message and facility to allow concurrent logins in a keycode 2019-06-18 15:07:08 -04:00
John Colvin 613ba8004d LadderView - make Min/MaxZoomFactor consts (were StaticResources) 2019-06-18 13:55:08 -05:00
John Colvin a1ffc24ed9 LadderVM - size_calculator uses shared settings subscription 2019-06-18 13:55:07 -05:00
John Colvin c40055dd2f SPARK-2493 Add multiple profiles for ladder settings 2019-06-18 13:55:07 -05:00
Kevin Darby 2b7f5572db Merge branch 'master' of bitbucket.org:bluetradesys/spark into prorata 2019-06-18 14:40:23 -04:00
Jake Norbut 163b77ff84 mini-ob - delaying popup Child control creation until approparite button is actually clicked 2019-06-18 13:29:49 -05:00
Pedro Pinto 1b1129320a Merged in SP-22-expose-hidden-badge-facility-in-ap (pull request #265)
RTM. SP-22 expose hidden badge facility in ap

Approved-by: Taha Afzal <taha.afzal@bluetradesys.com>
2019-06-18 17:39:21 +00:00
Kevin Darby 589476eb02 Merge branch 'master' of bitbucket.org:bluetradesys/spark into key_codes 2019-06-18 13:34:06 -04:00
Taha Afzal fe2b167fd5 Merge branch 'master' into SPARK-2506_qho_ib_2 2019-06-18 12:06:23 -04:00
Pedro Pinto fd0e1dfb0e Updated release notes. 2019-06-18 12:01:09 -04:00
Pedro Pinto e95eb4a749 Merged with master 2019-06-18 11:59:30 -04:00
Michael Harding 8fb13bd3c3 Merged in spreader_lean_qty (pull request #264)
Spreader lean qty
2019-06-18 14:17:21 +00:00
Jake Norbut 9cfa229b04 Merged in SPARK-2519 (pull request #262)
RTM - mini ob - select/unselect all checkbox in header

Approved-by: Pedro Pinto <pedro.pinto+atlassian@bluetradesys.com>
2019-06-18 14:10:06 +00:00
Jake Norbut 72e7901145 Merged in SPARK-2509 (pull request #260)
RTM - SPARK-2509 - distinguish buy and sell better in fills window

Approved-by: Eric Harding <eric.harding@bluetradesys.com>
2019-06-18 14:09:25 +00:00
Michael Harding c2788e4d61 Harden wait_for_orders_service_ready 2019-06-18 09:58:54 -04:00
Michael Harding 0b5d2bd4dc Fix null security Id 2019-06-18 09:58:08 -04:00
Jake Norbut 98006a07e8 PR - refactoring - eliminating init_brush in favor of implicit BTSColor to frozen Brush operator 2019-06-18 08:04:15 -05:00
Jake Norbut 420273b861 Merge branch 'SPARK-2509' of bitbucket.org:bluetradesys/spark into SPARK-2509 2019-06-18 07:53:34 -05:00
Jake Norbut 09ed017bf2 BTSColors - no need to explicity freeze when we have an implicit operator that can do so, thx Eric 2019-06-18 07:52:55 -05:00
Taha Afzal 04fbcc49b1 Merge branch 'SPARK-2506_qho_ib_2' of bitbucket.org:bluetradesys/spark into SPARK-2506_qho_ib_2 2019-06-17 18:18:49 -04:00
Taha Afzal 32229e3236 removing the hard coded values now that it is hooked to the ui 2019-06-17 18:18:41 -04:00
Kevin Darby e9f61dc3c0 added get_excess_liquidity_report rpc for adminui 2019-06-17 18:15:05 -04:00
Jake Norbut f13949ed0f removing Minimum property on ShowQuantity template 2019-06-17 16:49:16 -05:00
Kevin Darby f329470165 added spreadsheet to help test span 2019-06-17 16:49:21 -04:00
Jake Norbut f2b7e692f8 ShowQuantity param now defaults to 1 and the associated TickUpDownUint has a min of 1 as well 2019-06-17 14:49:39 -05:00
Jake Norbut 2cff906c5f adding minimum maximum properties to TickUpDownUint; adding uint overload for within_range 2019-06-17 14:47:48 -05:00
Jake Norbut f711715350 don't allow parameter modification unless the checkbox is checked 2019-06-17 14:43:28 -05:00
Pedro Pinto 8116700737 Updated release notes. 2019-06-17 14:31:39 -04:00
Pedro Pinto f902f163de Merge branch 'master' into SPARK-2509 2019-06-17 14:30:33 -04:00
Pedro Pinto d06bef463b Merged SP-42-manual-fills-should-not-go-into-so into master 2019-06-17 14:07:02 -04:00
Pedro Pinto 38db7b28e0 Updated manual test. 2019-06-17 14:05:11 -04:00
Taha Afzal e76a72e3e6 Merge branch 'master' into SPARK-2506_qho_ib_2 2019-06-17 13:37:48 -04:00
John Colvin 485991b046 LadderSettingsVM - assume algos in settings proto exist (avoid 'deleting' favs when create is called before first algo-TableUpdate arrives) 2019-06-17 12:32:57 -05:00
Michael Harding 63cd653ffd Merged master into spreader_lean_qty 2019-06-17 13:10:59 -04:00
Michael Harding cb0ec5f3b9 match sparkdata discovery 2019-06-17 13:08:59 -04:00
Taha Afzal 64e7921280 Lean Algo hides its badge once it has fired 2019-06-17 13:07:16 -04:00
Michael Harding e5d31d3c89 match sparkdata discovery, remove use_onixs: false 2019-06-17 12:58:21 -04:00
Jake Norbut 219da9b22a mini ob - select/unselect all checkbox in header 2019-06-17 11:50:43 -05:00
Pedro Pinto b3bff8ecc3 Updated release notes. 2019-06-17 11:02:01 -04:00
Pedro Pinto c1fb53ff06 Merge branch 'master' into SP-42-manual-fills-should-not-go-into-so 2019-06-17 11:01:11 -04:00
Michael Harding 220af155a9 Merged in Documentation (pull request #259)
Move system requirements to Docs
2019-06-17 14:58:07 +00:00
Pedro Pinto e7286e305d Updated release notes. 2019-06-17 10:57:33 -04:00
Pedro Pinto 770b857f90 Merge branch 'master' into Documentation 2019-06-17 10:56:35 -04:00
Jake Norbut 4b9e4b25c7 Merged in miniob_vnext (pull request #258)
Mini OrderBook client demo feedback
2019-06-17 14:53:50 +00:00
Pedro Pinto 0f87973ee2 Updated release notes. 2019-06-17 10:53:22 -04:00
Pedro Pinto b6790aa7f5 Merge branch 'master' into miniob_vnext 2019-06-17 10:44:57 -04:00
Kevin Darby d7d319f1e3 fixed span timing 2019-06-17 10:43:27 -04:00
Pedro Pinto 6adbfda6c4 Merged in SP-40-cover-should-be-more-decoupled-fro (pull request #261)
RTM. SP-40 cover should be more decoupled fro

Approved-by: Eric Harding <eric.harding@bluetradesys.com>
2019-06-17 14:42:51 +00:00
Pedro Pinto fef5b4edaa Updated release notes. 2019-06-17 10:42:05 -04:00
Pedro Pinto e8cccdb1c0 Changed manual fills to show in day rather than SOD. 2019-06-17 10:15:52 -04:00
Pedro Pinto 19dc7f8915 Fixed a bug in visibiliy control API and changed Join to hide itself 2019-06-17 09:59:03 -04:00
Pedro Pinto 69f61757c4 Added API support for ladder visibility control. 2019-06-17 09:47:02 -04:00
Taha Afzal cddadcb278 PositionService exposes new streaming calls pnl_data and pnl_account_data to get detailed and summary pnls 2019-06-16 22:02:16 -04:00
John Colvin 666765ffbb LadderSettingsVM implements IObservable<LadderSettings> 2019-06-16 20:43:57 -05:00
John Colvin 82a9b4521a DisposableViewModelBase - in subscribe(), use the _property_changed_demuxer via the property (which lazily inits the backing) 2019-06-16 20:33:35 -05:00
John Colvin 7c329ceebe DisposableViewModelBase - initialize '_observable_properties' lazily in property getter 2019-06-16 20:33:35 -05:00
Kevin Darby 419833d398 slight timing issue with span 2019-06-14 18:10:41 -04:00
Jake Norbut 0f88144fd6 adding new ShowQuantity Enabled + Quantity models 2019-06-14 14:55:15 -05:00
Jake Norbut abe35bddf0 adding ShowQuantity (and params) 2019-06-14 14:54:22 -05:00
Jake Norbut cd262cd66c Adding Show Quantity ParameterSection 2019-06-14 14:52:59 -05:00
Jake Norbut 0133cc8aa5 Adding ShowQuantity Defaults 2019-06-14 14:52:23 -05:00
Pedro Pinto 66d05c63af Made cover cancel behaviour parameterizable.
This implements the server side only, the UI does not expose this
configuration so effectively the behaviour right now is
hard-coded until we get around to adding the UI.
2019-06-14 14:25:04 -04:00
Kevin Darby 9883553fb5 MarginService 2019-06-14 11:21:09 -04:00
Pedro Pinto bc3ab563bf Changed Cover to detach its hedges when canceled. 2019-06-14 10:58:33 -04:00
Pedro Pinto ed23bc7e2b Enhanced the API to allow algos to implement custom cancel handling 2019-06-14 10:50:34 -04:00
Pedro Pinto 3dda3e7f75 Allow cover order to continue even if hedgding child is canceled. 2019-06-14 10:44:38 -04:00
Pedro Pinto ff461d42b8 Merge branch 'master' into prod 2019-06-14 10:13:40 -04:00
Jake Norbut d678d202c1 PR rename on_row_updated 2019-06-14 09:04:09 -05:00
Jake Norbut ad0b1756b1 PR rename on_row_unselected 2019-06-14 09:03:07 -05:00
Jake Norbut f34f718c72 PR rename on_row_selected 2019-06-14 09:02:24 -05:00
Jake Norbut 213fb1de59 PR refactoring cancel 2019-06-14 09:00:30 -05:00
Jake Norbut e8d799a0f6 PR refactoring detach 2019-06-14 09:00:17 -05:00
John Colvin bef46390be ContractPickerPopup - remove automatic Header binding, so callers may override it 2019-06-13 16:54:42 -05:00
Kevin Darby be5d037ca9 span works again 2019-06-13 17:52:47 -04:00
Jake Norbut 4edd804b3c forgot to remove this when I took the resource out 2019-06-13 16:15:22 -05:00
Jake Norbut 86733747f1 getting rid of the ListBoxItem template and just going with the converter 2019-06-13 15:58:40 -05:00
Jake Norbut 5202300fb1 ActualWidth for total visible width down in the HighPerformanceRow per John 2019-06-13 15:58:12 -05:00
Taha Afzal 21f5fd919d Changes in the API for Loss Limit and new parameter in the account to enforce that limit 2019-06-13 15:37:43 -04:00
Jake Norbut 7aae61decd Cleanup related to new RenderTextColumn func; deleting classes, etc 2019-06-13 14:14:45 -05:00
Jake Norbut 64f78e6077 RenderColumn now accepct a Func for background brush 2019-06-13 14:11:53 -05:00
Jake Norbut 318ea5909c adding new brushes to be references from xaml; misc helper function 2019-06-13 13:32:29 -05:00
Jake Norbut 83190b437a defining a new RowStyle for the fills grid that uses a converter based on side 2019-06-13 13:31:33 -05:00
Michael Harding 5a54b37af7 Move system requirements to Docs 2019-06-13 13:07:42 -04:00
Michael Harding 12dd3909bf Fix documentation deploy 2019-06-13 12:49:13 -04:00
Michael Harding 64fd8addb2 Update Lean qty factor shell script 2019-06-13 09:38:11 -04:00
John Colvin 5ddb0f92ea ObservantCommand impl was not updating 'CanExecute' 2019-06-13 00:26:05 -05:00
John Colvin 69f3f1f467 normalize line endings in Converters.xaml (why does it feel like i've done this before?) 2019-06-12 23:47:26 -05:00
John Colvin be42f9e583 general purpose ToolBar view 2019-06-12 23:46:50 -05:00
John Colvin 6d069f5174 added ListExtensions.WrapSkip() (returns an IList impl that skips the first n items in the source list) 2019-06-12 23:46:14 -05:00
John Colvin 7a31adcc1e added DictionaryHelper.key_comparer<TKey, TValue>() 2019-06-12 23:45:52 -05:00
John Colvin 512175966d KeyedStyleSelector._try_get_item_key returns false if key is found but null 2019-06-12 23:45:19 -05:00
John Colvin 67de7c5a33 clean up Spark.csproj 2019-06-12 23:44:52 -05:00
John Colvin 8add53a559 move/rename 'WindowSettingsDialogVM' -> 'ShellSettingsDialogVM' 2019-06-12 23:44:18 -05:00
John Colvin 3e7e572763 move/rename 'SimpleGridSettingsDialog' -> 'ShellSettingsDialog' 2019-06-12 23:43:43 -05:00
Kevin Darby 159e8fba23 beginnings of span, should't be long 2019-06-12 18:17:09 -04:00
Jake Norbut 0d020e9821 updating manual test 2019-06-12 14:48:36 -05:00
Michael Harding 4490ac303e SPARK-2438: Lean Qty test 2019-06-12 15:41:16 -04:00
Jake Norbut fb1d70b08c Merge branch 'master' of bitbucket.org:bluetradesys/spark into miniob_vnext 2019-06-12 14:02:56 -05:00
Jake Norbut c2f6b01567 debugging comment 2019-06-12 10:54:24 -05:00
Jake Norbut 4a758c7554 misc comment cleanup, line endings or something 2019-06-12 10:54:02 -05:00
Jake Norbut 5c79a08f0e popup close event no longer messes with selected_rows 2019-06-12 10:53:15 -05:00
Jake Norbut 4b7adbe0c9 adding tooltip to update button 2019-06-12 09:59:48 -05:00
Jake Norbut 164c88fa60 popup debug comments 2019-06-12 09:56:03 -05:00
Jake Norbut b57d6cce85 select/unselect me only needs to manipulate row.is_selected now 2019-06-12 09:52:22 -05:00
Jake Norbut e47706eb1b guaranteeing on_updating is hooked up to only a single callback; this was a major pain to debug, thx john 2019-06-12 09:49:00 -05:00
Jake Norbut c2e91b03f6 Adding similar IsSelected setter to main OB just in case ... 2019-06-12 09:40:35 -05:00
Jake Norbut 114c9f3c27 Adding resurrected check column back to mini ob, bound to is_selected 2019-06-12 08:28:56 -05:00
Jake Norbut 40805be11e Bringing back the check column in case of SelectionHighlight shenanigans 2019-06-12 08:27:39 -05:00
Jake Norbut b21cd840c2 The first time I met the blues, I was losing my SelectionHighlight; too beat down to remove this Setter that was added over many hours of debugging 2019-06-12 08:23:55 -05:00
Jake Norbut 4854a06eda fix SelectionHighlight databinding expression in mini ob 2019-06-12 08:12:48 -05:00
Jake Norbut 44e7cfb4a5 setting is_selected and clearing selected_rows when update popup closes 2019-06-11 14:06:08 -05:00
Jake Norbut a7da930e69 synchronize selected_rows with _un/select_me() 2019-06-11 14:02:23 -05:00
Jake Norbut d64df27188 don't change is_selected state here b/c it leads to discrepancies when attaching/updating 2019-06-11 12:27:51 -05:00
Jake Norbut 93534eb801 changing row selection while in change breaks the main ob 2019-06-11 10:57:07 -05:00
Taha Afzal d1b2dbd688 Hiding the QHO badge 2019-06-11 08:59:52 -04:00
Taha Afzal bebe0c2478 Merge branch 'master' into SPARK-2506_qho_ib_2 2019-06-10 20:36:05 -04:00
Taha Afzal 61126fb3d5 QHO order qty's are contrained by the show qty now 2019-06-10 20:32:15 -04:00
John Colvin 0af5b78318 Merged in SPARK-2489-ladder-settings (pull request #257)
RTM SPARK-2489 ladder settings

Approved-by: Pedro Pinto <pedro.pinto+atlassian@bluetradesys.com>
2019-06-10 21:31:24 +00:00
Pedro Pinto c652032ddf Updated release notes. 2019-06-10 17:27:46 -04:00
John Colvin 7bd868b753 Merge remote-tracking branch 'origin/master' into SPARK-2489-ladder-settings 2019-06-10 15:23:58 -05:00
Kevin Darby 3254775eb9 Merge branch 'master' of bitbucket.org:bluetradesys/spark into prorata 2019-06-10 16:17:52 -04:00
John Colvin 1bc4510862 LadderSettingsView - touch up 'Market Price And Size Display' tab 2019-06-10 15:12:38 -05:00
Kevin Darby e452413b92 Merge branch 'master' of bitbucket.org:bluetradesys/spark into key_codes 2019-06-10 16:04:43 -04:00
Taha Afzal b0886f6b3d First check in, needs to be retofitted to QHO now 2019-06-10 15:58:10 -04:00
Kevin Darby 62c7886807 used os::host_ips() 2019-06-10 15:57:53 -04:00
John Colvin b1fb964648 Merged in SPARK-2508-fills-symbol-column (pull request #256)
RTM SPARK-2508 fills symbol column
2019-06-10 19:45:37 +00:00
Pedro Pinto ee19f7c7da Updated release notes. 2019-06-10 15:44:00 -04:00
Jake Norbut a0bf7779f5 mini ob - changes from John; closer to working but not yet, likely related to mark_commited/revert not getting wired up/called 2019-06-10 14:35:06 -05:00
John Colvin cd41632b53 LadderSettingsView - touch up 'Order Quantities' tab 2019-06-10 14:27:54 -05:00
Kevin Darby d4c2eb2bbc Merge branch 'master' of bitbucket.org:bluetradesys/spark into prorata 2019-06-10 14:56:13 -04:00
Kevin Darby 95a5791867 Jake was worried about using the same keycode for multiple servers. To combat this I look at ifconfig for
an ip to appear on the list that matches what is optionally encoded in the keycode
2019-06-10 14:51:07 -04:00
John Colvin ecd384501e align LadderSettingsView (content in settings dialog) with hamburger button 2019-06-10 12:22:05 -05:00
John Colvin 0483460ac9 Merge remote-tracking branch 'origin/master' into SPARK-2489-ladder-settings 2019-06-10 12:00:08 -05:00
Michael Harding 666bd07411 Merge branch 'master' into spreader_lean_qty 2019-06-10 12:56:44 -04:00
John Colvin 0bc24fa7b7 SPARK-2508 Fills - add 'Symbol' column 2019-06-10 11:48:09 -05:00
Kevin Darby af365177d0 PR feedback and a manual test 2019-06-10 12:46:37 -04:00
John Colvin ac60a1447e stack FillsView.Columns enum values vertically (easier to merge column changes) 2019-06-10 11:32:35 -05:00
Kevin Darby e8b5d4f8fd Merge branch 'master' of bitbucket.org:bluetradesys/spark into key_codes 2019-06-10 12:00:06 -04:00
Pedro Pinto 0ff4624778 Updated release notes. 2019-06-10 11:05:59 -04:00
Taha Afzal ab04b4afab Merged in SPARK-2505_qho_ib_1 (pull request #254)
RTM
2019-06-10 15:02:57 +00:00
Kevin Darby 43a49b9399 Merge branch 'master' of bitbucket.org:bluetradesys/spark into ice_exec3 2019-06-10 10:40:56 -04:00
Taha Afzal ac226ddd3b Merged in SPARK-2488-LeanAlgoBug (pull request #255)
RTM
2019-06-10 14:36:18 +00:00
Pedro Pinto 0223e43aa2 Updated release notes. 2019-06-10 10:20:51 -04:00
John Colvin 73e5cfdada Merged in SPARK-2481-fills-filter-fix (pull request #249)
SPARK-2481 fills filter fix

Approved-by: Jake Norbut <jake.norbut@bluetradesys.com>
Approved-by: Pedro Pinto <pedro.pinto+atlassian@bluetradesys.com>
2019-06-10 14:19:31 +00:00
Eric Harding 33b4b88af1 For some strange reason the gregorian calender does not start counting days at 0. Maybe 0 hadn't been invented yet. 2019-06-10 10:12:44 -04:00
Pedro Pinto 12f4b4b25b Merged with master 2019-06-10 08:49:56 -04:00
Taha Afzal 7fd8eeb1ff Merge branch 'master' into spreader_show_qty 2019-06-10 08:37:32 -04:00
Taha Afzal 7563eb7afe Merge branch 'master' into spreader_nlegs_hedging 2019-06-10 08:30:58 -04:00
Taha Afzal 96cacb8bb9 qho's were reporting their cancelled state twice, which was causing the spreader to cancel it 2019-06-09 21:16:41 -04:00
John Colvin 300a1ed17f SPARK-2481 filtering in fills window is badly broken (2nd take) 2019-06-07 23:06:14 -05:00
John Colvin 1a0836ca6d RXCollection.connect - always assign local table in callback 2019-06-07 20:41:04 -05:00
Kevin Darby cb157dbce1 Merge branch 'master' of bitbucket.org:bluetradesys/spark into key_codes 2019-06-07 18:15:26 -04:00
Kevin Darby 81bbafd3a1 Merge branch 'master' of bitbucket.org:bluetradesys/spark into prorata 2019-06-07 18:14:22 -04:00
Kevin Darby 618c41ce97 synthesized Pedro's cme changes for ice 2019-06-07 17:49:33 -04:00
Kevin Darby bd8c9c354b Merge branch 'master' of bitbucket.org:bluetradesys/spark into ice_exec3 2019-06-07 17:49:11 -04:00
Jake Norbut 88908543e1 Merged in SPARK-2165 (pull request #244)
RTM - Ladder Settings - hide net change group setting for synthetic ladders

Approved-by: Eric Harding <eric.harding@bluetradesys.com>
2019-06-07 21:26:37 +00:00
Pedro Pinto 80c9b6a534 Merged with master 2019-06-07 17:26:05 -04:00
Pedro Pinto f6282c0676 Updated release notes 2019-06-07 17:20:17 -04:00
Jake Norbut 370b4bcde9 coording root row with selected params mon 2019-06-07 16:19:16 -05:00
Jake Norbut 6756b23104 miniob - attach and update select the row if they're not already selected 2019-06-07 16:17:42 -05:00
Jake Norbut c5f7ee0ed3 reassigning the miniob update button to the update_command property so select the row if it's not already selected 2019-06-07 16:16:27 -05:00
Pedro Pinto 02fe83f20b Merge branch 'master' into SPARK-2165 2019-06-07 17:15:18 -04:00
John Colvin 84d666c29c Merged in SPARK-2476-OB-KeyNotFoundException (pull request #248)
RTM: SPARK-2476 OB _get_legs KeyNotFoundException

Approved-by: Jake Norbut <jake.norbut@bluetradesys.com>
2019-06-07 21:14:14 +00:00
Jake Norbut 16eeddec7d OperableHierarchicalCollectionModel - fixing get_parent 2019-06-07 16:10:17 -05:00
Pedro Pinto 147e43b464 Merged with master 2019-06-07 16:58:35 -04:00
Kevin Darby dfe008922b Merge branch 'master' of bitbucket.org:bluetradesys/spark into prorata 2019-06-07 16:01:15 -04:00
Pedro Pinto b909a6062e Updated release notes 2019-06-07 15:58:32 -04:00
Pedro Pinto 421b3af6a7 Merge branch 'master' into SPARK-2481-fills-filter-fix 2019-06-07 15:54:05 -04:00
Pedro Pinto 46a340d493 Merged in fix-fill-accounting (pull request #251)
RTM. Fix fill accounting
2019-06-07 19:52:02 +00:00
Pedro Pinto 3cc7d76a1b Merged with master 2019-06-07 15:49:10 -04:00
Jake Norbut 5123b928f2 Merged in SPARK-2480 (pull request #247)
RTM - SPARK-2480 - fixing Composite order type showing in root algo

Approved-by: Eric Harding <eric.harding@bluetradesys.com>
2019-06-07 19:40:43 +00:00
Pedro Pinto c2631e3257 Merged with master 2019-06-07 15:16:34 -04:00
John Colvin 445bbb10f5 LadderSettingsView - normalize spacing 2019-06-07 13:42:27 -05:00
John Colvin 70c006f797 SPARK-2489 / SPARK-2502 move 'Alternate Order Qty' into 'Order Quantities' tab 2019-06-07 13:42:27 -05:00
Kevin Darby d3de1c2c41 Merge branch 'master' of bitbucket.org:bluetradesys/spark into prorata 2019-06-07 14:24:43 -04:00
Pedro Pinto 685181ae28 Merge branch 'fix-fill-accounting' of bitbucket.org:bluetradesys/spark into fix-fill-accounting 2019-06-07 13:50:58 -04:00
Pedro Pinto 929492c2f0 Made Limiter more robust for orders with undiscovered securities. 2019-06-07 13:50:44 -04:00
Pedro Pinto be023ff6cb Made Limiter more robust for orders with undiscovered securities. 2019-06-07 13:21:06 -04:00
Jake Norbut 307d3d9466 eliminating new mini ob checkbox col and just operating based off of the standard diygrid selected_rows 2019-06-07 10:33:26 -05:00
John Colvin 3a5810d8ac LadderGridHost.OnMouseDown impl should return after handling middle click 2019-06-07 10:12:10 -05:00
Jake Norbut 9ba2ba1d75 refactoring modify_selected_orders to accept a IEnumerable>OrderBookRowVM>; creating a new command for minob that iterates over checked orders to modify 2019-06-07 09:25:25 -05:00
John Colvin 29c772cbb6 SPARK-2489 / SPARK-2501 rename 'Add Size' -> 'Add Quantity' 2019-06-06 23:41:45 -05:00
John Colvin 0b03180c4d SPARK-2489 / SPARK-2500 rename 'Size Presets' -> 'Order Quantities' 2019-06-06 23:39:02 -05:00
John Colvin 1518906b7f SPARK-2489 / SPARK-2498 remove 'Order Badge Style' option 2019-06-06 23:35:45 -05:00
John Colvin 31fe708907 touch up LadderSettingsView 2019-06-06 23:35:37 -05:00
John Colvin 4b2f39c536 LadderSettingsView - drop 'Show/Hide' from 'Advanced' hyperlinks 2019-06-06 22:42:55 -05:00
John Colvin 040960d33b SPARK-2489 / SPARK-2495 merge 'Volume Display' tab into the 'Ladder Columns' tab 2019-06-06 19:31:36 -05:00
Taha Afzal a4d63a1421 this should fix the confusion 2019-06-06 19:13:46 -04:00
Kevin Darby a28d5883f7 better to zero out the market data if not entitled so they don't trade off of it 2019-06-06 17:19:35 -04:00
Kevin Darby 8a1d49733e keycodes work, need some documentation 2019-06-06 16:40:32 -04:00
Kevin Darby 0da6b2cc3e Merge branch 'master' of bitbucket.org:bluetradesys/spark into key_codes 2019-06-06 16:40:05 -04:00
Michael Harding 2fd8c39888 Merge branch 'spreader_lean_qty' of bitbucket.org:bluetradesys/spark into spreader_lean_qty 2019-06-06 16:01:56 -04:00
Michael Harding eb97fd045a SPARK-2438: spreader_lean_qty_factor test setup 2019-06-06 16:01:16 -04:00
Michael Harding a07bc152d1 SPARK-2438: init spreader_lean_qty_factor test 2019-06-06 16:01:16 -04:00
Michael Harding aef8e2dbb1 spell check manual tests 2019-06-06 16:01:16 -04:00
Jake Norbut 3f245cd886 SPARK-2497 - mini ob mass detach 2019-06-06 14:20:00 -05:00
Jake Norbut 570f85377a part of SPARK-2485 - miniob - update buttons not visible unless leaf under control of an algo 2019-06-06 14:00:06 -05:00
Kevin Darby 8afb35e564 don't compile crypto on win 2019-06-06 14:54:33 -04:00
Jake Norbut a38a6057e0 part of SPARK-2485 - mini ob only shows exchange orders + spreader rows 2019-06-06 13:32:48 -05:00
John Colvin dcd8984b33 SPARK-2489 / SPARK-2494 rename 'Column Settings' tab 'Ladder Columns' 2019-06-06 12:35:09 -05:00
Kevin Darby 6647b28a9f keycode generation, encrypt, decrypt works 2019-06-06 13:30:54 -04:00
Pedro Pinto baac6a893d Re-directed SecurityDB's expiration to securities::expiration 2019-06-06 11:14:56 -04:00
Pedro Pinto df681ca209 Removed duplicate declaration. 2019-06-06 11:03:36 -04:00
Jake Norbut 21b34434ef Merged in SPARK-2464 (pull request #233)
RTM - SPARK-2464 - ladder cursor provides visual feedback when middle clicking over bid ask cols

Approved-by: Eric Harding <eric.harding@bluetradesys.com>
2019-06-05 21:57:43 +00:00
Pedro Pinto 0c17dbb55b Updated release notes. 2019-06-05 17:57:11 -04:00
Pedro Pinto fd6c6a3055 Merge branch 'master' into SPARK-2464 2019-06-05 17:52:29 -04:00
Pedro Pinto 259355d629 Updated release notes. 2019-06-05 17:51:22 -04:00
Michael Harding c6c2d3448d Merged in net_contracts_fix (pull request #250)
RTM. Fix lazyview updating net cotracts
2019-06-05 21:49:54 +00:00
Eric Harding f860649996 Merged in SPARK-2472-rerun (pull request #245)
RTM. SPARK-2472 rerun

* SPARK-2482 - End Jake's left handed discrimination

* SPARK-2472 add * to our order size

Approved-by: Pedro Pinto <pedro.pinto+atlassian@bluetradesys.com>
2019-06-05 21:43:03 +00:00
Pedro Pinto 05c3c97713 Hid fills for expired securities. 2019-06-05 17:11:14 -04:00
Pedro Pinto f3be277484 Fixed limits double counting of spread leg fills 2019-06-05 17:10:16 -04:00
Jake Norbut fb314f0eb1 SPARK-2491 - mass cancel 2019-06-05 14:01:47 -05:00
John Colvin 0ba311788c DIYGridRowsManager - expose fills/sort manager methods, so callers don't need to hang on to fills/sort manager references 2019-06-05 11:35:32 -05:00
John Colvin 341eda5962 FillsVM - rows does not need to be an OperableCollection (just a regular ObservableCollection) 2019-06-05 11:35:32 -05:00
John Colvin 3398bb5b86 FillsVM - remove unusued field '_active_comparers' 2019-06-05 11:35:28 -05:00
John Colvin dc7cacc126 get rid of hashset-vs-array optimization (doesn't actually help) 2019-06-05 10:59:43 -05:00
John Colvin 6d3d4e1f56 SPARK-2481 Filtering in fills window is badly broken 2019-06-04 18:57:36 -05:00
John Colvin 433b1abecd abstract out OrderBookFilterStates.build_predicate method for generic use 2019-06-04 18:55:41 -05:00
John Colvin 4544180c5f move 'FillsStartupData' into its own file, change typename to 'FillsSettings' 2019-06-04 18:54:43 -05:00
John Colvin 5722fcffc3 SPARK-2476 OB _get_legs KeyNotFoundException 2019-06-04 16:08:47 -05:00
Jake Norbut f1880615b1 SPARK-2480 - fixing a particular overload of the OrderSecurity constructor (root_* specific) 2019-06-04 14:08:46 -05:00
Jake Norbut e60f5678ec PR nits from chat 2019-06-04 10:22:10 -05:00
Pedro Pinto e9a70e51e4 Merged with master 2019-06-04 10:40:56 -04:00
Jake Norbut e98d18a5aa Merged in SPARK-2482 (pull request #243)
RTM - SPARK-2482 - Ladder middle click change - middle click recentering is back; alt + middle click now brings up mbo popup

Approved-by: Eric Harding <eric.harding@bluetradesys.com>
2019-06-04 14:35:16 +00:00
Pedro Pinto 513cc248b8 Updated release notes and added shift+middle click to trigger MBO
(Alt+Middle Click doesn't work very well on the linux rdesktop client)
2019-06-04 10:33:54 -04:00
Pedro Pinto c024095f75 Merged master 2019-06-04 10:02:19 -04:00
Pedro Pinto 3e5eb80a7c Updated release notes 2019-06-04 09:57:59 -04:00
Eric Harding 942dc1640e Merged in SPARK-2472 (pull request #242)
RTM: 🏭 SPARK-2472 - our orders are hard to identify

Approved-by: Michael Harding <michael.harding@bluetradesys.com>
Approved-by: Jake Norbut <jake.norbut@bluetradesys.com>
2019-06-04 13:17:29 +00:00
Pedro Pinto b5c3abb782 Merged from prod 2019-06-04 09:15:36 -04:00
Pedro Pinto 3478d1ad52 Updated release notes. 2019-06-04 09:14:10 -04:00
Pedro Pinto d54e9233d1 Improved comment. 2019-06-04 09:12:11 -04:00
Jake Norbut e94759cd89 Ladder Settings - hide net change group setting for synthetic ladders 2019-06-03 15:47:54 -05:00
Jake Norbut b58da4a20e SPARK-2482 - Ladder middle click change - middle click recentering is back; alt + middle click now brings up mbo popup 2019-06-03 12:43:44 -05:00
Jake Norbut 8426399a23 SPARK-2479 - bug introduced in 8dd0709; Contract Pickers launched via the Security Picker Daemon now close on cancel button being pressed 2019-06-03 12:11:17 -05:00
Kevin Darby 8a965d41ff keycodes. boost stil can't handle dates 2019-05-30 18:24:24 -04:00
Eric Harding 9b2f41c805 SPARK-2472 our orders are hard to identify in mbo 2019-05-30 17:00:09 -04:00
Eric Harding 15f96dda3e Fix mbo command line diagnostic utility 2019-05-30 16:02:07 -04:00
Michael Harding a9d5c17d63 Merged master into spreader_lean_qty 2019-05-30 14:43:53 -04:00
Michael Harding 715b629778 Set use_onixs to false; for system tests 2019-05-30 12:04:21 -04:00
Kevin Darby 7428331504 Merge branch 'master' of bitbucket.org:bluetradesys/spark into prorata 2019-05-29 18:05:19 -04:00
Kevin Darby 5b818bf276 test for prorata order 2019-05-29 17:43:05 -04:00
Eric Harding dd82d127ea Merged in shell_crash_empty_size (pull request #241)
RTM: Fix for shell able to send 0 size orders

Approved-by: Pedro Pinto <pedro.pinto+atlassian@bluetradesys.com>
2019-05-29 21:37:27 +00:00
Pedro Pinto f97e22d6eb Updated release notes. 2019-05-29 17:31:34 -04:00
Eric Harding f9e04ee28c Fix for shell able to send 0 size orders 2019-05-29 17:31:24 -04:00
Pedro Pinto 1ce00ca13d Fixed simulator's handling of 0 sized quantities. 2019-05-29 17:27:08 -04:00
Kevin Darby d8559276d0 test case for scratchalgo 2019-05-29 16:55:11 -04:00
Kevin Darby 3d11aba8ef fix build from merge 2019-05-29 15:35:47 -04:00
Kevin Darby c34d262d1a Merge branch 'master' of bitbucket.org:bluetradesys/spark into prorata 2019-05-29 15:24:46 -04:00
Kevin Darby 717c90867a fixed multiple child case, thanks Eric 2019-05-29 15:08:14 -04:00
Kevin Darby 90178908ba looking good; need John to help me figure out the hedge lablels 2019-05-28 22:02:21 -04:00
Kevin Darby 01956e92b6 added facility for simple guis of well known order type protos to be generated; worth it. 2019-05-28 21:25:39 -04:00
Jake Norbut 3b9c2f5d70 adding a try/catch around the leg lookup 2019-05-28 16:58:27 -05:00
Kevin Darby b1e19294e6 making some headway on generic order ui 2019-05-28 17:50:35 -04:00
Pedro Pinto 5cd2dfec18 Fixed PIQ in GLBX Icerberg, fixed handling of stop limit. 2019-05-28 16:26:16 -04:00
Jake Norbut 31b2ba9165 PR suggestion - if statement readability 2019-05-28 14:38:27 -05:00
Kevin Darby 1567ca475d now moving to gui 2019-05-28 14:29:01 -04:00
Jake Norbut 2b1b1f1681 Merge branch 'master' of bitbucket.org:bluetradesys/spark into SPARK-2464 2019-05-28 13:23:17 -05:00
Kevin Darby 938a572a54 rethinking the dynamictype -> native type for sake of gui
going to make a new type of DefaultOrderVM that uses reflection instead of converting dynamic -> native
in the orderman
2019-05-28 14:14:16 -04:00
Kevin Darby e8bc07360d got the dynamism and updates working 2019-05-28 13:52:18 -04:00
Pedro Pinto 4427b02d8d _index.md edited online with Bitbucket 2019-05-28 16:11:11 +00:00
Jake Norbut dcd3921379 Merged in SPARK-2460 (pull request #238)
RTM - SPARK-2460

Approved-by: John Colvin <john.colvin@bluetradesys.com>
2019-05-28 15:59:45 +00:00
Jake Norbut bd156ecbed fix merge 2019-05-28 10:58:02 -05:00
Eric Harding 02f5731e1d Merged in SPARK-2462 (pull request #235)
RTM: SPARK-2462 QueryServer crash
2019-05-28 15:54:15 +00:00
Jake Norbut 7e75a71898 check root algo's can_expand to see if we should draw Cursor.No 2019-05-28 10:47:11 -05:00
Eric Harding 798c4dcd49 Merged in SPARK-2194 (pull request #236)
RTM: SPARK-2194 synthetic book display needs more digits
2019-05-28 15:29:29 +00:00
Jake Norbut 7e47d7f8a5 Merge branch 'master' of bitbucket.org:bluetradesys/spark into SPARK-2464 2019-05-28 10:08:14 -05:00
Pedro Pinto 260ca06cde Merged in pnt_nits (pull request #240)
RTM. PnT work.
2019-05-28 14:57:57 +00:00
Kevin Darby 91989e6baf Quantity measure validation 2019-05-28 10:19:31 -04:00
Michael Harding 7d75d87e6b Merge branch 'master' into key_codes 2019-05-28 09:45:17 -04:00
Michael Harding f13a3325bc Add Crypto 2019-05-28 09:44:29 -04:00
Kevin Darby 81ae503aa2 Merge branch 'master' of bitbucket.org:bluetradesys/spark into prorata 2019-05-28 09:42:28 -04:00
Jake Norbut 8615adb564 piq column to be instantiated with Right HorizontalAlignment 2019-05-28 08:18:03 -05:00
Pedro Pinto ab15d9d348 Merge branch 'master' into pnt_nits 2019-05-28 08:52:02 -04:00
Pedro Pinto 9540a15585 Updated release notes and fixed bug that brought Haris down. 2019-05-28 07:06:39 -04:00
Kevin Darby 0a33fb37b9 rata looking good 2019-05-27 22:53:56 -04:00
Taha Afzal e8a467d5f1 1.Position limit check for QHO and 2. QHO crash for rejected orders 2019-05-27 16:03:44 -04:00
Kevin Darby 729986d53d need to test get_out function 2019-05-26 23:30:55 -04:00
Kevin Darby e19bb7c621 chase if worse 2019-05-25 23:45:17 -04:00
Kevin Darby ea232fbaf1 ScratchAlgo works 2019-05-25 23:27:54 -04:00
Kevin Darby 6fc3c0b601 the bug turned out to be in my brain 2019-05-25 17:48:54 -04:00
Kevin Darby 8aee612bfa Merge branch 'master' of bitbucket.org:bluetradesys/spark into prorata 2019-05-25 15:36:26 -04:00
Kevin Darby 5f125790cf dynamics can now have QuantityMeasure 2019-05-25 10:50:27 -04:00
Kevin Darby 117e107116 dynamics work again 2019-05-24 22:50:12 -04:00
John Colvin 567c18f325 ManualFills - hardcode min width to 466 (hides horizontal scrollbar when window first opens) 2019-05-24 17:35:05 -05:00
John Colvin 270ab9c3f1 change 'row' to 'fill' in ImportConflicts view 2019-05-24 16:59:26 -05:00
John Colvin 9a9024c2c0 OrderBookView - order params/ladder grid splitter should be horizontally stretched (was only 5 pixels wide) 2019-05-24 16:58:52 -05:00
John Colvin 45a5049a2d fix typeo ('or' conditions should be in parenthesis) 2019-05-24 16:58:52 -05:00
Jake Norbut 8b17911da0 refining pnl test 2019-05-24 15:45:28 -05:00
Taha Afzal 61556eb534 'Algo->spreader is not sending the price over' is fixed 2019-05-24 16:43:56 -04:00
Kevin Darby c8c6aea188 gui for haris orders 2019-05-24 15:50:46 -04:00
Pedro Pinto b691dbae80 Merged from master 2019-05-24 14:05:46 -04:00
Pedro Pinto f6be20ce8d Updated release notes. 2019-05-24 14:02:06 -04:00
Pedro Pinto 68428ab89d Ran clang format. 2019-05-24 13:59:31 -04:00
Pedro Pinto 12d54fdb31 Added manual test to validate spreader performance. 2019-05-24 13:58:59 -04:00
Pedro Pinto 366e13ef05 Fixes requoted performance regression introduced in commit e998edc 2019-05-24 13:56:37 -04:00
Jake Norbut e94ef6a602 Adding PIQ column to OB (and mini); more OrderSecurityAlgoMeta to OrderSecurity param changes 2019-05-24 11:53:02 -05:00
Taha Afzal 5c22b43eb5 show qty added 2019-05-24 11:10:14 -04:00
Jake Norbut 3e7f145290 switching on_order_tuples over to OrderSecurity as well so that we can toggle back and forth if necessary via config between orders w/ no piq and with those with 2019-05-24 09:43:50 -05:00
Kevin Darby e1f590127e ready to test 2019-05-23 23:55:26 -04:00
John Colvin 748a99d4ef SPARK-2425 Add day position to ladder 2019-05-23 20:22:17 -05:00
John Colvin 35b8c1e53f Ladder - settings driven properties should share 1 subscription to the settings 2019-05-23 18:38:43 -05:00
Kevin Darby 3a516df593 more prorata 2019-05-23 18:16:20 -04:00
Taha Afzal 1b4275db4c Merge branch 'master' into spreader_nlegs_hedging 2019-05-23 16:42:28 -04:00
Jake Norbut 123b690c6c switch OB over to the new Observable, which means change use of OrderSecurtyAlgoMeta to OrderSecurity (which includes a piq) 2019-05-23 15:15:14 -05:00
Jake Norbut 38a65bd0e3 OrdersModel now includes an on_order_tuples_with_root_and_piq 2019-05-23 15:14:03 -05:00
Eric Harding 91bc135c61 Fix web ui build 2019-05-23 15:49:12 -04:00
Kevin Darby 5135a21dc2 ProRata and Scratch Algos 2019-05-23 15:27:41 -04:00
John Colvin 1cb8c54225 SPARK-2454 Root algos show the incorrect color in the OB (and perhaps miniOB) 2019-05-23 14:04:18 -05:00
John Colvin 414833c0c5 normalize line endings in OrderBookSettings.cs 2019-05-23 14:03:02 -05:00
John Colvin 6cc4064cd3 normalize spacing in OrderBookRowVM.cs 2019-05-23 13:32:35 -05:00
Taha Afzal 592ad39a32 tests pass 2019-05-23 12:37:30 -04:00
Eric Harding 0fcdc9c493 Merged in SPARK-2474 (pull request #237)
RTM: SPARK-2474 Improve mdp3 error message for missing feed_handler

Approved-by: Pedro Pinto <pedro.pinto+atlassian@bluetradesys.com>
2019-05-23 15:32:56 +00:00
Eric Harding 0f967ae4cd Bump up feed_engine default buffer to 256mb (support is using this as a default already) 2019-05-23 09:41:48 -04:00
Eric Harding a232d738a0 Add instructions to error message 2019-05-23 09:40:40 -04:00
Eric Harding 3d3ac4e49f SPARK-2474 Improve mdp3 error message for missing feed_handler 2019-05-23 09:24:29 -04:00
John Colvin 15a5abf1ad SPARK-2465 Use ladder middle click on bid/ask to launch parameterized order 2019-05-22 20:56:32 -05:00
Eric Harding 76218fd35a SPARK-2194 synthetic book display needs more digits 2019-05-22 17:35:10 -04:00
Pedro Pinto d0370c5dc7 Merge branch 'pnt_nits' of bitbucket.org:bluetradesys/spark into pnt_nits 2019-05-22 16:11:34 -04:00
Pedro Pinto b07700cdc7 Fixed some issues with position service and manual fill integration. 2019-05-22 16:11:13 -04:00
John Colvin 15de3bbfe9 SPARK-2456 GLBX Iceberg is a native order 2019-05-22 13:53:59 -05:00
John Colvin 8d2fa40dcc ManualFills - change placeholder row id from Guid to long, to ensure sort order (so new rows always appear at the bottom) 2019-05-22 13:18:57 -05:00
Eric Harding bced75ea50 Ubuntu 18.04 broke dev dns for mdreplay. Back to IP address. 2019-05-22 14:03:15 -04:00
Jake Norbut b48accf1f9 only iterate over workspaces that contains windows 2019-05-22 12:59:54 -05:00
Pedro Pinto 3758ac6101 Merge branch 'pnt_nits' of bitbucket.org:bluetradesys/spark into pnt_nits 2019-05-22 13:52:21 -04:00
Pedro Pinto ac45e9bdb2 WIP: manual fills in pos server. 2019-05-22 13:52:04 -04:00
John Colvin 769bad89a7 ManualFillsVM - placeholder rows weren't getting removed after they were persisted 2019-05-22 12:39:51 -05:00
John Colvin 7dc272506a ManualFills - focus 'add row' popup when it opens (hooks up the 'OK' button to the enter key) 2019-05-22 12:19:06 -05:00
John Colvin 86c787efaf ManualFills - make account field immutable for persisted rows 2019-05-22 11:42:19 -05:00
John Colvin f917f581c3 SPARK-2469 add 'account_name' field to ManualFill protobuf 2019-05-22 11:03:25 -05:00
Pedro Pinto ca1217cd64 _index.md edited online with Bitbucket 2019-05-22 14:59:05 +00:00
John Colvin 4ed4e2e5e4 Merged in backwards-compatibility (pull request #234)
Backwards compatibility

Approved-by: Jake Norbut <jake.norbut@bluetradesys.com>
2019-05-22 14:57:09 +00:00
Jake Norbut bb0171a2e4 preemptivly updating pnl test 2019-05-22 09:33:51 -05:00
John Colvin 88bf448e68 ICollectionView.subscribe_sorting_criterion extension was not notifying observers on subscribe 2019-05-21 22:25:36 -05:00
John Colvin 05a615038d ManualFills - added 'Save Selected' spark command 2019-05-21 22:24:43 -05:00
John Colvin 51cfd0e5bb ManualFillsVM initializes side to Buy' for new rows 2019-05-21 22:23:02 -05:00
John Colvin d2ee575f19 set 'size' dropdown width in ManualFillsRowEditor 2019-05-21 22:09:58 -05:00
John Colvin 0b76ffb4f3 DragDropHelper.subscribe_drag_coordinates uses 'regular' mouse events (not 'preview') 2019-05-21 21:22:09 -05:00
John Colvin 0f9b93115a ManualFills - don't access row_view.SortDescriptions in get_save_state, as it is invoked on main the thread (not the window's thread) 2019-05-21 21:17:56 -05:00
John Colvin 8cfc6a7591 normalize spacing in WPFExtensions.cs 2019-05-21 21:14:43 -05:00
John Colvin 9de2dd30bc change ObservableAutoWrapper.connect 'target' arg to IList 2019-05-21 20:37:50 -05:00
John Colvin 38005e3266 change ManualFills launcher icon to match the one in the window title/tab 2019-05-21 20:25:24 -05:00
John Colvin 26ae70f432 fix ContractPickerPopup 'CloseOnCancel' behavior 2019-05-21 20:23:17 -05:00
John Colvin f6ca8286ea SPARK-2467 fix backwards compatibility bug in orderbook settings 2019-05-21 19:05:13 -05:00
John Colvin ae471b07fa SPARK-2466 fix backwards compatibility bug in fills settings 2019-05-21 18:56:59 -05:00
Kevin Darby 8f5d062a3b Merge branch 'master' of bitbucket.org:bluetradesys/spark into ice_exec3 2019-05-21 16:58:35 -04:00
Eric Harding e7cea797ba Simplify append logi 2019-05-21 16:40:07 -04:00
Eric Harding f16545dfaa SPARK-2462 Expunge tbb::concurrent_vector 2019-05-21 16:29:23 -04:00
Jake Norbut dcd62409f1 fixing merge 2019-05-21 15:22:54 -05:00
Eric Harding 11252b4300 Add concurrent test for swcv 2019-05-21 15:45:08 -04:00
Jake Norbut 90526a8bfd SPARK-2464 - ladder cursor provides visual feedback when middle clicking over bid ask cols 2019-05-21 14:18:58 -05:00
Eric Harding e815dade3a Improve SingleWriterConcurrentVector perf (push_back 30-21ns, iterate(2us to 1.3us). Now iterates faster than tbb_concurrent_vector 2019-05-21 14:21:51 -04:00
John Colvin 576be7e961 ManualFillsView - enable mouse drag behavior in new row popup 2019-05-21 12:23:03 -05:00
John Colvin 407de320f6 PopupAdorner - implement MouseDrag behavior to move popup element around 2019-05-21 12:23:03 -05:00
Jake Norbut bc0234a5e9 pnl refactoring - PnLCalculator class does nothing now, so remove it; note file still exists and has a differently named class therein 2019-05-21 10:58:23 -05:00
Jake Norbut e1229186de pnl refactoring - PnLModel didn't really do anything, so I remomed it 2019-05-21 10:45:59 -05:00
Jake Norbut a3e00217a1 pnl refactoring - moving cpp lookup, fill immutable pnl and standard pnl caclulations into helper class 2019-05-21 10:45:59 -05:00
Eric Harding 07fa55d317 Fix settingsmanager crash 2019-05-21 10:32:34 -04:00
John Colvin 16f0beb3d8 ManualFills - added conf to switch between inline/modal transactions (default to modal) 2019-05-20 19:54:10 -05:00
John Colvin d244c62c26 ManualFillsView - add 'size' column 2019-05-20 19:32:41 -05:00
John Colvin 44730204a5 fix PropertyChangedDemuxer.PropertyChannel bug on dispose 2019-05-20 19:03:20 -05:00
Taha Afzal 1fd66a17ca better tests 2019-05-20 19:57:18 -04:00
Kevin Darby e1a3950051 Merge branch 'master' of bitbucket.org:bluetradesys/spark into ice_exec3 2019-05-20 17:04:53 -04:00
John Colvin bd47816d16 ManualFillsParser - don't pass null string key to dictionary 2019-05-20 15:57:58 -05:00
John Colvin 2f12f2609a added RowParser.parse_rows_checked, which supports partial rows (with missing cells) 2019-05-20 15:54:47 -05:00
John Colvin 9c489c03c6 accidentally gave the generic RowParser.AssignColumnValue<T> delegate a name specific to manual fills 2019-05-20 15:33:20 -05:00
Eric Harding 5ae8a66558 Add SingleWriterConcurrentVector 2019-05-20 15:32:48 -04:00
John Colvin 03882718a0 ManualFills - spark commands menu item groups (i.e., separators in ContextMenu) 2019-05-20 13:52:09 -05:00
John Colvin 0f21d9783b file extension filter for ManualFills import file dialog 2019-05-20 13:41:28 -05:00
John Colvin 2c547f37fb ManualFillsVM - use ObservableAggregateCollection to merge persisted/placeholder rows together 2019-05-20 13:41:28 -05:00
John Colvin a7f4944bd6 FillsVM - more functional implementation of row filters/sorting 2019-05-20 13:41:28 -05:00
Jake Norbut a3a33ffb6a vm now consumes data via position service 2019-05-20 13:13:48 -05:00
Jake Norbut b3db0fc4ca also extended to supported calculating pnl via PositionsUnit data instead of Fill data 2019-05-20 13:00:01 -05:00
Jake Norbut 0f066fdeb9 extended to supported calculating pnl via PositionsUnits instead of Fills 2019-05-20 12:58:59 -05:00
Jake Norbut 22f89490a3 adding SecurityMD lookup facility to model; this is ultimately for compatability with the PnLSummaryRow, of which a SecurityMD instance is a component of the row's key tuple 2019-05-20 12:55:09 -05:00
Jake Norbut 2137d37cbd adding SecurityImmutable? to on_positions and updating security_positions_demuxer for additional argument type 2019-05-20 12:51:24 -05:00
Jake Norbut 082a241bb9 passing the OrdersModel, from where the PositionUnit will be published from, down the line 2019-05-20 12:48:14 -05:00
Jake Norbut 0057f8f080 when determining average price, position service should use the fill's last_price() and not avg_price; using avg_price from partials leads to wildly inaccurate pnl 2019-05-20 12:29:34 -05:00
Michael Harding 83650f1e1b System tests: fix timeout, minor improvements 2019-05-20 11:13:36 -04:00
John Colvin 4768c1cd87 SPARK-2447 / SPARK-2458 import dialog 2019-05-19 17:52:03 -05:00
John Colvin 57b70684ea EnumHelper.get_values returns a cached strongly typed IReadOnlyList<T> (simple optimization) 2019-05-19 17:44:34 -05:00
John Colvin af64592f52 ReactiveThresholdMonitor use RefCountMap to support duplicate adds 2019-05-19 17:44:34 -05:00
John Colvin a1b89ccb34 change RefCountMap.keys from IEnumerable to IReadOnlyCollection 2019-05-19 17:44:34 -05:00
John Colvin 44f2a9daf7 RefCountMap implements IReadOnlyCollection 2019-05-19 17:44:34 -05:00
John Colvin 0e5833b275 SetStack - 'SoftCount' logic was incorrect 2019-05-19 17:44:34 -05:00
John Colvin bded6d334c ContractPickerPopup 'CloseOnOK' should just close the popup (not the owning window) 2019-05-19 17:44:34 -05:00
John Colvin 893c6702a2 make DictionaryExtensions.Join more efficient 2019-05-19 17:44:34 -05:00
John Colvin 627b8742c4 SPARK-2447 / SPARK-2457 main window view (for singular transactions) 2019-05-19 17:44:34 -05:00
John Colvin 1f7e0a672e fix DataGridBehavior.SingleClickEdit 2019-05-19 17:44:34 -05:00
John Colvin 29e8fd1050 PopupControl - set default background to ComboBox.Static.Background 2019-05-19 17:44:33 -05:00
John Colvin 6ce741bcaf ContractPickerPopup - set default padding=2,0 2019-05-19 17:44:33 -05:00
John Colvin 8dd070961a ContractPickerPopup - SelectedSecurity(MD) dependency props 2019-05-19 17:44:33 -05:00
John Colvin f6a3a276d9 ContractPickerPopup - load securities lazily 2019-05-19 17:44:33 -05:00
John Colvin 68c8828d4f Account/UserTuple implement IComparable 2019-05-19 17:44:33 -05:00
John Colvin 0d68ebbbea ReactiveThresholdMonitor should notify subscribers (if necessary), when subs are disposed 2019-05-19 17:44:33 -05:00
John Colvin cc04e79f8b made anonymous SparkWindow factory 2019-05-19 17:44:33 -05:00
John Colvin ac76462f7e DiscreteValuesFilterVM.CreateTableUpdate - removed unused 'row_key' param 2019-05-19 17:44:33 -05:00
John Colvin d20b30557f added ObservantAsyncCommand factory methods 2019-05-19 17:44:33 -05:00
John Colvin a6fa5f9852 default Button Template BorderThickness should use TemplateBinding (was hardcoded to 1) 2019-05-19 17:44:33 -05:00
John Colvin 0db165bf76 set wpf DataGridColumnHeader font size to 12 (matches diygrid) 2019-05-19 17:44:33 -05:00
John Colvin 705fd293ba 'find_ancestor_of_type()' does not check the same ancestor obj twice 2019-05-19 17:44:33 -05:00
Taha Afzal 3ec896d609 code complete, testing remains 2019-05-17 19:51:37 -04:00
Taha Afzal 8f1eab57b7 Basic functions in, need to be hooked 2019-05-17 18:22:36 -04:00
Michael Harding 523002ac56 Fix System tests 2019-05-17 16:57:24 -04:00
Pedro Pinto 9c25a8751e Updated release notes. 2019-05-17 15:38:42 -04:00
Pedro Pinto 89fc99b59a Updated docker subrepo ptr 2019-05-17 15:37:52 -04:00
Eric Harding cd413d10ab Merged in SPARK-2363 (pull request #231)
RTM: SPARK-2363 - PIQ popup

Approved-by: Jake Norbut <jake.norbut@bluetradesys.com>
2019-05-17 19:35:39 +00:00
Eric Harding 1c5cc9c1bb Merged in SPARK-2455-crash-on-md-startup-server-si (pull request #232)
SPARK-2455 crash on sim startup

Approved-by: Pedro Pinto <pedro.pinto+atlassian@bluetradesys.com>
2019-05-17 19:33:53 +00:00
Eric Harding 7965743a80 SPARK-2455 crash on sim startup 2019-05-17 15:20:53 -04:00
Pedro Pinto 2172f007a8 Fixed a few bugs in GLBX Iceberg order. 2019-05-17 15:19:11 -04:00
Michael Harding c9db5d13a9 System tests wait for system ready 2019-05-17 13:36:21 -04:00
Eric Harding 13e911760d Middle click off popup shoudl close popup 2019-05-17 11:46:06 -04:00
Eric Harding a12c3128a3 Don't allow mbo popup index number to flicker width 2019-05-17 11:45:22 -04:00
Eric Harding 6bb84b65a8 Merge branch 'master' of bitbucket.org:bluetradesys/spark into SPARK-2363 2019-05-17 10:34:11 -04:00
Eric Harding 6fb1140a97 test review feedback 2019-05-17 10:29:12 -04:00
Eric Harding 0e449844ca Clarify this point 2019-05-17 10:25:28 -04:00
Eric Harding 476206edb0 add piq/mbo manual test 2019-05-17 10:21:12 -04:00
Eric Harding 3483ac0712 Code review feedback 2019-05-17 09:03:49 -04:00
Kevin Darby 7e816c1503 Merge branch 'master' of bitbucket.org:bluetradesys/spark into ice_exec3 2019-05-16 17:56:07 -04:00
Eric Harding d6e586c4ce SPARK2452 - Update release notes for MBO 2019-05-16 16:44:18 -04:00
Eric Harding 0f1735fba2 SPARK-2453 Do not end order on bid/ask middle click 2019-05-16 16:39:50 -04:00
Eric Harding e5254dcf7f btree_set benchmarks are veerry interesting 2019-05-16 15:40:17 -04:00
Eric Harding 7bd183c8a4 btree_set benchmarks are very interesting 2019-05-16 15:29:59 -04:00
Kevin Darby 15d9afb2de added a comment about ice reverse_routing_record 2019-05-16 15:26:21 -04:00
Michael Harding aaf09b197b Fix sdk docs 2019-05-16 15:16:49 -04:00
Eric Harding 6081128b92 move sparkvm launch to the top of the debug menu 2019-05-16 15:11:26 -04:00
Eric Harding 6d6ecb33ba SPARK-2450 Simulator MBO realism ™ 2019-05-16 15:08:51 -04:00
Kevin Darby b5468e5565 changes for ice certification perf testing and to recover an order from an exec report 2019-05-16 15:02:04 -04:00
Michael Harding 6e85612adc deleting the right files this time 2019-05-16 14:01:35 -04:00
Eric Harding f33a13bfc8 Wire mbo popup to ladder in order book 2019-05-16 13:36:19 -04:00
Jake Norbut c4eeac8d0a fixing ServiceTail time formatting option 2019-05-16 12:07:49 -05:00
Michael Harding 432f39a1fa Don't delete everything 2019-05-16 12:54:39 -04:00
Eric Harding 6084da64a2 merge master 2019-05-16 12:18:45 -04:00
Jake Norbut 5ae484e6c1 adding comment to method 2019-05-16 10:07:59 -05:00
Eric Harding a2d4eb7d10 SPARK-2444 MBO Polish 2 - the Scrollening 2019-05-16 10:43:23 -04:00
Michael Harding 8082ab12dd Delete everything 2019-05-16 10:37:00 -04:00
Jake Norbut b1def915d6 Merged in SPARK-2449 (pull request #229)
SPARK-2449 - if the badge only represents 1 order, that order's piq has to be the min piq
2019-05-15 23:04:56 +00:00
Jake Norbut 70bb22c966 SPARK-2449 - if the badge only represents 1 order, that order's piq has to be the min piq 2019-05-15 17:39:47 -05:00
Eric Harding 06520791fa SPARK-2444 MBO UI polish 2019-05-15 17:19:46 -04:00
Pedro Pinto 9d762e0777 Merge branch 'pnt_nits' of bitbucket.org:bluetradesys/spark into pnt_nits 2019-05-15 17:02:41 -04:00
Pedro Pinto ef53c70c7e Fixed some bugs in GLBX Iceberg order. 2019-05-15 17:02:25 -04:00
Jake Norbut 8cf4e37310 adding preliminary create, update, delete of manual fills into position service 2019-05-15 14:58:46 -05:00
Pedro Pinto 04e7180b69 Merge branch 'master' into pnt_nits 2019-05-15 15:40:45 -04:00
Jake Norbut d40d3615b2 mutable props that RaisePropertyChanged 2019-05-15 13:41:05 -05:00
Jake Norbut 4efec939aa Security to Nullable, props now have public setters; inherit from VMB 2019-05-15 13:28:55 -05:00
Jake Norbut a0f24d8227 making use of syntactic sugar for less typing 2019-05-15 13:19:37 -05:00
Jake Norbut a2278423f6 users to non nullable for ItemSource 2019-05-15 13:14:15 -05:00
Jake Norbut 7321d5d8f7 filling out account and user, creating ObservableCollections for them to be used as ItemSources 2019-05-15 13:13:29 -05:00
Jake Norbut 464426537e making use of new ManualFillTuple 2019-05-15 12:35:59 -05:00
Michael Harding ebb2d5618c Merge branch 'master' into spreader_lean_qty 2019-05-15 13:35:33 -04:00
John Colvin 7b9c10f47c ManualFillTuple - benign code style tweak 2019-05-15 12:26:50 -05:00
John Colvin 478640e808 ManualFillTuple join with account and user 2019-05-15 12:24:34 -05:00
Jake Norbut 1fa5e3c9af fixing test_join_qty_threshold() of JoinAlgoTests 2019-05-15 11:29:23 -05:00
Michael Harding 7fede58044 Make system tests fail 2019-05-15 11:35:17 -04:00
Pedro Pinto 090a7985c3 Fixed spelling mistakes in release notes. 2019-05-15 10:38:35 -04:00
Michael Harding ab993423a6 Merge branch 'master' into spreader_lean_qty 2019-05-15 10:30:16 -04:00
Pedro Pinto ab8802c3f1 More master merging 2019-05-15 09:51:18 -04:00
Michael Harding f5fa2ff23a Adding Pete's fixes to system test scripts 2019-05-15 09:42:23 -04:00
Taha Afzal 6a1b154061 Fixing the bug causing the broken unit test 2019-05-14 22:43:42 -04:00
Kevin Darby a4c3a61f13 fixed ice specific bug with attach detach 2019-05-14 17:55:52 -04:00
Michael Harding 73a4e474f1 System Test scripts: jenkins improvements 2019-05-14 17:26:59 -04:00
Eric Harding 6f630a0e62 MBOService should indicate bid/ask 2019-05-14 17:03:17 -04:00
Pedro Pinto 42906f5a37 Merged 2019-05-14 16:58:54 -04:00
Kevin Darby 7ce101f7f7 messed up docker linux pointer 2019-05-14 16:41:49 -04:00
Kevin Darby b61cab397d Merge branch 'master' of bitbucket.org:bluetradesys/spark into ice_exec3 2019-05-14 16:36:12 -04:00
Jake Norbut 931ed76673 implementing IEditableObject via reflection 2019-05-14 14:58:54 -05:00
Kevin Darby 222e1a51dc fixed SOD time for dev
fixed bugs in mview when settle/last/low/high change without a bid or offer changing
2019-05-14 15:50:53 -04:00
Jake Norbut ebc4e202fe mf_vm: rows should be populated now 2019-05-14 14:23:43 -05:00
Jake Norbut a7dda587ba orders model - combinging manual fills with securities 2019-05-14 14:19:45 -05:00
Pedro Pinto 1ace2b7a3f Merge remote-tracking branch 'origin' into pnt_nits 2019-05-14 14:45:04 -04:00
Michael Harding 4e30591837 Hopefully fixing line endings this time 2019-05-14 14:38:36 -04:00
Eric Harding 3144032ed6 Fix dictionary key with ShellLatency (add user) 2019-05-14 13:46:03 -04:00
Jake Norbut af2875e0ef vm skeleton 2019-05-14 12:00:25 -05:00
Michael Harding d9221e1053 fix system test scripts 2019-05-14 12:54:01 -04:00
Eric Harding bee1df45ad SPARK-2430 prioritize draining incremental queue over publishing shapshots 2019-05-14 11:52:51 -04:00
Pedro Pinto 316be12b71 Return order key in API create. This broke in 1944. 2019-05-14 11:46:27 -04:00
Pedro Pinto 6c51ff83d5 Release notes again. 2019-05-14 10:01:39 -04:00
Pedro Pinto 1cad5b6b39 Updated release notes. 2019-05-14 09:56:47 -04:00
Michael Harding 4138ab0730 Merged master into spreader_lean_qty 2019-05-14 09:55:20 -04:00
Kevin Darby 9fa3464188 ice busts and corrects, ugh... 2019-05-14 09:55:05 -04:00
Michael Harding 171396ca57 Merged in system_tests (pull request #228)
System Tests
2019-05-14 13:51:33 +00:00
Pedro Pinto 193eb4e445 Merged in SPARK-1944-attach/detach/update (pull request #141)
SPARK-1944 attach/detach/update
2019-05-14 13:48:17 +00:00
Pedro Pinto 69b3831271 Merged with master 2019-05-14 08:58:30 -04:00
Pedro Pinto 39efacace4 Updated release notes 2019-05-14 08:57:32 -04:00
Eric Harding e70dfc8832 Merged in SPARK-2151 (pull request #225)
RTM: SPARK-2151 Dump shared memory on bad handle for forensic analysis
2019-05-14 12:55:17 +00:00
Jake Norbut 60bf851567 Merged in SPARK-2364 (pull request #222)
RTM - settingsmanager - print descriptive workspace info after selecting a user's workspace to copy

Approved-by: Eric Harding <eric.harding@bluetradesys.com>
2019-05-14 12:54:03 +00:00
Jake Norbut 053038df8d Merged in piq_ladder_dirty (pull request #226)
RTM - don't draw piq on every tick; might save some cycles

Approved-by: Eric Harding <eric.harding@bluetradesys.com>
2019-05-14 12:53:22 +00:00
Eric Harding f0afc74e5f Merged in slightly_fast_webui (pull request #220)
RTM: Apply lazyView to the limits tables

Approved-by: Michael Harding <michael.harding@bluetradesys.com>
Approved-by: Jake Norbut <jake.norbut@bluetradesys.com>
2019-05-14 12:51:38 +00:00
Eric Harding 9d3c8aaf5c Merged in SPARK-2303-assert-failure-trade.key-inva (pull request #224)
RTM: Safe workaround for SPARK-2303.
2019-05-14 12:49:34 +00:00
John Colvin 86467b2be1 SPARK-2411 / SPARK-2415 Add param change popup to favorites buttons 2019-05-13 21:26:20 -05:00
Taha Afzal 8575d92373 once the lean's child has crossed, changin lean's price has no effect on the child 2019-05-13 17:53:19 -04:00
Pedro Pinto 21ee7c6af5 2.0.0 Release notes. 2019-05-13 17:30:49 -04:00
Pedro Pinto 7b61b4bd5b Fixed error message 2019-05-13 17:18:32 -04:00
Kevin Darby fee695d3d9 Merge branch 'SPARK-1944-attach/detach/update' of bitbucket.org:bluetradesys/spark into ice_exec3 2019-05-13 16:02:56 -04:00
John Colvin 1bcb7ac87f SPARK-2411 / SPARK-2414 Add UI for glbx icerberg order 2019-05-13 14:01:25 -05:00
John Colvin 52305d69f2 normalize spacing in OrderDataHelper.cs 2019-05-13 14:01:25 -05:00
John Colvin bd70e7c09e OrderDataHelper - fix typeo (Offset order metadata was assigning the tick order color) 2019-05-13 14:00:08 -05:00
Michael Harding f6cf0f28ea Move test scripts in spark_test.csproj 2019-05-13 13:31:02 -04:00
John Colvin d04f9f4e96 fix server build 2019-05-13 13:27:35 -04:00
Michael Harding c0d097cb40 SPARK-2438: spreader_lean_qty_factor test setup 2019-05-13 13:26:53 -04:00
Michael Harding 533e688d1a SPARK-2438: init spreader_lean_qty_factor test 2019-05-13 13:09:15 -04:00
Michael Harding 36d40dec70 spell check manual tests 2019-05-13 12:59:49 -04:00
Jake Norbut a3f5de099f swapping out bar brushes and glyph values for using last 2019-05-13 11:18:56 -05:00
Jake Norbut 9b497e323f adding last on volume column to ladder grid host, tooltips 2019-05-13 11:17:15 -05:00
Jake Norbut 9a5b5595c3 adding show last setting to Volumn tab 2019-05-13 11:09:22 -05:00
Jake Norbut 24f23adf24 extending show last trade to VolumnColumnVM 2019-05-13 11:08:36 -05:00
Jake Norbut cc26d0bd8b Adding show_ltq to VolumeColumnSettings 2019-05-13 11:03:57 -05:00
Michael Harding 2b51bda3e7 Update system test scripts 2019-05-13 11:27:12 -04:00
Pedro Pinto 1be2e81920 Merge branch 'SPARK-1944-attach/detach/update' of bitbucket.org:bluetradesys/spark into SPARK-1944-attach/detach/update 2019-05-12 14:33:40 -04:00
John Colvin ea45c5c694 OrderBook - added config for status color opacity when row is selected 2019-05-12 12:24:32 -05:00
John Colvin 768567dfc7 HighPerformanceRow - added BackgroundProperty 2019-05-12 12:14:38 -05:00
John Colvin 870e7a9ef9 DIYGrid - added mutable InactiveSelectionOpacity prop (was just hardcoded at 0.2) 2019-05-12 12:11:39 -05:00
Pedro Pinto a9e572a1bf Merge branch 'master' into SPARK-1944-attach/detach/update 2019-05-11 19:41:18 -04:00
John Colvin c7899a1dae SPARK-2434 OrderBook - security column filter popup is empty if shell is started before server has published all securities 2019-05-11 12:47:07 -05:00
John Colvin 7bb077a74d remove ToLArray extension (it is not more efficient than Enumerable.ToArray()) 2019-05-11 12:27:42 -05:00
John Colvin a29eaa2618 EnumCaseStringConverter - cleanup code style/syntax 2019-05-11 12:25:38 -05:00
John Colvin 762369ad2b SPARK-2433 child order font weight in OB should be dropped or adjusted 2019-05-10 21:22:42 -05:00
John Colvin a8610beafd SPARK-2432 Crash when detaching order window 2019-05-10 20:38:33 -05:00
John Colvin 5e1a91f484 add period to the end of 'Make current parameters the local defaults' tooltip 2019-05-10 16:01:07 -05:00
John Colvin 04fdb9626d SPARK-2409 Changing a composite algo name does not reflect in the attach window dropdown 2019-05-10 15:57:31 -05:00
Michael Harding 6c5429b353 Minor updates to position limits test 2019-05-10 16:36:13 -04:00
Michael Harding 2bedf1f355 Merge branch 'master' into system_tests 2019-05-10 16:22:18 -04:00
Michael Harding 02752d9151 SPARK-2064: simple sanity simplified 2019-05-10 16:14:06 -04:00
John Colvin 689bfa1c76 OrderBook 'attach popup' price/qty vis depends on the selected attach-algo (not the selected orders) 2019-05-10 13:51:39 -05:00
Pedro Pinto 70af046131 Updated docker subrepo ptr 2019-05-10 13:52:44 -04:00
Pedro Pinto 7a45013782 Changed cover to stick around until all hedges are completed. 2019-05-10 13:52:44 -04:00
Michael Harding 6f7851b7ba SPARK-2064: Simple sanity test 2019-05-10 13:41:05 -04:00
Taha Afzal 85f42d1e23 Join won't modify its child's price once it has joined 2019-05-10 11:12:52 -04:00
John Colvin f8ddaab884 OrderBook - (Root)OrderType col filters show green beaker when filter active on startup/load workspace 2019-05-09 18:00:12 -05:00
John Colvin 78373c61ce miniob - hide price/qty param rows in attach popup 2019-05-09 16:10:18 -05:00
John Colvin 13e5c017e2 miniob - set orderbookvm.is_attaching_orders to false when attach popup closes 2019-05-09 15:53:12 -05:00
Eric Harding 3789d73593 Do not allow minTick to be 0 (infinite loop) 2019-05-09 16:25:25 -04:00
John Colvin 38f42fe747 SPARK-2417 Attach window price, qty 2019-05-09 14:28:52 -05:00
John Colvin 3a6f9a608d OrderBookVM.send_attached_orders_async uses CustomDef.actual() to unwrap composite algos 2019-05-09 14:28:52 -05:00
Michael Harding e14a5b2575 update SDK readme 2019-05-09 18:47:09 +00:00
John Colvin 04a68a4e96 OrderBookRowVM - fix typeo in badge_color prop (was using 'root') 2019-05-09 13:43:47 -05:00
Eric Harding dd049374d7 Fix equality comparison between mbo price levels 2019-05-09 14:26:14 -04:00
John Colvin 526ec306ae (Root)OrderType col filters ItemTemplate uses 'OrderTypeItem' (displays badge and name) 2019-05-09 12:41:35 -05:00
John Colvin f16ed40c82 OrderUtils.badge_fill does not need the OrderRecordImmutable arg 2019-05-09 12:35:17 -05:00
Eric Harding 96572539a7 SPARK-2381 View MBO in ladder 2019-05-09 13:05:47 -04:00
John Colvin 793eb14ed7 AlgoDefinitionMetadata - null check _favorite_templates in GetHashCode 2019-05-09 11:39:55 -05:00
John Colvin 1f94454d63 SPARK-2421 Default ladder to new fancy param grid 2019-05-09 11:20:10 -05:00
John Colvin c7e3bdcd6c OrderBookRowVM - normalize spacing 2019-05-09 11:18:27 -05:00
John Colvin 004a7b1395 OrderBookRowVM - don't hook up to invalidated event until '_modify_order_quantity_andor_price' cmd is created 2019-05-09 11:17:03 -05:00
Pedro Pinto 96bb63ba6d Merged 2019-05-09 12:13:37 -04:00
Pedro Pinto 0ea72b017e Storage component of manual fills code complete. 2019-05-09 12:12:02 -04:00
John Colvin b1498f3df1 OrderBookRowVM - forgot to raise property changed when root badge color changes 2019-05-09 11:03:08 -05:00
John Colvin b0759eba62 OrderBookRowVM - fix root badge color 2019-05-09 10:58:40 -05:00
Jake Norbut ff69cafe7f ob alignments - left aligning nearly everything, price and qty cols stay right aligned 2019-05-09 09:59:40 -05:00
Pedro Pinto 698612bb3d Storage component of manual fills code complete. 2019-05-09 10:29:54 -04:00
Jake Norbut f1e90394a0 restoring Root Algo column header after merge 2019-05-09 08:24:44 -05:00
Jake Norbut b24f855321 misc refactoring after root algo branch merge; OrderBookVM parameter passing no longer necessary 2019-05-09 08:20:36 -05:00
Pedro Pinto 2f23292836 Pos server 2019-05-09 09:12:37 -04:00
Pedro Pinto 085e6ae95a Merged 1944 in 2019-05-09 09:01:32 -04:00
Pedro Pinto 3be2aedfe3 Work in progress for manual fills 2019-05-09 08:59:59 -04:00
John Colvin 6e56b6cbaf sort algo type items in (Root)OrderType col filters 2019-05-08 23:12:21 -05:00
John Colvin 16ff473fd6 ViewModelBase - added 'DelegateProperty' backing method that doesn't invoke get_value during creation 2019-05-08 23:07:55 -05:00
John Colvin 4565fada08 change KeyedMultiSelector.selected_items to ObservableCollectionEx (supported by ListBoxEx, which is used by DiscreteValuesFilters) 2019-05-08 23:05:21 -05:00
John Colvin 648f808583 SPARK-2409 / SPARK-2422 fix duplicate algo items in (Root)OrderType col filters 2019-05-08 20:53:54 -05:00
John Colvin 7a6212932e Merge branch 'root_algo_col' into SPARK-1944-attach/detach/update 2019-05-08 19:20:38 -05:00
John Colvin aa933696ec OrderBook - include root_algo member in order_tuples join (for new 'Root Algo' col) 2019-05-08 19:16:10 -05:00
John Colvin 39d59dbbb0 IObservable<IReadOnlyDictionary>.Table() extension applies value-changes to state 2019-05-08 18:43:03 -05:00
Taha Afzal a511ea3a4b Lean cancels itself when detach on OnToward 2019-05-08 17:23:10 -04:00
John Colvin e489e809ab Merge remote-tracking branch 'origin/SPARK-1944-attach/detach/update' into root_algo_col 2019-05-08 16:22:30 -05:00
Jake Norbut e56d41d26b SPARK-2419 - algo studio childs display correct name and badge color now when they are not roots; verified w/ john his great comment no longer applied 2019-05-08 16:05:21 -05:00
John Colvin b1d45ad593 fix benign typeos in UpdateExtensions.ParentDependent 2019-05-08 15:45:17 -05:00
Pedro Pinto 1f01d974e3 Merged from 1944 2019-05-08 16:40:40 -04:00
Pedro Pinto 32038f8948 Fixed algo API bug that could lead to lost order updates. 2019-05-08 16:36:11 -04:00
Pedro Pinto 910c04544b Code complete on update of stop limit and iceberg qty. 2019-05-08 16:27:23 -04:00
Pedro Pinto 10674b8930 Merged 2019-05-08 15:25:58 -04:00
Pedro Pinto 8c9522e22b Work in progress to add support for update to stop limit and glbx iceberg. 2019-05-08 15:22:29 -04:00
Jake Norbut 2a90b521da SPARK-2418 - miniob to make sure of new algo_tree_display_mode setting for RootAndLeafNodes 2019-05-08 14:19:35 -05:00
Jake Norbut 2098a60af1 eliminating root_algo_badge_fill property so that the fill color is reevaluated on all updates, for now ... 2019-05-08 12:01:18 -05:00
Jake Norbut 67c0178b9a adding GridColumnSettings for root algo column 2019-05-08 12:00:28 -05:00
Jake Norbut 5da07c42bb Adding RootAlgoType to ColumnBase 2019-05-08 11:59:31 -05:00
Jake Norbut f82035be98 refactoring OrderBookOrderTypeColumn to eliminate the newly created RootAlgo column type 2019-05-08 11:58:33 -05:00
Jake Norbut a652268eb8 get filtering working correctly 2019-05-08 11:02:33 -05:00
Jake Norbut 13d054a54c just keep checking the OB cache rather than against our local one 2019-05-08 10:04:01 -05:00
Jake Norbut 84cf2a3ad1 refactoring; kind of get filtering working, but not really 2019-05-08 09:42:50 -05:00
Jake Norbut 32e0d60dcd get filering working by passing in an 'owner' reference to the OrderBookColumnCollection 2019-05-08 08:53:04 -05:00
Jake Norbut 0a6755992a removing new non-working rootalgocvorderbookcolumn interface; using OB cache instead of tree; filtering still a mystery 2019-05-08 08:26:47 -05:00
Pedro Pinto f60afe1196 Woark in progress to add support for update to stop limit and glbx iceberg. 2019-05-08 06:46:40 -04:00
Pedro Pinto 0cc30a7934 Added server side support for GLBX Iceberg. 2019-05-08 06:46:40 -04:00
Pedro Pinto 3cc0f32617 Protected iceberg against negative show quantities. 2019-05-08 06:46:40 -04:00
John Colvin 29ae9c6927 SPARK-2404 Make ladder param grid behave more like a popup 2019-05-07 21:44:47 -05:00
John Colvin 892abe098c SPARK-2404 / SPARK-2410 replace dialog skirt buttons with toolbar menu items 2019-05-07 21:27:56 -05:00
John Colvin 9cf683f64f AlgoTemplateToolBar - RevertDefinition's visibility is not contingent upon a studio definition being selected 2019-05-07 21:27:56 -05:00
John Colvin f2bb8de4e1 AlgoTemplateToolBar - execute RevertDefinition visual state transitions through InvokeAsync 2019-05-07 21:27:51 -05:00
John Colvin b6a28af99e SPARK-2406 OrderBook - update param rows misbehave with non-uniform values 2019-05-07 18:35:06 -05:00
John Colvin 13a9dd3696 SPARK-2406 / SPARK-2408 QuantityMeasureControl should assume 'Absolute' mode when QuantityMeasure is null, or QuantityCase is 'None' 2019-05-07 18:33:38 -05:00
John Colvin 60bbd12386 code style change in ReflectionHelper.GetGenericTypeArgs method 2019-05-07 17:57:56 -05:00
John Colvin 3e09274cb5 SPARK-2403 Top is still showing this unknown parameter 2019-05-07 17:17:59 -05:00
John Colvin e9d1da4b51 SPARK-2401 mview - mass selection degrades performance 2019-05-07 17:13:06 -05:00
John Colvin 68e3fcb1cd made extension methods for Ice-dependent security props 2019-05-07 17:13:06 -05:00
John Colvin 745be0909a remove unused implementations of SecurityGrid 2019-05-07 17:13:06 -05:00
Eric Harding 74dd36bde1 SPARK-2380 add MBO popup 2019-05-07 18:02:59 -04:00
Taha Afzal 0bee4168b4 Join test has attach/detach/updates now 2019-05-07 16:19:24 -04:00
Jake Norbut d87c6027c9 display of column works, filtering not so much 2019-05-07 14:27:42 -05:00
John Colvin 859faadecd SPARK-2376 When collapsed the OB scrollbar overlaps with the collapsing widget 2019-05-07 12:22:40 -05:00
Taha Afzal e8741f9151 Top order manual test 2019-05-07 13:19:38 -04:00
Jake Norbut ef8b0fc258 enforce 2 digit algo abbreviation on badge 2019-05-07 11:43:59 -05:00
John Colvin 3b27fedcd3 SPARK-2402 piq merge broke the orderbook mini-ladder order filter 2019-05-07 11:18:27 -05:00
Michael Harding 0991fbfffd Update SDK README 2019-05-07 11:31:56 -04:00
Jake Norbut 499072c94f PR edit - we don't need an array here 2019-05-07 09:33:25 -05:00
Jake Norbut fa8598adbd PR suggestion - explicitly set default value 2019-05-07 09:22:44 -05:00
Jake Norbut 089c4ac35e part of SPARK-2376 - OB footer now spans the entire window width, regardless of the new right panel state 2019-05-07 08:44:48 -05:00
Jake Norbut af8b559fa6 Merge branch 'master' of bitbucket.org:bluetradesys/spark into piq_ladder_dirty 2019-05-07 08:26:15 -05:00
Taha Afzal 62ba85d383 Lean deals with gapped markets better 2019-05-06 19:22:06 -04:00
Taha Afzal f4b2f84e68 Lean's corner cases 2019-05-06 18:14:33 -04:00
Taha Afzal 474e7880d6 LeanAlgo's spurious price/qty controlled 2019-05-06 18:14:33 -04:00
John Colvin 89f74b7c81 SPARK-2399 add commit/revert buttons to ladder algo params grid popup 2019-05-06 17:05:52 -05:00
Jake Norbut 0abcb8bf23 SPARK-2391 - attach/detach icons 2019-05-06 16:33:25 -05:00
Pedro Pinto 47887b67d2 Fixed SIM handling of updates to size of partially filled orders. 2019-05-06 15:57:28 -04:00
John Colvin 41a96b990d SPARK-2382 Windows that take a long time to render do not give any user feedback until they are visible 2019-05-06 14:18:21 -05:00
Jake Norbut ce8bc5c631 SPARK-2394 - rename Fonts and Colors to Column Settings 2019-05-06 12:23:21 -05:00
John Colvin eebb214574 make FixNestedScrolling diygrid popup conditional check more specific 2019-05-06 11:28:53 -05:00
Jake Norbut 47c827caf6 badge - refactor (forgot a ToUpper for 1 of the return paths 2019-05-06 11:22:42 -05:00
Michael Harding a82a22b133 Update test text 2019-05-06 12:17:07 -04:00
Brian Muhr 1fd444c91c adding new tests 2019-05-06 11:12:58 -05:00
Jake Norbut f28ae29990 changing A and D geometry to Segoe UI font 2019-05-06 11:07:56 -05:00
Jake Norbut aedabcdf00 SPARK-2392 - ob attach/detach icons to match mini ob 2019-05-06 11:07:56 -05:00
Jake Norbut 3b37f8e48b adding A and D icons; created from Inkscape 2019-05-06 11:07:56 -05:00
John Colvin beb328ec09 SPARK-2397 grid column popups don't scroll on mouse wheel 2019-05-06 10:58:41 -05:00
Jake Norbut f9b9bdab47 SPARK-2391 - generate badge abbreviation for algo studio orders lacking one 2019-05-06 09:22:44 -05:00
Eric Harding 3beb82c959 Add comment about why dump_to_shm does'nt need to hold mutex 2019-05-06 09:01:45 -04:00
Jake Norbut 9e6776c6fb updating test text 2019-05-06 07:49:31 -05:00
Kevin Darby 140f1d88ea ice entitlements 2019-05-05 16:41:13 -04:00
Pedro Pinto e807f6a702 Fixed composite handling of detach. 2019-05-05 11:56:35 -04:00
John Colvin 07212aa5d6 IAlgoVM.load impls unwrap CompositeOrderDefinitions to get the underlying algo 2019-05-04 15:57:50 -05:00
Pedro Pinto a0f31d6443 Fixed composite order some more. 2019-05-04 15:14:20 -04:00
Pedro Pinto df6a5096c2 Composite order was not reflecting child price/size 2019-05-04 14:33:16 -04:00
John Colvin 43336d04d4 SPARK-2375 Composite algo order types do not show as options in the OB filter 2019-05-04 13:26:23 -05:00
John Colvin ca73b20fe5 made 'MergeTable' extension method for TableUpdate 2019-05-04 13:16:45 -05:00
John Colvin 09f6ad4031 OrderBook - fix crash when selecting composite-order row 2019-05-04 13:04:56 -05:00
John Colvin 97b52f2e64 OrdersModel.update_order should ignore size change if size == quantity (not working_quantity) 2019-05-04 13:04:34 -05:00
Pedro Pinto 0adc77a5cf Fixed composite order. 2019-05-04 11:53:12 -04:00
Pedro Pinto e469e8fc70 Tweaked cover test. 2019-05-04 11:53:12 -04:00
Pedro Pinto 10da3c517c Changed hedge ticks to be a uint, from int 2019-05-04 11:53:12 -04:00
Pedro Pinto 5f7c4b5c37 Improved test. 2019-05-04 11:53:12 -04:00
Pedro Pinto c34d05218a Fixed clang build. 2019-05-04 11:53:12 -04:00
Pedro Pinto 3abf99da91 Cleaned up tests. 2019-05-04 11:53:12 -04:00
Pedro Pinto 8d94238e91 Updated cover test 2019-05-04 11:53:12 -04:00
John Colvin dc169fc4fd SPARK-2388 studio-template orders should use new CompositeOrderDefinition (not CustomOrderDefinition) 2019-05-04 11:53:12 -04:00
John Colvin abe8361b18 when updating orders without a 'new size' arg, use the order's actual quantity, not working_quantity 2019-05-03 20:16:18 -05:00
Eric Harding 9f406e83aa SPARK-2151 Dump shared memory on bad handle for forensic analysis 2019-05-03 17:39:47 -04:00
John Colvin 2ee163bf8a SPARK-2387 crash when opening orderbook from other windows 2019-05-03 15:44:22 -05:00
Kevin Darby c4eeaf2ec8 this should do it for bust / adjust 2019-05-03 16:28:37 -04:00
Jake Norbut 775a720e0a SPARK-2027 - it's depressing how many hours of your life 1 line of code can steal 2019-05-03 15:01:27 -05:00
Kevin Darby 54dd30245f Merge branch 'SPARK-1944-attach/detach/update' of bitbucket.org:bluetradesys/spark into ice_exec3 2019-05-03 15:54:07 -04:00
Kevin Darby 263ff63a37 added concept of active and busted fill to support ice busts 2019-05-03 15:31:23 -04:00
Jake Norbut 62c56762bf lighten some of the OB row colors 2019-05-03 13:31:21 -05:00
Pete Fisher 16fbab8677 added author/complain to tests 2019-05-03 13:57:39 -04:00
Kevin Darby f3d16502de going a new way on the busts 2019-05-03 13:39:35 -04:00
Pete Fisher 505ac39a3f removed parts about visual notifications and checkboxes per John 2019-05-03 13:33:05 -04:00
Eric Harding 84aefabfea Safe workaround for SPARK-2303. 2019-05-03 13:19:35 -04:00
Eric Harding 102fefbd92 1.6.2 release notes 2019-05-03 13:13:59 -04:00
Jake Norbut 87b8a802c9 SPARK-2050 - syth editor - remove borked help button 2019-05-03 10:31:47 -05:00
Eric Harding fc7a4b0800 Merged in PIQachu (pull request #223)
RTm: spark-2316 mbo support for simulator

Approved-by: Pedro Pinto <pedro.pinto+atlassian@bluetradesys.com>
2019-05-03 15:30:13 +00:00
Kevin Darby 4b7db298c4 something up with settlement re-price 2019-05-03 10:39:54 -04:00
Taha Afzal 679330b9a8 fixing cover test 2019-05-03 10:26:08 -04:00
Jake Norbut ab7b495358 ladder - restrict LOVM processing to only those working orders whose security matches the current ladder security 2019-05-03 09:23:13 -05:00
John Colvin 9b6064e87e SPARK-2377 OB Last Message column displays strange alignment when resizing and/or scrolling 2019-05-02 18:28:02 -05:00
Kevin Darby 65f41452fb work around onixs assert for us financials that does not have an implieds feed 2019-05-02 18:33:54 -04:00
John Colvin ab3fa25709 SPARK-2357 On new order book grids default to hiding intermediate nodes 2019-05-02 17:29:33 -05:00
John Colvin 07af7a4298 SPARK-2531 Clear button numpad 2019-05-02 17:15:48 -05:00
Jake Norbut 926274e2d9 eliminate unecessary join in OrdersModel and use on_orders_tuples for algometadata when joining 2019-05-02 17:09:48 -05:00
Jake Norbut 5e4c22c99d badge - use customized algo border if specified from metadata 2019-05-02 17:09:48 -05:00
Kevin Darby d7a2ae4b09 added spread marker to last trade display....lotta code for an S 2019-05-02 17:55:46 -04:00
Taha Afzal 06b4f8055f Fixing the build after merge 2019-05-02 17:40:49 -04:00
Taha Afzal 81b307fa73 Merge branch 'SPARK-1944-attach/detach/update' of bitbucket.org:bluetradesys/spark into SPARK-1944-attach/detach/update 2019-05-02 17:28:12 -04:00
Taha Afzal 6d131f9b4f merging from queueholder order 2019-05-02 17:15:47 -04:00
John Colvin 014c1e968a SPARK-2360 Lean's cross threshold in the UI can be made to overflow 2019-05-02 16:08:44 -05:00
Eric Harding 8f9321701e merge PIQ in simulator 2019-05-02 15:05:57 -04:00
Eric Harding 6b5016c9fe SPARK-2316 Remove "Give me everything please" 2019-05-02 15:04:43 -04:00
Taha Afzal 50e8808af0 Merge branch 'master' into queue_holder_order 2019-05-02 14:33:03 -04:00
Eric Harding 916fda1eb5 Merge branch 'master' of bitbucket.org:bluetradesys/spark into PIQachu 2019-05-02 13:31:35 -04:00
Eric Harding 9422e3ac98 SPARK-2316 Simulator should stop cutting in front 2019-05-02 12:36:25 -04:00
Kevin Darby 61ac626542 ice wants tag 1031 2019-05-02 12:36:14 -04:00
Michael Harding 8d7a2f342e Add Custom Order Instructions 2019-05-02 12:14:50 -04:00
Eric Harding 09e8fabcf2 ExchangeSim - use open_quantity for mbo instead of quantity 2019-05-02 12:14:24 -04:00
Kevin Darby 0db037175f fixed ice forced logout issue 2019-05-02 12:07:09 -04:00
Kevin Darby 98aa463b4e Merge branch 'SPARK-1944-attach/detach/update' of bitbucket.org:bluetradesys/spark into ice_exec3 2019-05-02 11:51:28 -04:00
Jake Norbut 2064de0752 Adding Abbreviation to badge 2019-05-02 10:51:05 -05:00
Jake Norbut f94aa936b0 on_order_with_piq now joins with algo_meta, so that working orders with piq can have algo metadata 2019-05-02 10:50:18 -05:00
Jake Norbut 4a22ad7616 OrderSecurity now holds AlgoData and AlgoDefinitionMetadata 2019-05-02 10:48:19 -05:00
Eric Harding 133bd89a2c add mbo diagnostic tool 2019-05-02 11:29:01 -04:00
Michael Harding 6d9c083c0f Verify quoting order 2019-05-02 10:58:45 -04:00
Jake Norbut 63d97c8982 ob/mini - adding background color triggers based on order status 2019-05-02 09:24:27 -05:00
Eric Harding 7540ae0ef7 update onixs license 2019-05-02 09:25:42 -04:00
Pedro Pinto 3f06470c5e Added new filtering/collapsing sections to the OB test. 2019-05-02 09:10:33 -04:00
John Colvin 04537684cb remove unused dictionary vars in TableUpdateDemuxer.OnNext 2019-05-01 23:59:51 -05:00
John Colvin 6fba76b399 SPARK-2365 Crash when entering limit orders at various levels quickly (log attached) 2019-05-01 23:51:29 -05:00
Eric Harding 9f9da1847b OrderStress - do asks first so the console looks like little text ladders 2019-05-01 17:53:47 -04:00
Eric Harding 975f7f64b7 SPARK-2316 add MBO support to the simulator 2019-05-01 17:52:29 -04:00
Pedro Pinto cacf3ac862 Addresses SPARK-2369, where Lean was not reportin fills properly. 2019-05-01 15:49:21 -04:00
Pedro Pinto 104247c786 Fixed SPARK-2368, on attach disregard current fills in cover. 2019-05-01 15:14:25 -04:00
Jake Norbut 064ed5b692 OB/mini - Completed order status now h ows with a lighter tint of light slate gray 2019-05-01 14:00:12 -05:00
Kevin Darby 0b40d3971d lining up with ice downtime 2019-05-01 14:05:02 -04:00
Pedro Pinto bddb152d76 Working towards a composite order. 2019-05-01 14:03:34 -04:00
Pedro Pinto e2f3bfd61a Fixe user manual generation script. 2019-05-01 14:03:34 -04:00
Pedro Pinto 791774490c Clang build fixes. 2019-05-01 14:03:34 -04:00
Taha Afzal c4f984c612 Merge branch 'SPARK-1944-attach/detach/update' of bitbucket.org:bluetradesys/spark into SPARK-1944-attach/detach/update 2019-05-01 14:00:25 -04:00
Taha Afzal 04eee0f4b7 added logs in Lean to detect the out-of-the-gate fill situation 2019-05-01 14:00:18 -04:00
Jake Norbut aa9846962b SPARK-2354 - remove ugly yellow working color; we might introduce some new colors depending on order state, so i just have just commented out these setters for now 2019-05-01 12:17:29 -05:00
Jake Norbut 881c3a5c1d badge - order abbreviation and hedge indicator should respect FontSize setting 2019-05-01 11:39:02 -05:00
Taha Afzal 59ba9dc129 Attach added to cover test 2019-05-01 11:54:17 -04:00
Taha Afzal b9efaef0a5 detach test 2019-05-01 11:11:11 -04:00
Michael Harding 3e822bcca1 Merge branch 'master' into spreader_test 2019-05-01 10:58:30 -04:00
Michael Harding 0732034dbe Fix build 2019-05-01 10:50:26 -04:00
Jake Norbut 8dde9bf3c5 print descriptive workspace info after selecting a user's workspace to copy 2019-05-01 08:39:37 -05:00
John Colvin 667a482fba SPARK-2353 Hide Price and Quantify parameters in attach dialog for Top, Lean, Cover, and Join 2019-04-30 22:23:35 -05:00
John Colvin 6be8dae2d1 SPARK-2336 Attaching with different price, qty on child orders 2019-04-30 19:10:46 -05:00
John Colvin f478b2c9f2 SPARK-2355 Attaching to a running studio algo results in the wrong order type being displayed 2019-04-30 18:24:18 -05:00
John Colvin 300c5c9431 OrderBookVM - when sending attached orders, get snapshot of selected orders before calling api (i.e., selected_orders.ToList()) 2019-04-30 18:24:18 -05:00
Jake Norbut 9c066ca703 Merge branch 'master' of bitbucket.org:bluetradesys/spark into SPARK-1944-attach/detach/update 2019-04-30 18:21:21 -05:00
Jake Norbut 9946c4716f Default PIQ column to not visible 2019-04-30 18:13:22 -05:00
John Colvin ee0e719e76 Merged in SPARK-2361-piq-bid-bug (pull request #221)
SPARK-2361 ladder - hidden PIQ column causes bids not to work

Approved-by: Jake Norbut <jake.norbut@bluetradesys.com>
2019-04-30 23:13:03 +00:00
John Colvin 5d5761288f SPARK-2361 ladder - hidden PIQ column causes bids not to work 2019-04-30 18:04:10 -05:00
Jake Norbut 0a683dae15 Merge branch 'master' of bitbucket.org:bluetradesys/spark into piq_ladder_dirty 2019-04-30 16:58:37 -05:00
Kevin Darby a21a769909 cleaned up todos 2019-04-30 17:43:23 -04:00
John Colvin afb0288672 SPARK-2359 (+SPARK-2352) AlgoParamVM does not need to derive from DisposableViewModelBase (keep it light) 2019-04-30 16:41:28 -05:00
John Colvin aefe248034 remove unusued method 'OrderBookVM._attach_orders' 2019-04-30 16:41:28 -05:00
Taha Afzal 398382c3a5 Merge branch 'SPARK-1944-attach/detach/update' of bitbucket.org:bluetradesys/spark into SPARK-1944-attach/detach/update 2019-04-30 17:26:43 -04:00
Taha Afzal cf2c16564f attach manual test 2019-04-30 17:26:38 -04:00
Eric Harding 48ee5e1699 advance externals 2019-04-30 17:12:46 -04:00
Eric Harding 27c9ec8dab Merge branch 'SPARK-1944-attach/detach/update' of bitbucket.org:bluetradesys/spark into SPARK-1944-attach/detach/update 2019-04-30 17:11:11 -04:00
Eric Harding 31e767208e merge master 2019-04-30 17:10:38 -04:00
Pedro Pinto 0c2943e3da Removed obsolete files. 2019-04-30 16:10:02 -04:00
Pedro Pinto 99ea02ca40 Guarded against the possibilty of algos not supporting attach/detach. 2019-04-30 15:26:19 -04:00
Pedro Pinto 8ceab51228 Removed obsolete class. 2019-04-30 15:26:19 -04:00
Kevin Darby ca8e540453 volume is tricky 2019-04-30 15:09:53 -04:00
John Colvin 4a69a9204b OperableHierarchicalCollection was not sorting root nodes 2019-04-30 13:56:59 -05:00
John Colvin 0e136637e0 OrderBookVM - remove unused type alias 2019-04-30 13:56:59 -05:00
John Colvin d803622c01 SPARK-2315 / SPARK-2338 hook up AlgoTreeDisplayMode setting in OrderBookVM 2019-04-30 13:56:58 -05:00
John Colvin 2e49534483 move OrderBookGridSettingsManager into its own file 2019-04-30 13:56:58 -05:00
John Colvin 8210f4f74a make INode<T> covariant, bc might as well 2019-04-30 13:56:58 -05:00
Kevin Darby 134950747f bugs found during cert 2019-04-30 14:36:54 -04:00
Jake Norbut 69e2bcb164 badge - misc refactoring 2019-04-30 12:51:29 -05:00
Jake Norbut e4ae42e80d badge - summary no longer needs to be something that implements IRaiseNotifyPropertyChanged 2019-04-30 12:27:31 -05:00
Jake Norbut ad3950e2c5 SPARK-2348 redux - eliminate public orders accessor; fixes order modifies, i.e. drag and drop badge, in ladder 2019-04-30 11:32:11 -05:00
Taha Afzal 6bab882f89 Merge branch 'SPARK-1944-attach/detach/update' of bitbucket.org:bluetradesys/spark into SPARK-1944-attach/detach/update 2019-04-30 12:30:20 -04:00
Taha Afzal b6709b426c new tests and 'find_qty_at_price_level' fixed 2019-04-30 12:30:04 -04:00
Eric Harding 77f5723936 Apply lazyView to the limits tables 2019-04-30 12:23:18 -04:00
Jake Norbut 898574130c SPARK-2348 - badge operations should be on root orders; getting rid of unused code 2019-04-30 10:57:25 -05:00
Jake Norbut 11faa6ca36 SPARK-2347 - badge mutliple orders to iterate over root orders, not orders 2019-04-30 10:43:45 -05:00
John Colvin 01dc0c004b SPARK-2344 Child orders are being duplicated in OB, MiniOB, possibly ladder? 2019-04-30 10:08:51 -05:00
Eric Harding 6dbeaa14e2 SPARK-2343 Update.h does not correctly track 'all' collection breaking limits 2019-04-30 10:49:30 -04:00
John Colvin 9271d4e2ea fix last commit (NodeExtensions.filtered) 2019-04-29 23:51:57 -05:00
John Colvin 06ca1461f4 simple optimization for NodeExtensions.filtered() 2019-04-29 23:42:03 -05:00
John Colvin f84c931d5d NodeExtensions.filtered() should filter root nodes too (not just children) 2019-04-29 23:40:56 -05:00
John Colvin 1d2d7099c4 SPARK-2340 OrderBook - order lineage breaks when there is a generational gap (created by filter) 2019-04-29 23:17:28 -05:00
John Colvin 00540435eb OrderBook - assign sorting-data to save-state 2019-04-29 17:02:12 -05:00
Kevin Darby 5abc17adf3 settles 2019-04-29 17:58:53 -04:00
John Colvin b5552a858e SPARK-2315 / SPARK-2337 add AlgoTreeDisplayMode enum prop to OrderBookGridSettings 2019-04-29 16:41:33 -05:00
John Colvin fa110b027b BooleanToObjectConverter uses object Equals to determine bool returned in ConvertBack 2019-04-29 16:41:33 -05:00
John Colvin 7ce7ebbf96 remove erroneous/legacy RadioButton default style from SimpleGridSettingsDialog.xaml 2019-04-29 16:41:33 -05:00
John Colvin 98315d8e15 refactor 'GridOrLadderSettingsSelectorKeys' to 'GridSettingsTemplateKeys' 2019-04-29 16:41:33 -05:00
Eric Harding 6066e2162c SPARK-2197 Correction to PIQ calculation per taha (+test coverage) 2019-04-29 17:28:23 -04:00
Kevin Darby f3cd3a402e ice spread config, workaround for onixs bug 2019-04-29 16:53:50 -04:00
Kevin Darby c7217b8475 Merge branch 'SPARK-1944-attach/detach/update' of bitbucket.org:bluetradesys/spark into ice_exec3 2019-04-29 16:47:26 -04:00
Eric Harding 4279e3d388 Fix broken managed md unit test 2019-04-29 16:36:16 -04:00
Eric Harding 221814cc11 Add OrderStress tool for perf testing 2019-04-29 16:30:18 -04:00
Kevin Darby 99c5129ea7 ice spreads are weird 2019-04-29 16:25:54 -04:00
Kevin Darby d025ee0c89 seems to be an onixs bug that exits a loop early if not provisioned for a market_type 2019-04-29 15:09:56 -04:00
Jake Norbut 2d4e2c84b5 manual test for mini ob 2019-04-29 13:48:50 -05:00
Taha Afzal e84c7d4f8c Cleaning up lean again 2019-04-29 13:01:31 -04:00
Jake Norbut da1ae1b410 badge - the rest of SPARK-2291 - no more parent info 2019-04-29 09:25:22 -05:00
Kevin Darby c24ddaa190 Merge branch 'SPARK-1944-attach/detach/update' of bitbucket.org:bluetradesys/spark into ice_exec3 2019-04-29 10:21:39 -04:00
Kevin Darby 442aa156ac trying to get orance juice market 2019-04-29 10:20:27 -04:00
Jake Norbut 147783666c badge - woops, not all orders should have hedge indicators 2019-04-29 08:52:11 -05:00
Jake Norbut 2c68458762 badge - hedge indicator is now a glyph run rather than a bunch of lines 2019-04-29 08:46:58 -05:00
Eric Harding 5a1cc4cf2b Update release notes 2019-04-29 09:38:02 -04:00
Eric Harding 9be3a09749 Merged in SPARK-2179-PIQ (pull request #219)
SPARK-2179 PIQ
2019-04-29 13:36:49 +00:00
Eric Harding 61745d0ed7 Update release notes 2019-04-29 09:35:13 -04:00
Eric Harding db1610591e merge master 2019-04-29 09:34:31 -04:00
Jake Norbut 1682cc004e miniob - tooltips for A/D buttons 2019-04-29 08:25:17 -05:00
Eric Harding bb1571540a Merged in sparkcmd_commandline (pull request #218)
RTM: Sparkcmd commandline

Approved-by: Jake Norbut <jake.norbut@bluetradesys.com>
Approved-by: Michael Harding <michael.harding@bluetradesys.com>
2019-04-29 13:13:23 +00:00
Eric Harding 342d89724e Update release notes 2019-04-29 09:13:09 -04:00
Michael Harding 07d3903d11 Merged in Documentation (pull request #215)
RTM Remove SDK docs from the manual
2019-04-29 13:12:35 +00:00
Jake Norbut d08b134d7f Merged in SPARK-2285 (pull request #214)
RTM - SPARK-2285 - add null check on r.newval

Approved-by: Eric Harding <eric.harding@bluetradesys.com>
Approved-by: John Colvin <john.colvin@bluetradesys.com>
2019-04-29 13:10:49 +00:00
Taha Afzal d6a8925655 Merge branch 'SPARK-1944-attach/detach/update' of bitbucket.org:bluetradesys/spark into SPARK-1944-attach/detach/update 2019-04-28 23:01:49 -04:00
Taha Afzal 1dba1034b6 Lean simplified a bit more 2019-04-28 23:01:42 -04:00
John Colvin 437efc393d OrderBookView - menu expander button for right panel 2019-04-28 18:53:55 -05:00
John Colvin b27fb045fd remove ToolTipService.InitialShowDelay from MenuExpanderButton style 2019-04-28 18:33:43 -05:00
John Colvin cc3d916dd3 factor out core of MenuExpanderButton style into MenuExpanderButtonBase 2019-04-28 18:33:23 -05:00
John Colvin b1659b0aa9 fix typeo in CheckedStateDefinition static constructor 2019-04-28 18:33:23 -05:00
John Colvin 3051cff3c8 OrderBookView - put update content (params/buttons) in scrollviewer 2019-04-28 18:33:23 -05:00
John Colvin bf01bf4ad6 AlgoEditorGridView - hook up execution strategy toggle for spreader orders 2019-04-28 18:33:23 -05:00
John Colvin 0151b0e16c DIYGrid - column header sort arrows are all the way to the right when filter is inactive 2019-04-28 18:33:23 -05:00
John Colvin c30e922c38 new ensure_onscreen logic should account for window being above/left of work area too (not just below/right) 2019-04-28 18:33:23 -05:00
Taha Afzal 0417dd7e08 Merge branch 'SPARK-1944-attach/detach/update' of bitbucket.org:bluetradesys/spark into SPARK-1944-attach/detach/update 2019-04-28 16:31:45 -04:00
Taha Afzal 158c1cbcfd Lean fixes 2019-04-28 16:31:36 -04:00
John Colvin a5bd9b25c6 increase 'infinite loop' counter threshold in ensure_onscreen 2019-04-27 12:03:21 -05:00
John Colvin fbe6b38edc simplify ensure_onscreen code (since end of cycle approaches, disable by default with config) 2019-04-27 12:03:13 -05:00
John Colvin 6d4ece0667 ensure_onscreen for new shell windows 2019-04-27 11:09:39 -05:00
John Colvin b19380c91c SPARK-2334 when opening new shell windows, don't make them visible until initial async measurement is finished 2019-04-27 11:05:46 -05:00
John Colvin dc5585cd8d MarketViewWindow - don't use hidden columns in initial width calculation 2019-04-27 10:47:47 -05:00
John Colvin b53163d1e1 SPARK-2234 / SPARK-2333 disable child algo dropdowns in orderbook/ladder 2019-04-26 22:23:20 -05:00
John Colvin 63c3e2c93a fix orderbook 'attach' popup (was stretching past x bounds) 2019-04-26 21:45:44 -05:00
John Colvin 3d96bc98e2 SPARK-2234 / SPARK-2332 ladder - toggle conf to display algo params in a grid (like orderbook) 2019-04-26 21:16:38 -05:00
John Colvin e5bffc3e89 AlgoEditorGridView - set both column widths to '*' 2019-04-26 21:10:54 -05:00
John Colvin e613c5626e OrderModVM - use ReactiveThresholdMonitor to drive 'is_dirty' prop 2019-04-26 17:53:57 -05:00
John Colvin 704a0cc1aa SPARK-2243 Clean up algo offerings 2019-04-26 17:38:00 -05:00
John Colvin 85447ccfb4 CollectionViewSource - set CollectionViewType in default constructor 2019-04-26 17:35:34 -05:00
Eric Harding 92f67d1d2d piq: Add security key to log message 2019-04-26 16:40:59 -04:00
Eric Harding 43a18941a4 Change debug assert to logged warning in PIQ 2019-04-26 16:18:37 -04:00
Jake Norbut bd643aa525 don't draw piq on every tick; might save some cycles 2019-04-26 14:50:16 -05:00
Kevin Darby e906d41cc2 Merge branch 'SPARK-1944-attach/detach/update' of bitbucket.org:bluetradesys/spark into ice_exec3 2019-04-26 14:48:20 -04:00
Kevin Darby 6e09d9e949 small changes for ice cert 2019-04-26 14:35:36 -04:00
John Colvin 1d419a0bd6 SPARK-2330 Dynamic orders should not show the dyn type as a parameter in the update dialog 2019-04-26 13:10:37 -05:00
John Colvin e6815f95c4 SPARK-2325 Dynamic orders no longer seem to be getting any parameters from the UI 2019-04-26 12:42:22 -05:00
Pedro Pinto e2e5769767 Fixed Cover order attach crash. 2019-04-26 13:40:11 -04:00
Pedro Pinto 23bec87ad0 Improved comments on order plugin example. 2019-04-26 13:29:26 -04:00
Pedro Pinto 992b64c08a Changed dynamic order example to use a Join and the new API. 2019-04-26 13:16:42 -04:00
Pedro Pinto 85b6103944 Fixed typo in comment. 2019-04-26 13:14:07 -04:00
John Colvin 9a376d5209 OrderBookVM - detach_selected_orders_cmd passes the selected orders' parentkeys (accidentally broke again) 2019-04-26 11:45:07 -05:00
John Colvin cee4d65d38 SPARK-2293 / SPARK-2323 change right panel toolbar button click mode to 'Pressed' (i.e., select on mouse down) 2019-04-26 11:25:24 -05:00
Jake Norbut b102b271b0 PR edit - use single_order instead; this will be gone from attach/detach 2019-04-26 10:27:07 -05:00
Jake Norbut b129bea129 PR edit - method signature all on one line 2019-04-26 10:27:07 -05:00
Jake Norbut b81459cdf7 badge - Hedge order is now represented with H on the right side of badge rather than a single vertical line on left side 2019-04-26 09:55:01 -05:00
Jake Norbut 136a75f526 Removing IsExchangeOrder and associated badge decoration 2019-04-26 09:13:58 -05:00
Jake Norbut 406a2c5bc9 badge summary is only used in log messages, so simplify string 2019-04-26 09:05:07 -05:00
Jake Norbut b1b0d23839 part of SPARK-2291; paired with John, thx John! 2019-04-26 08:55:35 -05:00
Eric Harding 38d79eb58b Merge branch 'master' of bitbucket.org:bluetradesys/spark into SPARK-2179-PIQ 2019-04-26 09:38:43 -04:00
Jake Norbut 495621a014 miniob price and quantity now set focus upon going into edit mode and mouse is over them 2019-04-26 08:25:45 -05:00
Jake Norbut d37f3a4646 Escape key when cursor in price or quantity now reverts changed value 2019-04-26 07:58:49 -05:00
John Colvin a9e3443cab SPARK-2293 / SPARK-2324 disable attach button when not applicable 2019-04-25 23:33:36 -05:00
John Colvin a8db5dae3d SPARK-2293 / SPARK-2322 disable detach button when not applicable 2019-04-25 23:27:14 -05:00
John Colvin 76af564057 SPARK-2293 / SPARK-2321 change 'Attach To Selected Orders' to 'Attach To Selected' 2019-04-25 23:07:41 -05:00
John Colvin f6df5cc2ec SPARK-2293 / SPARK-2320 change 'Detach And Cancel Selected Orders' to 'Detach Selected' 2019-04-25 23:07:28 -05:00
John Colvin 747cde4a25 TickDisplayConverter - format price with default ContractSpec if spec is null (also accounts for nan formatting) 2019-04-25 22:56:45 -05:00
John Colvin 9b6a5ea943 remove hacky ILazyAlgo interface, replace functionality with subscribe_is_dirty extension 2019-04-25 19:05:03 -05:00
John Colvin 00b68a4408 remove file that was added by accident 2019-04-25 18:36:20 -05:00
John Colvin d14826ea96 IAlgoVM - remove unused 'child_params' member 2019-04-25 18:34:41 -05:00
John Colvin 4143a8cd05 TriggerOrderVM - correct 'price type' and 'payup ticks' prop name args 2019-04-25 18:24:30 -05:00
John Colvin 1ae3f0d3e0 made PriceMinMax filter for orderbook 2019-04-25 17:55:25 -05:00
Jake Norbut 52b762ee1c miniob: when cursor in price and quantity, enter key commits 2019-04-25 16:29:57 -05:00
Eric Harding dfd0cfc217 templatize mbo callbacks for older templates 2019-04-25 17:16:35 -04:00
Kevin Darby aea02e212a cleaned up cancel / reject messages 2019-04-25 16:36:07 -04:00
Kevin Darby a94a66234a ice puids 2019-04-25 15:57:04 -04:00
Jake Norbut 5c2fdf022c mini ob - tab now cycles between price and qty when a row is selected 2019-04-25 14:51:11 -05:00
Kevin Darby 4cbbf6972a add, update, remove orders work across logouts 2019-04-25 15:25:07 -04:00
Eric Harding a123ac2ed8 Turn on MBO background processing 2019-04-25 15:14:27 -04:00
Jake Norbut f374570907 fix for if qty is changed via update popup and the edit textbox does not reflect it; accidentally merged out 2019-04-25 13:49:54 -05:00
Eric Harding ad4fd13189 MBO: Add seconary index to handle mbo change 2019-04-25 14:25:49 -04:00
Jake Norbut 8ea1243777 Merged SPARK-2306_miniob_nits into SPARK-1944-attach/detach/update 2019-04-25 13:17:32 -05:00
Jake Norbut 12141f6c1d Merge branch 'SPARK-1944-attach/detach/update' of bitbucket.org:bluetradesys/spark into SPARK-2306_miniob_nits 2019-04-25 13:15:24 -05:00
John Colvin d1a4ebda4c SPARK-2293 / SPARK-2312 attach params grid needs 'modified' animations (like update grid) 2019-04-25 13:14:56 -05:00
John Colvin 5f76759c35 SPARK-2293 / SPARK-2311 attach algo dropdown should only show attachable algos 2019-04-25 12:55:55 -05:00
Jake Norbut a1b32e3e6e combine attach and detach columns into 1 column to rule them all, and in the darkness bind them 2019-04-25 12:25:08 -05:00
John Colvin 744bad2bb0 MaskIndexInt32 was not actually using maskable bits 2019-04-25 12:17:53 -05:00
John Colvin 5a1dd952d2 SPARK-2293 / SPARK-2310 clean up main context menu 2019-04-25 11:57:55 -05:00
John Colvin 98580746e0 SparkMenu - add 'group' property to SparkCommand, implement group style in ContextMenu 2019-04-25 11:57:55 -05:00
John Colvin 7c39f1318b made AreEqualConverter (IMultiValueConverter) 2019-04-25 11:57:55 -05:00
John Colvin 28f8d62a1a made methods EnumerableExtensions.CountAtLeast/Most 2019-04-25 11:57:04 -05:00
Jake Norbut 4436cf9b04 adding new col to keys 2019-04-25 10:48:18 -05:00
Jake Norbut 2cd19a7984 bus.post for price and size in one 2019-04-25 10:47:41 -05:00
Jake Norbut f956ce1d2c adding new Command that can change size and price in one operation 2019-04-25 10:46:59 -05:00
Jake Norbut 1e578a5c77 creating new CommitColumn; modifying OnCommit properties of other up/downs to be bound to new command 2019-04-25 10:46:27 -05:00
Jake Norbut adaac94e9c StaysOpen should be false (was turned on for debugging) 2019-04-25 10:45:34 -05:00
Jake Norbut 5832034208 adding new Commit column 2019-04-25 10:45:01 -05:00
Eric Harding 8a1180835c MBO diagnostics/logging 2019-04-25 11:06:39 -04:00
Jake Norbut d45366311a abandon tinkering with this fix handles the bug 2019-04-25 08:49:28 -05:00
Jake Norbut 395463dee9 Debounce the OnPreviewMouseWheel 2019-04-25 08:48:27 -05:00
Jake Norbut acfbf51209 abandoning TextBox ContentTemplate customization as the ScrollViewer bug is still present 2019-04-25 08:47:41 -05:00
Jake Norbut 9872e31a0a adding handy utility function for Deboucning and Throttling 2019-04-25 08:46:01 -05:00
John Colvin a80b650dcc SPARK-2309 crash in synth editor when editing (typing) ticks 2019-04-24 22:42:56 -05:00
John Colvin 0051d7f9d8 SPARK-2308 Mass updates are not applying to all rows 2019-04-24 21:03:03 -05:00
John Colvin 8f69e687ec SPARK-2305 It should not be possible to attach to orders that have live parents 2019-04-24 18:10:10 -05:00
Pedro Pinto e0438c25b0 Added test helper. 2019-04-24 18:57:02 -04:00
Kevin Darby caa9671c96 ids... 2019-04-24 18:37:45 -04:00
Pedro Pinto 2a2d3eddd3 Moved lean order to refactored API. 2019-04-24 18:23:25 -04:00
Pedro Pinto bb14b8ca3d Moved join, cover, iceberg to refactored API. 2019-04-24 17:43:31 -04:00
Jake Norbut 6768c5be02 trying styles 2019-04-24 16:30:17 -05:00
Pedro Pinto 80b19b616a Added refactoring of order API, moved Top order to use it. 2019-04-24 14:46:53 -04:00
Eric Harding f65f34c2fe Limit returned MBOSnapshot size to avoid memory leaking 2019-04-24 14:12:50 -04:00
Kevin Darby 20eb3ed39d matched Pedro's ICE deferred cancel / update for ice 2019-04-24 14:07:21 -04:00
Kevin Darby 772a898433 Merge branch 'SPARK-1944-attach/detach/update' of bitbucket.org:bluetradesys/spark into ice_exec3 2019-04-24 14:07:09 -04:00
Jake Norbut 98ab218b10 no rockers 2019-04-24 13:06:14 -05:00
Taha Afzal ee67f14f25 Merge branch 'SPARK-1944-attach/detach/update' of bitbucket.org:bluetradesys/spark into SPARK-1944-attach/detach/update 2019-04-24 11:50:26 -04:00
Taha Afzal fb741fbf46 LeanOrder2 is mostly working, needs more tests 2019-04-24 11:50:08 -04:00
Eric Harding 34401960f9 Fix mbo bid sort order 2019-04-24 11:08:46 -04:00
Eric Harding 34b7c99c81 Toggle mbostats off by default 2019-04-24 11:05:26 -04:00
Eric Harding 044ef0b812 merge master 2019-04-24 10:15:07 -04:00
Eric Harding 9cc4b5aa87 Update unit/system tests command line parser 2019-04-24 10:12:08 -04:00
Pedro Pinto d7fe1c43b7 Removed obsolete iceberg2 2019-04-24 08:39:41 -04:00
John Colvin c402c898be TableUpdate.ParentDependent - fix added iter 2019-04-23 22:59:16 -05:00
John Colvin e6f4c9c1ad TableUpdate.FilterWithRaw - remove temp diagnostic code added by accident 2019-04-23 22:59:16 -05:00
John Colvin b6e86c1ffd TableUpdate.ParentDependency - update the parent_to_children 'child' entry when a value changes 2019-04-23 22:59:16 -05:00
John Colvin f18914764a TableUpdate.ParentDepend - refactor TSource to T, 'o'(order) to 'v'(value) 2019-04-23 22:59:16 -05:00
John Colvin 7f600e361a SPARK-2302 (+SPARK-2300) Mini OB refresh_is_attachable/detachable no longer being called 2019-04-23 21:49:08 -05:00
John Colvin 4a2edadf6d in TableUpdate filter-pred-changed method, when old-pred == new-pred clear out table's changes before returning it 2019-04-23 21:49:08 -05:00
John Colvin a32283a8bd DictionaryHelper.empty should definitely not be mutable 2019-04-23 21:49:08 -05:00
John Colvin a46e7e62cc move (Sorted)SetMap into spark_core 2019-04-23 21:48:52 -05:00
Taha Afzal 9c465baac9 Merge branch 'SPARK-1944-attach/detach/update' of bitbucket.org:bluetradesys/spark into SPARK-1944-attach/detach/update 2019-04-23 20:02:57 -04:00
Taha Afzal d8f118cfe9 Lean adhering to the new API 2019-04-23 20:02:40 -04:00
Kevin Darby b5997d326e f# 64 bit ints, maybe 2019-04-23 18:22:44 -04:00
Kevin Darby f8626f81cd throwing this back to michael for int64 2019-04-23 18:14:14 -04:00
Kevin Darby bc208d2421 Merge branch 'ice_exec3' of bitbucket.org:bluetradesys/spark into ice_exec3 2019-04-23 17:22:26 -04:00
Kevin Darby 625ebcc762 got a fill 2019-04-23 17:21:52 -04:00
Michael Harding 8a53863218 Merge branch 'master' into spreader_test 2019-04-23 16:16:19 -04:00
Michael Harding 0a163badf0 SPARK-2289: Add MIFID fields to Spark Admin 2019-04-23 15:45:11 -04:00
Pedro Pinto 4cc61057d2 Removed bogus pause in iceberg. 2019-04-23 14:42:10 -04:00
Pedro Pinto 9fafc2d8b5 Minor refactoring 2019-04-23 14:32:51 -04:00
Pedro Pinto 0b7e3e2c17 Fixed a bug in the handling of failed attachment. 2019-04-23 14:32:34 -04:00
Kevin Darby dea95455a0 Merge branch 'ice_exec3' of bitbucket.org:bluetradesys/spark into ice_exec3 2019-04-23 13:28:45 -04:00
Kevin Darby f0f5988abf almost sending orders 2019-04-23 13:27:50 -04:00
Pedro Pinto 2e4413f44f Made sim more resiliant to daily session reset. 2019-04-23 12:43:38 -04:00
Pedro Pinto 65056c7eef Changing defaults in sim connection to try to connect forever. 2019-04-23 12:43:38 -04:00
Pedro Pinto ccfdb6b7b5 Adding buffering of cancels/updates to native order. 2019-04-23 12:43:38 -04:00
Jake Norbut d6da4e7a26 Defaulting many OB columns for Right alignment 2019-04-23 10:52:26 -05:00
Jake Norbut 2893233a03 adding some margin to Update button 2019-04-23 10:34:44 -05:00
Jake Norbut 0f3988c8e2 extend cancel ability to Disconnected orders 2019-04-23 10:13:02 -05:00
Michael Harding db5f16985c SPARK-2289: Remove IFUnset from ICEMics 2019-04-23 11:00:38 -04:00
Jake Norbut 47e272702c adding helper function for joining banding path; more use of nameof in OBColumns instead of vanilla strings 2019-04-23 09:48:09 -05:00
Michael Harding f0105867be SPARK-2289: Implement Eric's Map suggestion 2019-04-23 10:03:58 -04:00
Michael Harding 2c0b314428 SPARK-2289: Additional ICE fields 2019-04-23 10:03:12 -04:00
Eric Harding 821274f544 Merge branch 'SPARK-2179-PIQ' of bitbucket.org:bluetradesys/spark into PIQachu 2019-04-23 09:48:54 -04:00
Jake Norbut 428a51b071 updating prosepctive quantity field when the quantity has changed underneath us 2019-04-23 08:22:47 -05:00
Eric Harding ca6c0f984c mbo bugfixes 2019-04-23 09:11:30 -04:00
Jake Norbut 19a9c27d9c Merged 1944-miniob_update into SPARK-1944-attach/detach/update 2019-04-23 07:42:27 -05:00
Jake Norbut 45a4bcf8b5 fix merge 2019-04-23 07:41:49 -05:00
Jake Norbut 00c2ac4aeb changing from button to dots; moving column 2019-04-23 07:39:32 -05:00
John Colvin f03db0180b MarketViewVM - 'size' cols should use UIntMinMax filter templates (not UShort) 2019-04-22 23:36:24 -05:00
John Colvin 95755f53a1 fix up TickUpDownNullableULong in the same manner as TickUpDownInt, UInt, etc. 2019-04-22 23:31:03 -05:00
John Colvin de5b0a4264 fix up TickUpDownULong in the same manner as TickUpDownInt, UInt, etc. 2019-04-22 23:31:03 -05:00
John Colvin f1f9503b3a fix up TickUpDownNullableUShort in the same manner as TickUpDownInt, UInt, etc. 2019-04-22 23:31:03 -05:00
John Colvin c144631759 fix up TickUpDownUShort in the same manner as TickUpDownInt, UInt, etc. 2019-04-22 23:24:47 -05:00
John Colvin 9fafe6bae5 FilterTemplates.xaml - line endings 2019-04-22 23:05:22 -05:00
John Colvin 757fc0eab5 OperableHierarchicalCollection - reword some comments 2019-04-22 22:38:15 -05:00
John Colvin 227179087d OperableHierarchicalCollection - in 'collapse_row,' return after removing continuous block (no need to continue enumeration) 2019-04-22 22:37:56 -05:00
John Colvin 33140fa901 OperableHierarchicalCollection - in 'collapse_row,' only call '_sync' if refresh is deferred 2019-04-22 22:25:18 -05:00
John Colvin 0d94377f36 OrderBookRowVM - need to pass 'is_expanded' prop name arg when calling 'Set' outside of the property setter 2019-04-22 22:18:43 -05:00
John Colvin 66b92c26a1 OperableHierarchicalCollection - actually Clear rows before re-adding on reset 2019-04-22 22:17:13 -05:00
John Colvin c74941b9c1 remove obsolete OrderBookRowCollection 2019-04-22 17:53:04 -05:00
John Colvin a705235a99 OrderBookVM - replace OrderBookRowCollection with new generic OperableHierarchicalCollection 2019-04-22 17:53:04 -05:00
John Colvin 6e5ae8b9e0 OrderBookRowVM implements IHierarchicalRow 2019-04-22 17:53:04 -05:00
John Colvin df53c9810b made OperableHierarchicalCollection 2019-04-22 17:53:04 -05:00
John Colvin e84ea8b8e5 move 'RXOperableCollection' into spark_core, rename 'OperableCollection' 2019-04-22 17:53:04 -05:00
John Colvin 9e347a858c move CollectionHelper into spark_core 2019-04-22 17:53:04 -05:00
John Colvin f53b791703 SortedTree - 'Remove' returns bool 2019-04-22 17:53:03 -05:00
John Colvin efa267d5fb move I(ReadOnly)ObservableCollection into spark_core 2019-04-22 17:53:03 -05:00
John Colvin fb1e60229e OrderBookRowCollection - optimize expand/collapse all 2019-04-22 17:53:03 -05:00
John Colvin 00fa662883 SPARK-2196 OB filter 2019-04-22 17:53:03 -05:00
John Colvin 4ef8aaa689 DIYGrid - don't invoke SelectionChanged callback unless it is actually coming from the DIYGrid (i.e., not some random child control) 2019-04-22 15:56:23 -05:00
Kevin Darby 3cd74f33f1 changed trader login per Pedro 2019-04-22 16:51:28 -04:00
Eric Harding 80e337c599 sparkcmd should respect '-configserver' 2019-04-22 16:45:36 -04:00
Eric Harding 5b71918a1f Revert "Make sure every sparkcmd command respects -configserver"
This reverts commit dab95d7e91.
2019-04-22 16:41:48 -04:00
Jake Norbut 64164db22e so that john can take a look 2019-04-22 14:59:22 -05:00
Eric Harding d2a9d21700 Handle incremental MBO messages from cme 2019-04-22 15:26:50 -04:00
Kevin Darby a6ee36f4bc typo 2019-04-22 15:16:12 -04:00
Kevin Darby 9cadf635fb Merge branch 'ice_exec3' of bitbucket.org:bluetradesys/spark into ice_exec3 2019-04-22 14:42:10 -04:00
Kevin Darby 43e043b044 more ice 2019-04-22 14:41:39 -04:00
Kevin Darby 16fee6e478 Merged in stunnel_win7 (pull request #217)
RTM: Stunnel Win7

Approved-by: Eric Harding <eric.harding@bluetradesys.com>
2019-04-22 17:57:27 +00:00
John Colvin dfb2178fd8 TableUpdate.Filter extension supports null filters 2019-04-22 12:47:13 -05:00
John Colvin 2be2163b7e DeferrableActionWrapper uses flags to support multiple actions 2019-04-22 12:47:13 -05:00
John Colvin 711ec49d88 move DeferrableActionWrapper into bts.utils namespace 2019-04-22 12:47:13 -05:00
John Colvin 710eaf5ef8 move DeferrableActionWrapper into spark_core 2019-04-22 12:47:13 -05:00
John Colvin ccddf3b1cd OrderBookRowVM doesn't need to derive from DisposableViewModelBase (keep it super light) 2019-04-22 12:47:13 -05:00
John Colvin 3aefa57578 OrderBookRowVM - fix typeo that excluded prop-name argument when reassigning is_expanded 2019-04-22 12:47:13 -05:00
John Colvin ea4b330062 SPARK-2299 - Update panel modify/revert buttons stay enabled when they shouldn't 2019-04-22 12:41:32 -05:00
John Colvin da6b7d5011 lazy init for DialogButtonStyle 2019-04-22 11:57:05 -05:00
Michael Harding 6bac75d7ab SPARK-2289: Add ICE to Accounts in Spark Admin 2019-04-22 10:58:26 -04:00
Michael Harding 7ceb170c5f SPARK-2289: Add ICE User data to Spark Admin 2019-04-22 10:36:35 -04:00
John Colvin add897f4a6 fix QuantityMeasureControl visual state transition bug 2019-04-20 12:21:11 -05:00
Kevin Darby 47c7ee71b4 Merge branch 'SPARK-1944-attach/detach/update' of bitbucket.org:bluetradesys/spark into ice_exec3 2019-04-18 17:46:34 -04:00
John Colvin 5cb535e5df OrderBookView - don't hide params when 0 rows selected (was conflicting with selected tab) 2019-04-18 16:39:29 -05:00
Jake Norbut 106c9a6922 refining is_detachable to not show for terminal orders; i bet taha was using a non attach/detach server when this came up 2019-04-18 15:57:30 -05:00
Jake Norbut 1c87d414e0 mini ob - adding red and green borders around attach detach buttons 2019-04-18 15:57:30 -05:00
Pedro Pinto 62b0f1938b Moved Iceberg to new API. 2019-04-18 16:47:17 -04:00
Pedro Pinto a7e04aa7b0 Fixed cover order bug. 2019-04-18 16:47:17 -04:00
Jake Norbut aa9f81f5c9 mini ob - hide last change, show time, hide symbol 2019-04-18 14:56:55 -05:00
Eric Harding 3cf701a211 swap map for btree 2019-04-18 14:42:26 -04:00
Eric Harding 5392d05ec8 MBO perf work 2019-04-18 14:39:15 -04:00
Kevin Darby 7838bdf04f too much whitespace for even me 2019-04-18 14:16:08 -04:00
Kevin Darby 546553406b PR comments 2019-04-18 14:13:09 -04:00
Kevin Darby 02d0f6191c -added a manifest to our csproj that we'd meant to add anyway for win7 subprocess creation
-added a fallback for stunnel if we can't create a windows job object
2019-04-18 14:06:44 -04:00
John Colvin df18758643 OrderBookToolBar - fix VisualState transitions 2019-04-18 11:37:32 -05:00
John Colvin b351fa9531 made Mouse/CheckedStateDefinitions modal 2019-04-18 11:37:32 -05:00
Michael Harding 36722e27ad Remove SDK docs from the manual 2019-04-18 11:08:32 -04:00
Jake Norbut dcfbb6e62f need a new security order demuxer for the new piq observable 2019-04-18 08:58:56 -05:00
Pedro Pinto 5303d2fd89 Fixed a cover bug found by Brian. 2019-04-18 09:49:24 -04:00
Pedro Pinto 3e29427679 Beggining to move IB over to new API. 2019-04-18 09:07:30 -04:00
Pedro Pinto d240b75b95 Improved AlgoOrder API. 2019-04-18 08:59:47 -04:00
Pedro Pinto cb6621ac06 Cleaned up docs for AlgoOrder 2019-04-18 08:15:47 -04:00
John Colvin cc1d796695 OrderBook - put modify/revert buttons directly beneath the params grid (requires less mouse movement) 2019-04-17 21:47:02 -05:00
John Colvin ed6f2d1c28 OrderBookView - fix typeo in xaml element name 2019-04-17 21:42:06 -05:00
Jake Norbut ff2d150dc4 restricting orders with piqs to just ladders for now 2019-04-17 17:33:46 -05:00
Kevin Darby 4f58452771 stop using legacy spread 2019-04-17 18:14:00 -04:00
Pedro Pinto 54d23ac2d3 By default attached orders are subscribed to. 2019-04-17 17:48:07 -04:00
Pedro Pinto 2348e1bf31 Refactor AlgoOrder, completed Cover order. 2019-04-17 17:41:53 -04:00
Kevin Darby d5bf15cc36 ice secondary login 2019-04-17 17:12:25 -04:00
John Colvin ad09a6ad4b OrderBook wasn't restoring 'show_right_panel' when loading workspace 2019-04-17 15:24:58 -05:00
John Colvin d8a47267f6 OrderBookRowCollection - remove unneccesary using, unify line endings 2019-04-17 13:10:54 -05:00
Jake Norbut 6692797c3f changing from .Publish to .Replay b/c apparently Publish doesn't send old values i.e. previously working orders won't show up, but new ones will 2019-04-17 13:03:43 -05:00
John Colvin c882fb1018 SPARK-2292 OrderBook - make right panel toolbar buttons look like tabs in tab mode 2019-04-17 12:51:47 -05:00
John Colvin 5777685bf3 made RemainingDimensionConverter (will be used in OrderBookToolBar) 2019-04-17 12:51:46 -05:00
John Colvin a1053cc41e made new ModalStateDefinition class (will be used in OrderBookToolBar) 2019-04-17 12:51:46 -05:00
John Colvin a934021a5a CheckedStateDefinition - reset State when CheckableSource changes 2019-04-17 12:39:08 -05:00
John Colvin 24f5a54756 RadioButtonGroupManager - syntax change (don't needlessly wrap Action) 2019-04-17 11:20:59 -05:00
John Colvin 43af64b298 OrderBookToolBar - UseLayoutRounding=True 2019-04-17 11:16:18 -05:00
Jake Norbut b059aedbce adding PlacementInQueue key to toggles so that we have a config option to enable/disable once deployed; defaults to enabled 2019-04-17 08:53:26 -05:00
John Colvin 314bbd4f06 MouseStateDefinition - refresh visual state when MouseSource changes 2019-04-17 00:02:35 -05:00
John Colvin e8adb8fc68 StateManger - remove 'AlwaysTransitionOnLoaded' hack, replace with real fix 2019-04-16 19:56:19 -05:00
John Colvin 49de685cd4 OrderBookVM - fix stackmode 'visible_components' bit arithmetic 2019-04-16 19:28:42 -05:00
Kevin Darby 9736541385 logon rejected; we're going places 2019-04-16 15:59:45 -04:00
Eric Harding 73c9be3bec SPARK-2197 bugfix 2019-04-16 15:47:11 -04:00
John Colvin d4ee0db19b OrderBookView - in param grid ContextMenu, use grid.SelectedItem to get the target row 2019-04-16 14:24:49 -05:00
John Colvin 2171a31e5a OrderBookVM - fix 'revert when selection becomes inactive' behavior 2019-04-16 14:23:09 -05:00
Jake Norbut bc35e773ce piq_column settings should never return null, which allevites doing the same in sanitize_ladder_settings and another time when dealing with WindowSpecifics 2019-04-16 14:19:43 -05:00
Jake Norbut 4c8d0a4217 add null check on r.newval 2019-04-16 14:13:06 -05:00
John Colvin b35c52ae27 QuantityMeasureControl - visual state gets lost after the control is unloaded/(re)loaded 2019-04-16 13:15:17 -05:00
John Colvin 055e27f9aa SPARK-2288 improve ladder startup performance 2019-04-16 13:15:17 -05:00
Kevin Darby 5591c8316d about to send a login message 2019-04-16 13:18:39 -04:00
Michael Harding 6ad12e922c Submit and confirm working spreader order 2019-04-16 13:03:36 -04:00
Jake Norbut 05abbc4a50 don't show uint.Max piqs during server restart 2019-04-16 12:03:33 -05:00
Eric Harding 95500187f0 Indicate our orders in diagnostic 2019-04-16 12:44:23 -04:00
Jake Norbut 8716099ac6 Removing OrderSecPiq struct since OrderSecurity does everything that did; we still may want to rename it down the line 2019-04-16 11:15:19 -05:00
Eric Harding d7850d6b70 MBO diagnostic api 2019-04-16 12:14:27 -04:00
Eric Harding 905c1cab2c SPARK-2206 tests 2019-04-16 12:14:27 -04:00
Jake Norbut 6181548902 piq background color now matches orders background color 2019-04-16 10:56:31 -05:00
Jake Norbut c32eada3ac the big enchilada - adding PIQ column to LadderGridHost 2019-04-16 10:49:03 -05:00
Jake Norbut 42feedfd36 adding piq column to settings 2019-04-16 10:33:48 -05:00
Jake Norbut d76c2a30ce price_vs_piq property on LadderVM; appropriate changes for LadderOrderVM constructor 2019-04-16 10:32:54 -05:00
Jake Norbut c312a880a7 adding MBOService for piq, left joining piq on orders 2019-04-16 10:29:29 -05:00
Jake Norbut b2ed88fb4a adding binding expression for new PIQColumnWidth property 2019-04-16 10:23:57 -05:00
Pedro Pinto 489af5a703 Merge branch 'SPARK-1944-attach/detach/update' of bitbucket.org:bluetradesys/spark into SPARK-1944-attach/detach/update 2019-04-16 11:23:49 -04:00
Jake Norbut 567edafe18 including the piq here on this new 2019-04-16 10:23:29 -05:00
Pedro Pinto 1f03f4b839 Moved JoinOrder to new API. 2019-04-16 11:22:58 -04:00
Jake Norbut 9a39d84739 tuple to OrderSecPiq in here too 2019-04-16 10:20:42 -05:00
Jake Norbut d9b4e21c61 changing from tuple to simple OrderSecPiq for sanity 2019-04-16 10:20:09 -05:00
Jake Norbut fa287b14ef OrderSecurity now also has a piq; maybe we change the class name? 2019-04-16 10:16:40 -05:00
Jake Norbut 096bf3338c adding PIQ 2019-04-16 10:15:06 -05:00
Jake Norbut a646f28831 added min_piq property; now stores (OrderRecordImmutable, uint?) instead of just OrderRecordImmutable 2019-04-16 10:14:05 -05:00
Jake Norbut 391397692c adding PIQ case option 2019-04-16 10:08:28 -05:00
Jake Norbut 8130d5a0f8 adding render_piq method 2019-04-16 10:06:32 -05:00
John Colvin 464dada0c2 OrderBook - param grid exits edit mode after committing modifications via the context menu 2019-04-15 23:44:12 -05:00
John Colvin fb73752d5c AlgoEditorGridView - change price control 'Value' binding UpdateSourceTrigger to 'PropertyChanged' 2019-04-15 23:19:38 -05:00
John Colvin 766c9d10c4 OrderBook - fix typeo in modify button tooltip 2019-04-15 23:02:16 -05:00
John Colvin bd54a9fd01 OrderBookView - increase margin between modify/revert buttons 2019-04-15 23:01:39 -05:00
John Colvin 9ff4673935 OrderBook - contextmenu for params grid (Revert Param, Revert All, Commit All) 2019-04-15 20:08:02 -05:00
John Colvin 282771f9f5 OrderBook - revert edited values when user selects an inactive order 2019-04-15 20:04:54 -05:00
John Colvin d60986c5f0 AlgoEditorGridView - ctrl+up/down arrow key increments/decrements value in TickUpDown cells 2019-04-15 20:04:54 -05:00
Pedro Pinto 12fc59af41 Added extra assert. 2019-04-15 18:25:12 -04:00
Pedro Pinto 19fca8304d Simplified TopOrder, deleted TopOrder2. 2019-04-15 18:08:37 -04:00
Pedro Pinto 81a0e1376c Refactored. 2019-04-15 13:43:40 -04:00
Pedro Pinto 6e5451e314 Moved top order to use new AlgoOrder API. 2019-04-15 13:33:21 -04:00
Pedro Pinto a58d7b3a97 Added some documentation to AlgoOrder 2019-04-15 13:33:21 -04:00
Pedro Pinto b7b0b46709 Added a new AlgoBase class that should serve as the new Order API 2019-04-15 13:33:21 -04:00
Pedro Pinto ee4f74aad5 Cleaned up algos a bit. 2019-04-15 13:33:21 -04:00
Pedro Pinto ab8d8b9717 Made NativeOrder cancel idempotent.
This makes AlgoBase simpler.
2019-04-15 13:33:21 -04:00
Pedro Pinto 669790f12f Made attachment to disconnected orders illegal.
This seems sensible and it simpliefies AlgoOrder
2019-04-15 13:33:21 -04:00
Kevin Darby a44d3a2c26 Merge branch 'master' of bitbucket.org:bluetradesys/spark into ice_exec3 2019-04-15 13:22:42 -04:00
Kevin Darby dceb300324 Merge branch 'SPARK-2241-add-support-for-multi-char-me' of bitbucket.org:bluetradesys/spark into ice_exec3 2019-04-15 13:20:56 -04:00
John Colvin c5bd45a429 AlgoEditorGridView - focus TextBox in when QuantityMeasure cells enter edit mode 2019-04-15 11:32:58 -05:00
John Colvin 8ef977e468 OrderTypeVMBase - no need to raise definition_changed when 'editing_permissions' changes 2019-04-15 11:06:07 -05:00
Jake Norbut d89f93c323 Adding MBOService as an export in gui 2019-04-15 11:05:40 -05:00
John Colvin 8d38f3aae5 OrderTypeVMBase - defer raising definition_changed during 'load_from()' 2019-04-14 23:00:24 -05:00
John Colvin 83b7c8ae8d AlgoEditorGridView - shorten 'cross the market' tooltips 2019-04-14 22:30:19 -05:00
John Colvin b71c5fb27d SPARK-2275 / SPARK-2284 remove erroneous ToolTip binding AlgoTreeViewItemContainerStyleBase 2019-04-14 19:15:24 -05:00
John Colvin c536300020 SPARk-2275 / SPARK-2283 remove animation binding in OrderBook's security column view_factory 2019-04-14 19:07:10 -05:00
John Colvin 37a054800b SPARK-2275 / SPARK-2282 don't apply DialogSkirtButtonStyle to Save/Revert buttons in AlgoStudioView (dsb style assumes datacontext is DialogSkirtItem) 2019-04-14 19:02:17 -05:00
John Colvin 8ceb3a4c77 SPARK-2275 / SPARK-2281 use CastConverter on MouseSource/CheckableSource bindings 2019-04-14 18:56:49 -05:00
John Colvin 91146fdfb9 made simple CastConverter class (IValueConverter) 2019-04-14 18:51:39 -05:00
John Colvin 8f5ca8d783 SPARK-2275 / SPARK-2280 don't apply DialogSkirtButtonStyle to Save/Revert buttons in AlgoStudioView (dsb style assumes datacontext is DialogSkirtItem) 2019-04-14 18:51:38 -05:00
John Colvin 2364c1123c SPARK-2275 / SPARK-2279 remove bad Background binding in DIYGrid's GridViewColumnHeader ControlTemplate 2019-04-14 18:12:55 -05:00
John Colvin 3b27f560fb SPARK-2275 / SPARK-2278 remove erroneous Horizontal/VerticalContentAlignment bindings in 'AlgoTreeViewItemContainerStyleBase' 2019-04-14 18:12:42 -05:00
John Colvin c741093ab9 SPARK-2275 / SPARK-2277 remove DIYGrid hidden edit-control (a vestige from AW2, unused in Spark) 2019-04-14 17:48:54 -05:00
John Colvin 405685ece3 SPARK-2275 / SPARK-2276 remove erroneous 'start_command' binding 2019-04-14 17:34:04 -05:00
John Colvin 6de078473b SPARK-2208 / SPARK-2274 non-uniform price is displayed as '0,' should be '-' 2019-04-14 15:37:41 -05:00
John Colvin f9a131a480 CommonValueMonitor - actually use 'default_value' param 2019-04-14 15:35:17 -05:00
John Colvin 16ba5c42ab OrderBookToolBar - change 'IsTabStop=False' to 'IsFocusable=False' in RightPanel.MenuItem style (menu-items were stealing focus on hover) 2019-04-14 15:13:52 -05:00
John Colvin 0e892817bf OrderBookToolBar - remove unselect-when-mouse-leaves trigger in ToolBarOverflowButtonStyle 2019-04-14 15:11:12 -05:00
John Colvin 0d01f7f365 SPARK-2269 UI Crash (null ref in EnumDescriptionConverter.Convert) 2019-04-14 15:00:41 -05:00
John Colvin f67669a830 Ladder - clicking a favorite button that is already selected pops the selection back to the last algo that was selected via the dropdown 2019-04-14 14:56:11 -05:00
John Colvin 4f5ff80199 made 'SetStack' class and corresponding unit tests 2019-04-14 14:55:01 -05:00
John Colvin c84b3c576b SortedList - made 'RemoveAt' method 2019-04-14 14:39:32 -05:00
John Colvin f4490623b3 rename GenericCollectionExtensions.cs -> EnumerableExtensions.cs 2019-04-14 11:44:18 -05:00
John Colvin 2b00c00459 move ObservableCollectionExtensions into its own file 2019-04-14 11:43:43 -05:00
John Colvin 7e5ea37782 remove unused HashSetExtensions class 2019-04-14 11:37:59 -05:00
John Colvin 9ad140d774 consolidate 2 DictionaryExtensions classes into 1 2019-04-14 11:21:45 -05:00
John Colvin 67a457cf98 (4/4) consolidate 2 CollectionExtensions classes into 1 - remove TryGetItem extension 2019-04-14 11:16:48 -05:00
John Colvin e3305bc3f5 (3/4) consolidate 2 CollectionExtensions classes into 1 - move within_range methods/create ArrayExtensions class 2019-04-14 11:10:20 -05:00
John Colvin 171fcab814 (2/4) consolidate 2 CollectionExtensions classes into 1 - move SetItems method 2019-04-14 10:56:41 -05:00
John Colvin 0723f0ae1e (1/4) consolidate 2 CollectionExtensions classes into 1 - move AddRange methods 2019-04-14 10:55:44 -05:00
John Colvin c1d0c159af consolidate 2 ListExtensions classes into 1 2019-04-14 10:35:28 -05:00
John Colvin 65ec3f6d0a move GenericCollectionExtensions.cs into spark_core 2019-04-14 10:30:14 -05:00
John Colvin 009e709384 OrderBook - move RightPanel.MenuItem style to OrderBookToolBar.xaml, replace ControlTemplate triggers with VisualStates 2019-04-13 18:29:44 -05:00
John Colvin c124e3dfd2 made new StateDefinitions: MouseStateDefinition, CheckedStateDefinition 2019-04-13 18:28:25 -05:00
John Colvin c6f98630dc RadioButtonGroupManager - factor out ToggleButton/MenuItem subscribe-checked impl 2019-04-13 18:26:27 -05:00
John Colvin d270411578 SPARK-2208 / SPARK-2270 params grid should stretch to the width of the panel 2019-04-13 14:50:25 -05:00
John Colvin eea68f438b DataGridEditHelper - ignore usual togglebutton behavior when QuantityMeasureControl cell enters edit mode 2019-04-13 14:50:25 -05:00
John Colvin 575b2c0bb6 QuantityMeasureControl - made new ratio-checkbox ControlTemplate 2019-04-13 14:50:25 -05:00
John Colvin e024edb6f7 QuantityMeasureCaseDisplayTextConverter - made public static convert method 2019-04-13 14:50:25 -05:00
John Colvin ef4bcfb1b8 TickUpDown - set TemplateBindings for (Min/Max)Width props 2019-04-13 14:50:24 -05:00
John Colvin 94e5b8410c AlgoEditorGridView - bbo price hyperlink cmds payup 'n' ticks if number key is pressed when clicked 2019-04-13 14:50:24 -05:00
John Colvin 9edb0f2b9c TickUtils - tickup/down support negative input (just ticks in opposite direction) 2019-04-13 14:43:05 -05:00
John Colvin 440f0f1e85 DIYGridRowsPresenter - set 'IsTextSearchEnabled' to false (in default style) 2019-04-13 11:35:57 -05:00
John Colvin 707e6013cc SPARK-2208 / SPARK-2271 params grid - make 'Enter' key behave like 'Tab' 2019-04-12 20:05:12 -05:00
John Colvin 80ee8d1afa SPARK-2208 / SPARK-2272 params grid - get rid of 'Pen' cursor 2019-04-12 19:55:38 -05:00
John Colvin 9923cd4b9b SPARK-2208 / SPARK-2273 keyboard shortcuts for modify/revert 2019-04-12 19:46:02 -05:00
John Colvin 3a4ec52766 replaced SparkWindowView.HeaderConverter with CommandHelper.DescriptionConverter (can be used w/ non-spark cmds as well) 2019-04-12 16:56:22 -05:00
John Colvin 00548ea6dd AlgoEditorGridView - best bid/ask hyperlink tooltips don't say 'click to assign' when disabled 2019-04-12 16:11:10 -05:00
John Colvin 6e654049bd AlgoParamRowVM - 'set_value_cmd' can only execute when param.permissions == 'ReadWrite' 2019-04-12 16:11:10 -05:00
John Colvin 71c94b8c8d OrderBookVM - update algo param permissions when 'selected-orders-all-active' changes 2019-04-12 16:11:10 -05:00
John Colvin cd9875f67a add 'permissions_changed' event to IAlgoParamVM 2019-04-12 16:02:05 -05:00
John Colvin 4a118c76ac ViewModelBase - overload 'Set' method to out previous value 2019-04-12 15:59:31 -05:00
John Colvin 8d263cdd37 remove redundant 'SubscribeHookLatest' method, redirect callers to 'SubscribeEach' 2019-04-12 13:55:02 -05:00
John Colvin f56d1a570a AlgoEditorGridView - 'Click to edit' tooltip 2019-04-12 13:55:02 -05:00
John Colvin 63dd6ea835 OrderBook/AlgoEditorGridView - display bbo in price/size param rows 2019-04-12 13:55:01 -05:00
John Colvin 6c19f959fa initialize AlgoParamVM.has_value 2019-04-12 13:45:26 -05:00
John Colvin c4a180f936 AlgoParamRowVM implements IEditableObject 2019-04-12 13:45:26 -05:00
John Colvin 2c272e936f SPARK-2208 / SPARK-2266 remove price/size controls, add them as the first 2 param rows instead 2019-04-12 13:45:26 -05:00
John Colvin 55c859e928 OrderBook right panel toolbar should not have any tab stops 2019-04-12 13:45:26 -05:00
John Colvin 98411ad036 template selector infrastructure 2019-04-12 13:45:26 -05:00
John Colvin d7719cf79c AlgoEditorGridView - minor tweaks to streamline tab navigation editing 2019-04-12 13:45:26 -05:00
John Colvin e7c606495b AlgoEditorGridView - define price cell templates 2019-04-12 13:45:25 -05:00
John Colvin 73cc7ceec3 AlgoParamTemplateSelector - infrastructure for explicit/keyed templates (price cell needs this) 2019-04-12 13:45:25 -05:00
John Colvin 475d5e3ff1 DataGridEditHelper - refactor to use static 'OneOf.Match' (one-liner) 2019-04-12 13:45:25 -05:00
John Colvin 33f399893e OneOf - made static Match() method 2019-04-12 13:45:25 -05:00
John Colvin 015be785e1 move AlgoParamVM into its own file 2019-04-12 13:45:25 -05:00
John Colvin 446a0175c6 ObservableAppendCollection implements IReadOnlyObservableCollection 2019-04-12 13:45:25 -05:00
John Colvin a5a438976f OrderBookView - remove unused resource in xaml 2019-04-12 13:45:25 -05:00
Taha Afzal 26f0593702 manual test for lean 2019-04-12 12:24:53 -04:00
Eric Harding a376fe9e22 Fix pool_stats crash for the pool paupers 2019-04-12 09:56:28 -04:00
Taha Afzal 85c73783f3 Merge branch 'SPARK-1944-attach/detach/update' of bitbucket.org:bluetradesys/spark into SPARK-1944-attach/detach/update 2019-04-11 17:24:25 -04:00
Taha Afzal 79ddb8ca16 new basic lean test 2019-04-11 17:24:20 -04:00
Michael Harding 3171ae0afb Create a Synthetic Security 2019-04-11 16:06:59 -04:00
Jake Norbut 6f97ddd57d Only create the Adorner when the SelectionMode is not Single 2019-04-11 14:06:24 -05:00
Jake Norbut ce4f850cc4 DIYGrid - revert to previous select mode when on Multi SelectionMode grids
There are 2 reasons for this reversion.

John mentioned that when selecting many rows in MV, the scolling of selected rows progressively
worsened as more rows were selected.

Next, if you were selecting many rows in the grid by way of clicking and
then dragging your mouse over the bottom area of the window outside of
the actual grid, then releasing the mouse button while your mouse was
still outside of the grid, we would not select the pages of rows,
instead only the last one would be selected. This is different from how
the Adorner selection works now.
2019-04-11 14:06:24 -05:00
John Colvin dfcef93882 SPARK-2208 / SPARK-2265 when editing multiple orders, ignore params with non-uniform values (use each order's current value) 2019-04-11 13:10:18 -05:00
John Colvin 667234b05b convert some algo params/props to nullable<T>s (null indicates 'non-uniform-value' when mutliple orders are selected) 2019-04-11 13:10:18 -05:00
John Colvin c2c460875d check correct algo type and that child param exists for Dynamic case OrderDataHelper.get_child_algo_data 2019-04-11 12:53:19 -05:00
John Colvin 7df7d05628 move OrderDataHelper.cs and OrderUtils.cs into 'Orders' dir 2019-04-11 12:50:16 -05:00
Jake Norbut 61a4ade2f4 Merged in SPARK-2207 (pull request #213)
SPARK-2207 mini ob ui review

Approved-by: John Colvin <john.colvin@bluetradesys.com>
2019-04-11 16:54:40 +00:00
Jake Norbut 594c2e47b0 PR suggestion - Count() be gone 2019-04-11 11:43:57 -05:00
Jake Norbut b6df4b64b8 test should actually return the right nodes 2019-04-11 11:17:55 -05:00
Jake Norbut 7190d949f5 PR suggestion - only get children when replace actually does something; add test 2019-04-11 11:14:11 -05:00
Jake Norbut 51db2e75f7 PR suggestion - One RaisePropertyChanged call FTW! 2019-04-11 10:10:12 -05:00
Eric Harding 7381088d6d Remove unnecessary error log 2019-04-11 11:07:49 -04:00
Jake Norbut 992d56303c PR suggestion - RaisePropertyChanged when non-terminal status changes, not indiscriminantly; great find john 2019-04-11 10:04:29 -05:00
Taha Afzal 84f249439c Merge branch 'SPARK-1944-attach/detach/update' of bitbucket.org:bluetradesys/spark into SPARK-1944-attach/detach/update 2019-04-11 10:56:51 -04:00
Taha Afzal 7d09a906c6 Updating the tests 2019-04-11 10:56:43 -04:00
Jake Norbut 80cb260082 PR suggestion - ort -> osam; just updating variable three-letter-acronym to match the actual type 2019-04-11 09:50:59 -05:00
Jake Norbut fc47d16800 PR suggestion - Capitalizing 'K' in 'OK' 2019-04-11 09:31:20 -05:00
Eric Harding 5f9a421490 Additional logging for QueryServer::get_names error 2019-04-11 10:28:21 -04:00
Jake Norbut ae237d36b6 Merge branch 'SPARK-1944-attach/detach/update' of bitbucket.org:bluetradesys/spark into SPARK-2207 2019-04-11 07:27:15 -05:00
John Colvin 4182ab1093 OrderBook - fix order-params 'IsReadOnly' binding 2019-04-10 23:34:47 -05:00
John Colvin 9ba7b77a7a SPARK-2250 OrderBook - put fills/ladder/params controls in separate tabs 2019-04-10 23:34:47 -05:00
John Colvin c8adf1c972 RadioButtonGroupManager - support MenuItems as honorary 'checkable' toggles (they don't actually derive from ToggleButton) 2019-04-10 19:08:25 -05:00
John Colvin 05275c5d0d OrderBookSettings - put 'right-panel' settings in their own class 2019-04-10 19:08:25 -05:00
John Colvin 3c5e7bfef9 move OrderBook settings classes into separate files 2019-04-10 19:08:25 -05:00
John Colvin 5724d13b7d OrderBook - in 'attach' popup, don't animate 'is_dirty' since the user is creating a new order 2019-04-10 19:08:25 -05:00
Taha Afzal 0491b4b153 Top order test 2019-04-10 18:40:57 -04:00
Taha Afzal dc1d045716 join basic test 2019-04-10 17:17:24 -04:00
Jake Norbut 484fb7b93f SPARK-2261 - canceled orders from detachment no longer display as if they can be canceled 2019-04-10 16:13:44 -05:00
Jake Norbut e7286856c9 SPARK-2260 - show edit mode for only non terminal orders 2019-04-10 16:06:04 -05:00
Jake Norbut 33804a8cb2 SPARK-2255 - middle click will now close an open mini ob 2019-04-10 15:16:26 -05:00
Jake Norbut 9f6a894ddf Merge branch 'SPARK-1944-attach/detach/update' of bitbucket.org:bluetradesys/spark into SPARK-2207 2019-04-10 14:57:33 -05:00
Jake Norbut 37160cc477 fix root node not updating after descendant detach 2019-04-10 14:53:50 -05:00
Jake Norbut be7553956f detach should detach on this rows parent, not the root of the tree 2019-04-10 14:21:02 -05:00
Jake Norbut 23a1eb323f update is_attachable definition so that if an order is in a terminal state, then it is not attachable 2019-04-10 14:19:43 -05:00
Eric Harding f7fd81f3af Improve Servicetail 2019-04-10 14:47:50 -04:00
Jake Norbut 3d7f469708 popup should not stay open, leftover from debugging 2019-04-10 12:19:25 -05:00
Jake Norbut 0bf9939d17 SPARK-2259 - changing single Send Attached orders button to Ok and Cancel, and using the same DialogSkirt. Thx John for the help on this one, several nuances here in getting things just right 2019-04-10 12:17:19 -05:00
Eric Harding f6c0f393bd SPARK-2244 Suppress empty updates 2019-04-10 11:04:28 -04:00
Eric Harding adec1bdfd0 SPARK-678 Dont' crash on null array 2019-04-10 10:57:44 -04:00
Eric Harding a3de83dd04 SPARK-2244 Update position on timer tick 2019-04-10 10:24:33 -04:00
Eric Harding 5ba7cd561c SPARK-2244 remove parameterless ActiveOrder constructor 2019-04-10 10:16:18 -04:00
Eric Harding 5ff9f13e7e Update cmakedeps 2019-04-10 10:11:17 -04:00
Taha Afzal 0da056f282 Merge branch 'SPARK-1944-attach/detach/update' of bitbucket.org:bluetradesys/spark into SPARK-1944-attach/detach/update 2019-04-10 10:02:13 -04:00
Taha Afzal 129da00daa Cover test 2019-04-10 10:02:03 -04:00
John Colvin 962f41b5d6 AlgoEditorGridView - for param cell 'write' templates, UpdateSourceTrigger=PropertyChanged 2019-04-09 17:16:10 -05:00
John Colvin cdc0fee934 QuantityMeasureControl - internal bindings UpdateSourceTrigger=PropertyChanged 2019-04-09 17:16:10 -05:00
John Colvin 589227a97f made TickUpDownUInt adopt the textbox behavior/implementation logic of TickUpDownDouble 2019-04-09 17:16:10 -05:00
John Colvin bde9f6e565 made TickUpDownNullableUInt adopt the textbox behavior/implementation logic of TickUpDownDouble 2019-04-09 17:16:10 -05:00
John Colvin 7b6bab1767 made TickUpDownInt adopt the textbox behavior/implementation logic of TickUpDownDouble 2019-04-09 17:16:09 -05:00
John Colvin 729cb5cddc made TickUpDownNullableInt adopt the textbox behavior/implementation logic of TickUpDownDouble 2019-04-09 17:16:09 -05:00
John Colvin 220a4e6424 added TextUtils.RegexFilters.'SignedInteger' regex 2019-04-09 17:16:09 -05:00
John Colvin 37356b2b59 rename TextUtils RegexFilter.'Integer' -> 'UnsignedInteger' (it's always prevented negative numbers) 2019-04-09 17:16:09 -05:00
John Colvin 42ce4f1bf8 OrderBook - modify/revert buttons are not enabled until user changes a param 2019-04-09 17:16:01 -05:00
John Colvin 455515f658 added 'is_dirty_changed' event to IAlgoParamVM 2019-04-09 16:55:21 -05:00
John Colvin ad61783e15 AlgoEditorGridView - replace 'AlgoVM' dp with three props: AlgoRoots, SelectedAlgoRoot, and ParamRows (the rows needed to move to the vm) 2019-04-09 16:55:10 -05:00
Jake Norbut c8d958506c SPARK-2257 - swap edit and checkbox locations in edit mode for better alignment than what we have now 2019-04-09 15:15:41 -05:00
Jake Norbut c528685283 SPARK-2256 - ob to get a new OPP via create_common 2019-04-09 14:30:44 -05:00
Jake Norbut 4c6522d33d SPARK-2256 - mini ob to get a new OPP via create_common 2019-04-09 14:30:36 -05:00
Jake Norbut eb0930b140 SPARK-2256 - adding a create_common method so changes between OB and Mini OB are kept in sync 2019-04-09 14:30:23 -05:00
Eric Harding f4b65b21bb merge master 2019-04-09 15:27:15 -04:00
Eric Harding c1789bb4a1 SPARK-2244 Helps to enable the service 2019-04-09 15:14:35 -04:00
Eric Harding 0cf4b5c2c8 SPARK-2224 3/3 basic piq stream (unblocks jake) 2019-04-09 15:07:10 -04:00
John Colvin 31105a1acb add default constructor to CollectionViewSource 2019-04-09 14:07:09 -05:00
Eric Harding a101a267ed More consistent to call old previous for Change 2019-04-09 14:58:15 -04:00
Jake Norbut f2421133cb When DIYGrid is in Single SelectionMode, dragging the mouse should not crash it. 2019-04-09 13:57:06 -05:00
Jake Norbut 3fa291fa67 SPARK-2254 - change mini ob to Single SelectionMode 2019-04-09 13:56:08 -05:00
Jake Norbut be3bdc44bc SPARK-2253 - order attachability now excludes terminal orders that don't have parents 2019-04-09 13:35:48 -05:00
Pedro Pinto d7faa92027 Updated cert secure logon file. 2019-04-09 14:11:37 -04:00
Pedro Pinto ddb926d9fa Added top, cover, lean to list of orders that can attach 2019-04-09 13:23:06 -04:00
Taha Afzal 7e4f70d046 removing the hard coded tick size 2019-04-09 12:29:08 -04:00
Jake Norbut bb9b934ef4 Revert "tweaking row_vm attach/detach commands to be bulk-operation aware"
This reverts commit a34cd44967.
2019-04-09 11:28:20 -05:00
Jake Norbut a34cd44967 tweaking row_vm attach/detach commands to be bulk-operation aware 2019-04-09 11:15:07 -05:00
Taha Afzal 044d7725dc simplified reporting 2019-04-09 12:12:15 -04:00
Jake Norbut 8f63db7d19 setting order_param property to true so that user can select algo 2019-04-09 10:53:53 -05:00
Jake Norbut f0cd761559 Merged SPARK-2251 into SPARK-2207 2019-04-09 10:50:24 -05:00
Jake Norbut 22f8287359 assinging Attach button CommandProperty to new row_vm.attach_command 2019-04-09 10:48:29 -05:00
Jake Norbut 6dc979d35f adding some comments regarding the attach button DataContext binding 2019-04-09 10:48:00 -05:00
Jake Norbut e62b936fc5 adding an attach_command to the row_vm for mini ob binding 2019-04-09 10:47:12 -05:00
John Colvin 6c7867917d AlgoEditorGridView - minor style tweaks 2019-04-09 09:41:19 -05:00
Eric Harding d76b098c51 SPARK-2179 streaming piq 2/3 2019-04-09 10:00:26 -04:00
Eric Harding 06aa540110 SPARK-2248 Update api subscribe clients for this api change 2019-04-09 09:59:05 -04:00
Eric Harding 9fd7db55ca SPARK-2248 Update.h should have add/remove/change instead of just add/remove 2019-04-09 09:59:00 -04:00
Pedro Pinto 9d7093ff9d Merge branch 'SPARK-1944-attach/detach/update' of bitbucket.org:bluetradesys/spark into SPARK-1944-attach/detach/update 2019-04-09 09:32:26 -04:00
John Colvin 625c1cd5c8 OrderBook - in right panel, visible components must occupy the topmost rows (allows GridSplitters to be dragged freely) 2019-04-08 18:38:59 -05:00
Taha Afzal 250fd8f570 comments and variable name change 2019-04-08 18:50:01 -04:00
Jake Norbut 70ff4fa09d Merged in SPARK-2245 (pull request #210)
DIYGrid rows are selected on mouse move
2019-04-08 22:02:31 +00:00
Jake Norbut 79dbf11107 Merged SPARK-2247 into SPARK-2207 2019-04-08 16:59:24 -05:00
Jake Norbut 2e21b623a4 row_selectin_changed, sometimes event args are not OrderBookRowVM, so change Cast to OfType 2019-04-08 16:58:02 -05:00
Jake Norbut 64b5102f7e Merged SPARK-2246 into SPARK-2207 2019-04-08 16:24:02 -05:00
Jake Norbut f20d9b6ca9 remove vm level detach command; refactor detach orders method to allow operation over something other than selected_rows 2019-04-08 16:22:34 -05:00
Jake Norbut 51d02e215a add detach_command to row_vm so that it does not require a grid selection 2019-04-08 16:21:06 -05:00
Jake Norbut 8d6b7d3b2f MiniOB detach is now hooked to detach on row_vm 2019-04-08 16:20:12 -05:00
Pedro Pinto 84b9ca3096 Added jetfix suppport for multi char message types. 2019-04-08 17:07:40 -04:00
Taha Afzal c9e61c588e deleted all def cons 2019-04-08 15:46:14 -04:00
Taha Afzal 87ad211a82 deleting == operator on the order 2019-04-08 15:22:07 -04:00
Taha Afzal 377c1c5890 Moved status calls into SpreaderChildOrderState, and made QHOOrderManager call them 2019-04-08 15:00:22 -04:00
Pedro Pinto 17e9f1ea96 Ran clang-format. 2019-04-08 13:43:20 -04:00
Taha Afzal a3ac5c2519 Added more asserts, and introduced pruning 2019-04-08 13:22:40 -04:00
Jake Norbut 79646bb941 OB rows are selected as the mouse moves intsead of on mouse up; adorner region is no longer drawn 2019-04-08 11:35:27 -05:00
Jake Norbut 6804d4f605 Merge branch 'SPARK-1944-attach/detach/update' of bitbucket.org:bluetradesys/spark into SPARK-2207 2019-04-08 09:53:54 -05:00
Pedro Pinto e7bfd07c0d Merged with master 2019-04-08 10:45:00 -04:00
Pedro Pinto 5b118d8fa0 Fixed build. 2019-04-08 09:56:46 -04:00
Pedro Pinto b570762054 Updated release notes. 2019-04-08 09:56:39 -04:00
Eric Harding b664c42cae SPARK-2179 streaming piq 1/2 2019-04-08 09:52:45 -04:00
Pedro Pinto a25c17306f Merge remote-tracking branch 'origin/stunnel' 2019-04-08 09:27:00 -04:00
Pedro Pinto b0c52f542a Updated release notes. 2019-04-08 09:23:21 -04:00
Pedro Pinto dabeb63eac Merge remote-tracking branch 'origin/SPARK-2179-spark-login' 2019-04-08 09:22:39 -04:00
Pedro Pinto f0d3cabd14 Updated release notes. 2019-04-08 09:19:50 -04:00
Pedro Pinto 418a1078c2 Updated release notes. 2019-04-08 09:17:20 -04:00
John Colvin a7ae1a89ac OrderBook - hook up mini fills grid sorting/filter settings 2019-04-07 21:02:40 -05:00
John Colvin 90499bd9fa OrderBookVM - remove unused '_state' field 2019-04-07 18:47:04 -05:00
John Colvin 8e73069a2e OrderBookView - mini fills grid DataContext needs to be fills vm container, else sorting doesn't work 2019-04-07 18:34:48 -05:00
John Colvin b3fe85a95a ObservableFilterCollection - fix 'get_insertion_index()' 2019-04-07 18:30:42 -05:00
John Colvin 9862eb88bb FillsVMContainer - columns wrapper and internal fillsvm columns reflect each other's changes (full duplex) 2019-04-07 18:29:43 -05:00
John Colvin 5497f74534 OrderParamsPanel - price and size entry control arrow key navigation is Ctrl+arrow (plain arrow ticks up/down) 2019-04-07 15:43:03 -05:00
John Colvin c8da0fb6c7 SPARK-2208 / SPARK-2239 add a 'Revert' button to discard pending edits 2019-04-07 15:17:39 -05:00
John Colvin f6aa45168f AlgoEditorGridView - param cell 'Pen' cursor 2019-04-07 13:04:34 -05:00
John Colvin b4c846a170 SPARK-2185 Algo update modified parameters 2019-04-07 12:53:06 -05:00
John Colvin 840bb983af AlgoEditorGridView - forgot to define 'NullableIntTemplate' in xaml 2019-04-07 12:52:20 -05:00
John Colvin d6888aa2e9 TriggerOrderVM - made 'is_timout_checked' and 'is_priceout_checked' nullable bools 2019-04-07 11:40:09 -05:00
John Colvin 4652c3006f AlgoEditorGridView - made nullable bool param cell template 2019-04-07 11:39:31 -05:00
John Colvin 0ef0d6c238 OrderParamsPanel - diy arrow-key navigation (default TraversalResquests were all over the place) 2019-04-07 11:27:27 -05:00
Kevin Darby 946ec36840 Merge branch 'SPARK-1944-attach/detach/update' of bitbucket.org:bluetradesys/spark into ice_exec3 2019-04-06 22:18:21 -04:00
John Colvin e24ba90096 PriceEntryControl - enable arrow-key traverse 2019-04-06 14:52:36 -05:00
John Colvin 3d37dc481f SPARK-2192 NullRef when hitting enter in order ticket after typing in a qty then price 2019-04-06 14:39:39 -05:00
John Colvin f436471c70 OrderBook - remove some tab stops to streamline keyboard navigation 2019-04-06 14:23:15 -05:00
John Colvin 8c1e43e9c8 Badge - override 'IsTabStop' property metadata, default to false 2019-04-06 14:21:26 -05:00
John Colvin 7395be6ea4 OrderBook - default settings for mini fills grid 2019-04-06 13:27:48 -05:00
John Colvin 64be45e01c fix FillsWindow default 'Size' column header typeo (was 'Side') 2019-04-06 13:27:48 -05:00
John Colvin 9b6ac5dfe9 OrderBook - hide 'save as defaults' button in mini fills grid settings dialog 2019-04-06 13:27:48 -05:00
John Colvin 825651c274 DIYGrid - stretch column header content when no operators (filter/sort) are active 2019-04-06 13:27:48 -05:00
John Colvin 7789748210 DIYGrid - set GridViewColumnHeader background to transparent to remove mouse-hover 'dead zone' (no visual feedback) 2019-04-06 13:27:48 -05:00
John Colvin ae20a98577 DIYGridResources.xaml - normalize spacing (not actual code change) 2019-04-06 13:27:48 -05:00
John Colvin c1fd5a5d27 when OrderBook is closed, mini fills grid settings dialog is closed as well 2019-04-06 13:27:40 -05:00
John Colvin cceb3bd147 Grid Settings Dialog - made 'ActionMenu' thinner and reduced vertical margin between it and main content 2019-04-06 10:14:55 -05:00
John Colvin bdc0e529f7 OrderBook - hook up fills grid settings 2019-04-05 23:29:51 -05:00
John Colvin ddf22c09a6 OrderBook - refactor 'fills_slave_grid' members to 'fills' 2019-04-05 23:12:32 -05:00
John Colvin d4ed08c104 TriggerOrderVM can represent non-uniform values 2019-04-05 22:17:05 -05:00
John Colvin 5a77bb31ce DynamicOrderParamVMs can represent non-uniform values 2019-04-05 22:09:35 -05:00
John Colvin 8f287e939b AlgoEditorGridView - added string param template 2019-04-05 19:32:48 -05:00
John Colvin 23dbb51e4b AlgoEditorGridView - alphabetize param cell templates 2019-04-05 19:32:48 -05:00
John Colvin 1ee035e865 made 'ValueSubstitutionConverterWrapper' (IValueConverter) 2019-04-05 19:32:48 -05:00
John Colvin 9b4a4a9698 ValueMap uses KeyedCollection for quick lookups (was using flat list) 2019-04-05 19:32:48 -05:00
John Colvin 259c0164ba added new 'KeyedCollection' class and corresponding unit tests 2019-04-05 19:32:48 -05:00
John Colvin 55bdeea2f0 DynamicOrderVM - enumerated params cannot assign null to 'EnumValue' in protobuf 2019-04-05 19:32:48 -05:00
John Colvin a5e2ff48c2 OrderBookView - OrderParamsPanel goes into 'readonly' mode (instead of begin completely disabled) when non-working orders are selected 2019-04-05 19:32:48 -05:00
John Colvin a7a07687d6 OrderParamsPanel - added IsReadOnly dp, and corresponding VisualState 2019-04-05 19:32:48 -05:00
John Colvin 3fe0306864 AlgoEditorGridView - added IsReadOnly dp, and corresponding VisualState 2019-04-05 19:32:48 -05:00
John Colvin f76aed7671 SPARK-2208 / SPARK-2240 show '-' for params with non-uniform values (from multiple selected orders) 2019-04-05 19:32:48 -05:00
Kevin Darby 11425a898f honing in on simice 2019-04-05 17:58:28 -04:00
Kevin Darby d0029e7f88 sim doesn't crash, but doesn't give exec reports either 2019-04-05 17:39:04 -04:00
Pedro Pinto 7d7ddf53d9 Cover supports attach/detach/update. 2019-04-05 17:34:42 -04:00
Kevin Darby bdbdda947f Merge branch 'SPARK-1944-attach/detach/update' of bitbucket.org:bluetradesys/spark into ice_exec3 2019-04-05 15:51:51 -04:00
Kevin Darby f88ab57fa0 got the basic structure down, still waiting on ICE for a few things 2019-04-05 15:49:37 -04:00
Pedro Pinto 81394135f6 merged master 2019-04-05 14:23:12 -04:00
Pedro Pinto bd2c2d6aa8 Merge branch 'SPARK-1944-attach/detach/update' of bitbucket.org:bluetradesys/spark into SPARK-1944-attach/detach/update 2019-04-05 14:22:25 -04:00
Pedro Pinto d24b7a3707 Possibly fixed SPARK-2225.
This bug is probably behind a number of different crashes.
2019-04-05 12:30:44 -04:00
John Colvin 692010528a OrderParamsPanel - fix 'ShowBBO' visual state binding 2019-04-05 10:20:48 -05:00
John Colvin 8074cabba1 AlgoEditorGridView - 'Algo' label text VerticalAlignment=Center 2019-04-05 10:19:19 -05:00
Pedro Pinto 5e1e2d7812 Merge branch 'SPARK-1944-attach/detach/update' of bitbucket.org:bluetradesys/spark into SPARK-1944-attach/detach/update 2019-04-05 11:12:11 -04:00
John Colvin 510e6008b6 OrderBookVM - attach_vm should not load params for the selected order (just default to iceberg) 2019-04-05 09:18:11 -05:00
Pedro Pinto c23a3ee626 Cover 2019-04-05 10:02:43 -04:00
Pedro Pinto 28cfa8ca29 Merge branch 'SPARK-1944-attach/detach/update' of bitbucket.org:bluetradesys/spark into SPARK-1944-attach/detach/update 2019-04-05 09:10:15 -04:00
John Colvin 15a36fb40a changed QuantityMeasureTextConverter text for null/none 2019-04-04 23:24:49 -05:00
John Colvin ac11c76829 LeanOrderVM - 'trade toward behavior' and 'max chase ticks' are nullable props 2019-04-04 23:23:25 -05:00
John Colvin e9dc0f05dc AlgoEditorGridView - nullable enum and uint param-cell templates 2019-04-04 23:21:27 -05:00
John Colvin 82d8a45d87 AlgoEditorGridView - enum template ComboBox ItemTemplate is EnumDescriptionTemplate 2019-04-04 23:10:50 -05:00
John Colvin 98b1193619 IAlgoVM - implement 'load_many' (OrderBook will use to aggregate selected order params) 2019-04-04 22:32:23 -05:00
John Colvin 0f0d300edc fix CommonValueGroupMonitor (need to maintain ref counts of equivalent values) 2019-04-04 22:28:34 -05:00
John Colvin fee59c5e90 RefCountMap - overload increment/decrement methods to accept 'count' arg 2019-04-04 21:56:21 -05:00
John Colvin 0142b24884 RefCountMap - actually pass the key-comparer to the dictionary 2019-04-04 21:52:15 -05:00
John Colvin 3936783d74 OrderBookVM/View - refactor modify/attach 'algos' members to modify/attach 'orders' 2019-04-04 18:16:24 -05:00
John Colvin 4e3bdad812 QuantityMeasureControl - change QuantityMeasure prop to nullable QuantityMeasureImmutable 2019-04-04 18:16:23 -05:00
Taha Afzal 6c7c84edd7 Merge branch 'master' into queue_holder_order 2019-04-04 17:44:34 -04:00
Taha Afzal 1a36af2922 removed QHOOrderManager::SubOrder 2019-04-04 17:17:56 -04:00
Jake Norbut 5b6a7844e3 Merge branch 'SPARK-1944-attach/detach/update' of bitbucket.org:bluetradesys/spark into SPARK-2207 2019-04-04 15:40:59 -05:00
John Colvin 3492bcdbd5 accidentally overwrote fix for grid-settings-manager crash in miniob (re-applying) 2019-04-04 15:37:38 -05:00
Pedro Pinto 96f1066a56 Cover. 2019-04-04 16:18:56 -04:00
Jake Norbut 1d2682224f fixing merge with main attach/detach branch 2019-04-04 14:52:23 -05:00
Jake Norbut cc4a9511b5 Merged SPARK-2237 into SPARK-2207 2019-04-04 14:45:57 -05:00
Jake Norbut 5e245dff8c OrderBookRowCollection now uses the Tree overrides that provide children, for iteration over said children for refreshing of attach/detach 2019-04-04 14:43:08 -05:00
Jake Norbut 6bb9374103 adding get_parent method 2019-04-04 14:41:49 -05:00
Jake Norbut fb5466d6e6 removing use of can_detach from row_vm.update 2019-04-04 14:40:13 -05:00
Jake Norbut f57013d9b5 refining is_attach/detachable; adding refresh attach/detach 2019-04-04 14:39:33 -05:00
Jake Norbut d25a5e3e3c OBVM can now lookup a row's parent 2019-04-04 14:35:18 -05:00
Jake Norbut 67f64de7fd refining detach_selected_algos to use is_detachable rather than can_detach 2019-04-04 14:30:28 -05:00
Taha Afzal a3a789568c better qty management 2019-04-04 15:28:47 -04:00
Jake Norbut 120d2bbee5 binding attach_button visibility to our new property 2019-04-04 14:28:02 -05:00
Jake Norbut 4a5dc21427 adding Insert and TryReplace overloads that return the associated child collection as an out parameter 2019-04-04 14:20:14 -05:00
Kevin Darby 12362d9719 Merge branch 'master' of bitbucket.org:bluetradesys/spark into stunnel 2019-04-04 13:06:10 -04:00
Kevin Darby 01128639ce improve error logging 2019-04-04 13:05:40 -04:00
Michael Harding c1fe0b3191 SPARK-2066: Create book and common setup 2019-04-04 11:56:05 -04:00
John Colvin d00d92dac9 SPARK-2208 / SPARK-2238 remove Account and TimeInForce controls since they cannot be modified 2019-04-04 10:48:59 -05:00
Eric Harding 71d2e01187 SPARK-2197 Add some MBO stats logged every 5 minutes 2019-04-04 11:18:15 -04:00
Michael Harding a071b974c8 Merge branch 'master' into system_tests 2019-04-04 10:23:50 -04:00
Jake Norbut ba7261e062 Merged SPARK-2236 into SPARK-2207 2019-04-04 07:53:38 -05:00
Jake Norbut 786f4253b9 adding GetParent unit test 2019-04-04 07:50:52 -05:00
Jake Norbut aade53eaeb Adding GetParent to SortedTree 2019-04-04 07:50:26 -05:00
John Colvin 25a1d86eec OrderBookVM - right panel automatically shows order params if everything
is hidden when opened
2019-04-03 23:44:49 -05:00
John Colvin b4d36c8104 OrderBook - mini ladder auto scroll behavior 2019-04-03 23:38:32 -05:00
John Colvin 7507595bb9 minor style changes to OrderParamsPanel and AlgoEditorGridView 2019-04-03 22:27:57 -05:00
John Colvin a47e34a5b6 SPARK-2208 / SPARK-2235 hide column headers in algo editor grid 2019-04-03 20:48:56 -05:00
John Colvin 0e52613e47 OrderBookRowVM - add a couple more columns to the 'invalidate/dirty' mask 2019-04-03 20:39:44 -05:00
John Colvin cd4c3ae99f OrderBookVM - refresh algo-param-rows when user changes selecttion to a row with the same algo structure 2019-04-03 20:39:44 -05:00
John Colvin 8cd8b85022 made CommonValueGroupMonitor (will be used by OrderBookVM) 2019-04-03 20:39:44 -05:00
John Colvin a26b44b2cc SetMap implements IReadOnlyDictionary (was only a few methods short) 2019-04-03 20:19:57 -05:00
John Colvin 11652ac021 SPARK-2209 / SPARK-2231 Remove all controls in the top of panel except for price and quantity 2019-04-03 18:50:47 -05:00
John Colvin 861ea5b426 TickUpDown - changed ControlTemplate root to a Border (was a Grid, which caused alignment issues in parent layouts) 2019-04-03 18:50:47 -05:00
Kevin Darby 36442a037e more ice 2019-04-03 17:12:52 -04:00
Eric Harding c923be6ced SPARK 2206 add test command to print out PIQ data for all orders 2019-04-03 16:24:53 -04:00
John Colvin 1b731a852a OrderBook - added current row description tooltip/hint text in right panel 2019-04-03 14:14:46 -05:00
John Colvin 730cf023aa OrderBookView.xaml.cs - remove unused IValueConverter 2019-04-03 13:53:45 -05:00
John Colvin 7e88ffa5bf SPARK-2208 / SPARK-2229 don't indent param rows 2019-04-03 13:46:42 -05:00
John Colvin 1885cef7f1 AlgoEditorGridView.xaml.cs - remove unused dp 2019-04-03 13:46:42 -05:00
John Colvin 162ae01605 OrderBook - in right panel, convert 'show blah' checkboxes to a toolbar-style menu 2019-04-03 13:46:42 -05:00
John Colvin 52e0c9c7b6 OrderBookVM - rename a couple private fields 2019-04-03 13:46:42 -05:00
John Colvin 2b7135d421 OrderBook - apply initial min height for right panel controls (order params, ladder, fills) 2019-04-03 13:46:42 -05:00
John Colvin f60435eb32 SPARK-2209 / SPARK-2212 do not allow change of structure in attach params (hide child nodes) 2019-04-03 13:46:42 -05:00
John Colvin c0155047a8 made DoubleSubtractionConverter (IValueConverter) and DoubleDynamicSubtractionConverter (IMultiValueConverter) 2019-04-03 13:46:42 -05:00
John Colvin fe50e40524 rename IntGreaterThanToBoolConverter -> IntGreaterThanConverter 2019-04-03 13:46:42 -05:00
John Colvin 198fd145e7 IntSubtractionConverter - ValueConversion attribute specified wrong types 2019-04-03 13:42:33 -05:00
John Colvin 045e0bc421 LadderSettings - default row height was clipping badges 2019-04-03 13:42:33 -05:00
John Colvin 4b8d66de97 OrderBookView - 'Modify Orders' button tooltip 2019-04-03 13:42:33 -05:00
John Colvin 45a4c966de OrderBook - touch up 'current row description' atop the right panel 2019-04-03 13:42:32 -05:00
John Colvin d18194c64f OrderBookGridView.ColumnKeys - use bit/flag values 2019-04-03 13:42:32 -05:00
John Colvin b535a855a5 OrderBook - show tooltips when mini ladder is inactive due to non-singular security selection 2019-04-03 13:42:32 -05:00
John Colvin 9a1e6c92f0 CommonValueMonitor - added 'plurality_changed' event, corresponding 'SubscribePluralityThrottled()' extension 2019-04-03 13:42:32 -05:00
John Colvin 5852827b98 OrderBook mini ladder - set 'CanUserSendOrders' to false 2019-04-03 13:42:32 -05:00
John Colvin 912ddf3a2a Ladder/MiniLadder - added 'CanUserSendOrders' dp, when false a 'No' cursor is displayed over bid/ask columns 2019-04-03 13:42:32 -05:00
John Colvin fa840eb0ac PopupAdorner - implement ClipToBounds behavior 2019-04-03 13:42:32 -05:00
John Colvin e368468ffa OrderBook - add 'MiniLadderView' to right panel 2019-04-03 13:42:32 -05:00
John Colvin 3ef87df0bc LadderGridHost - clear visuals when DataContext is null 2019-04-03 13:42:32 -05:00
John Colvin 036f53c849 create 'MiniLadderView' (will be added to OrderBook's right panel) 2019-04-03 13:42:32 -05:00
Jake Norbut d0f35657ca Merged SPARK-2230 into SPARK-2207 2019-04-03 12:56:25 -05:00
Jake Norbut 1e55443415 hiding detach button appropriately 2019-04-03 12:54:59 -05:00
Jake Norbut db31a4201c adding is_detachable property to row vm 2019-04-03 12:54:20 -05:00
Jake Norbut 22665958ca narrowing can_detach criteria 2019-04-03 12:53:50 -05:00
Michael Harding 4cf9d544aa Update PnL test 2019-04-03 09:44:10 -04:00
Michael Harding 79f37f7130 Merge branch 'master' of bitbucket.org:bluetradesys/spark 2019-04-03 09:43:10 -04:00
Kevin Darby 19c0b94803 unsigned... 2019-04-02 18:13:31 -04:00
Kevin Darby 57fc50ce61 typo 2019-04-02 18:12:05 -04:00
Kevin Darby 3cff5343a3 PR review and support of -multiple 2019-04-02 18:10:53 -04:00
Kevin Darby 5969568dee ice native order 2019-04-02 17:36:12 -04:00
Kevin Darby 96265ea187 Merge branch 'SPARK-1944-attach/detach/update' of bitbucket.org:bluetradesys/spark into ice_exec3 2019-04-02 17:34:54 -04:00
Pedro Pinto cdd3afd1ee Code review commit. 2019-04-02 16:47:48 -04:00
Pedro Pinto 992a023bde Merged with master 2019-04-02 16:38:54 -04:00
Pedro Pinto eb053ee99d Cleaned up algos. 2019-04-02 16:36:24 -04:00
Kevin Darby 9676b1fdca Merge branch 'SPARK-1944-attach/detach/update' of bitbucket.org:bluetradesys/spark into ice_exec3 2019-04-02 16:21:51 -04:00
Pedro Pinto 55ee293f96 Ice clang build fixes. 2019-04-02 16:18:29 -04:00
Kevin Darby a6ec93e87e Merge branch 'master' of bitbucket.org:bluetradesys/spark into stunnel 2019-04-02 16:08:36 -04:00
Kevin Darby 25acf771ab changes to conditionally start stunnel if the config file is present 2019-04-02 16:05:05 -04:00
Kevin Darby 22cc946f52 Merged in ice_clang (pull request #206)
changes to compile ice market data with clang
2019-04-02 20:04:09 +00:00
Kevin Darby 6d0eb62712 changes to compile ice work with clang 2019-04-02 15:55:29 -04:00
Eric Harding 369b89b3a7 Update default symbol list for compat with deployed config 2019-04-02 15:15:12 -04:00
Eric Harding 8793c6c527 Replace ManyConsole with CommandLineParser 2019-04-02 15:00:02 -04:00
Jake Norbut fd3e98bca7 Merged SPARK-2226 into SPARK-2207 2019-04-02 13:51:36 -05:00
Jake Norbut 449731fb35 switch attach/detach buttons in mini_ob to same as those use in ob 2019-04-02 13:49:43 -05:00
Pedro Pinto f0199a0bd4 Lean order seems complete. 2019-04-02 14:08:18 -04:00
Pedro Pinto 1f0b71353d Merged 2019-04-02 13:15:05 -04:00
Pedro Pinto 1cfdd5e86f Cleaned up lean order 2019-04-02 13:13:57 -04:00
Eric Harding df14522433 SPARK-2204 QueryServer api 2019-04-02 13:07:42 -04:00
Jake Norbut f9ea4c23d8 Merged SPARK-2210 into SPARK-2207 2019-04-02 11:27:03 -05:00
Jake Norbut fb024ea3c2 changing attach ui from being in a ContextMenu to a Popup b/c of focus interaction issues w/ the new attach ui 2019-04-02 11:07:42 -05:00
Jake Norbut d02e9cf0f9 removing ContextMenu customization since we're switching to a standard Popup 2019-04-02 11:05:43 -05:00
Eric Harding 086e90acbe Move queryserver to linux only 2019-04-02 11:16:00 -04:00
John Colvin f09607caaf Merge remote-tracking branch 'origin/master' into SPARK-1944-attach/detach/update 2019-04-02 09:32:24 -05:00
Pedro Pinto 96ac0f30ca Merged 2019-04-02 08:50:27 -04:00
Michael Harding 467dba98f8 Update Fills window test 2019-04-01 17:06:16 -04:00
Eric Harding f513f7d9f2 SPARK-2204 mbo api in QueryServer 2019-04-01 12:11:03 -04:00
John Colvin 3b18791e90 SPARK-2209 / SPARK-2211 move attach ui to popup 2019-04-01 11:04:11 -05:00
John Colvin c57bd6a1a9 change OrderParamsPanel ControlTemplate root to Border (enables Padding/BorderThickness etc.) 2019-04-01 11:04:11 -05:00
John Colvin 1fd45a39ac PopupAdorner - add 'OpenRelativeToMouse' property/functionality (in adv. of AttachOrders popup) 2019-04-01 11:04:11 -05:00
John Colvin 60fdc57490 OrderBook - rename 'algo_editor_is_visible' to 'show_right_panel' 2019-04-01 11:04:11 -05:00
John Colvin de73443303 move LadderWindowFactory to Ladder dir 2019-04-01 11:04:11 -05:00
Taha Afzal 9c4e1b5250 fixing build 2019-04-01 09:48:01 -04:00
John Colvin a37b514af7 finally move Ladder dir to Modules/Trading/ 2019-03-31 10:44:56 -05:00
Pedro Pinto 19f54e23f4 Merge branch 'SPARK-1944-attach/detach/update' of bitbucket.org:bluetradesys/spark into SPARK-1944-attach/detach/update 2019-03-29 17:54:38 -04:00
Jake Norbut a2c11f2572 Merge branch 'SPARK-1944-attach/detach/update' of bitbucket.org:bluetradesys/spark into SPARK-1944-attach/detach/update 2019-03-29 15:13:55 -05:00
Jake Norbut 1a491351a8 fix size preset binding 2019-03-29 15:13:48 -05:00
John Colvin 5d28d619f9 OrderParamsPanel - remove noisy tab stops 2019-03-29 15:11:21 -05:00
Eric Harding 69f9f2791e SPARK-2203 2019-03-29 15:39:22 -04:00
Eric Harding ad6fc6d23b Cannot have a const pointer returned to the pool 2019-03-29 15:38:54 -04:00
Eric Harding a4575e3fa3 Fix windows build 2019-03-29 15:38:26 -04:00
John Colvin 15915ce7b2 SparkWindowView.xaml - unify spacing/tab size 2019-03-29 14:08:30 -05:00
John Colvin 1b53e5833e consolidate common SparkCommand keygestures into static class 'SparkCommands.KeyGestures' 2019-03-29 14:08:30 -05:00
John Colvin ef32988e36 OrderBookVM - in 'row_selection_changed(),' defer updates from common-vals monitor until all changes have been processed 2019-03-29 14:08:30 -05:00
John Colvin 4840d694ce CommonValueMonitor - add method to defer updates (useful for bulk changes) 2019-03-29 14:08:30 -05:00
John Colvin f1acc0c6b9 AlgoStructureKey - null check '_structure' member in Equals/GetHashCode impl 2019-03-29 14:08:30 -05:00
Jake Norbut a26c6127d0 Merged in SPARK-2186 (pull request #200)
SPARK-2186 - detach at child

Approved-by: John Colvin <john.colvin@bluetradesys.com>
2019-03-29 19:06:17 +00:00
Jake Norbut 241efe6a24 perfect use case for ?. 2019-03-29 14:04:17 -05:00
Eric Harding dc1a80afd2 Make MBOReader available to MDConsumerHandle 2019-03-29 14:07:48 -04:00
Eric Harding e1cfa7bf0b Fix build break 2019-03-29 14:06:25 -04:00
Eric Harding 2020221e65 MBOProducer cleanup and const correctness 2019-03-29 14:02:29 -04:00
Eric Harding ce438e93a6 Revert IntPrice regression (unit test failure) 2019-03-29 14:00:26 -04:00
John Colvin cb5e0503f7 fix tab switch 2019-03-29 10:41:44 -05:00
Eric Harding bad5bc3097 SPARK-2202 MBOProcessor producer side 2019-03-29 11:08:37 -04:00
Eric Harding e9da338402 optimize IntPrice lessthan 2019-03-29 10:58:16 -04:00
Pedro Pinto 1b1fbef655 Merge branch 'SPARK-1944-attach/detach/update' of bitbucket.org:bluetradesys/spark into SPARK-1944-attach/detach/update 2019-03-29 09:17:37 -04:00
John Colvin 65f982c5ad Keyboard shortcuts - Ladder, Ticket, Fills, and Create Synth 2019-03-28 22:48:17 -05:00
John Colvin 4957727877 AlgoEditorView - streamline tab navigation 2019-03-28 22:16:42 -05:00
John Colvin 0366082e8e fix auto-abbreviations for algo types 2019-03-28 16:12:05 -05:00
Pedro Pinto 5139e50cf2 Made some progress on lean order with attach/detach/update. 2019-03-28 16:51:20 -04:00
John Colvin 459255f20f temp fix for infinite-loop during login (disabled auto-abbreviations for algo types) 2019-03-28 15:51:14 -05:00
Eric Harding be6c916691 Allow std::function to move into Dispatcher 2019-03-28 16:49:59 -04:00
John Colvin 5eb890844d added config to disable 'FixNestedScrolling' behavior (in case there is some unforseen problem, as this affects every ScrollViewer in our App) 2019-03-28 13:55:27 -05:00
John Colvin 31d2adade7 AlgoEditorGridView - in DataGrid, set VirtualizingPanel.ScrollUnit='Pixel' so it scrolls smoothely when spreader order strategy params are expanded 2019-03-28 13:45:40 -05:00
John Colvin c22d1eeeee generic.xaml - add ScrollViewer default style with ScrollViewerCorrector.FixNestedScrolling='True' 2019-03-28 13:45:31 -05:00
John Colvin 6ee4aea794 made attached dp 'ScrollViewerCorrector.FixNestedScrolling' to prevent nested ScrollViewers from eating MouseWheel events (effectively blocking parents from scrolling) 2019-03-28 13:45:11 -05:00
John Colvin eef792d148 made ThreadStaticActivator util (a static generic class that creates ThreadStatic instances) 2019-03-28 13:38:20 -05:00
John Colvin 247a41de23 AlgoEditorGridView.xaml - remove commented-out garbage xaml 2019-03-28 13:38:20 -05:00
Jake Norbut 1892fcec69 Adding DetachColumn to mini ob 2019-03-28 12:26:34 -05:00
Jake Norbut 1d1423494b adding new DetachColumn 2019-03-28 12:26:34 -05:00
Jake Norbut e1c1ce78eb adding Detach as possible enum value 2019-03-28 12:26:33 -05:00
Jake Norbut e4880a6715 Adding detach_command for easy binding 2019-03-28 12:26:33 -05:00
Jake Norbut 8716fff482 Adding Detach to DefaultColumnHeaders 2019-03-28 12:26:33 -05:00
John Colvin 6c9e05b9eb SPARK-2183 Algo update (Tree vs Sequential layout) 2019-03-28 11:52:32 -05:00
John Colvin c0a69f26a2 made TimeConverter in advace of AlgoEditorGridView (will be used by various time-related param DataTemplates) 2019-03-28 11:52:32 -05:00
John Colvin 544ddff37f made EnumItemsSourceConverter in advance of AlgoEditorGridView (will be used by enum param DataTemplate) 2019-03-28 11:52:32 -05:00
John Colvin 81ed77d4c9 made ObservableAggregateCollection.Aggregator more robust by changing impl from IList<ObservableCollection<T>> to IList<(IReadOnlyCollection<T>,INotifyCollectionChanged)> 2019-03-28 11:52:32 -05:00
John Colvin c4f29bd2cf made 'block_reentrancy()' extension method for IProperty<T> (blocks reentrancy in value setter) 2019-03-28 11:52:32 -05:00
John Colvin ee498f1ad0 VisualDictionary - fix typeo in index setter, remove 'ICollection' casts in CopyTo/Remove(KeyValuePair) methods 2019-03-28 11:52:32 -05:00
John Colvin a899a225a4 made IReadOnlyObservableCollection<T> covariant 2019-03-28 11:52:31 -05:00
John Colvin 75d7ee1827 abbreviate algo types - hard coded abbrevs for known types, logical abbrevs for dynamic types 2019-03-28 11:52:31 -05:00
John Colvin 8d02819060 TabItem should not be Focusable, nor a TabStop 2019-03-28 11:52:31 -05:00
John Colvin 8eeca4a9ba GridLengthConverter - add 'Multiplier' property in advance of new 'AlgoEditorGridView' (need to indent content by n pixels per hierarchical level) 2019-03-28 11:52:31 -05:00
John Colvin 45cfcd2c3d made 'QuantityMeasureTextConverter' in advance of new 'AlgoEditorGridView' (will need display text for QuantityMeasure param cells) 2019-03-28 11:52:31 -05:00
John Colvin 20ddc43a2e OrderTypeItem - internal 'Badge' control should not be Focusable, nor a TabStop 2019-03-28 11:52:31 -05:00
John Colvin 1325d388ca DataGridExtensions - made TryGetRowView/TryGetCurrentRowView extension methods 2019-03-28 11:52:31 -05:00
John Colvin 085f309e1f ViewModelBase - Property/UserProperty implement new interfaces IProperty/IUserProperty respectively 2019-03-28 11:52:31 -05:00
John Colvin fa95ac6bfd ProtoHelper - made generic 'get_oneof_case<TOneofEnum>' method (returns oneof-case of an IMessage obj) 2019-03-28 11:52:31 -05:00
John Colvin b09ad7748f Oneof - overloaded 'Match()' method to accept Action<T>'s, added static 'OneOf' factory methods 2019-03-28 11:52:31 -05:00
John Colvin 67ba1499f0 WPFExtensions - made 'try_get_ancestor_of_type<T>()' and 'try_get_descendent_of_type<T>()' extension methods 2019-03-28 11:52:31 -05:00
John Colvin f277ea56dc made read-only ObservableCollection wrapper 2019-03-28 11:52:31 -05:00
John Colvin d112880c58 DislpayNameHelper - 'word tree' logical abbreviations 2019-03-28 11:52:31 -05:00
John Colvin e691a26eee OrderBookVM - 'fills_slave_predicate_src' accesses selected_rows on dispatcher thread 2019-03-28 11:52:31 -05:00
John Colvin 184ceaa649 DIYGrid.HighPerformanceRow - unsubscribe to grid.ColumnLayoutChanged on Unloaded 2019-03-28 11:52:31 -05:00
Jake Norbut 3c202e1597 Merged SPARK-2180 into SPARK-1944-attach/detach/update 2019-03-28 09:55:11 -05:00
Jake Norbut f407e52703 Merge branch 'SPARK-1944-attach/detach/update' of bitbucket.org:bluetradesys/spark into SPARK-2180 2019-03-28 09:51:12 -05:00
Jake Norbut 34e22606be adding attach_vm binding path to constructor 2019-03-28 09:38:09 -05:00
Jake Norbut fee24542ee removing unused xmlns 2019-03-28 09:34:11 -05:00
Jake Norbut 4900a73eeb simplifying Attach columm insertion 2019-03-28 09:33:19 -05:00
Jake Norbut 33552c0720 changing class access modifier to Internal 2019-03-28 09:28:48 -05:00
Jake Norbut 401c657c0b Adding new AttachColumn to OrderBookColumns 2019-03-28 08:46:25 -05:00
Jake Norbut ea899b57a0 adding ContextMenu control template and styles to bend it to our will 2019-03-28 08:45:45 -05:00
Jake Norbut 63ef6b6457 exposing a new begin_attach_command for easy databinding 2019-03-28 08:43:57 -05:00
Jake Norbut a869598d5e Adding Attach header text 2019-03-28 08:36:16 -05:00
Jake Norbut 082e68d975 Inserting new AttachColumn into the column collection 2019-03-28 08:35:20 -05:00
Jake Norbut 6a70dd8357 adding Attach as an Enum value to Columns 2019-03-28 08:33:49 -05:00
Jake Norbut 3b335a8e73 adding Button behavior to automatically drop down its ContextMenu when clicked 2019-03-28 07:25:56 -05:00
Michael Harding dd7db5661b Utility for tests to verify the system is ready 2019-03-25 12:21:10 -04:00
Michael Harding 4b8d725528 Test scripts start sparkd. spreader sets config 2019-03-25 12:21:10 -04:00
Jake Norbut 20b7b8d01a Modifying OBVM to find the brach root row (for detach API call) for detaching at a child) 2019-03-22 11:27:21 -05:00
Jake Norbut 1e83af41d7 Adding utility function that makes use of the the tree's GetRootNode to grab the branch's root OrderbookRowVM 2019-03-22 11:25:19 -05:00
Jake Norbut e852d83139 Orders will now be detached at the child, so reverse this logic 2019-03-22 11:22:52 -05:00
Jake Norbut db1b2a63af the start of a lean test 2019-03-21 08:05:33 -05:00
Eric Harding 4d60376cb1 SPARK-2179 Spark login screen should show error message instead of blank 2019-03-20 10:43:46 -04:00
Jake Norbut 6006a328fe Merge branch 'master' of bitbucket.org:bluetradesys/spark into system_tests 2019-03-20 08:45:18 -05:00
Taha Afzal db20433d44 helper functions to QHOOrderManager 2019-03-18 13:58:42 -04:00
Jake Norbut 5cb48fb517 Adding qty threshold test 2019-03-15 13:28:30 -05:00
Jake Norbut f2f8c258f9 run all tests within a test class 2019-03-15 13:22:37 -05:00
Jake Norbut cb8dac05d5 if linux no Dispose for now b/c seg fault 2019-03-14 16:10:58 -05:00
Jake Norbut f6eb1e4745 QuickBusClientChanel diag logging for sub / unsub 2019-03-14 15:53:12 -05:00
Jake Norbut 16e8a6e26d adding .NET Core Remote Lauch and Attach debugging options 2019-03-14 15:51:19 -05:00
Jake Norbut 9744f53d65 shell script that will perform setup work; will probably need to chmod this 2019-03-14 11:07:57 -05:00
Jake Norbut b231a66fc7 need to make this test public 2019-03-14 11:06:59 -05:00
Jake Norbut 65b3d4fffa refactoring OrderDefinition utils 2019-03-13 16:58:00 -05:00
Jake Norbut ba1b667ae8 basic join test 2019-03-13 16:47:23 -05:00
Jake Norbut e31b05042f refactoring common services into a base class; other misc refactoring 2019-03-13 16:46:58 -05:00
Jake Norbut 84e443ee4b copying *.sh scripts for testing on linux 2019-03-13 11:40:16 -05:00
Jake Norbut 3821dfb8ff Merge branch 'master' of bitbucket.org:bluetradesys/spark into system_tests 2019-03-11 14:45:10 -05:00
Jake Norbut 01a8502b20 refactoring to resuse user and account between different tests 2019-03-11 14:04:40 -05:00
Jake Norbut edfa079326 ib avg filled test 2019-03-11 13:46:00 -05:00
Jake Norbut 316a617c65 more refactoring 2019-03-11 13:08:16 -05:00
Jake Norbut 0e92a12e65 refactoring/reorg 2019-03-11 10:08:13 -05:00
Taha Afzal f9d276a908 SPARK 2090 2019-03-08 17:45:46 -05:00
Jake Norbut 5f4eb58db9 refactoring to promote eventual code reuse 2019-03-08 16:26:00 -06:00
Jake Norbut f7cdb1f00b refactor/cleanup of some common functions 2019-03-08 10:36:51 -06:00
Jake Norbut 0caa6b6ee0 IB test 1 2019-03-08 08:53:00 -06:00
Pedro Pinto 64973e1b51 Merged fix_om_reentrancy into queue_holder_order 2019-03-07 13:29:20 -05:00
Taha Afzal f4c0f24e80 reading qho queue size from ui 2019-03-06 20:02:38 -05:00
Taha Afzal 37b211532e merging from master 2019-03-06 11:53:02 -05:00
Kevin Darby 39a1252084 added Queue Holder Length gui to spreader for Taha 2019-02-28 14:08:46 -05:00
Jake Norbut 6fb8fdc9f6 updating test timeout 2019-02-27 14:28:45 -06:00
Jake Norbut b7fcd17ef0 first test; create retrieve update delete of algo definitions 2019-02-27 11:05:23 -06:00
Michael Harding 482ca6b484 SPARK-2065: Move order functions to OrderUtilities 2019-02-26 14:02:09 -05:00
Michael Harding 7ed3a977ab SPARK-2065: Move AdminUtilities 2019-02-26 11:18:26 -05:00
Michael Harding 59cfe3dc8d SPARK-2067: Setup bash scripts for running system tests 2019-02-26 11:07:47 -05:00
Taha Afzal 23d817d474 _cancelled_externally is marked true only when order has not been internally cancelled or filled 2019-02-20 23:25:24 -05:00
Taha Afzal ff53cf8b4d QHO working from the spreader 2019-02-16 22:33:47 -05:00
Taha Afzal 74f1cab23d SpreaderUtils can initiate a limit order or a QHO dependong on the spreader settings 2019-02-15 12:57:32 -05:00
Taha Afzal 87a03a3759 merging master 2019-02-14 15:52:04 -05:00
Taha Afzal dc5d4cf50a 1 for n of queue holder orders mean 2 total orders 2019-02-13 18:08:28 -05:00
Taha Afzal 03b4b2ec29 cleaning up across state handlers for when to cancel 2019-02-13 17:43:36 -05:00
Taha Afzal 4b45ece2aa added more error states (for child orders getting cancelled externally, child order errors as well as qho external cancels) 2019-02-13 11:54:13 -05:00
Taha Afzal 9b9192c7d4 simplified initialization 2019-02-12 17:33:14 -05:00
Taha Afzal f09f32b1a8 qty changes 2019-02-12 15:49:46 -05:00
Taha Afzal f70003c821 simplified price modifications 2019-02-12 13:21:34 -05:00
Taha Afzal b7a10f2712 on_transition was not getting called 2019-02-11 22:45:40 -05:00
Taha Afzal f37dc1eab2 buy qho orders working 2019-02-11 18:35:43 -05:00
Kevin Darby e4c0e9d7b5 queue_holder_order gui 2019-02-08 16:43:07 -05:00
Kevin Darby 8232dcfe97 Merge branch 'master' of bitbucket.org:bluetradesys/spark into queue_holder_order 2019-02-08 16:04:24 -05:00
Taha Afzal f9886cfd44 code to move around orders 2019-02-08 11:42:19 -05:00
Taha Afzal b9c25dab4b helper functions to ove orders 2019-02-07 19:31:16 -05:00
Taha Afzal 580a6c5604 pointer to parent order in the state objects is const 2019-02-07 07:13:53 -05:00
Taha Afzal 48aa32a184 QHOEndStateWorker done 2019-02-06 23:12:35 -05:00
Taha Afzal 39b6a49b3d QHOWaitingForCancelAllStateWorker completed 2019-02-06 21:16:47 -05:00
Taha Afzal 2d7b97cf98 QHOWorkingStateWorker completed 2019-02-06 17:23:32 -05:00
Taha Afzal 7230550567 QHOWaitingForAckStateWorker completed 2019-02-06 16:34:04 -05:00
Taha Afzal 93a3ac55a1 Cleaning up QueueHolderOrder's state 2019-02-06 15:54:20 -05:00
Taha Afzal 7a586c075b QHOOrderManager is used by QueueHolderOrder 2019-02-06 15:05:23 -05:00
Taha Afzal 797611331b Added QHOOrderManager: 2019-02-06 12:35:43 -05:00
Taha Afzal c8c943f66e switching state code 2019-02-05 12:14:51 -05:00
Taha Afzal 10b3558bea cleaned up the Pimpl 2019-02-05 10:24:24 -05:00
Taha Afzal d9111520fc All state handlers added 2019-02-05 10:10:44 -05:00
Taha Afzal e58bbcc771 adding more state workers 2019-02-05 09:42:52 -05:00
Taha Afzal b7806a7193 comments in the qho worker interface 2019-02-04 23:32:41 -05:00
Taha Afzal 0bbf58638e added more logic to QueueHolderOrderStartStateWorker 2019-02-04 09:04:19 -05:00
Taha Afzal 173e44d992 QueueHolderOrderStartStateWorker sekeleton added 2019-02-01 09:59:22 -05:00
Taha Afzal 3fe6260fd4 IQueueHolderOrderStateWorker added 2019-02-01 09:09:02 -05:00
Taha Afzal 8d600e090f added send order and cancel 2019-01-31 19:44:56 -05:00
Taha Afzal 851459922f QueueHolderOrder initialization done 2019-01-31 18:18:16 -05:00
Taha Afzal f8aa5ffeac First checking, scaffolding 2019-01-30 15:07:44 -05:00
1397 changed files with 91181 additions and 23732 deletions

No files matched your search

+37 -34
View File
@@ -1,34 +1,37 @@
nohup.out
build/
cmake-build-debug/
.idea/
.dir-locals.el
*.pyc
.vscode/*
!.vscode/*.json
.vs
obj/
*.csproj.user
*.vspx
*.psess
msbuild.log
*.orig
vcxproj.user
src/client/spark/Properties/launchSettings.json
compile_commands.json
.cquery_cached_index/
src/client/sparkcmd/Properties/launchSettings.json
node_modules
paket-files
project.lock.json
src/server/sparkd/orderman/perf_analysis/data
src/server/sparkd/orderman/perf_analysis/logs/
src/server/sparkd/orderman/perf_analysis/trace_data/
.fake
*.fsx.lock
*.code-workspace
src/lib/orderman/perf_analysis/logs/latency_data/
trace_data/
/src/lib/orderman/perf_analysis/last_pretty_log.csv
/src/lib/orderman/perf_analysis/log.csv
/doc/user/public/*
nohup.out
build/
cmake-build-debug/
.idea/
.dir-locals.el
*.pyc
.vscode/*
!.vscode/*.json
.vs
obj/
*.csproj.user
*.vspx
*.psess
msbuild.log
*.orig
vcxproj.user
src/client/spark/Properties/launchSettings.json
compile_commands.json
.cquery_cached_index/
src/client/sparkcmd/Properties/launchSettings.json
node_modules
paket-files
project.lock.json
src/server/sparkd/orderman/perf_analysis/data
src/server/sparkd/orderman/perf_analysis/logs/
src/server/sparkd/orderman/perf_analysis/trace_data/
.fake
*.fsx.lock
*.code-workspace
src/lib/orderman/perf_analysis/logs/latency_data/
trace_data/
/src/lib/orderman/perf_analysis/last_pretty_log.csv
/src/lib/orderman/perf_analysis/log.csv
/doc/user/public/*
.ionide/*
/.ignore
/build
+8 -3
View File
@@ -5,7 +5,9 @@
"includePath": [
"/usr/include",
"/usr/local/include",
"${workspaceRoot}"
"${workspaceRoot}",
"${workspaceFolder}/src",
"${workspaceRoot}/externals/linux/include"
],
"defines": [],
"intelliSenseMode": "clang-x64",
@@ -13,13 +15,16 @@
"path": [
"/usr/include",
"/usr/local/include",
"${workspaceRoot}"
"${workspaceRoot}",
"${workspaceFolder}/src",
"${workspaceRoot}/externals/linux/include"
],
"limitSymbolsToIncludedHeaders": true,
"databaseFilename": ""
},
"cStandard": "c11",
"cppStandard": "c++17"
"cppStandard": "c++17",
"compileCommands": "${workspaceFolder}/build/ninja_debug/compile_commands.json"
},
{
"name": "Windows",
+179 -93
View File
@@ -1,83 +1,14 @@
{
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) Launch",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceRoot}/build/ninja_debug/server/sparkd/sparkd",
"args": ["run"],
"stopAtEntry": false,
"cwd": "${workspaceRoot}/build/ninja_debug/src/server/sparkd",
"environment": [],
"externalConsole": true,
"MIMode": "gdb",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
},
{
"name": "Client Launch",
"type": "clr",
"request": "launch",
"program": "${workspaceRoot}/build/Debug/bin/net471/spark.exe",
"args": [],
"cwd": "${workspaceRoot}",
"stopAtEntry": false,
"externalConsole": true,
"requireExactSource": false
},
{
"name": "SDK Launch",
"type": "clr",
"request": "launch",
"program": "${workspaceRoot}/build/Debug/bin/net471/spark_sdk.exe",
"args": ["md","GLBX","Future","CL", "CLZ9", "--user=bts", "--pass="],
"cwd": "${workspaceRoot}",
"stopAtEntry": false,
"externalConsole": true,
"requireExactSource": false
},
{
"name": "Excel Launch",
"type": "clr",
"request": "launch",
"program": "C:/Program Files/Microsoft Office/Office14/EXCEL.EXE",
"args": ["${workspaceRoot}/build/Debug/bin/net471/spark_excel-addin64-packed.xll"],
"cwd": "${workspaceRoot}",
"stopAtEntry": false,
"externalConsole": true,
"requireExactSource": false
},
{
"name": "Client Tests",
"type": "clr",
"request": "launch",
"program": "${workspaceRoot}/build/Debug/bin/net471/sparkcmd.exe",
"args": ["test","test_filter"],
"cwd": "${workspaceRoot}",
"stopAtEntry": false,
"externalConsole": true,
"requireExactSource": false
},
{
"name": "Client Attach",
"type": "clr",
"request": "attach",
"processId":"${command:pickProcess}"
},
{
"name": "SparkVM Launch",
"type": "cppdbg",
"request": "launch",
"program": "/home/bts/spark/build/ninja_debug/server/sparkd",
"args": ["run"],
"args": [
"run"
],
"stopAtEntry": false,
"cwd": "/home/bts/spark/build/ninja_debug/server/",
"environment": [],
@@ -102,26 +33,115 @@
"description": "LD LIBRARY",
"text": "set env LD_LIBRARY_PATH=.",
"ignoreFailures": false
}
}
],
"pipeTransport": {
"pipeCwd": "${workspaceRoot}",
"pipeProgram": "c:\\program files\\git\\usr\\bin\\ssh.exe",
"pipeArgs": ["bts@sparkvm"],
"pipeArgs": [
"bts@sparkvm"
],
"debuggerPath": "/usr/bin/gdb"
},
"sourceFileMap": {
"/home/bts/spark/": "${workspaceRoot}"
}
},
{
"name": "(gdb) Launch",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceRoot}/build/ninja_debug/server/sparkd/sparkd",
"args": [
"run"
],
"stopAtEntry": false,
"cwd": "${workspaceRoot}/build/ninja_debug/src/server/sparkd",
"environment": [],
"externalConsole": true,
"MIMode": "gdb",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
},
{
"name": "Client Launch",
"type": "clr",
"request": "launch",
"program": "${workspaceRoot}/build/Debug/bin/net471/spark.exe",
"args": [],
"cwd": "${workspaceRoot}",
"stopAtEntry": false,
"externalConsole": true,
"requireExactSource": false
},
{
"name": "SDK Launch",
"type": "clr",
"request": "launch",
"program": "${workspaceRoot}/build/Debug/bin/net471/spark_sdk.exe",
"args": [
"md",
"GLBX",
"Future",
"CL",
"CLZ9",
"--user=bts",
"--pass="
],
"cwd": "${workspaceRoot}",
"stopAtEntry": false,
"externalConsole": true,
"requireExactSource": false
},
{
"name": "Excel Launch",
"type": "clr",
"request": "launch",
"program": "C:/Program Files/Microsoft Office/Office14/EXCEL.EXE",
"args": [
"${workspaceRoot}/build/Debug/bin/net471/spark_excel-addin64-packed.xll"
],
"cwd": "${workspaceRoot}",
"stopAtEntry": false,
"externalConsole": true,
"requireExactSource": false
},
{
"name": "Client Tests",
"type": "clr",
"request": "launch",
"program": "${workspaceRoot}/build/Debug/bin/net471/sparkcmd.exe",
"args": [
"test",
"ApiUpdateTests"
],
"cwd": "${workspaceRoot}",
"stopAtEntry": false,
"externalConsole": true,
"requireExactSource": false
},
{
"name": "Client Attach",
"type": "clr",
"request": "attach",
"processId": "${command:pickProcess}"
},
{
"name": "Spreader Tests",
"type": "cppdbg",
"request": "launch",
"program": "/home/bts/spark/build/ninja_debug/src/server/sparkd/sparkd",
"args": ["test", "[spreader]"],
"program": "/home/bts/spark/build/ninja_debug/server/sparkd",
"args": [
"test",
"[spreader]"
],
"stopAtEntry": false,
"cwd": "/home/bts/spark/build/ninja_debug/src/server/sparkd/",
"cwd": "/home/bts/spark/build/ninja_debug/server/",
"environment": [],
"externalConsole": true,
"MIMode": "gdb",
@@ -139,7 +159,9 @@
"pipeTransport": {
"pipeCwd": "${workspaceRoot}",
"pipeProgram": "c:\\program files\\git\\usr\\bin\\ssh.exe",
"pipeArgs": ["bts@sparkvm"],
"pipeArgs": [
"bts@sparkvm"
],
"debuggerPath": "/usr/bin/gdb"
},
"sourceFileMap": {
@@ -151,7 +173,10 @@
"type": "cppdbg",
"request": "launch",
"program": "/home/bts/spark/build/ninja_debug/src/server/sparkd/sparkd",
"args": ["test", "[admin_service]"],
"args": [
"test",
"[admin_service]"
],
"stopAtEntry": false,
"cwd": "/home/bts/spark/build/ninja_debug/src/server/sparkd/",
"environment": [],
@@ -171,7 +196,9 @@
"pipeTransport": {
"pipeCwd": "${workspaceRoot}",
"pipeProgram": "c:\\program files\\git\\usr\\bin\\ssh.exe",
"pipeArgs": ["bts@sparkvm"],
"pipeArgs": [
"bts@sparkvm"
],
"debuggerPath": "/usr/bin/gdb"
},
"sourceFileMap": {
@@ -183,7 +210,10 @@
"type": "cppdbg",
"request": "launch",
"program": "/home/bts/spark/build/ninja_debug/src/server/sparkd/sparkd",
"args": ["test", "[limiter]"],
"args": [
"test",
"[limiter]"
],
"stopAtEntry": false,
"cwd": "/home/bts/spark/build/ninja_debug/src/server/sparkd/",
"environment": [],
@@ -203,7 +233,9 @@
"pipeTransport": {
"pipeCwd": "${workspaceRoot}",
"pipeProgram": "c:\\program files\\git\\usr\\bin\\ssh.exe",
"pipeArgs": ["bts@sparkvm"],
"pipeArgs": [
"bts@sparkvm"
],
"debuggerPath": "/usr/bin/gdb"
},
"sourceFileMap": {
@@ -215,7 +247,10 @@
"type": "cppdbg",
"request": "launch",
"program": "/home/bts/spark/build/ninja_debug/server/sparkd",
"args": ["test", "[md]"],
"args": [
"test",
"[algo]"
],
"stopAtEntry": false,
"cwd": "/home/bts/spark/build/ninja_debug/server/",
"environment": [],
@@ -240,14 +275,16 @@
"pipeTransport": {
"pipeCwd": "${workspaceRoot}",
"pipeProgram": "c:\\program files\\git\\usr\\bin\\ssh.exe",
"pipeArgs": ["bts@sparkvm"],
"pipeArgs": [
"bts@sparkvm"
],
"debuggerPath": "/usr/bin/gdb"
},
"sourceFileMap": {
"/home/bts/spark/": "${workspaceRoot}"
}
},
{
{
"name": "SparkVM attach",
"type": "cppdbg",
"request": "attach",
@@ -255,16 +292,18 @@
"processId": "${command:pickRemoteProcess}",
"MIMode": "gdb",
"pipeTransport": {
"pipeCwd": "${workspaceRoot}",
"pipeProgram": "c:\\program files\\git\\usr\\bin\\ssh.exe",
"pipeArgs": ["bts@sparkvm"],
"debuggerPath": "/usr/bin/gdb"
"pipeCwd": "${workspaceRoot}",
"pipeProgram": "c:\\program files\\git\\usr\\bin\\ssh.exe",
"pipeArgs": [
"bts@sparkvm"
],
"debuggerPath": "/usr/bin/gdb"
},
"sourceFileMap": {
"/home/bts/spark/": "${workspaceRoot}"
"/home/bts/spark/": "${workspaceRoot}"
}
},
{
},
{
"name": "Python",
"type": "python",
"request": "launch",
@@ -274,12 +313,59 @@
"cwd": "${workspaceRoot}",
"env": {},
"envFile": "${workspaceRoot}/.env",
"args": [ "DEBUG" ],
"args": [
"DEBUG"
],
"debugOptions": [
"WaitOnAbnormalExit",
"WaitOnNormalExit",
"RedirectOutput"
]
},
{
"name": ".NET Core Remote Attach",
"type": "coreclr",
"request": "attach",
"processId": "${command:pickRemoteProcess}",
"pipeTransport": {
"pipeProgram": "c:\\program files\\git\\usr\\bin\\ssh.exe",
"pipeArgs": [
"bts@sparkvm"
],
"debuggerPath": "/home/bts/vsdbg/vsdbg",
"pipeCwd": "${workspaceRoot}",
"quoteArgs": true
},
"sourceFileMap": {
"/home/bts/spark/": "${workspaceRoot}"
},
"justMyCode": true
},
{
"name": ".NET Core Remote Launch",
"type": "coreclr",
"request": "launch",
"program": "/usr/bin/dotnet",
"args": [
"sparkcmd.dll",
"test",
"test_join_create_and_takeout_market"
],
"stopAtEntry": false,
"cwd": "/home/bts/spark/build/ninja_debug/server",
"pipeTransport": {
"pipeProgram": "c:\\program files\\git\\usr\\bin\\ssh.exe",
"pipeArgs": [
"bts@sparkvm"
],
"debuggerPath": "/home/bts/vsdbg/vsdbg",
"pipeCwd": "${workspaceRoot}",
"quoteArgs": true
},
"sourceFileMap": {
"/home/bts/spark/": "${workspaceRoot}"
},
"justMyCode": false
},
]
}
+19 -10
View File
@@ -14,24 +14,21 @@
"focus": false,
"panel": "shared"
},
"group": {
"kind": "build",
"isDefault": true
}
"group": "build"
},
{
"label": "server_build",
"label": "server_build",
"type": "shell",
"command": ".\\tools\\buildsparkd.cmd",
"problemMatcher": {
"base": "$gcc",
"problemMatcher": {
"base": "$gcc",
"owner": "cpp",
"fileLocation": [
"relative",
"${workspaceFolder}"
"${workspaceFolder}"
],
"pattern": {
"regexp": "(.?)(home)(.?)(bts)(.?)(spark)(.?)(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)",
"regexp": "(.?)(home)(.?)(bts)(.?)(spark)(.?)(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)",
"file": 8,
"line": 9,
"column": 10,
@@ -49,6 +46,18 @@
"kind": "build",
"isDefault": true
}
}
},
{
"label": "linux build (Debug)",
"type": "shell",
"command": "cd build/ninja_debug; time ninja",
"group": {
"kind": "build",
"isDefault": true
},
"problemMatcher": [
"$gcc"
]
}
]
}
-1
View File
@@ -58,7 +58,6 @@ else ()
COMMAND ln ARGS -sf ${EXTERNALS_ROOT}/lib/Release/libOnixS.IceImpactMulticastPriceFeedHandlerCpp.so.3.13.0.0 ${CMAKE_BINARY_DIR}/server
COMMAND ln ARGS -sf ${EXTERNALS_ROOT}/lib/Release/libACE-5.7.5.so ${CMAKE_BINARY_DIR}/server
COMMAND mkdir ARGS -p ${CMAKE_BINARY_DIR}/server/plugins
COMMAND ln ARGS -sf ${CMAKE_BINARY_DIR}/sdk/examples/order_plugin_example.so ${CMAKE_BINARY_DIR}/server/plugins/
COMMENT "Creating server runtime layout"
DEPENDS sparkd data_files_dir)
+1
View File
@@ -0,0 +1 @@
public
+15
View File
@@ -0,0 +1,15 @@
# The URL the site will be built for
base_url = "https://api.bluetradesys.com"
title = "BTS Spark API"
description = "Documentation for the BTS Spark API"
compile_sass = true
highlight_code = true
highlight_theme = "kronuz"
insert_anchor_links = true
build_search_index = true
[extra]
author = "Blue Trading Systems"
+5
View File
@@ -0,0 +1,5 @@
+++
title = "BTS Spark API"
+++
This is index
+7
View File
@@ -0,0 +1,7 @@
+++
title="Client API"
redirect_to = "client/getting-started/overview/"
sort_by="weight"
+++
@@ -0,0 +1,6 @@
+++
title="Getting Started"
sort_by="weight"
weight = 1
+++
@@ -0,0 +1,25 @@
+++
title = "Install Prerequisites"
weight = 10
+++
# C#/.NET
We target [.NET Standard 2.0](https://docs.microsoft.com/en-us/dotnet/standard/net-standard) so you can use .NET Framework 4.6.1+ or .NET Core 2.0+. Simply add a reference to the [Spark Nuget package](https://www.nuget.org/packages/spark_sdk/) to get started.
```
dotnet new console -lang c#
dotnet add package spark_sdk
dotnet build
```
# C++
The easiest way to get started with C++ is to use the Spark Server SDK to develop your application. Follow the instructions to [download and install the Spark Server SDK](/server/getting-started/install) and open the client_sdk sample project. If you want to run your C++ Client SDK application on Windows [contact us](mailto://api@bluetradesys.com) to get the required headers and binaries.
# JavaScript
We use JavaScript internally with the Spark Client API over a websocket connection but the documentation and packaging isn't ready yet. If this is something you're interested in get in touch with us at [api@bluetradesys.com](mailto:api@bluetradesys.com).
@@ -0,0 +1,31 @@
+++
title = "Overview"
weight = 1
+++
The Spark Client SDK is a high level command and control API which can be used to build scripts or integrate Spark into your existing ecosystem. The API is divided into several independent **"services"** responsible for different aspects of the system. A Service can define both [remote procedure call (RPC)](/client/getting-started/services#rpc) and incremental [streaming](/client/getting-started/services#streams) data.
The [Spark Desktop](https://www.bluetradingsystems.com/bts-spark/) is built on top of this API so you can be assured that it is complete and well tested.
Spark uses [Google Protocol Buffers](https://developers.google.com/protocol-buffers/) as an interface definition language similar to [GRPC](https://grpc.io) but backed by our custom high-performance TCP protocol. We currently support C#/.NET and C++ <!--and Javascript--> but the architecture is designed for easy extension so contact us about your specific business needs.
## Orders
Use the [OrderService](/client/services/orderservice) to send and manage orders including native exchange orders, spreader orders, and custom Algo orders created using the [Spark Server SDK](https://api.bluetradesys.com/server/).
## Spreader
Use the [SyntheticSecurityService](/client/services/syntheticsecurityservice) to create and manage synthetic spreads. Once created these spreads show up in the security and market data feeds just like exchange listed spreads.
## Position
Use the [PositionService](/client/services/positionservice) to get your position and P&L reports or add fills manually to keep the Spark system up to date with an external system.
## Administration
Use the [AdminService](/client/services/adminservice) to manage users and control limits.
## Market Data
For .NET subscribe to market data though the high level MarketDataClient interface. From C++ or JavaScript use the MarketDataRelay service directly.
@@ -0,0 +1,127 @@
+++
title = "Services"
weight = 20
+++
The Spark Client SDK uses [Google Protocol Buffers](https://developers.google.com/protocol-buffers/) to define the interface for each service in a language independent manner. Services have both functions which return a single result and streams of data which return values continuously while subscribed. This page describes the mapping from the Protocol Buffer definition to the concrete definition in each supported language.
# ServiceContext
To connect your client to the Spark Server you need to get or create a `ServiceContext` instance. A `ServiceContext` represents a connection to the Spark Server and a background thread for handling messages on that connection. Generally there should be a single `ServiceContext` per process. All of the methods on the `ServiceContext` are safe thread safe.
Construct a ServiceContext by calling the default constructor. The ServiceContext will find the Spark Server by loading the server configuration over an HTTP connection. To determine the URL it will search the following locations and use the first one that is present.
* A command line argument `-configserver <url>`
* An environment variable `BTSCONFIG`
* `%APPDATA%/bts/conf/spark.conf` (Windows)
* /sparkdata/conf/spark.conf (Linux)
* $HOME/sparkdata/conf/spark.conf (Linux)
If your application is running on a system with the BTS Client installed this will probably work without any further configuration. If you plan to run your client application on a separate machine we recommend setting the `BTSCONFIG` environment variable.
<div class="info">
<i class="fa fa-lightbulb-o fa-fw" aria-hidden="true"></i>
If you are using the Spark Server SDK to run a local copy of the Spark server set <p><strong>BTSCONFIG = http://localhost:9000/config/</strong></p>
</div>
To get a proxy for a given service call ServiceContext.locate&lt;T>("qualifier") where T is the type of the service and "qualifier" is an optional qualifier used to disambiguate between 2 instances of the same service. The locate call cannot fail but it may return a disconnected proxy. When you make a call on the proxy you should check the call result to see if the method call succeeded.
# RPC
Here is the OrderService reduced to a single method definition. A RPC method always takes exactly 1 argument and returns 1 value. In this example the `create_order` call takes a `Create` instance and returns a `Response`.
```C
service OrderService {
rpc create_order(Create) returns (Response);
...
}
```
The `Create` and `Response` types are also defined as protocol buffer messages. Each field can either be a primitive type another message or a list or map.
```C
message Create {
OrderDefinition new_order = 1;
double price = 2;
uint32 quantity = 3;
}
message Response {
uint32 order_key = 1;
OrderError error_code = 2;
string msg = 3;
}
```
Each RPC call generates both synchronous (blocking) and asynchronous variants. In C# the asynchronous calls have the `_async` suffix and return a `Task`. In C++ the call is overloaded to either return a value synchronously or accept a callback function to be called on the ServiceContext thread when the call completes. <!-- In Javascript only async methods returning a Promise are generated because it never makes sense to make a blocking call in the browser. -->
To call the resulting service locate a proxy using the [ServiceContext](#servicecontext) and then call `cancel_order` or `cancel_order_async`. If you are calling the Spark API from a GUI application you should always prefer the `_async` version of the calls.
### C# example
```c#
var ctx = new ServiceContext();
var orders = ctx.locate<OrderService>();
var response =
await orders.create_order_async(
new Create { price = 2.25, quantity = 42 });
if (response.success) {
Console.WriteLine($"success: {response.value}");
}
else {
Console.WriteLine($"Error: {response.error_message}");
}
```
### C++ example
```cpp
auto ctx = ServiceContext{};
auto orders = ctx.locate<OrderService>();
Create c;
c.set_price(2.25);
c.set_quantity(42);
// Instead of providing an _async method C++ uses overloading.
// To make a syncronous call simply omit the callback
orders.create_order(c, [=](const Result<Response>& response) {
if(response.success()) {
std::cout << "success.";
}
else {
std::cout << "error: " << response.error_message();
}
});
```
# Streams
Streams allow you to subscribe to live updating data. Each stream represents a changing collection of protocol buffer objects. Similar to a database row each item has an `id` which uniquely identifies it within the collection. Updates from the Spark server can add, remove or replace entries in the collection. Since only the changed items are sent over the wire the stream can remain responsive even when it represents a large collection.
Streams are implemented using the language bindings for [ReativeX](http://reactivex.io/) which provide utility functions to drill down to the specific data your application needs. In C# we provide both mutable and immutable versions of the generated data types (C++ users can rely on `const`).
When defined in a proto file streams use the `stream` keyword on the result type.
```C
service OrderService {
...
rpc fills (FillsSub) returns (stream Fill);
}
```
### C# example
```c#
var sc = new ServiceContext();
var orders = sc.locate<OrderService>();
var fills_observable = orders.subscribei_fills();
var unsub = fills_observable.Subscribe(update => {
Console.WriteLine(
"Added {0} items, Removed {1} items, Updated {2} items. Total items {3}",
update.added.Count(),
update.removed.Count(),
update.changes.Count(),
update.all.Count());
});
Thread.Sleep(TimeSpan.FromMinutes(5));
unsub.Dispose();
```
### C++ Example
```cpp
```
+6
View File
@@ -0,0 +1,6 @@
+++
title="Samples"
sort_by="weight"
weight = 30
+++
@@ -0,0 +1,3 @@
+++
title = "AdminService"
+++
@@ -0,0 +1,3 @@
+++
title = "OrderService"
+++
@@ -0,0 +1,3 @@
+++
title = "PositionService"
+++
@@ -0,0 +1,3 @@
+++
title = "SyntheticService"
+++
@@ -0,0 +1,6 @@
+++
title="Services"
#sort_by="weight"
weight = 10
+++
@@ -0,0 +1,3 @@
+++
title = "Market Data"
+++
+24
View File
@@ -0,0 +1,24 @@
+++
title="Algo API"
redirect_to = "server/getting-started/overview/"
sort_by="weight"
+++
Getting Started
- Install (docker, editor)
- Downloading
- Write your first algo
- Testing
Reference
- Subscriptions
- Child Orders
- Detaching
- Attaching
- ...
Samples
- Iceberg
- Pro-rata
@@ -0,0 +1,6 @@
+++
title="Getting Started"
sort_by="weight"
weight = 1
+++
Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

@@ -0,0 +1,138 @@
+++
title = "Development"
weight = 3
+++
# Visual Studio Code
In this section we're going to use the Remote - Containers feature of <a href="https://code.visualstudio.com/" target="_blank">Visual Studio Code<i class="fa fa-fw fa-window-restore" aria-hidden="true"></i></a> to simplify the development experience. If you are using a different editor skip to the <a href="#other-editors">other editor</a> section below.
## Remote - Containers
The Visual Studio Code Remote containers extension allows it to run a complete development environment inside the Spark SDK Docker container. The editor UI runs as a thin client on your desktop and connects to a headless instance running inside the Spark SDK Docker environment. This configuration allows us to ship a pre-configured set of [Tasks](https://code.visualstudio.com/Docs/editor/tasks) for building and testing your code.
Start Visual Studio Code and click on the puzzle piece icon on the left-hand side to open the extensions panel. Use the search box at the top to find the "Remote - Containers" extension and install it.
<img src="../vscode_remote_containers.png" width="640" />
## Into the Code
Open the examples/algo_template directory using the File->Open Folder menu option. If you opted to add it to your path during install, you could run `code .` from your command prompt.
When the workspace opens, you should see a notification offering to let you re-open the workspace inside the container.
<img src="../vscode_notification.png" width="480" />
The first time you open the workspace inside the container it will take a few seconds to configure the spark_sdk docker container. While the workspace is open in Visual Studio Code the docker image will also be running in the background. The container will stop automatically when you close the editor.
Open algo_template.cpp from the file browser on the left or by pressing ctrl-p and typing the name. Each Algo is a standard C++ class which implements **IAlgoOrder**. Placing your cursor on IAlgoOrder and pressing F12 will take you to the IAlgoOrder.h header file where you can browse the API. To learn more about how an Algo is instantiated see the [Algo Initialization](/server/ref/initialization).
## Compiling
To build press "Ctrl+Shift+B". You should see the build output at the bottom of your screen. If the build was successful the resulting algo_template.so will be automatically copied to the plugins directory where it will be loaded by the Spark server process on start.
<img src="../compiled.png" width="640" />
## Debugging
To debug your Algo set a breakpoint (F9) and open the Debug panel (Ctrl+Shift+D) and choose "(gdb) Launch". This will launch the Spark Server inside the container with the debugger attached.
<img src="../gdb_launch.png" width="380" />
With sparkd running you can launch the Spark Client (spark_client.cmd) and it will connect to the running server. Log in with the user "bts" and no password and open a ladder. You can now select your Algo on the order type dropdown and activate it by clicking on a price on the ladder.
<img src="../myalgo.png" width="150" />
While sparkd is running you can also access the Spark Server Admin interface on [http://localhost:9000](http://localhost:9000). Use the same "bts" login to access the admin interface. Here you can manage user and account permissions and risk limits.
## Starting Spark Server
To start the Spark Server without attaching a debugger press "Ctrl+Shift+P" and select "Tasks: Run Task" and then "Start Sparkd" and "Never scan task output" This will open a new terminal where you can see any messages logged with the **Sdk** subsystem as well as any warnings or errors. To stop the Spark server simply kill the terminal (trash can icon) or run the "Stop Sparkd" task.
## Next Steps
If you would like to understand more about how Docker is working behind the scenes continue to the [next section](#other-editors). Otherwise, continue to [Algo Registration](/server/ref/registration) to learn how Algos are registered with the Spark.
<hr>
# Other Editors
In this section you will be more exposed to the details of how Docker works and how to compile and test your Algo using the command line.
## Docker
Spark Server is built and runs only on Linux so you need a Linux development environment to effectively develop plug-ins for it. Docker lets you take the spark_sdk.img disk image and run it inside a virtual Linux machine running on your Windows desktop.
First, some terminology. A Docker "image" is a disk image containing a complete filesystem. The spark_sdk.img file you imported earlier is an image. A Docker "container" is what you get when you get when you attach this image to a running Linux system. You can connect to a running container and use it to run commands like the C++ compiler or the Spark server. Directories from your local filesystem can be mapped into the Docker container when it starts so you can easily share files.
### Start
The first step is to start the spark_sdk Docker container with the examples directory mapped so we can compile the examples inside the container. In your command prompt cd to the *examples* directory that you unzipped from the spark_sdk.zip file. Then run the following command to start the container.
Windows Command Prompt:
{% clipable() %}
docker run --rm -it -v %CD%:/examples -u bts -w /examples --shm-size 2048m --name spark_sdk -h spark_sdk --cap-add=SYS_PTRACE --security-opt seccomp=unconfined -p 9000:9000 -p 9001:9001 spark_sdk bash
{% end %}
**Powershell** / Linux / Mac:
{% clipable() %}
docker run --rm -it -v ${PWD}:/examples -u bts -w /examples --shm-size 2048m --name spark_sdk -h spark_sdk --cap-add=SYS_PTRACE --security-opt seccomp=unconfined -p 9000:9000 -p 9001:9001 spark_sdk bash
{% end %}
### Attach
The container will remain as long as this prompt is open. You can attach an additional to the running container with the following command:
{% clipable() %}
docker exec -it spark_sdk bash
{% end %}
## Compiling
Let's look at the algo_template sample first. All of the samples are laid out similarly with a `build.sh` script for compiling. As long as you are running build.sh inside the spark Docker container, it automatically copies the build output to /sparkbin/plugins/ where it needs to be to get loaded by the Spark server.
```
bts@spark_sdk:/examples$ cd algo_template/
bts@spark_sdk:/examples/algo_template$ ./build.sh
algo_template.so copied to /sparkbin/plugins/
Restart sparkd to see changes.
```
## Starting Spark Server
To start the Spark server `cd /sparkbin/` and run `./sparkd run`. Press Ctrl+C to stop it.
```
bts@spark_sdk:/sparkbin$ ./sparkd run
2019-10-25 16:21:09.383626|262552152803600|Gen|Warn |1 |main|132 |Run.cpp:53 |dev|
------------------------------------ Sparkd launched --------------------------------
```
You will see any Sdk log messages as well as any log messages at or above Warning level from other parts of the system. If you need additional diagnostic information more details logs are stored in /sparkdata/data/logging/log. These logs will be automatically deleted when you stop the Docker container.
With sparkd running you can launch the Spark Client (spark_client.cmd) and it will connect to the running server. Log in with the user "bts" and no password and open a ladder. You can now select your Algo on the order type dropdown and activate it by clicking on a price on the ladder.
<img src="../myalgo.png" width="150" />
While sparkd is running you can also access the Spark Server Admin interface on [http://localhost:9000](http://localhost:9000). Use the same "bts" login to access the admin interface. Here you can manage user and account permissions and risk limits.
## Debugging
You can debug your algo using gdb from the bash command prompt.
```bts@spark_sdk:/sparkbin$ gdb --args ./sparkd run
GNU gdb (Ubuntu 8.1-0ubuntu3) 8.1.0.20180409-git
Copyright (C) 2018 Free Software Foundation, Inc.
...
Reading symbols from ./sparkd...done.
(gdb) break algo_template.cpp:45
No source file named algo_template.cpp.
Make breakpoint pending on future shared library load? (y or [n]) y
Breakpoint 1 (algo_template.cpp:45) pending.
(gdb) run
Starting program: /sparkbin/sparkd run
```
If your editor supports debugging over the ssh protocol you can start sshd from inside the container.
## Next
Continue to [Algo Registration](/server/ref/registration) to learn how Algos are registered with the Spark.
Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

@@ -0,0 +1,79 @@
+++
title = "Download SDK"
weight = 2
+++
## Request Access 🔑
To start using the Server SDK you will need to request access though our sales department. Please email <a href="mailto:api@bluetradesys.com">api@bluetradesys.com</a> or call <a href="tel:919-913-0850">(919) 913-0850</a> and we will provide download credentials.
## Download
Download the latest SDK image here: [spark_sdk.zip](https://api.bluetradesys.com/download/spark_sdk.zip)
Unzip that folder into a working directory. Inside you should see something like this:
```
spark_sdk.img
client/
spark_client.cmd
examples/
```
## Import
Import the spark_sdk image into docker using the `docker load` command.
{% clipable() %}
docker load < spark_sdk.img
{% end %}
<div class="info">
<i class="fa fa-lightbulb-o fa-fw" aria-hidden="true"></i>
<strong>If you see this error it means Docker Desktop is not running:</strong>
error during connect: Get http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.40/images/json: open //./pipe/docker_engine: The system cannot find the file specified. In the default daemon configuration on Windows, the docker client must be run elevated to connect. This error may also indicate that the docker daemon is not running.
</div>
Confirm that the import worked by running `docker images` which should list the new image.
```
c:\bts> docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
bluetradingsystems/spark_sdk latest e2be89436e73 4 hours ago 3.89GB
```
<!--
## Run
Start the docker container by running
```
docker run -d -v %CD%:/work --name spark_sdk --cap-add=SYS_PTRACE --security-opt seccomp=unconfined -p 8000:8000 -p 8001:8001 -p 8008:8008 bluetradingsytems/spark_sdk
```
<div class="linux">
<i class="fa fa-linux fa-fw" aria-hidden="true"></i>
If you are using Linux or Mac replace <strong>%CD%</strong> with <strong>$PWD</strong>.
</div>
The first time you invoke `docker run` you may be prompted to "share" your filesystem with Docker. This usually works fine but if you run into trouble, see <a href="">Docker Desktop for Windows tips</a> on avoiding common problems.
## Success 🎉
Docker is now running the spark SDK image. If you are on Windows or Mac it is running inside a virtual Linux machine. You can see that is is running by typing `docker ps` to list running docker containers. If you restart the Docker Desktop application you will need to start the spark_sdk image again using `docker start spark_sdk`.
You should now be able to access an admin interface at http://localhost:8008/ which will let you stop and start the spark server process.
-->
## Update
To update your Spark SDK simply download an unzip a new [spark_sdk.zip](https://api.bluetradesys.com/download/spark_sdk.zip) and use `docker load < spark_sdk.img` to overwrite the old image with the new one.
To preserve the old image so you can go back to it later run `docker tag spark_sdk spark_sdk:your_custom_tag` before loading the new SDK image.
<!--
Then stop, remove and restart spark_sdk.
```
c:\bts> docker stop spark_sdk
c:\bts> docker rm spark_sdk
c:\bts> docker run -d -v %cd%:/sdk --name spark_sdk bluetradingsytems/spark_sdk
``` -->
Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.6 KiB

@@ -0,0 +1,57 @@
+++
title = "Install Prerequisites"
weight = 1
+++
These instructions assume you are using Microsoft Windows but you should be able to follow them on a Linux or Mac with minor modifications.
{% linux() %}
When there is a significant difference on non-Windows platforms it will be called out in a box like this one.
{% end %}
{% info() %}
Tips or solutions to common problems will be highlighted in a box like this.
{% end %}
The minimum hardware requirements for using the SDK are:
- **12 GB** RAM (preferably 16 GB or more)
- 4 CPU cores
- 20 GB free hard disk space
The Spark SDK uses a tool called Docker to distribute all of the tools you need to build and test your trading algorithm ("Algo"). Once you have Docker installed you can download and import the Spark SDK image and be ready to start developing your Algo in a few minutes.
## Docker
Download and install <a href="https://www.docker.com/products/docker-desktop" target="_blank">Docker Desktop for Windows/Mac. <i class="fa fa-fw fa-window-restore" aria-hidden="true"></i></a>
<div class="linux">
<i class="fa fa-linux fa-fw" aria-hidden="true"></i>
If you are using Linux follow the <a href="https://docs.docker.com/install/#supported-platforms">official install instructions for Docker for your distribution.</a>
</div>
During the install Docker may ask you to enable virtualization support and reboot.
Once Docker Desktop is installed and running it will create an icon in your system tray area that looks like the Docker logo.
![](../docker_tray.png)
Right click on the tray icon and choose 'Settings' and choose the 'Advanced' tab.
Ensure that the docker image has 8192 MB of memory and at least 2 cores. Memory that you assign to the docker image will not be available to Windows/Mac while Docker is running. CPU cores are shared with the host OS. Since you are going to use this image to compile your Algo it makes sense to allow Docker to use all available cores.
<img src="../docker_config.png" width="640" >
## Sharing
You need to give Docker access to the Windows drive where your source code is kept.
Open Settings -> Shared Drives and check the drive where you intend to keep your Algo source code.
<div class="info">
<i class="fa fa-lightbulb-o fa-fw" aria-hidden="true"></i>
If you run into trouble with drive sharing, see <a href="https://code.visualstudio.com/docs/remote/troubleshooting#_docker-desktop-for-windows-tips">Docker Desktop for Windows tips</a> on avoiding common problems.
</div>
## Editor
The Server SDK includes a complete configuration for C++ development with the <a href="https://code.visualstudio.com/" target="_blank">Visual Studio Code <i class="fa fa-fw fa-window-restore" aria-hidden="true"></i></a> editor. If you are a new to C++ development on a Linux system we recommend you give this a try as it's the easiest way to get up and running quickly. Of course, If you have a different editor that you prefer we fully support that as well.
Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

@@ -0,0 +1,44 @@
+++
title = "Overview"
weight = 0
+++
Using the **Spark Server SDK**, users can create new order types ("Algos"). In this case, users implement the new functionality in C++, producing a shared library that is loaded at run time by our Spark Server.
If you are interested in accessing Spark server remotely, please see the [Spark Client SDK](/client/).
## Speed
The Spark platform offers a sub-10 microsecond socket to socket response times for algorithmic trading. With the **Spark Server SDK**, you can create your order types in high-performance C++ and load them into the Spark server.
Since your order is running inside the Spark Server, there is virtually no overhead allowing your algorithm to take full advantage of the speed Spark offers. Hosting a high-performance language like C++ directly in the Spark server process allows it to respond to the market thousands of times faster than an Algo built using a proprietary drag and drop tool.
## Easy to Get Started
If you are not actively developing with C++, it can be time-consuming to set up a complete development environment from scratch. That is why we provide a full development environment out of the box with [Docker](https://docker.io) so you can download and try the Server SDK quickly and easily.
Docker works across Windows, macOS, and Linux, so you don't need to change your development environment to try the Spark API. Docker also ensures that all of the dependencies you need are packaged together in one image, so you know it will work out of the box, no matter the platform.
## Implementation
Creating a new Algo begins with implementing a standard C++ class derived from IAlgoOrder. Start from the [algo_template](/server/samples/template) example to get going quickly.
The first call your new Algo receives is [do_before_launch](/server/ref/initialization#before-launch), which is an opportunity to validate parameters and allocate any long-lived resources needed during execution. Next, it receives either [do_launch](/server/ref/initialization#launch-launch-attached) in the case of a new order or [do_launch_attached](/server/ref/initialization#launch-launch-attached) if the order is attaching to an existing order.
The Algo receives a reference to [IAlgoServices](/server/ref/subscriptions/), which is how it calls out to the Spark system. It will use [IAlgoServices](/server/ref/subscriptions/) to subscribe to market events, launch and control child orders, and communicate its state to the larger Spark system.
## Fully Integrated
When a Spark Server plugin is loaded, it registers its exposed Algos with the Spark Server though the [init_spark_plugin](/server/ref/registration) callback. This callback allows the Algo to describe the parameters it expects so they can be automatically entered in the [Spark Client](https://www.bluetradingsystems.com/bts-spark/).
<img src="../myalgo.png" width="150" />
<img src="../paramsui.png" width="460" />
Compose your Algo with out of the box Algos in the [Spark Algo Studio](https://www.bluetradingsystems.com/news/155-bts-algo-studio-provides-algo-library-with-customization-functionality) to create new functionality on the fly.
<img src="../algostudio.png" width="548" /><br />
<img src="../iced_algo.png" width="460" />
Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 93 KiB

+6
View File
@@ -0,0 +1,6 @@
+++
title="Reference"
sort_by="weight"
weight = 2
+++
+14
View File
@@ -0,0 +1,14 @@
+++
title = "Questions"
weight = 40
+++
## I need to make a call that might take a few seconds. What is the best way to do this?
Create a background thread in [do_before_launch](/server/ref/initialization#before-launch) or [do_launch](/server/ref/initialization#launch-launch-attached) to do the work. Use [on_timer](/server/ref/subscriptions#timer) to poll until the result is available.
## I don't see the header files in the .zip file. Where are they?
The SDK headers are baked into the docker image along with the build tools. Once you've loaded the image with `docker load < spark_sdk.img` you can run this command to copy them out to your local file system `docker run --rm -it -v $PWD:/out spark_sdk /bin/tar -cvf /out/headers.tar /sdk/include` This will copy the headers to the current directory in headers.tar. We still recommend doing the actual build inside the docker environment but having a copy of the headers can be useful for setting up your development environment.
@@ -0,0 +1,97 @@
+++
title = "Initialization"
weight = 10
+++
Each Algo derives from IAlgoOrder and overrides virtual methods to receive callbacks from the Spark system.
## Before Launch
When an order is activated by a user or by another Algo, the first call it receives is do_before_launch. This call happens outside of the latency-sensitive path, so it's the place to validate parameters and set up data structures that the Algo might need.
This call returns an OrderOpResult, which allows it to fail and return an error message to its creator. If a user created this order, this message is displayed in the [Activity Log](https://www.bluetradingsystems.com/docs/bts_spark/Help/#activity-log) and across the bottom of the ladder.
Every SDK Algo is a "Dynamic" Algo since it's parameters are defined during [registration](/server/ref/registration/). Use the `get_if<T>` helper to retrieve a named parameter from the `order_params` collection as a `std::option<T>`. If a parameter has a valid default value you can use `std::option::value_or(...)` to set default values for missing parameters. If a parameter *must* exist or must be within a certain valid range, return an error to the caller.
```cpp
OrderOpResult MyAlgo::do_before_launch(IBeforeLaunchAlgoServices& serv) {
auto& def = serv.definition();
auto& params = def.custom_def().dynamic().order_params();
auto mqi = get_if<uint32_t>(params, "Min Quantity");
if (!mqi || mqi.value() == 0)
return OrderOpResult{
ORDER_ERROR_INVALID_ORDER_DEFINITON,
"Min Quantity parameter must be defined and non zero"};
}
```
<div class="info">
<i class="fa fa-lightbulb-o fa-fw" aria-hidden="true"></i>
The parameters are defined during <a href="/server/ref/registration/">registration</a> by the <a href="/server/ref/registration/#dynamicorderdescriptor">DynamicOrderDescriptor</a>.
</div>
### IBeforeLaunchAlgoServices
IBeforeLaunchAlgoServices is passed to `do_before_launch` and allows the Algo to query its environment.
```cpp
class IBeforeLaunchAlgoServices {
public:
// The OrderDefinition for this algo
virtual api::orderman::OrderDefinition const &definition() const = 0;
// The security this algo is paramterized with (also available from
// definition())
virtual api::Security const &security() const = 0;
// The unique order key for this algo
virtual OrderKey order_key() const = 0;
// The parent key for this algo's parent or null_order_key() if the
// algo does not have a parent
virtual OrderKey parent_order_key() const = 0;
// The security identified by k or nullptr if no such security exists
virtual api::Security const *lookup_security(SecurityKey k) const = 0;
// Wheter this algo is being attached to an existing order.
// If an algo does not support attaching it can return an error
// if is_attaching() == true from do_before_launch.
virtual bool is_attaching() const = 0;
// Build a child template that can later can be used to quickly
// launch child orders. The reserve parameter indicates how many
// orders should be created ahead of time, before they are
// launched. This is usefull to remove the relatively expensive
// order creation operation to a background thread.
virtual ChildTemplate &
make_child_template(api::orderman::OrderDefinition const &child_def,
size_t reserve = 1) = 0;
// Get the current time
virtual TimeStamp get_time() const;
};
```
## Launch / Launch Attached
Depending on the state of `is_attaching()` the next call will either be `do_launch` or `do_launch_attached`. The only difference is that in `do_launch_attached` the existing OrderKey and ChildState are provided.
`do_launch` and `do_launch_attached` are in the latency-sensitive path and should not do more work than needed. These functions get a reference to `IAlgoServices`, which is a superset of the functionality available on `IBeforeLaunchAlgoServices`. Most Algos should store a pointer or reference to this object for managing child orders (it has a stable address).
Now is the time to use `IAlgoServices` to subscribe to market events that are relevant to your Algo and create any child orders that need to exist at the start of your Algo. You can safely call IAlgoServices from any `IAlgoOrder` callback.
To learn more about subscribing to events see [subscriptions](/server/ref/subscriptions).
### Things to do in the launch callback
☑ Store a reference to IAlgoServices
☑ Subscribe to relevant market events
☑ Launch a child order?
## Update
If the user or parent Algo changes the order parameters (price, size, or the custom parameters defined during registration), Spark calls the `do_update` callback with the new parameters. It is up to the Algo to decide how to apply the new parameters to update the running state. It can do this by canceling, changing, or adding new child orders.
Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

+88
View File
@@ -0,0 +1,88 @@
+++
title = "Child Orders"
weight = 30
+++
Every Algo must, at some point, launch a child order to be useful. Each child order can be another Algo or regular exchange order. When the child order is updated or filled, those changes are also sent to the parent.
# Templates
Since launching a child order is one of the most latency-sensitive things an Algo can do, the Server SDK enables you to create a child template. An order template prepares an order based on a known OrderDefinition and gets it ready to send on a background thread. When the Algo determines it is time to send the order, it only needs to provide the price and quantity to complete and send the order. If an Algo expects to send multiple child orders, it can reserve more than one. Preparing a child template is typically done in [do_before_launch](http://127.0.0.1:1111/server/ref/initialization/#before-launch) callback.
```cpp
virtual ChildTemplate&
IBeforeLaunchAlgoServices::make_child_template(
api::orderman::OrderDefinition const &child_def,
size_t reserve = 1);
```
# Launch
IAlgoServices provides two overloads for launching child orders. By default, launching a child order automatically subscribes the Algo to its state changes.
Launch a child order from a template if you have one prepared. This is the fastest option.
```cpp
OrderKey IAlgoServices::launch_child(ChildTemplate&, Price, Quantity, bool subscribe = true);
```
Launch a child order by constructing an OrderDefinition as needed.
```cpp
OrderKey launch_child(OrderDefinition const &, Price, Quantity, bool subscribe = true);
```
When a child is launched its `OrderKey` is returned to the caller. This ID can be used to update, cancel, or detach the child order.
## Update
To update an existing child order, call update_child and pass an Update. The Update type lets you change the price, size or the entire OrderDefinition. You only need to specify the fields that you intend to update so only set the price() field if that is what you are changing.
```cpp
void IAlgoServices::update_child(OrderKey child, api::orderman::Update const &);
```
## Cancel
To cancel an existing child order call `cancel_child`. When the order is canceled you will receive an update though the `on_child_change` callback.
```cpp
void IAlgoServices::cancel_child(OrderKey child);
```
## Detach
The lifetime of a child order is tied to its parent. If a parent is canceled or completed child orders are automatically stopped as well. If the Algo needs to launch an order that will continue after the Algo ends use `detach_child` to sever the connection. This order hierarchy can be viewed in the Spark [Order Book](https://www.bluetradingsystems.com/docs/bts_spark/Trading/#order-book).
```cpp
void IAlgoServices::detach_child(OrderKey child);
```
To detach all children at once use `detach_all_children`.
```cpp
void IAlgoServices::detach_all_children();
```
# Child Updated
When a child order is updated the parent receives the `on_child_change` callback with an updated ChildState object.
```cpp
void on_child_change(OrderKey, ChildState const &) override;
struct ChildState {
Price price;
Quantity quantity;
Quantity total_fills;
Price avg_price;
Quantity last_fills;
Price last_price;
ChildStatus status;
Quantity fills_at_attach_time;
};
```
<!--
To talk about:
- updating fills (update_fill_state)
- handling child finished (unexpected cancel)
-->
Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

@@ -0,0 +1,92 @@
+++
title = "Registration"
weight = 1
+++
When Spark Server starts, it loads all plugins listed in the /sparkbin/plugins directory and calls an exported function named `init_spark_plugin` which must have the following signature.
```cpp
extern "C" void init_spark_plugin(bts::SparkServices &serv) { }
```
The `init_spark_plugin` function registers the Algo with a DynamicOrderDescriptor. Once registered, the Algo appears in the [Spark ladder](https://www.bluetradingsystems.com/docs/bts_spark/Trading/#ladder) and the [Algo Studio](https://www.bluetradingsystems.com/docs/bts_spark/Trading/#algo-studio).
To register an Algo call `register_dynamic_algo_order` on the provided bts::SparkServices instance. This function takes the DynamicOrderDescriptor and a function that is called to construct the IAlgoOrder. A single init_spark_plugin can call register_dynamic_algo_order multiple times to register multiple Algos.
The DynamicOrderDescriptor must have a dynamic_order_type (name), or the registration will fail.
```cpp
DynamicOrderDescriptor desc;
desc.set_dynamic_order_type("My Algo");
auto result =
serv.register_dynamic_algo_order(
desc, []() { return std::make_unique<MyAlgo>(); });
if (result != bts::AlgoRegistrationResult::SUCCESS) {
// Algo failed to register
}
```
## DynamicOrderDescriptor
The DynamicOrderDescriptor describes the type of parameters that the Algo accepts. These inputs can come either from the user manually entering them or from a parent Algo. Spark Algos are composable, so one Algo can activate another. See [Child Orders](/server/ref/orders) for more on how to activate custom order types as child orders.
Add parameters to the DynamicOrderDescriptor by calling `add_param_desc()` and setting the name and parameter type.
```cpp
*desc.add_param_desc() = param_bool("Enable Feature");
*desc.add_param_desc() = param_uint32("Feature Quantity");
```
The above parameters look like this when rendered in the Spark ladder.
<img src="../paramsui.png" width="460" />
And like this when viewed in the Spark order book.
<img src="../orderbook_truncated.png" width="988" />
Each descriptor can be one of the following types:
```
// Primitive
int32
uint32
double
string
bool
// Complex
Order
Array
Struct
```
**Currently the Spark UI only renders parameters with primitive types.** The complex types can only be provided by a parent order.
### Order
This parameter type indicates that another order type parameterizes this Algo. When the Algo needs to create a child order, it can use this parameter type to create a custom order type instead of defaulting to a limit order.
For example, an Algo might be designed to wait for a specific market condition before putting in an order. Instead of placing a limit order when the condition is met, the user can specify that it should an IceBerg order. The Algo doesn't need special logic to handle different child order types.
### Array
An array parameter is a collection of the same type of parameter. If your Algo needed to behave differently depending on a table of prices, you could send that list in though an array parameter.
```cpp
*desc.add_param_desc() =
param_array("Price Points",
param_double("unused").param_type());
```
### Struct
A struct parameter is a set of named parameter types similar to the entire DynamicOrderDescriptor. The struct parameter type can be combined with the array type to handle tabular data.
```cpp
*desc.add_param_desc() =
param_array("Step Table",
param_struct("", {
param_uint32("Market Quantity"),
param_uint32("Order Quantity")
}).param_type());
```
@@ -0,0 +1,69 @@
+++
title = "Subscriptions"
weight = 20
+++
An Algo exists to observe changes in the market and respond to them. When the Algo is [launched](1/server/ref/initialization/#launch-launch-attached) it uses IAlgoServices to subscribe to the events it needs to operate. Each subscribe call is paired with a matching unsubscribe call, which takes the same argument to unsubscribe.
# Book
Subscribe to book updates for the specified security call use subscribe_book and unsubscribe book.
```cpp
// Subscribe to book updates for the specified security
void IAlgoServices::subscribe_book(SecurityKey);
void IAlgoServices::unsubscribe_book(SecurityKey);
// You implement
virtual void on_book(SecurityKey, Book const &) override;
```
Get the `SecurityKey` of the current security using:
```cpp
services.subscribe_book(SecurityKey(algo_services().security().id()));
```
If your Algo needs to subscribe to other securities, their keys must be passed in as parameters.
To get the details of a security use
```cpp
api::Security const* IBeforeLaunchAlgoServices::lookup_security(SecurityKey k) const = 0;
```
# Timer
To handle time-based logic, an Algo can subscribe to a common timer event that is invoked once every 10 milliseconds. Use the TimeStamp class from `bts_chrono.h` to efficiently handle time calculations.
```cpp
// Subscribe to a periodic 10ms timer
void IAlgoServices::subscribe_timer();
// You implement
virtual void on_timer() override;
```
# Ticker
The status callback is called when the market for this security opens, closes, or has some other state transition.
```cpp
// Subscribe to trade ticker
void IAlgoServices::subscribe_ticker(SecurityKey);
// You implement
void on_ticker(SecurityKey, TradeVector const&) override;
```
# Trading Status
The status callback is called when the market for this security opens, closes, or has some other state transition.
```cpp
// Subscribe to security trading status
void IAlgoServices::subscribe_status(SecurityKey);
// You implement
virtual void on_status(SecurityKey, co2::TradingStatus) override;
```
# Child Orders
When an Algo launches a child order, it is subscribed to the changes on that child automatically. If the Algo unsubscribes from those changes, it can re-subscribe using this method.
```cpp
// Subscribe to child order updates for the specified child order.
void IAlgoServices::subscribe_child_change(OrderKey);
// You implement
virtual void on_child_change(OrderKey, ChildState const &) override;
```
+6
View File
@@ -0,0 +1,6 @@
+++
title="Samples"
sort_by="weight"
weight = 3
+++
+354
View File
@@ -0,0 +1,354 @@
+++
title = "Join"
weight = 10
+++
Join starts working N ticks away from the market (usually) and then watches for the opposite inside to become same side inside market; if there is then enough size on that market, it will join.
<div class="info">
<i class="fa fa-lightbulb-o fa-fw" aria-hidden="true"></i>
This sample is part of the Server SDK examples included in the <a href="/server/getting-started/download/">spark_sdk.zip download</a>.
</div>
```cpp
#include "spark/lib/config/config.h"
#include "spark/lib/config/protos/system.pb.h"
#include "spark/lib/domain_model/Security.h"
#include "spark/lib/orderman/orders/server/IAlgoOrder.h"
#include "spark/lib/orderman/orders/server/IAlgoServices.h"
#include "spark/lib/plugin/SparkServices.h"
#include "spark/lib/orderman/order_factory/IOrderFactory.h"
#include "spark/lib/orderman/orderman_utils/Book.h"
#include "spark/lib/orderman/orderman_utils/orderman_utils.h"
#include "spark/lib/utils/PBUtils.h"
using namespace bts::api::orderman;
using namespace bts::orderman;
namespace bts {
namespace order_example {
// Join starts working N ticks away from the market (usually) and then
// watches for the opposite inside to become same side inside market;
// if there is then enough size on that market, it will join.
class DynamicJoin : public IAlgoOrder {
public:
DynamicJoin();
~DynamicJoin();
OrderOpResult do_before_launch(IBeforeLaunchAlgoServices &) override;
void do_launch(IAlgoServices &) override;
void do_launch_attached(IAlgoServices &, OrderKey, ChildState) override;
void do_update(api::orderman::Update const &) override;
void on_book(SecurityKey, Book const &) override;
void on_child_change(OrderKey, ChildState const &) override;
private:
enum class Status;
struct PImpl;
std::unique_ptr<PImpl> me;
IAlgoServices &algo_services() const;
void try_to_join();
};
// The three stages our algo goes through. We start by waiting to
// observe the book for our security (WAITING_FOR_MD). Once we have a
// book we use it to derive our target price and we continue to
// monitor the book to see if we should join the market
// (WAITING_TO_JOIN). Once the size and price constraints are met we
// jump to the target price (JOINED). We remain in the JOINED state
// until our order is filled or canceled.
enum class DynamicJoin::Status { WAITING_FOR_MD, WAITING_TO_JOIN, JOINED };
// All state information needed for this algo
struct DynamicJoin::PImpl {
IAlgoServices *algo_services;
Quantity min_quantity_to_join;
Status status = Status::WAITING_FOR_MD;
OrderKey child_key = null_order_key();
ChildTemplate *child_template = nullptr;
Book book_at_inception;
Book last_book;
};
DynamicJoin::DynamicJoin() : me(new PImpl()) {}
DynamicJoin::~DynamicJoin() {}
IAlgoServices &DynamicJoin::algo_services() const { return *me->algo_services; }
// This is called outside of the latency sensitive path
// once. Expensive initialization should be done here, rather than
// in do_launch()
OrderOpResult DynamicJoin::do_before_launch(IBeforeLaunchAlgoServices &serv) {
auto &def = serv.definition();
bts_assert(def.has_custom_def());
bts_assert(def.custom_def().has_dynamic());
// Validate our parameters, returning an error if we find a
// problem. If an error is returned here the order will be
// abandoned.
auto &params = def.custom_def().dynamic().order_params();
auto mqi = get_if<uint32_t>(params, "Min Quantity");
if (!mqi || mqi.value() == 0) {
return OrderOpResult{
ORDER_ERROR_INVALID_ORDER_DEFINITON,
"Min Quantity parameter must be defined and non zero"};
}
me->min_quantity_to_join = Quantity(mqi.value());
if (!serv.is_attaching()) {
// If we are not attaching, create a child template so we can
// quickly launch our child when the time comes.
// We will be sending a limit order with the same side,
// security, trader, account, etc, as this algo order, so just
// copy our definition to the child definition to start with.
auto child_def = def;
// Now add a limit order component to mark our child as a limit
// order. Limit orders do not require any extra parameters
// beyond those already inherited from this algo order
// (i.e. beyond what we obtained through serv.definition()) so
// we can just use a default constructed LimitOrderDefinition.
*child_def.mutable_custom_def()->mutable_limit() = LimitOrderDefinition{};
// Now just build the child template and cache it for future use
me->child_template = &(serv.make_child_template(child_def));
} else {
// If we are attaching to an existing order then we do not need
// to spawn a new child, so there is no need to setup a child
// template
}
// All is good, return a default constructed OrderOpResult which
// indicates success.
return {};
}
// Called in the latency sensitive path, once, when the algo is first
// launched.
void DynamicJoin::do_launch(IAlgoServices &services) {
// Cache our algo services
me->algo_services = &services;
LOG(OrderMan, Diag, "Lauching DynamicJoin k: {} ",
algo_services().order_key().value());
// Launch our child order
me->child_key =
services.launch_child(*me->child_template, algo_services().price(),
algo_services().quantity());
// Subscribe to market data
services.subscribe_book(SecurityKey(algo_services().security().id()));
}
// Called in the latency sensitive path, once, when the algo is first
// launched. In this case the algo is provided with an existing order
// it is now responsible for managing.
void DynamicJoin::do_launch_attached(IAlgoServices &services,
OrderKey attached_order, ChildState st) {
// The order was launched and attached to an existing order, with
// key 'attached_order' and current state 'st'
// Cache our algo services
me->algo_services = &services;
LOG(OrderMan, Diag,
"Lauching DynamicJoin k: {} Attached to existing order: {}",
algo_services().order_key().value(), attached_order.value());
// Cache the key of the attached order we will be managing
me->child_key = attached_order;
// Subscribe to market data
services.subscribe_book(SecurityKey(services.security().id()));
// Simulate a child change so we can update our own state to
// reflect that of the child order we attached to. From this point
// forward there is no distinction between an algo instance that
// spawned a new child order and one that attached to an existing
// order.
on_child_change(attached_order, st);
}
// Called when a human (or a supervising algo) updates a parameter for
// this algo. The implementation validates the update and depending on
// the validation outcome either applies the update or terminates the
// algo.
void DynamicJoin::do_update(api::orderman::Update const &update) {
LOG(OrderMan, Diag, "DynamicJoin k: {} receiving update: {}",
algo_services().order_key().value(), utils::pb::to_string(update));
// Validate update
if (update.quantity() == 0) {
// An invalid update has been detected so we terminate the
// algo, signaling an error. Any child orders launched by
// this algo will also be terminated.
algo_services().terminate_error("Invalid update");
return;
}
// Updates have two parts, a standard part consisting of price and
// size and present in all updates, and an optional part that is
// specific to the algo in question. Below we check for the
// existance of this optional part and validate if present.
bool has_new_min_qty = false;
if (update.has_custom()) {
auto &params = update.custom().dynamic().order_params();
auto mqi = params.find("Min Quantity");
if (mqi == params.end() || mqi->second.as_uint32() == 0) {
algo_services().terminate_error(
"Minimum quantity to join must be greater than 0");
return;
}
has_new_min_qty = true;
me->min_quantity_to_join = Quantity(mqi->second.as_uint32());
}
// Update is good, forward it to our child
Update child_update;
child_update.set_price(update.price());
child_update.set_quantity(update.quantity());
algo_services().update_child(me->child_key, child_update);
// Try to join again if conditions changed
if (me->status == Status::WAITING_TO_JOIN && has_new_min_qty)
try_to_join();
}
// Called when the book for the specified security has changed
void DynamicJoin::on_book(SecurityKey, Book const &b) {
// Cache the book, so we can reffer to it in the event of a
// parameter change that might allow us to join
me->last_book = b;
LOG(OrderMan, Diag, "DynamicJoin order {} on book. BID: {}@{} ASK: {}@{}",
algo_services().order_key().value(), b.side(api::SIDE_BUY)[0].size(),
b.side(api::SIDE_BUY)[0].price(), b.side(api::SIDE_SELL)[0].size(),
b.side(api::SIDE_SELL)[0].price());
switch (me->status) {
case Status::WAITING_FOR_MD: {
auto other_side =
securities::other_side(algo_services().definition().side());
auto &other_side_top = me->last_book.side(other_side)[0];
if (other_side_top.size() > 0) {
// First time we get the opposite side market, we will use
// this price as the target price for the join
me->status = Status::WAITING_TO_JOIN;
me->book_at_inception = b;
LOG(OrderMan, Diag,
"JoinOrder order {} receiving first book: {} Target: {}",
algo_services().order_key().value(),
me->min_quantity_to_join.value(), other_side_top.price());
try_to_join();
}
} break;
case Status::JOINED:
// Nothing to do at this point
break;
case Status::WAITING_TO_JOIN:
// Check if we reached the target and join if so
try_to_join();
break;
}
}
// Given the current book, our target price and our min quantity
// parameter, join if appropriate
void DynamicJoin::try_to_join() {
bts_assert(me->status == Status::WAITING_TO_JOIN);
auto my_side = algo_services().definition().side();
auto other_side = securities::other_side(my_side);
auto &my_side_psz = me->last_book.side(my_side)[0];
auto &opposite_at_inception_psz = me->book_at_inception.side(other_side)[0];
if (my_side_psz.size() &&
my_side_psz.size() >= me->min_quantity_to_join.value() &&
securities::is_equal_or_better(
my_side, Price(my_side_psz.price()),
Price(opposite_at_inception_psz.price()))) {
// Time to update our child to join the market
Update child_update;
child_update.set_price(my_side_psz.price());
child_update.set_quantity(algo_services().quantity().value());
algo_services().update_child(me->child_key, child_update);
me->status = Status::JOINED;
LOG(OrderMan, Diag, "DynamicJoin order {} joined: {}@{}",
algo_services().order_key().value(),
algo_services().quantity().value(), my_side_psz.price());
} else {
LOG(OrderMan, Diag,
"JoinOrder order {} still waiting to join. Order: {}@{} Top of "
"the book: {}@{} Target: {}@{}",
algo_services().order_key().value(),
algo_services().quantity().value(), algo_services().price().value(),
my_side_psz.size(), my_side_psz.price(),
me->min_quantity_to_join.value(), opposite_at_inception_psz.price());
}
}
// Our child reported a change:
void DynamicJoin::on_child_change(OrderKey, ChildState const &st) {
// Our fill quantity and price is always a reflection of our
// child's state
algo_services().update_fill_state(st.total_fills, st.last_price);
switch (st.status) {
case ChildStatus::WORKING:
// Child order is still working, nothing to do
return;
case ChildStatus::COMPLETED:
// Child order completed, we should also complete
algo_services().complete();
return;
case ChildStatus::CANCELED:
// Child order unexpectedly canceled, signal an error and
// terminate
algo_services().terminate_error("Unexpected child cancel");
return;
}
}
// This is called by the spark daemon at startup. In this call we
// describe our algo's parameters and register a factory function to
// create an instance of the algo.
extern "C" void init_spark_plugin(bts::SparkServices &serv) {
using namespace bts;
DynamicOrderDescriptor join_desc;
// Start by naming our order type
join_desc.set_dynamic_order_type("dyn join");
// Now add a single unsigned int parameter, Min Quantity, that will
// determine the minimum quantity that must exist in the book in
// order for us to join the market.
*join_desc.add_param_desc() = param_uint32("Min Quantity");
// Associate the descriptor with a builder function and register
// that with the Spark server.
auto result =
serv.register_dynamic_algo_order(
join_desc, []() { return std::make_unique<DynamicJoin>(); });
if (result != bts::AlgoRegistrationResult::SUCCESS) {
// The join_desc has errors
// Check the error log for more details
}
}
} // namespace order_example
} // namespace bts
```
+146
View File
@@ -0,0 +1,146 @@
+++
title = "Template"
weight = 5
+++
A mostly blank Algo template that can be used as a jump-start for developing a new Algo.
<div class="info">
<i class="fa fa-lightbulb-o fa-fw" aria-hidden="true"></i>
This sample is part of the Server SDK examples included in the <a href="/server/getting-started/download/">spark_sdk.zip download</a>.
</div>
```cpp
#include "spark/lib/config/config.h"
#include "spark/lib/config/protos/system.pb.h"
#include "spark/lib/domain_model/Security.h"
#include "spark/lib/orderman/orders/algo/IAlgoOrder.h"
#include "spark/lib/orderman/orders/algo/IAlgoServices.h"
#include "spark/lib/plugin/SparkServices.h"
#include "spark/lib/orderman/order_factory/IOrderFactory.h"
#include "spark/lib/orderman/orderman_utils/Book.h"
#include "spark/lib/orderman/orderman_utils/orderman_utils.h"
#include "spark/lib/utils/PBUtils.h"
using namespace bts::api::orderman;
using namespace bts::orderman;
namespace bts {
namespace order_example {
// MyAlgo is a blank IAlgoOrder which you can copy when starting a new Algo
class MyAlgo : public IAlgoOrder {
public:
MyAlgo();
~MyAlgo();
OrderOpResult do_before_launch(IBeforeLaunchAlgoServices &) override;
void do_launch(IAlgoServices &) override;
void do_launch_attached(IAlgoServices &, OrderKey, ChildState) override;
void do_update(api::orderman::Update const &) override;
void on_book(SecurityKey, Book const &) override;
void on_child_change(OrderKey, ChildState const &) override;
private:
IAlgoServices* algo_services;
ChildTemplate *child_template = nullptr;
OrderKey child_key = null_order_key();
};
MyAlgo::MyAlgo() : algo_services(nullptr) {}
MyAlgo::~MyAlgo() {}
// This is called outside of the latency sensitive path.
// Expensive initialization should be done here, rather than in do_launch()
OrderOpResult MyAlgo::do_before_launch(IBeforeLaunchAlgoServices &serv) {
LOG(Sdk,Info, "MyAlgo: do_before_launch");
// If we are not attaching, create a child template so we can
// quickly launch our child when the time comes.
if (!serv.is_attaching()) {
// We will be sending a limit order with the same side,
// security, trader, account, etc, as this algo order, so just
// copy our definition to the child definition to start with.
auto child_def = serv.definition();
// Now add a limit order component to mark our child as a limit
// order. Limit orders do not require any extra parameters
// beyond those already inherited from this algo order
// (i.e. beyond what we obtained through serv.definition()) so
// we can just use a default constructed LimitOrderDefinition.
*child_def.mutable_custom_def()->mutable_limit() = LimitOrderDefinition{};
// Now just build the child template and cache it for future use
child_template = &(serv.make_child_template(child_def));
}
// Default constructed result is successful
return {};
}
// Called in the latency sensitive path, once, when the algo is first launched.
// If the Algo is attaching to an existing order do_launch_attached is called instead.
void MyAlgo::do_launch(IAlgoServices &services) {
algo_services = &services;
// Subscribe to book updates for this security
services.subscribe_book(SecurityKey(services.security().id()));
// Launch a child limit order
child_key =
services.launch_child(*child_template, services.price(), services.quantity());
LOG(Sdk,Info, "MyAlgo: do_launch");
}
// Called in the latency sensitive path, once, when the algo is first
// launched. In this case the algo is provided with an existing order
// it is now responsible for managing.
void MyAlgo::do_launch_attached(IAlgoServices &services,
OrderKey attached_order, ChildState st) {
algo_services = &services;
// Subscribe to book updates for this security
services.subscribe_book(SecurityKey(services.security().id()));
// Keep track of the child key
child_key = attached_order;
LOG(Sdk,Info, "MyAlgo: do_launch_attached");
}
// Called when a human (or a supervising algo) updates a parameter for
// this algo. The implementation validates the update and depending on
// the validation outcome either applies the update or terminates the algo.
void MyAlgo::do_update(api::orderman::Update const &update) {
}
// Called when the book for the specified security has changed
void MyAlgo::on_book(SecurityKey, Book const &b) {
}
// Our child reported a change
void MyAlgo::on_child_change(OrderKey, ChildState const &st) {
}
// This is called by the spark daemon at startup. In this call we
// describe our algo's parameters and register a factory function to
// create an instance of the algo.
extern "C" void init_spark_plugin(bts::SparkServices &serv) {
using namespace bts;
DynamicOrderDescriptor desc;
// Start by naming our order type
desc.set_dynamic_order_type("My Algo");
*desc.add_param_desc() = param_bool("Enable Feature");
*desc.add_param_desc() = param_uint32("Feature Quantity");
// Associate the descriptor with a builder function and register
// that with the Spark server.
auto result =
serv.register_dynamic_algo_order(
desc, []() { return std::make_unique<MyAlgo>(); });
if (result != bts::AlgoRegistrationResult::SUCCESS) {
// The desc has errors
// Check the error log (/sparkdata/data/logging/log) for more details
}
}
} // namespace order_example
} // namespace bts
```
+9
View File
@@ -0,0 +1,9 @@
#/bin/bash
# ../../externals/linux/bin/zola/zola build
zola.exe build
rsync -avzL public/ bts@api.bluetradesys.com:/data/sdk/public/
rm -rf ./public/
+97
View File
@@ -0,0 +1,97 @@
html, body {
font-size: 16px;
height: 100%;
}
body {
font-family: "Source Sans Pro", "Open Sans","Helvetica Neue",Helvetica,Arial,sans-serif;
line-height: 1.6;
// from http://www.heropatterns.com
background-color: #0072a2;
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' viewBox='0 0 100 100'%3E%3Cg fill-rule='evenodd'%3E%3Cg fill='%234b4b4b' fill-opacity='0.4'%3E%3Cpath opacity='.5' d='M96 95h4v1h-4v4h-1v-4h-9v4h-1v-4h-9v4h-1v-4h-9v4h-1v-4h-9v4h-1v-4h-9v4h-1v-4h-9v4h-1v-4h-9v4h-1v-4h-9v4h-1v-4H0v-1h15v-9H0v-1h15v-9H0v-1h15v-9H0v-1h15v-9H0v-1h15v-9H0v-1h15v-9H0v-1h15v-9H0v-1h15v-9H0v-1h15V0h1v15h9V0h1v15h9V0h1v15h9V0h1v15h9V0h1v15h9V0h1v15h9V0h1v15h9V0h1v15h9V0h1v15h4v1h-4v9h4v1h-4v9h4v1h-4v9h4v1h-4v9h4v1h-4v9h4v1h-4v9h4v1h-4v9h4v1h-4v9zm-1 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-9-10h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm9-10v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-9-10h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm9-10v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-9-10h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm9-10v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-9-10h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9z'/%3E%3Cpath d='M6 5V0H5v5H0v1h5v94h1V6h94V5H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
color: $foreground;
// for sticky footer
display: flex;
flex-direction: column;
min-height: 100vh;
}
a {
color: $link-color;
text-decoration: none;
cursor: pointer;
border-bottom: 1px solid rgba(0, 124, 188, 0.25);
&:hover {
border-bottom: 1px solid $link-color;
}
&:visited {
color: $link-color;
}
// totally taken from stripe
&.button {
outline: none;
white-space: nowrap;
display: inline-block;
height: 40px;
line-height: 40px;
padding: 0 14px;
box-shadow: 0 4px 6px rgba(50, 50, 93, 0.11), 0 1px 3px rgba(0, 0, 0, 0.08);
background: #fff;
border-radius: 4px;
font-size: 15px;
font-weight: 600;
text-transform: uppercase;
letter-spacing: .025em;
color: #191919;
text-decoration: none;
transition: all .15s ease;
border-bottom: none;
&:hover {
transform: translateY(-1px);
text-decoration: none;
box-shadow: 0 7px 14px rgba(50, 50, 93, 0.1), 0 3px 6px rgba(0, 0, 0, 0.08);
}
&:active {
background-color: #f6f9fc;
transform: translateY(1px);
}
}
&.white {
color: white;
border-bottom-color: rgba(255, 255, 255, 0.25);
&:hover {
border-bottom-color: white;
}
&:visited {
color: white;
}
}
}
pre {
padding: 1rem;
overflow: auto;
}
p code, li code {
// color: #e6e1dc;
// background-color: #383838;
color: #191919;
background-color: #f5f5f5;
white-space: pre-wrap;
padding: 3px;
border-radius: 3px;
font-size: 0.85rem;
font-family: monospace;
// box-shadow: 0 1px 3px rgba(0,0,0,.1), 0 1px 1px rgba(0,0,0,.1), 0 2px 1px -1px rgba(0,0,0,.12);
}
+96
View File
@@ -0,0 +1,96 @@
.documentation {
padding: 3rem;
display: flex;
&__sidebar {
margin-right: 2rem;
ul {
padding-left: 0;
list-style: none;
}
> ul {
> li {
margin-bottom: 1rem;
}
.documentation__sidebar__title {
font-size: 1.25rem;
font-weight: bold;
}
ul {
margin-top: 0.25rem;
li {
border-left: 1px solid $background;
padding-left: 0.75rem;
padding-top: 0.25rem;
padding-bottom: 0.25rem;
}
li.active a {
font-weight: bold;
border-bottom: 1px solid $link-color;
}
}
}
}
&__content {
width: 60%;
// Same as the anchor absolute left to not overlap
margin-left: 2rem;
h1, h2, h3, h4, h5, h6 {
.zola-anchor {
font-size: 1.25rem;
visibility: hidden;
margin-left: -2rem;
text-decoration: none;
border-bottom-color: transparent;
cursor: pointer;
}
&:hover {
.zola-anchor {
visibility: visible;
}
}
}
blockquote {
border-left: 10px solid black;
padding: 0.25rem 0.5rem;
margin-left: 0;
font-style: italic;
}
}
iframe {
width: 100%;
min-height: 400px;
}
}
@media only screen and (max-width: 1000px) {
.documentation {
flex-direction: column;
padding: 2rem;
&__content {
width: 100%;
margin-left: 0;
}
&__sidebar {
border-top: 1px solid $background;
order: 1;
margin-right: 0;
margin-top: 1rem;
}
}
}
+33
View File
@@ -0,0 +1,33 @@
header {
.header__logo {
border-bottom: none;
}
nav a {
margin-right: 2rem;
}
.header__logo {
font-size: 2rem;
font-weight: bold;
&:hover {
text-decoration: none;
}
}
}
@media only screen and (max-width: 1000px) {
header {
padding: 1rem 0;
nav {
text-align: center;
}
.header__logo {
// to force menu links to be on a line below
display: block;
}
}
}
+71
View File
@@ -0,0 +1,71 @@
.inverted-colours {
background: $foreground;
color: $background;
}
.hero {
width: 60%;
margin: 0 auto;
margin-top: 2rem;
margin-bottom: 4rem;
text-align: center;
&__tagline {
margin-bottom: 2rem;
}
}
.disabled {
opacity: 0.5;
}
.selling-points {
padding: 3rem;
&__content {
display: flex;
flex-wrap: wrap;
}
}
.selling-point {
// 2 selling points per row on desktop
width: 50%;
padding: 2rem;
padding-top: 1rem;
}
.selling-header {
width: 100%;
padding: 1rem;
padding-top: 0rem;
display: flex;
align-items: center;
justify-content: center;
img {
align-self: center;
max-width: 70%;
}
}
// and 1 on mobile
@media only screen and (max-width: 1000px) {
.hero {
width: 90%;
margin-top: 2rem;
margin-bottom: 4rem;
}
.selling-points {
padding: 2rem;
}
.selling-point {
width: 100%;
padding: 1rem;
h2 {
text-align: center;
}
}
}
+43
View File
@@ -0,0 +1,43 @@
header {
padding: 2rem 3rem;
}
.container {
max-width: 1000px;
margin: 0 auto;
}
@media only screen and (max-width: 1000px) {
.container {
max-width: 90%;
}
}
.content {
flex-grow: 1;
&--reversed {
background: $foreground;
color: $background;
}
}
.linux {
padding: 25px 15px;
background: #eff0f1;
border-radius: 5px;
border: 1px solid #0072a2;
}
.info {
padding: 25px 15px;
background: #ffffe0;
border-radius: 5px;
border: 1px solid #383838;
}
footer {
text-align: center;
padding: 2rem 3rem;
}
+447
View File
@@ -0,0 +1,447 @@
/*! normalize.css v7.0.0 | MIT License | github.com/necolas/normalize.css */
/* Document
========================================================================== */
/**
* 1. Correct the line height in all browsers.
* 2. Prevent adjustments of font size after orientation changes in
* IE on Windows Phone and in iOS.
*/
html {
line-height: 1.15; /* 1 */
-ms-text-size-adjust: 100%; /* 2 */
-webkit-text-size-adjust: 100%; /* 2 */
}
/* Sections
========================================================================== */
/**
* Remove the margin in all browsers (opinionated).
*/
body {
margin: 0;
}
/**
* Add the correct display in IE 9-.
*/
article,
aside,
footer,
header,
nav,
section {
display: block;
}
/**
* Correct the font size and margin on `h1` elements within `section` and
* `article` contexts in Chrome, Firefox, and Safari.
*/
h1 {
font-size: 2em;
margin: 0.67em 0;
}
/* Grouping content
========================================================================== */
/**
* Add the correct display in IE 9-.
* 1. Add the correct display in IE.
*/
figcaption,
figure,
main { /* 1 */
display: block;
}
/**
* Add the correct margin in IE 8.
*/
figure {
margin: 1em 40px;
}
/**
* 1. Add the correct box sizing in Firefox.
* 2. Show the overflow in Edge and IE.
*/
hr {
box-sizing: content-box; /* 1 */
height: 0; /* 1 */
overflow: visible; /* 2 */
}
/**
* 1. Correct the inheritance and scaling of font size in all browsers.
* 2. Correct the odd `em` font sizing in all browsers.
*/
pre {
font-family: monospace, monospace; /* 1 */
font-size: 1em; /* 2 */
}
/* Text-level semantics
========================================================================== */
/**
* 1. Remove the gray background on active links in IE 10.
* 2. Remove gaps in links underline in iOS 8+ and Safari 8+.
*/
a {
background-color: transparent; /* 1 */
-webkit-text-decoration-skip: objects; /* 2 */
}
/**
* 1. Remove the bottom border in Chrome 57- and Firefox 39-.
* 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
*/
abbr[title] {
border-bottom: none; /* 1 */
text-decoration: underline; /* 2 */
text-decoration: underline dotted; /* 2 */
}
/**
* Prevent the duplicate application of `bolder` by the next rule in Safari 6.
*/
b,
strong {
font-weight: inherit;
}
/**
* Add the correct font weight in Chrome, Edge, and Safari.
*/
b,
strong {
font-weight: bolder;
}
/**
* 1. Correct the inheritance and scaling of font size in all browsers.
* 2. Correct the odd `em` font sizing in all browsers.
*/
code,
kbd,
samp {
font-family: monospace, monospace; /* 1 */
font-size: 1em; /* 2 */
}
/**
* Add the correct font style in Android 4.3-.
*/
dfn {
font-style: italic;
}
/**
* Add the correct background and color in IE 9-.
*/
mark {
background-color: #ff0;
color: #000;
}
/**
* Add the correct font size in all browsers.
*/
small {
font-size: 80%;
}
/**
* Prevent `sub` and `sup` elements from affecting the line height in
* all browsers.
*/
sub,
sup {
font-size: 75%;
line-height: 0;
position: relative;
vertical-align: baseline;
}
sub {
bottom: -0.25em;
}
sup {
top: -0.5em;
}
/* Embedded content
========================================================================== */
/**
* Add the correct display in IE 9-.
*/
audio,
video {
display: inline-block;
}
/**
* Add the correct display in iOS 4-7.
*/
audio:not([controls]) {
display: none;
height: 0;
}
/**
* Remove the border on images inside links in IE 10-.
*/
img {
border-style: none;
}
/**
* Hide the overflow in IE.
*/
svg:not(:root) {
overflow: hidden;
}
/* Forms
========================================================================== */
/**
* 1. Change the font styles in all browsers (opinionated).
* 2. Remove the margin in Firefox and Safari.
*/
button,
input,
optgroup,
select,
textarea {
font-family: sans-serif; /* 1 */
font-size: 100%; /* 1 */
line-height: 1.15; /* 1 */
margin: 0; /* 2 */
}
/**
* Show the overflow in IE.
* 1. Show the overflow in Edge.
*/
button,
input { /* 1 */
overflow: visible;
}
/**
* Remove the inheritance of text transform in Edge, Firefox, and IE.
* 1. Remove the inheritance of text transform in Firefox.
*/
button,
select { /* 1 */
text-transform: none;
}
/**
* 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`
* controls in Android 4.
* 2. Correct the inability to style clickable types in iOS and Safari.
*/
button,
html [type="button"], /* 1 */
[type="reset"],
[type="submit"] {
-webkit-appearance: button; /* 2 */
}
/**
* Remove the inner border and padding in Firefox.
*/
button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
border-style: none;
padding: 0;
}
/**
* Restore the focus styles unset by the previous rule.
*/
button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
outline: 1px dotted ButtonText;
}
/**
* Correct the padding in Firefox.
*/
fieldset {
padding: 0.35em 0.75em 0.625em;
}
/**
* 1. Correct the text wrapping in Edge and IE.
* 2. Correct the color inheritance from `fieldset` elements in IE.
* 3. Remove the padding so developers are not caught out when they zero out
* `fieldset` elements in all browsers.
*/
legend {
box-sizing: border-box; /* 1 */
color: inherit; /* 2 */
display: table; /* 1 */
max-width: 100%; /* 1 */
padding: 0; /* 3 */
white-space: normal; /* 1 */
}
/**
* 1. Add the correct display in IE 9-.
* 2. Add the correct vertical alignment in Chrome, Firefox, and Opera.
*/
progress {
display: inline-block; /* 1 */
vertical-align: baseline; /* 2 */
}
/**
* Remove the default vertical scrollbar in IE.
*/
textarea {
overflow: auto;
}
/**
* 1. Add the correct box sizing in IE 10-.
* 2. Remove the padding in IE 10-.
*/
[type="checkbox"],
[type="radio"] {
box-sizing: border-box; /* 1 */
padding: 0; /* 2 */
}
/**
* Correct the cursor style of increment and decrement buttons in Chrome.
*/
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
height: auto;
}
/**
* 1. Correct the odd appearance in Chrome and Safari.
* 2. Correct the outline style in Safari.
*/
[type="search"] {
-webkit-appearance: textfield; /* 1 */
outline-offset: -2px; /* 2 */
}
/**
* Remove the inner padding and cancel buttons in Chrome and Safari on macOS.
*/
[type="search"]::-webkit-search-cancel-button,
[type="search"]::-webkit-search-decoration {
-webkit-appearance: none;
}
/**
* 1. Correct the inability to style clickable types in iOS and Safari.
* 2. Change font properties to `inherit` in Safari.
*/
::-webkit-file-upload-button {
-webkit-appearance: button; /* 1 */
font: inherit; /* 2 */
}
/* Interactive
========================================================================== */
/*
* Add the correct display in IE 9-.
* 1. Add the correct display in Edge, IE, and Firefox.
*/
details, /* 1 */
menu {
display: block;
}
/*
* Add the correct display in all browsers.
*/
summary {
display: list-item;
}
/* Scripting
========================================================================== */
/**
* Add the correct display in IE 9-.
*/
canvas {
display: inline-block;
}
/**
* Add the correct display in IE.
*/
template {
display: none;
}
/* Hidden
========================================================================== */
/**
* Add the correct display in IE 10-.
*/
[hidden] {
display: none;
}
+47
View File
@@ -0,0 +1,47 @@
.search-container {
display: inline-block;
position: relative;
width: 300px;
input {
width: 100%;
padding: 0.5rem;
}
}
.search-results {
display: none;
position: absolute;
background: white;
color: black;
padding: 1rem;
box-shadow: 2px 2px 2px 0 rgba(0, 0, 0, 0.5);
max-height: 500px;
overflow: auto;
width: 150%;
right: 0;
&__items {
list-style: none;
}
li {
margin-top: 1rem;
border-bottom: 1px solid #ccc;
font-size: 0.9rem;
&:first-of-type {
margin-top: 0;
}
}
&__item {
margin-bottom: 1rem;
a {
font-size: 1.2rem;
display: inline-block;
margin-bottom: 0.5rem;
}
}
}
+79
View File
@@ -0,0 +1,79 @@
.themes-container {
padding: 3rem;
width: 80%;
margin: 0 auto;
img {
max-width: 100%;
}
}
@media only screen and (max-width: 1000px) {
.themes-container {
width: 100%;
margin: 0 1rem;
}
}
.themes {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
.theme {
width: 45%;
text-decoration: none;
cursor: pointer;
margin-bottom: 2rem;
border-bottom: none;
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.4);
padding: 10px;
img {
width: 100%;
height: 90%;
}
span {
display: block;
text-align: center;
font-size: 1.1rem;
}
}
}
.theme-info {
display: flex;
align-items: flex-start;
.thumb {
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.07);
width: 400px;
margin-right: 2rem;
}
h1, p {
margin: 0;
}
padding: 1rem;
}
@media only screen and (max-width: 1000px) {
.themes .theme {
width: 100%;
}
}
@media only screen and (max-width: 1000px) {
.theme-info {
flex-direction: column;
align-items: center;
img {
margin-bottom: 1rem;
}
}
}
+19
View File
@@ -0,0 +1,19 @@
@charset "utf-8";
@import "normalize";
*, *:before, *:after {
box-sizing: border-box;
}
$background: #191919;
$foreground: white;
$link-color: #007CBC;
@import "base";
@import "layout";
@import "header";
@import "index";
@import "docs";
@import "themes";
@import "search";
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

+2
View File
@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg enable-background="new 0 0 523.438 166.055" version="1.1" viewBox="0 0 523.44 166.06" xmlns="http://www.w3.org/2000/svg"><path d="m297.43 153.29c-18.051-6.698-91.506-40.523-160.87-72.832-69.291-32.28-134.17-62.929-134.17-62.929-2.082-0.983-2.971-3.466-1.987-5.549 0.981-2.079 3.466-2.97 5.548-1.988 0.037 0.02 16.216 7.661 41.09 19.354 24.874 11.695 58.412 27.425 93.046 43.557 69.192 32.242 143.09 66.232 160.25 72.574 20.188 7.443 37.922 12.204 80.113 12.239 30.434 0 73.407-2.559 138.44-8.568 2.288-0.211 4.319 1.474 4.531 3.765 0.208 2.29-1.478 4.324-3.771 4.536-65.152 6.014-108.31 8.602-139.2 8.605h-0.423c-42.393-1e-3 -61.964-5.092-82.59-12.764z" fill="#B3B3B3"/><path d="m45.824 145.9v-138.39h101.28c27.03 0 44.924 12.184 44.924 35.789 0 17.513-8.947 26.27-19.226 29.506 12.564 3.996 21.702 15.039 21.702 31.22 0 25.319-17.516 41.88-44.545 41.88h-104.13zm41.692-60.155v-20.37h59.774c13.707 0 20.179-4.758 20.179-16.751 0-14.658-11.613-16.943-29.507-16.943h-67.96v90.234h70.052c17.325 0 29.889-4.759 29.889-18.276 0-11.423-7.423-17.894-20.939-17.894h-61.488z" fill="#0086BF"/><path d="m149.96 153.4h-104.13v-7.502h7.501-7.501v7.502h-7.504v-153.4h108.78c14.604 0.018 27.473 3.236 37.154 10.583 9.724 7.301 15.384 19.035 15.273 32.71 0.018 10.01-2.623 18.337-7.222 24.554-1.308 1.779-2.755 3.368-4.306 4.774 2.395 1.964 4.557 4.235 6.422 6.792 4.847 6.626 7.594 15.107 7.58 24.606 0.044 14.363-5.105 27.096-14.494 35.896-9.347 8.809-22.486 13.486-37.463 13.486-0.028 1e-3 -0.058 1e-3 -0.088 1e-3zm0-15.007c12.016-0.018 21.114-3.62 27.266-9.402 6.125-5.814 9.736-14.02 9.777-24.973-0.015-6.687-1.835-11.817-4.698-15.757-2.875-3.934-6.891-6.753-11.775-8.315l-22.267-7.085c-0.322 7e-3 -0.645 0.011-0.97 0.012h-52.271v5.367h53.988c7.892 0 15.036 1.876 20.422 6.475 5.429 4.589 8.092 11.651 8.015 18.922 0.016 4.524-1.103 8.88-3.35 12.497-2.236 3.632-5.46 6.38-9.02 8.3-7.172 3.825-15.677 4.938-25.019 4.979h-77.553v-105.24h75.46c6.958 0.014 13.253 0.288 19.035 1.724 5.677 1.383 11.425 4.37 14.807 10.025 2.23 3.702 3.174 8.068 3.171 12.698-5e-3 3.663-0.489 7.129-1.729 10.368-1.045 2.753-2.714 5.301-4.853 7.329l2.154-0.677c3.906-1.243 7.213-3.358 9.68-6.692 2.445-3.351 4.276-8.156 4.297-15.657-0.111-9.936-3.399-16.094-9.377-20.786-6.028-4.645-15.62-7.52-28.046-7.501l-93.773-3e-3v123.39h96.629v-1e-3zm-72.453-23.984h62.551c5.981 0.011 11.112-0.651 14.744-1.85 3.688-1.218 5.575-2.753 6.528-4.306 0.647-1.077 1.099-2.388 1.113-4.618-0.073-4.151-1.124-6.039-2.785-7.541-1.701-1.492-5.034-2.853-10.648-2.853h-61.49v-7.501h7.501-7.501v7.501h-7.504v-35.372h67.277c4.502 0.018 7.602-0.643 9.234-1.431 1.634-0.854 2.056-1.329 2.718-2.838 0.402-1.025 0.728-2.648 0.728-4.979-0.01-2.704-0.518-4.121-1.023-4.967-0.526-0.837-1.154-1.457-2.696-2.209-3.023-1.521-9.667-2.335-18.288-2.268h-60.459v75.232z" fill="#fff"/><path d="M251.22,145.899V31.68h-52.54V7.505h129.256V31.68h-52.539v114.22H251.22z" fill="#0086BF"/><path d="m251.22 153.4v-7.499h7.501-7.501v7.499h-7.504l-2e-3 -114.22h-52.538v-39.175h144.26v39.175h-52.541v114.22h-31.678zm16.673-15.001v-114.22h52.538v-9.171h-114.25v9.171h52.542v114.22h9.171v-1e-3z" fill="#fff"/><path d="m340.11 145.9v-24.176h103.74c12.942 0 20.177-7.233 20.177-18.083 0-11.802-7.234-17.893-20.177-17.893h-63.58c-26.075 0-42.257-16.562-42.257-39.404 0-22.271 15.038-38.831 42.639-38.831h99.365v24.174h-99.365c-11.042 0-17.514 6.473-17.514 16.94 0 10.469 6.661 16.751 17.324 16.751h63.388c27.98 0 43.02 13.134 43.02 39.974 0 23.226-14.089 40.546-43.02 40.546h-103.74z" fill="#383431"/><path d="m443.85 153.4h-103.74v-7.499h7.498-7.498v7.499h-7.505v-39.176h111.25c5.118-0.02 8.116-1.385 9.849-2.984 1.71-1.622 2.774-3.8 2.823-7.597-0.071-4.45-1.162-6.342-2.67-7.727-1.55-1.385-4.646-2.668-10.002-2.668h-63.58c-14.603 0.028-27.235-4.711-36.097-13.218-8.89-8.476-13.698-20.511-13.666-33.685-0.032-12.792 4.428-24.712 13.274-33.177 8.826-8.496 21.605-13.184 36.87-13.155h106.86v39.176h-106.86c-4.11 0.028-6.327 1.125-7.658 2.411-1.313 1.309-2.315 3.29-2.354 7.027 0.043 3.691 1.042 5.592 2.354 6.89 1.338 1.278 3.562 2.338 7.469 2.36h63.388c15.081-7e-3 27.896 3.536 37.065 11.888 9.185 8.367 13.511 20.865 13.455 35.59 0.022 13.078-4.037 25.357-12.824 34.248-8.729 8.882-21.678 13.796-37.497 13.796-0.066 1e-3 -0.135 1e-3 -0.2 1e-3zm-96.246-14.999 96.246-4e-3c13.017-0.037 21.505-3.779 27.018-9.329 5.488-5.576 8.475-13.569 8.494-23.712-0.052-12.118-3.246-19.606-8.572-24.519-5.35-4.923-14.046-7.951-26.939-7.956h-63.388c-6.76 0.022-13.199-2.056-17.858-6.541-4.686-4.459-7.014-10.932-6.972-17.712-0.038-6.729 2.191-13.218 6.88-17.764 4.659-4.564 11.2-6.707 18.14-6.678h91.856v-9.174l-91.856 4e-3c-12.341 0.026-20.88 3.617-26.474 8.971-5.574 5.382-8.632 12.875-8.667 22.358 0.035 9.665 3.317 17.334 9.038 22.85 5.746 5.486 14.244 9.029 25.721 9.049h63.58c7.58 0 14.573 1.767 19.88 6.38 5.34 4.606 7.87 11.665 7.799 19.018 0.048 7.05-2.504 13.916-7.652 18.62-5.117 4.73-12.205 6.982-20.026 6.965l-96.246-6e-3v9.18h-2e-3z" fill="#fff"/><path d="m45.824 145.9v-138.39h101.27c6Line truncated

After

Width:  |  Height:  |  Size: 7.6 KiB

+180
View File
@@ -0,0 +1,180 @@
function debounce(func, wait) {
var timeout;
return function () {
var context = this;
var args = arguments;
clearTimeout(timeout);
timeout = setTimeout(function () {
timeout = null;
func.apply(context, args);
}, wait);
};
}
// Taken from mdbook
// The strategy is as follows:
// First, assign a value to each word in the document:
// Words that correspond to search terms (stemmer aware): 40
// Normal words: 2
// First word in a sentence: 8
// Then use a sliding window with a constant number of words and count the
// sum of the values of the words within the window. Then use the window that got the
// maximum sum. If there are multiple maximas, then get the last one.
// Enclose the terms in <b>.
function makeTeaser(body, terms) {
var TERM_WEIGHT = 40;
var NORMAL_WORD_WEIGHT = 2;
var FIRST_WORD_WEIGHT = 8;
var TEASER_MAX_WORDS = 30;
var stemmedTerms = terms.map(function (w) {
return elasticlunr.stemmer(w.toLowerCase());
});
var termFound = false;
var index = 0;
var weighted = []; // contains elements of ["word", weight, index_in_document]
// split in sentences, then words
var sentences = body.toLowerCase().split(". ");
for (var i in sentences) {
var words = sentences[i].split(" ");
var value = FIRST_WORD_WEIGHT;
for (var j in words) {
var word = words[j];
if (word.length > 0) {
for (var k in stemmedTerms) {
if (elasticlunr.stemmer(word).startsWith(stemmedTerms[k])) {
value = TERM_WEIGHT;
termFound = true;
}
}
weighted.push([word, value, index]);
value = NORMAL_WORD_WEIGHT;
}
index += word.length;
index += 1; // ' ' or '.' if last word in sentence
}
index += 1; // because we split at a two-char boundary '. '
}
if (weighted.length === 0) {
return body;
}
var windowWeights = [];
var windowSize = Math.min(weighted.length, TEASER_MAX_WORDS);
// We add a window with all the weights first
var curSum = 0;
for (var i = 0; i < windowSize; i++) {
curSum += weighted[i][1];
}
windowWeights.push(curSum);
for (var i = 0; i < weighted.length - windowSize; i++) {
curSum -= weighted[i][1];
curSum += weighted[i + windowSize][1];
windowWeights.push(curSum);
}
// If we didn't find the term, just pick the first window
var maxSumIndex = 0;
if (termFound) {
var maxFound = 0;
// backwards
for (var i = windowWeights.length - 1; i >= 0; i--) {
if (windowWeights[i] > maxFound) {
maxFound = windowWeights[i];
maxSumIndex = i;
}
}
}
var teaser = [];
var startIndex = weighted[maxSumIndex][2];
for (var i = maxSumIndex; i < maxSumIndex + windowSize; i++) {
var word = weighted[i];
if (startIndex < word[2]) {
// missing text from index to start of `word`
teaser.push(body.substring(startIndex, word[2]));
startIndex = word[2];
}
// add <em/> around search terms
if (word[1] === TERM_WEIGHT) {
teaser.push("<b>");
}
startIndex = word[2] + word[0].length;
teaser.push(body.substring(word[2], startIndex));
if (word[1] === TERM_WEIGHT) {
teaser.push("</b>");
}
}
teaser.push("…");
return teaser.join("");
}
function formatSearchResultItem(item, terms) {
return '<div class="search-results__item">'
+ `<a href="${item.ref}">${item.doc.title}</a>`
+ `<div>${makeTeaser(item.doc.body, terms)}</div>`
+ '</div>';
}
function initSearch() {
var $searchInput = document.getElementById("search");
var $searchResults = document.querySelector(".search-results");
var $searchResultsItems = document.querySelector(".search-results__items");
var MAX_ITEMS = 10;
var options = {
bool: "AND",
fields: {
title: {boost: 2},
body: {boost: 1},
}
};
var currentTerm = "";
var index = elasticlunr.Index.load(window.searchIndex);
$searchInput.addEventListener("keyup", debounce(function() {
var term = $searchInput.value.trim();
if (term === currentTerm || !index) {
return;
}
$searchResults.style.display = term === "" ? "none" : "block";
$searchResultsItems.innerHTML = "";
if (term === "") {
return;
}
var results = index.search(term, options);
if (results.length === 0) {
$searchResults.style.display = "none";
return;
}
currentTerm = term;
for (var i = 0; i < Math.min(results.length, MAX_ITEMS); i++) {
var item = document.createElement("li");
item.innerHTML = formatSearchResultItem(results[i], term.split(" "));
$searchResultsItems.appendChild(item);
}
}, 150));
}
if (document.readyState === "complete" ||
(document.readyState !== "loading" && !document.documentElement.doScroll)
) {
initSearch();
} else {
document.addEventListener("DOMContentLoaded", initSearch);
}
+101
View File
@@ -0,0 +1,101 @@
<!DOCTYPE html>
<html lang="en-us">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="apple-mobile-web-app-capable" content="yes">
<link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600" rel="stylesheet" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="{% block description %}{{ config.description }}{% endblock description %}">
<meta name="keywords" content="Futures, Options, Derivatives, Trade, Trading, Professional, options trading, futures trading, Software, API, SDK" />
<meta name="rights" content="© Blue Trading Systems" />
<meta name="author" content="{{ config.extra.author }}">
<title>{% block title %}{{ config.title }}{% endblock title %}</title>
<link rel="stylesheet" href="{{ get_url(path="site.css") }}"/>
<link rel="icon" href="{{ get_url(path="favicon.ico") }}">
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
<script> dataLayer = [{ 'visitorType': 'geek' }]; </script>
</head>
<body>
<header>
<nav class="{% block extra_nav_class %}container{% endblock extra_nav_class %}">
<a class="header__logo white" href="{{ config.base_url }}">
<img width="100" src="/images/logo.svg">
</a>
<a class="white" href="{{ get_url(path="@/server/_index.md") }}" class="nav-link">Server SDK</a>
<a class="white" href="{{ get_url(path="@/client/_index.md") }}" class="nav-link">Client SDK</a>
<a class="white" href="https://www.bluetradingsystems.com/bts-spark" class="nav-link">About Spark</a>
<div class="search-container">
<input id="search" type="search" placeholder="🔎 Search">
<div class="search-results">
<div class="search-results__items"></div>
</div>
</div>
</nav>
</header>
<div class="content content--reversed">
{% block content %}
<div class="hero">
<h1>Spark SDK</h1>
<p class="hero__tagline">
Spark consists of a client UI
(<a href="https://www.bluetradingsystems.com/bts-spark#ladder-algo-screen">Spark Client</a>),
a high-performance professional futures front end, connected via our proprietary protocol over TCP to our Spark Server, which in turn connects to execution venues via their native protocols.
Use the Spark SDK to extend Spark Server with your custom Algos, then use the Client SDK to launch and control them.
</p>
</div>
<div class="inverted-colours selling-points">
<div class="selling-points__content container">
<div class="selling-header">
<img src="/images/API.png" width="100%" />
</div>
<div class="selling-point">
<h2>
Server SDK
<i class="fa fa-tachometer" aria-hidden="true"></i>
</h2>
<p>
Leverage the ultra-low latency Spark C++ API to develop and run your custom Algo. Have your first sub-10 microsecond trading algorithm running in under an hour.
</p>
<a href="{{ get_url(path="@/server/_index.md") }}" class="button">Get started</a>
</div>
<div class="selling-point">
<h2>
Client SDK
<i class="fa fa-gamepad" aria-hidden="true"></i>
</h2>
<p>
The Spark client SDK allows you to integrate spark with your existing ecosystem. The Spark Client is built entirely on this simple, powerful API.
</p>
<a href="{{ get_url(path="@/client/_index.md") }}" class="button">Get started</a>
</div>
</div>
</div>
{% endblock content %}
</div>
<footer>
© Blue Trading Systems
</footer>
<script>
if (location.hostname == "api.bluetradesys.com") {
(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-56FHG8R');
}
</script>
<script type="text/javascript" src="{{ get_url(path="elasticlunr.min.js") }}"></script>
<script type="text/javascript" src="{{ get_url(path="search_index.en.js") }}"></script>
<script type="text/javascript" src="{{ get_url(path="search.js") }}"></script>
</body>
</html>
+53
View File
@@ -0,0 +1,53 @@
{% extends "index.html" %}
{# this has access to the "page" variable but documentation.html does not #}
{% block title %}{{ page.title }} | {{ super() }} {% endblock title %}
{% block next_link %}
{% endblock next_link %}
{% block content %}
{% set section = get_section(path=page.ancestors[1]) %}
{#
{#<div>{{ section.title }} </div>#}
<div class="documentation">
<aside class="documentation__sidebar">
<ul>
{% for p in section.subsections %}
{% set subsection = get_section(path=p) %}
<li>
<span class="documentation__sidebar__title">{{ subsection.title }}</span>
<ul>
{% for page in subsection.pages %}
<li class="{% if current_path == page.path %}active{% endif %}">
<a href="{{page.permalink}}">{{page.title}}</a>
</li>
{% endfor %}
</ul>
</li>
{% endfor %}
</ul>
</aside>
<div class="documentation__content">
<h1>{{page.title}}</h1>
{{page.content | safe}}
{# next/pre links #}
<p>
{% if page.lighter %}
<a href="{{ page.lighter.permalink }}">
<i class="fa fa-chevron-left fa-fw" aria-hidden="true"></i>
Previous
</a>
{% endif %}
&nbsp;
{% if page.heavier %}
<a href="{{ page.heavier.permalink }}">
Next
<i class="fa fa-chevron-right fa-fw" aria-hidden="true"></i>
</a>
{% endif %}
</p>
</div>
</div>
{% endblock content %}
@@ -0,0 +1,15 @@
<pre
{% if background %}
style="background-color:{{background}};"
{% else %}
style="background-color:#383838;"
{% endif %}
>
<span
{% if color %}
style="color:{{color}};"
{% else %}
style="color:#e6e1dc;"
{% endif %}
><a onclick="navigator.clipboard.writeText('{{body}}')"><i class="fa fa-clipboard fa-underline" style="color: white; text-decoration: none;"></i></a> {{body}}</span>
</pre>
@@ -0,0 +1,7 @@
{% for asset in page.assets -%}
{%- if asset is matching("[.](jpg|png)$") -%}
<a href="{{ get_url(path=asset) | safe }}" target="_blank">
<img src="{{ resize_image(path=asset, width=240, height=180, op="fill", format="auto") | safe }}" />
</a>
{%- endif %}
{%- endfor %}
+4
View File
@@ -0,0 +1,4 @@
<div class="info">
<i class="fa fa-lightbulb-o fa-fw" aria-hidden="true"></i>
{{body}}
</div>
+4
View File
@@ -0,0 +1,4 @@
<div class="linux">
<i class="fa fa-linux fa-fw" aria-hidden="true"></i>
{{body}}
</div>
@@ -0,0 +1 @@
<img src="{{ resize_image(path=path, width=width, height=height, op=op) }}" />
+1 -1
View File
@@ -1 +1 @@
set(sources /home/ppinto/Dropbox/bts/spark/doc/user/build.sh;content/_index.md;content/bts_spark/Glossary/index.md;content/bts_spark/Help/about_spark.png;content/bts_spark/Help/image39.png;content/bts_spark/Help/image58.png;content/bts_spark/Help/index.md;content/bts_spark/Launcher/image38.png;content/bts_spark/Launcher/image68.png;content/bts_spark/Launcher/index.md;content/bts_spark/Logging-In-to-the-System/image3.png;content/bts_spark/Logging-In-to-the-System/image64.png;content/bts_spark/Logging-In-to-the-System/index.md;content/bts_spark/Market/change_securities.png;content/bts_spark/Market/image11.png;content/bts_spark/Market/image14.png;content/bts_spark/Market/image20.png;content/bts_spark/Market/image21.png;content/bts_spark/Market/image23.png;content/bts_spark/Market/image24.png;content/bts_spark/Market/image34.png;content/bts_spark/Market/image49.png;content/bts_spark/Market/image53.png;content/bts_spark/Market/image66.png;content/bts_spark/Market/image69.png;content/bts_spark/Market/index.md;content/bts_spark/Market/market_view.png;content/bts_spark/Market/settings_icon.png;content/bts_spark/Market/time_and_sales.png;content/bts_spark/My-Windows/image15.png;content/bts_spark/My-Windows/image16.png;content/bts_spark/My-Windows/image37.png;content/bts_spark/My-Windows/index.md;content/bts_spark/Settings/image51.png;content/bts_spark/Settings/image9.png;content/bts_spark/Settings/index.md;content/bts_spark/Spreader/image10.png;content/bts_spark/Spreader/image13.png;content/bts_spark/Spreader/image18.png;content/bts_spark/Spreader/image19.png;content/bts_spark/Spreader/image28.png;content/bts_spark/Spreader/image29.png;content/bts_spark/Spreader/image31.png;content/bts_spark/Spreader/image35.png;content/bts_spark/Spreader/image40.png;content/bts_spark/Spreader/image43.png;content/bts_spark/Spreader/image54.png;content/bts_spark/Spreader/image55.png;content/bts_spark/Spreader/image56.png;content/bts_spark/Spreader/image6.png;content/bts_spark/Spreader/image7.png;content/bts_spark/Spreader/image70.png;content/bts_spark/Spreader/image72.png;content/bts_spark/Spreader/image8.png;content/bts_spark/Spreader/index.md;content/bts_spark/Trading/algo_studio.png;content/bts_spark/Trading/collapse_all_icon.png;content/bts_spark/Trading/cover_algo_control.png;content/bts_spark/Trading/expand_all_icon.png;content/bts_spark/Trading/image1.png;content/bts_spark/Trading/image17.png;content/bts_spark/Trading/image2.png;content/bts_spark/Trading/image25.png;content/bts_spark/Trading/image27.png;content/bts_spark/Trading/image33.png;content/bts_spark/Trading/image42.png;content/bts_spark/Trading/image44.png;content/bts_spark/Trading/image47.png;content/bts_spark/Trading/image48.png;content/bts_spark/Trading/image5.png;content/bts_spark/Trading/image50.png;content/bts_spark/Trading/image52.png;content/bts_spark/Trading/image57.png;content/bts_spark/Trading/image59.png;content/bts_spark/Trading/image60.png;content/bts_spark/Trading/image61.png;content/bts_spark/Trading/image62.png;content/bts_spark/Trading/image73.png;content/bts_spark/Trading/image74.png;content/bts_spark/Trading/index.md;content/bts_spark/Trading/join_algo_control.png;content/bts_spark/Trading/ladder.png;content/bts_spark/Trading/ladder_badges.png;content/bts_spark/Trading/ladder_main_part.png;content/bts_spark/Trading/lean_algo_control.png;content/bts_spark/Trading/mini_orderbook.png;content/bts_spark/Trading/oco_algo_control.png;content/bts_spark/Trading/offset_algo_control.png;content/bts_spark/Trading/pnl_calculation.png;content/bts_spark/Trading/pnl_window.png;content/bts_spark/Trading/recreate_icon.png;content/bts_spark/Trading/settings_icon.png;content/bts_spark/Trading/spark_menu_order_book.png;content/bts_spark/Trading/top_algo_control.png;content/bts_spark/Trading/trigger_algo_control.png;content/bts_spark/_index.md;content/bts_spark_sdk/Client/Overview.md;content/bts_spark_sdk/Client/Threading.md;content/bts_spark_sdk/Client/_index.md;content/bts_spark_sdk/Server/_index.md;content/bts_spark_sdk/_index.md;content/release_notes/_index.md;static/book.js;static/favicon.ico;static/image.js;templates/index.html;templates/page.html;templates/section.html;templates/shortcodes/back_button.html)
set(sources /home/ppinto/Dropbox/bts/spark/doc/user/build.sh;content/_index.md;content/bts_spark/Glossary/_index.md;content/bts_spark/Help/_index.md;content/bts_spark/Help/about_spark.png;content/bts_spark/Help/image39.png;content/bts_spark/Help/image58.png;content/bts_spark/Launcher/_index.md;content/bts_spark/Launcher/image38.png;content/bts_spark/Launcher/image68.png;content/bts_spark/Logging-In-to-the-System/_index.md;content/bts_spark/Logging-In-to-the-System/image3.png;content/bts_spark/Logging-In-to-the-System/image64.png;content/bts_spark/Market/_index.md;content/bts_spark/Market/change_securities.png;content/bts_spark/Market/image11.png;content/bts_spark/Market/image14.png;content/bts_spark/Market/image20.png;content/bts_spark/Market/image21.png;content/bts_spark/Market/image23.png;content/bts_spark/Market/image24.png;content/bts_spark/Market/image34.png;content/bts_spark/Market/image49.png;content/bts_spark/Market/image53.png;content/bts_spark/Market/image66.png;content/bts_spark/Market/image69.png;content/bts_spark/Market/market_view.png;content/bts_spark/Market/settings_icon.png;content/bts_spark/Market/time_and_sales.png;content/bts_spark/My-Windows/_index.md;content/bts_spark/My-Windows/image15.png;content/bts_spark/My-Windows/image16.png;content/bts_spark/My-Windows/image37.png;content/bts_spark/Settings/_index.md;content/bts_spark/Settings/image51.png;content/bts_spark/Settings/image9.png;content/bts_spark/Spreader/_index.md;content/bts_spark/Spreader/image10.png;content/bts_spark/Spreader/image13.png;content/bts_spark/Spreader/image18.png;content/bts_spark/Spreader/image19.png;content/bts_spark/Spreader/image28.png;content/bts_spark/Spreader/image29.png;content/bts_spark/Spreader/image31.png;content/bts_spark/Spreader/image35.png;content/bts_spark/Spreader/image40.png;content/bts_spark/Spreader/image43.png;content/bts_spark/Spreader/image54.png;content/bts_spark/Spreader/image55.png;content/bts_spark/Spreader/image56.png;content/bts_spark/Spreader/image6.png;content/bts_spark/Spreader/image7.png;content/bts_spark/Spreader/image70.png;content/bts_spark/Spreader/image72.png;content/bts_spark/Spreader/image8.png;content/bts_spark/Trading/OrderTypes/index.md;content/bts_spark/Trading/_index.md;content/bts_spark/Trading/algo_studio.png;content/bts_spark/Trading/collapse_all_icon.png;content/bts_spark/Trading/cover_algo_control.png;content/bts_spark/Trading/expand_all_icon.png;content/bts_spark/Trading/image1.png;content/bts_spark/Trading/image17.png;content/bts_spark/Trading/image2.png;content/bts_spark/Trading/image25.png;content/bts_spark/Trading/image27.png;content/bts_spark/Trading/image33.png;content/bts_spark/Trading/image42.png;content/bts_spark/Trading/image44.png;content/bts_spark/Trading/image47.png;content/bts_spark/Trading/image48.png;content/bts_spark/Trading/image5.png;content/bts_spark/Trading/image50.png;content/bts_spark/Trading/image52.png;content/bts_spark/Trading/image57.png;content/bts_spark/Trading/image59.png;content/bts_spark/Trading/image60.png;content/bts_spark/Trading/image61.png;content/bts_spark/Trading/image62.png;content/bts_spark/Trading/image73.png;content/bts_spark/Trading/image74.png;content/bts_spark/Trading/join_algo_control.png;content/bts_spark/Trading/ladder.png;content/bts_spark/Trading/ladder_badges.png;content/bts_spark/Trading/ladder_main_part.png;content/bts_spark/Trading/lean_algo_control.png;content/bts_spark/Trading/mini_orderbook.png;content/bts_spark/Trading/oco_algo_control.png;content/bts_spark/Trading/offset_algo_control.png;content/bts_spark/Trading/pnl_calculation.png;content/bts_spark/Trading/pnl_window.png;content/bts_spark/Trading/recreate_icon.png;content/bts_spark/Trading/settings_icon.png;content/bts_spark/Trading/spark_menu_order_book.png;content/bts_spark/Trading/top_algo_control.png;content/bts_spark/Trading/trigger_algo_control.png;content/bts_spark/_index.md;content/release_notes/_index.md;content/system_requirements/_index.md;static/book.js;static/favicon.ico;static/image.js;templates/index.html;templates/page.html;templates/section.html;templates/shortcodes/back_button.html)
-1
View File
@@ -7,7 +7,6 @@ zola_path=$(readlink -f "../../externals/linux/bin/zola/zola")
mkdir -p $temp_path
cp -r ./* $temp_path
cp -r ../../src/sdk/doc/* $temp_path/content/bts_spark_sdk/Server/
cd $temp_path
$zola_path build -u '/docs/' -o $1 >$tmpfile 2>&1
@@ -154,7 +154,7 @@ insert_anchor_links = "right"
- Pay Less - If enabled by checking the checkbox, the spreader will
attempt to pay less when the quantity at the level of the calculated
hedge price is more than the threshold defined.  The hedge order is
hedge price is less than the threshold defined.  The hedge order is
paid less by the “Payless Ticks” as defined per leg.
- Pay Up - If enabled by checking the checkbox, the spreader will pay
up when the quantity at the level of the calculated hedge price is
@@ -0,0 +1,77 @@
+++
title = "Basic Algos"
weight = 1
sort_by = "weight"
insert_anchor_links = "right"
aliases = ["./bts_spark/Algos/"]
+++
## Lean
The goal of the lean order is to watch the opposite-inside market size and cross when that size goes below the threshold (this also implies a cross if that size goes to zero and the market trades away from you) If the market trades toward you, you can opt into several different behaviors
##### Parameters
* Cross Thresh - size thresh in absolute or ratio terms
* Max Chase Ticks - max levels to pay up, in ticks
## Join
The goal of the join order is to watch the opposite-inside market and join when the market flips (that is, when the best offer becomes the best bid) and has at least threshold size.
##### Parameters
* Join Thresh - size thresh in absolute or ratio terms
## Top
The goal of the top order is to not trade by yourself, but the intent at the time of order entry is to get filled.If the order is on the market (say current bid price) AND the quantity on that bid price is below top thresh then cancel the order else remain working.
##### Parameters
* Top Thresh - size thresh in absolute or ratio terms
## Cover
A Cover order’s purpose is to fire a hedge order (of any type) in response to fills from it’s child order on the opposite side of the market N ticks away
##### Parameters
* Profit Ticks - ticks above or below fill price to place profit / cover order
## OCO
An OCO order creates a relationship between a child order and a 'stop' or 'other' order such that when one of these is cancelled, both cancel, or when one is filled, the other order's size is debited in the amount of the fill.
Composing this order with Cover simulates scalping functionality
##### Parameters
* Stop Ticks - ticks below or above main order to place stop / other order
## Splitter
The splitter is useful for pro-rata markets where you want to vary your exposure independent of the order quantity that you want to fill. The splitter will complete when the number of fills reaches or exceeds the order quantity but it will put exposed_qty total size on the market. Splitter favors order size over queue position.
If exposed_qty is set to 0 the splitter will continue to exist in the Order Book but will cancel all of its child orders. This makes it a useful building block for custom algos that need to implement a 'paused' state.
##### Parameters
* exposed_qty - The total quantity to expose on the market.
* max_order_qty - The maximum size of a single order.
## Scratch
The scratch algo is similar to Lean, but instead of watching the opposite inside market, it watches the same side market and pays up when this quantity recedes below the scratch_threshold
##### Parameters
* scratch_threshold - The quantity on the same side market below which to scratch
* chase_ticks - The number of ticks through the opposite market to pay up
## ProRata
The prorata algo is a special case hedging algo for pro-rata markets. Users can specify two hedge types-- normal hedge and overfill hedge, the latter is spawned when you receive more fills than your fill_limit. Further, the algo attempts to scratch when in an overfilled state AND optionally the same side size falls below stay_in_threshold
##### Parameters
* hedge_ticks - The amount of ticks better hedges are placed on the opposite side market as the fill
* chase_ticks - How many ticks through the opposite market on a scratch
* fill_limit - The limit after which the algo considers further fills to be 'overfills'
* stay_in_threshold - A same side size threshold that enables the algo to 'stay in' even if overfilled
* enable_scratch_on_overfill - When true, overfills are immediately scratched upon the algo exiting
* enable_stay_in - When true, the algo will 'stay in' so long as the same side size is above stay_in_threshold, when false the algo attempts to 'get out' (and potentially scratch overfills) as soon as it reaches overfill status
* hedge - Child order type to send for normal hedges
* overfill_hedge - Child order type to send for overfill hedges
@@ -1,6 +0,0 @@
+++
title = "Client"
weight = 1
sort_by = "weight"
redirect_to = "bts_spark_sdk/Client/overview/"
+++
@@ -1,6 +0,0 @@
+++
title = "Server"
weight = 2
sort_by = "weight"
insert_anchor_links = "right"
+++
-6
View File
@@ -1,6 +0,0 @@
+++
title = "BTS Spark SDK"
weight = 2
sort_by = "weight"
insert_anchor_links = "right"
+++
+379 -11
View File
@@ -4,9 +4,375 @@ weight = 3
sort_by = "weight"
insert_anchor_links = "right"
+++
## 2.15.3
### Bug Fixes
- Fixed a bug where some CME currency spreads exhibited incorrect tick values
## 2.15.2
### User Visible Changes
- Excel RTD plugin can now receive ICE market data
## 2.15.1
### Bug Fixes
- Fixed a FIX log parsing issue that resulted in exchange gateway logon problems
## 2.15.0
### User Visible Changes
- Added ability to hide Ladder status messages via Ladder Settings -> Left Panel tab -> Show/Hide groupbox -> Status Message
- Synthetic cloning now allows for any parameter to be changed, including tick size and leg contracts
- Added ability to import synthetics from a CSV file; see our manual for further details on this process
- Reduced Iceberg reloading latency
### Bug Fixes
- Fixed a bug where highlighted fills could lose their highlight status
- Fixed a bug where the (Mini) OrderBook PIQ could be displaying an old value
## 2.14.3
### Bug Fixes
- Fixed a bug regarding ICE logon messaging
## 2.14.2
### Bug Fixes
- Fixed a bug regarding ICE messaging
## 2.14.1
### Bug Fixes
- Fixed a bug regarding ICE logon authentication
## 2.14.0
### User Visible Changes
- All ladders can now be recentered by (shift or alt) + double clicking over the Price column in a ladder
- Added a Max Order Quantity setting to the Safety Checks tab on the Ladder settings. This setting allows for a user-defined maximum order quantity.
- Added a Price Display Format setting to the Market Price and Size Display tab on the Ladder settings. This setting allows for price levels in the ladder to be displayed without a decimal separator.
- Synthetic instrument creation with 3 legs no longer defaults to butterfly quantites
### Bug Fixes
- Fixed an issue where market transition were not observed by IAlgoOrder
- Fixed a bug in error reporting
- Fixed a bug in the PnL window where specifying a certain grouping order would lead to a UI failure
## 2.13.0
### User Visible Changes
- Added the name of the spreader to the parent algo badge (for spreader child orders), in the fills, orderbook and floating orderbook windows
- Added support for sounds for new orders
- Added a new quoting throttle parameter for the spreader, that throttles quotes that are moving toward the inside market but are still a configurable number of ticks away
- Enabled the ladder to remember the left panel scroll position across front end restarts
### Bug Fixes
- Fixed the local fills window so that it does not show the admin fills
- Removed the deleted accounts from the ladder accounts dropdown
- Fixed the orderbook price for iceberg of spreaders
## 2.12.0
### User Visible Changes
- Added support for ICE market data and order execution
### Internal Changes
- Lots of permission / admin changes to facilitate ICE
## 2.11.0
### User Visible Changes
- Fixed fills form time filter to also apply to SOD fills
- Addressed an issue that could prevent the web Admin UI from displaying over slow HTTP connections
- Removed the option to enter manual spread fills
- Fixed an issue that could cause erroneous fill account attribution in the event of a crash
### Internal Changes
- Added support for tag 1031. Currently defaults to Y, can it be override through config.
- To facilitate support, allowed the bts user to view and edit algos from all other users
- Improved system tests
- Improved log messages in UI to include dispatcher thread name
- Added support for Windows core dumps in the UI
## 2.10.0
### User Visible Changes
- Fills now include information about the algo that originated the fill
- A new, more powerful PnL form is now available
### API Changes
- Added security state information (pre open, halted, normal, closed, etc)
### Bug Fixes
- Brought back the "select all" check box in the mini order book
- Fixed an issue in the market data subsystem that on rare occasions could result in a startup crash
### Internal Changes
- Fixed an issue that was stopping us from interpreting SOD times as local rather than GMT
## 2.9.3
### Internal Changes
- Fixed system test scripts
## 2.9.2
### Bug Fixes
- Fixed an issue with the exchange simulator that could lead to crossed markets
## 2.9.1
### Bug Fixes
- Fixed an issue with trade sound alerts, where in some cases the use of a "In Between" condition could lead to a UI failure.
- Fixed an issue with the display of the new raw position column in the market view window.
- Fixed the popup label that describes the raw position information in the ladder
### Internal Changes
- Avoided shipping production configuration defaults that lead to trying to download a position file for the development sftp server.
### Api
- C# API sample now uses synchronous calls.
## 2.9.0
### User Visible Changes
- Improved Workspace management User Interface
- Added the ability to change grid background colors
- The Spark UI Window group now has a title in the Windows task bar
- Added sound alerts for trade events, see Launcher -> Settings -> Alerts
- Allowed composite algos that are attached to existing orders to identify fills that were already present prior to attachment
- Added import facilities for GMI position files
- Added the ability for risk managers to enter manual fills
- Added "raw" P&L columns, that is columns that *do not* include spread legs in their accounting
### Bug Fixes
- Fixed the settings action menu (Load/Save/Reset to Factory)
- Fixed the method used to determine if a security is expired to take into account the start of day time
### API Changes
- Fixed an issue in the Client SDK that could lead to occasional failures to connect to the spark server as well as excessive memory usage.
- Added the ability for algo orders to distinguish fills existing prior to launch
### Internal Changes
- Changed how we packaged certain third-party components
- Added logging of entitlement status
- Tagged outgoing orders with sequence number of marketdata or FIX event that triggered them
## 2.8.3
### Bug Fixes
- Fixed a bug that could cause an OrderBook's Security column filter to be blank
- Fixed a bug that could cause a UI failure when clearing a filter selection on a filtering widget
## 2.8.2
### Bug Fixes
- Added proper display factors for SOM spreads
- Fixed a bug that could cause a UI failure when trying to change settings in a synthetic ladder
## 2.8.1
### Bug fixes
- Fixed an error in the UI grids filtering widget
## 2.8.0
### User Visible Changes
- Added ProRata and Scratch algos
- Ladder badge now grows/shrinks to fill the containing cell
- Attached algo parameters are now displayed in the update panel
- Fixed a bug where the update panel would show '-' values when only
1 order was selected
- Fixed a bug that cause cause a failure on startup if the user
loaded a workspace with a Ladder that had a dynamic order type
selected by default
- Increased width of login panel to better show login error messages
- Added optional 'Maker/Taker' pricing to Spreader algo
- Algo buttons in ladder can now be made to deactivate after launching an algo or remain 'sticky'
### Internal changes
- Made it easier to generate simple UI's for new order types
### API Changes
- Dynamic orders can now use QuantityMeasure parameter types
## 2.7.2
### User Visible Changes
- Changed the login dialog to avoid leaking workspace names from other users.
- Added new Splitter algo. From the manual: The splitter is useful
for pro-rata markets where you want to vary your exposure
independent of the order quantity that you want to fill. The
splitter will complete when the number of fills reaches or exceeds
the order quantity but it will put exposed_qty total size on the
market. Splitter favors order size over queue position.
### Internal Changes
- Made spark more resilient to lack of connectivity to the CME web site for downloading of templates.
## 2.7.1
### User Visible Changes
- Fixed some issues with the Cover algo, where in some circumstances
it would erroneously cancel launched hedges on completion.
## 2.7.0
### User Visible Changes
- Allowed algos to process "in-flight" fills while shutting down
- Changed the cover algo to continue to hedge while shutting down
### API Changes
- Changed the API so that algos do not fully terminate until all
their children are terminated. Algos that are in the process of
shutting down in response to a complete or cancel call will still
receive child updates, which they can use to calculate and report
an accurate fill count (during this shutdown stage algos cannot
create, cancel or update children). A new IAlgoServices method,
is_shutting_down(), can be used to determine if an algo is
shutting down.
## 2.6.2
### User Visible Changes
- Fixed an issue in the ladder where in some cases the mini order book could not be brought up from a badge
- Fixed a rare race condition that could lead to erroneous limit enforcement
- Fixed an issue with the margin limits where an error could occur if an account name with more than 12 chars was used
## 2.6.1
### User Visible Changes
- Fixed an issue in the ladder where an error could occur when trying to change ladder settings for the first time
## 2.6.0
### User Visible Changes
- In the ladder made last trade more distinctive when overlayed on the volumn column
- In the ladder, corrected display of volume tool tip
- In the ladder, changed the consolidation of last trade to consider only the price ignoring aggressor changes
- Added an option for the Top Algo to delete itself if within N ticks from top of book
- Address a rare issue that could lead to an error report on UI exit
- Added margin risk limits
- Added the "Offset" algo. Offset prices a child algo at a parameterizable distance from the top of the book
- Avoided switching the current account and order type on open ladders when limits are changed
### Internal Changes
- Ensure that admin logins are always allowed to login, regardless of keycode status.
## 2.5.0
### User Visible Changes
- Added loss limit risk check
- Made algos, synthetics and user names private so that multiple users can share a single system privately.
- Allowed the mini order book defaults for column widths to be changed from the mini order book
- Allowed the mini order book to shrink to the minimum size that will be needed to display the selected columns
- Improved accuracy of the directional arrow when displaying last trades in the volumn column
## 2.4.0
### User Visible Settings
- In the ladder, changed the last trade column to accumulate successive trades at the same price
- Fixed a bug in the order book where the right side ladder would display the top leve order's security rather then current row's
- Added OK, Cancel buttons to the security picker for ladder profiles or sounds
- Added ladder settings for the mini order book
- Added a safety check to guard against unintentional market crosses
- Improved the Queue Holder mode in the spreader:
- Added a Show Quantity, allowing the spreader to keep queue position of the trailing orders as Fills (of size Show Qty) happen
- Improved spreader performance when in Queue Holder mode
### Internal changes
- Suppressed order callbacks for completed/canceled orders. This should eliminate some bogus error logs by spreader orders.
- Addressed a potential concurrency issues with service initialization.
## 2.3.0
### User Visible Changes
- Introduced multiple settings profiles for the ladder
- This allows multiple standard configuration for the ladder, optionally with security specific variations
- Made Cover order more independent from its hedging chidren:
- Cover continues to operate even if an hedging child is canceled
- When a cover is canceled it will detach from any running hedging children, instead of canceling them
- Changed Lean, Join and Cover algos to hide themselves in the ladder once they have completed their work
- Changed manual fills to appear in day PnL rather than in the SOD records
- Add buy/sell coloring to fill rows in fills window
- Streamlined the mini order book:
- Display of the mini order book popup is quicker
- Only exchange orders are displayed
- Update buttons are only displayed for orders that are under control of an algo with the update applying to the entire algo, not just the exchange order
- We can now select multiple rows to attach, detach, update or cancel multiple orders in a batch
- A checkbox column has been added to make clearer which rows are selected
### API Changes
- Enhanced the API to allow algos to implement custom cancel handling
- Allowed algos to control their visibility in the ladder through the API
### Internal Changes
- Added system requirements to Spark documentation
- Implemented keycodes
- Temporarily rejected stop and stop limit orders, pending bug fixes
## 2.2.0
### User Visible Changes
- Made our orders easier to spot in MBO display
- Changed middle-click on center column to recenter ladder and introduced Alt middle-click on center to bring up the MBO popup
- Fixed Net/Absolute radio button in risk admin UI
- Fixed double counting of spread legs in limits
- Removed expired fills from the system
- Improved handling of orders with undiscovered securities
- Added feedback to the ladder when the user attempts to middle click on bid/ask columns using an order that does not have parameters
- Fixed display of algo studio algo types in order book
- Hid net change setting in synthetic ladders
- Fixed a number of problems with filtering on the Fills form
- On the Lean algo, OnToward and Away are now calculated with respect to the opposite inside market at time of the order launch
- Iceberg Spreaders with queue holders are not erroneously cancelled after the first fill
- Added security symbol column to fills window
- Re-organized ladder settings dialog to make it clearer and easier to use
## 2.1.4
### User Visible Changes
- Fixed handling of cancel button in security picker
## 2.1.3
### User Visible Changes
- Fixed a simulator bug in the handling of 0 sized orders
## 2.2.1
### User Visible Changes
- Fixed order book form exception when display a spreader order for whichs the legs were not present yet
## 2.1.1
### User Visible Changes
- Added PIQ to GLBX Iceberg orders
- Corrected handling of stop limit orders
## 2.1.0
### User Visible Changes
- Added support for the GLBX Iceberg order type
- Allowed quick algo param edits by middle-clicking on either the bid/ask columns or a "favorite" button
- Added support for manual fills, either entered manually or imported from file. Manual fills are used only for P&L purposes, they have no impact on limits
- Allowed the LTQ and VAP values to be overlayed on the same ladder column
- Added day position information to the ladder
- Added PIQ to the mini order book
- Fixed a rare bug that could lead to server failure when requesting market data
- Fixed a bug that could cause incorrect price displays for certain types of synthetic securities
## 2.0.5
### User Visible Changes
- Fixed a bug in the handling of rejected QHO orders
- Implemented stricter position limit enforcement
- Fixed a bug that could cause server failure when trying to attach to already attached orders
## 2.0.4
### User Visible Changes
- Fixed performance regression in order manager
### Internal changes
- Improved market data diagnostics for bad configurations
- Changed market data default buffer size
## 2.0.3
### Internal changes
- Improved backwards compatibility in UI settings
## 2.0.2
### User Visible Changes
- Middle click the ladder price column to show the orders for that price level
- Middle click the bid or ask column in the ladder no longer sends an order
### Internal changes
- Improved market by order performance under heavy load
- Fixed a concurrency bug in SIM
## 2.0.0
### User Visible Changes
- Support for attaching and detaching algos to existing orders
- Support for display and update of all parameters in running algos
- Streamlining of order badge decorations in ladder
- New order search/filtering algorithm for order book
- Simpler representation of complex algo chains in order book and mini order book
- Visual and usability improvements to mini order book
- Streamlining of algo parameter dialog in ladder
- New spreader queue holder behavior
- Visual improvements to the order book
- New server side API
- Improved admin UI performance
- Optimized PIQ rendering
### Internal changes
- Exchange simulator no longer requires daily sequence number reset
- Improved MD resilience to corrupted shared memory
- Native orders can now buffer updates/cancels when disconnected or pending first acknowledgment
- Improved settings manager tool output
- Added diagnostics in the event MD memory corruption is detected
- Added systems tests for join,lean, iceberg and spreader orders
- Made exchange order recovery more resilient in the presence of database loss
## 1.6.2
### User Visible Changes
### Exchange simulator
- Exchange simulator now now produce position in queue data
## 1.6.0
### User Visible Changes
#### New Features
- You can now view your order's position in queue in the ladder
#### Bug Fixes
- Fix a bug in the order popup in the ladder which could lead to a crash.
## 1.5.9
### User Visible Changes
- Fix for stunnel connections on Windows 7
## 1.5.8
### User Visible Changes
- Fixed a bug where it was possible to crash the UI by entering an order through the order ticket if Enter was used to dismiss the dialog.
- Fixed a spreader reporting bug which could cause the server to crash if an algo was used to control certain types of synthetics
- Improved user message when the UI fails to login
- Integrated stunnel into UI to make VPN setup unnecessary in unsecured environments.
## 1.5.7
### User Visible Changes
- New videos have been added to the manual describing the [Algo Studio](./bts_spark/Trading/index.md#algo-studio) and [Spreader](./bts_spark/Spreader/index.md)
- New videos have been added to the manual describing the [Algo Studio](./bts_spark/Trading/_index.md#algo-studio) and [Spreader](./bts_spark/Spreader/_index.md)
- Fixed a bug that occasionally would cause windows to be position outside the visible screen on startup
- Fixed a bug in the order book form that would occasionally cause the Recreate Order option to be unavailable
- Added a confirmation step to Cancel All, Cancel Buys and Cancel Sells commands
@@ -20,21 +386,21 @@ insert_anchor_links = "right"
- These columns can be restored by toggling their visibility within the PnL's Settings form
- A new Traded Today column has been added to the PnL
- Filtering on this column will allow a user to restrict the report to only show today's position
### Internal changes
- Improved organization of the shell notification architecture
### Internal changes
- Improved organization of the shell notification architecture
- Added logging to help troubleshoot shell exit hang
## 1.5.6
### User Visible Changes
- Fixed a bug that could cause limits to be erroneously enforced
- Fixed a bug that could cause limits to be erroneously enforced
- Improved algo documentation
- Changed how the spreader uses net change
- Simplified trigger algo user interface
### Internal changes
### Internal changes
- Defaulted to not recording sim market data
- Improved documentation build
- Improved documentation build
- Added additional performance tracing
## 1.5.5
- Fixed Market View 'stale working orders' bug
@@ -42,11 +408,11 @@ insert_anchor_links = "right"
- Avoided logging when warming up cache
## 1.5.3
- Fixed sounds startup issue
- Fixed sounds startup issue
## 1.5.2
- Added better logging to AlgoDefinitionService
## 1.5.1
- Fixed missing securities in the Fills and P&L windows.
@@ -67,7 +433,7 @@ insert_anchor_links = "right"
#### Bug Fixes
- Fixed the "Since Open" time filter to use the exchange open time rather than 8:30 AM
- Fixed a bug in the order book where sometimes parent orders would not update their last message column.
#### Algos
- Added OCO Algo
- An OCO order creates a relationship between a child order and a 'stop' or 'other' order such that when one of these is cancelled, both cancel, or when one is filled, the other order's size is debited in the amount of the fill. Composing this order with Cover simulates scalping functionality
@@ -75,7 +441,7 @@ insert_anchor_links = "right"
- Improved SDK documentation and usability
- Dynamic orders are now properly identified in the order book
#### Documentation
- Information on the Spark API has been added to the Spark manual
- Information on the Spark API has been added to the Spark manual
- The documentation has been updated and reorganized to make information easier to find
### Internal Changes
- Improved robustness of limit system test
@@ -130,6 +496,7 @@ insert_anchor_links = "right"
- The zoom functionality can also be performed via hotkey and mouse wheel combinations
- Zoom In = CTRL + Mouse wheel up
- Zoom Out = CTRL + Mouse wheel down
- Reset zoom = CTRL + Mouse wheel click or double click on the zoom slider
### Exchange simulator
- Improved the exchange simulator to track real market data more closely
@@ -236,6 +603,7 @@ insert_anchor_links = "right"
- All windows now contain a settings page where grid settings (font color, size, etc) are applied
- These settings can be saved on a per-window basis or as a Default for newly-launched windows
## 1.3.1 Through 1.3.4
### Speed Enhancements
@@ -0,0 +1,55 @@
+++
title = "System Requirements"
weight = 4
sort_by = "weight"
insert_anchor_links = "right"
+++
### Minimum Workstation
* New XPS Tower
* 8th Generation Intel® Core™ i7-8700 6-Core Processor (12M Cache, up to 4.6 GHz)
* 16GB, 2666MHz, DDR4 up to 64GB
* Windows 10 Professional 64-bit
* NVIDIA® GeForce® GTX 1070 with 8GB GDDR5 Graphics Memory
* 1 x 2.5" 256GB SATA Solid State Drive
### Recommended Workstation
* Similar or better than:
* Dell Precision Tower 5820
* Intel Xeon W-2145 3.7GHz, 4.5GHz Turbo, 8C, 11M Cache, HT, (140W) DDR4-2666
* Windows 10 Professional 64-bit
* NVIDIA® Quadro® P1000, 4GB, 4 mDP
* 16GB (4x4GB) 2133MHz DDR4 RDIMM ECC
* 2 x 2.5" 256GB SATA Solid State Drive running RAID1
### BTS Recommended Server Specifications
* Dell R640
* 2x Intel Xeon Gold 6148 2.40GHz 20-Core Processors. For better performance BTS recommends Intel® Xeon® Platinum 8268 2.9G, 24 Core CPU
* 192GB RAM 2666MHz DDR4
* 3x 480GB SSD RAID 5 HBA Minicard
* iDRAC 9 Enterprise
* Embedded Broadcom NIC
* Solarflare SFN8522-R2
* Redundant Power Supply
### BTS Minimum Server Specifications
* Dell R620
* Chassis with up to 8, 2.5” Hard Drives, up to 2 PCIe Slots (With Optional Riser)
* 2 x Intel® E5-2670 (16 total cores/ 32 total threads)
* 64GB total memory
* RAID 1 for H330/H730/H730P
* PERC H730 RAID Controller, 1GB NV Cache
* 3 x 300GB 10K RPM SATA 6Gbps 2.5in Hot-plug Hard Drive (RAID 5)
* iDRAC8 Enterprise, integrated Dell Remote Access Controller, Enterprise (varies by hosting company)
* Solarflare Ultra SFN7122F Dual-Port 10GbE (10 GB connectivity requirements, copper vs optical, varies by hosting company).
* Dual, Hot-plug, Redundant Power Supply (1+1), 750W
* Performance BIOS Setting
* ReadyRails Sliding Rails Without Cable Management Arm (varies by hosting company)
### Edge Tablet Requirements
* Similar or better than:
* Microsoft Surface Pro 4 Or Motion R12
* Intel i7
* 8 GB DDR4 RAM
-5
View File
@@ -1,7 +1,6 @@
#/bin/bash
#python -m mkdocs build -d site
cp -r ../../src/sdk/doc/* ./content/bts_spark_sdk/Server/
./run_zola.sh build
scp -r ./public bts@bluetradesys.com:/home/bts/doc/
@@ -14,7 +13,3 @@ sudo mv ./public/* /var/www/documentation/
EOF
rm -r public
cd ./content/bts_spark_sdk/server/
find . -not -name '_index.md' -delete
cd ../..
+4
View File
@@ -1,3 +1,7 @@
2.14.0
- Load Algos in libspark.so automatically (no symlink needed)
- Specify commands to run when sparkd starts. These will automatically be killed when sparkd terminates if they are still running.
1.5.7
- Fixed Aggressor coloring and ladder high/low coloring in SIM
+55 -72
View File
@@ -1,91 +1,74 @@
using bts;
using bts.api.admin;
using bts.api.core;
using bts.utils;
using System;
using System.Collections.Generic;
using System.ComponentModel.Composition;
using System.Linq;
using System.Reactive.Linq;
using System.Reactive.Subjects;
using bts.api.core;
namespace mbts.spark {
[Export]
class AdminModel : IDisposable {
readonly string _user_name;
public string user_name => _user_name;
readonly BehaviorSubject<IReadOnlyDictionary<uint, string>>
_accounts_subject = new BehaviorSubject<IReadOnlyDictionary<uint, string>>(new Dictionary<uint, string>()),
_users_subject = new BehaviorSubject<IReadOnlyDictionary<uint, string>>(new Dictionary<uint, string>());
IReadOnlyDictionary<uint, string>
_account_map = new Dictionary<uint, string>(),
_user_map = new Dictionary<uint, string>();
readonly BehaviorSubject<AdminModelWrapper> _wrapper_subject = new BehaviorSubject<AdminModelWrapper>(new AdminModelWrapper());
IDisposable _dispose;
public readonly UserTuple user;
IDisposable _dispose;
IReadOnlyDictionary<uint, string> _account_map = DictionaryHelper.empty<uint, string>();
[ImportingConstructor]
AdminModel(AdminService service, [Import("username")]string user_name) {
_user_name = user_name;
_dispose = service.subscribei_admin_data().Select(update => {
_wrapper_subject.OnNext(new AdminModelWrapper(update.all.TryFirst(), _user_name));
IEnumerable<BTSUserImmutable> active_users =
from admin_data in update.all
from bts_user in admin_data.Users
where bts_user.Name == user_name && bts_user.HasUserData && bts_user.UserData.HasAccountPermissions
select bts_user;
IEnumerable<BTSAccountImmutable> active_accounts =
from admin_data in update.all
from bts_account in admin_data.Accounts
where bts_account.IsPresent && _wrapper_subject.Value.can_view_account(bts_account.Name)
join account_id in (
from bts_user in active_users
from account_id in bts_user.UserData.AccountPermissions.AccountPermissions.Keys
select account_id
) on bts_account.Id equals account_id
select bts_account;
var users = active_users.ToDictionary(u => u.Id, u => u.Name);
var accounts = active_accounts.ToDictionary(a => a.Id, a => a.Name);
return (users, accounts);
}).Subscribe(t => {
_account_map = t.accounts;
_user_map = t.users;
_users_subject.OnNext(_user_map = t.users);
_accounts_subject.OnNext(_account_map = t.accounts);
});
AdminModel(AdminService service, UserTuple user) {
this.user = user;
// accounts
on_accounts = service.subscribei_admin_data()
.Select(up => up.all.TryGetFirst(out var ad) && ad.Users.Where(u => u.Name == user.name).TryGetSingle(out var usr) && usr.HasUserData && usr.UserData.HasAccountPermissions ?
usr.UserData.AccountPermissions.AccountPermissions
.Where(kv => (kv.Value.TradingPermission != null && kv.Value.TradingPermission.HasPermissions) || kv.Value.AdminPermission.HasPermissions)
.Select(kv => ad.Accounts.Where(a => a.Id == kv.Key).TryGetSingle(out var acc) ? acc : (BTSAccountImmutable?)null)
.Where(acc => acc.HasValue && acc.Value.IsPresent)
.Select(acc => acc.Value)
.ToDictionary(acc => acc.Id, acc => acc.Name) :
new Dictionary<uint, string>(0))
.Replay(1)
.RefCount();
// users
on_users = Observable.Return(DictionaryHelper.wrap_value(user.id, user.name));
all_user_tuples = user.permissions == UserTuple.Permissions.Admin ?
service.subscribei_admin_data()
.Select(u => u.all.TryFirst())
.Where(ad => ad.HasValue)
.Select(ad => ad.Value.Users
.Where(u => user.can_access_user_data(u.Id))
.Select(u => new UserTuple(u.Id, u.Name))
.ToDictionary(UserTuple.key_fn))
.Table(UserTuple.key_fn)
.Cache() :
Observable.Return(TableUpdate<UserTuple, uint>.mk_empty(UserTuple.key_fn).with_added(new[] { user }));
_dispose = on_accounts.Subscribe(map => _account_map = map);
}
public IObservable<IReadOnlyDictionary<uint, string>> on_users => _users_subject.AsObservable();
public IObservable<IReadOnlyDictionary<uint, string>> on_accounts => _accounts_subject.AsObservable();
public IObservable<IReadOnlyList<UserTuple>> on_user_tuples => on_users.Select(d => d.Select(kv => new UserTuple(kv.Key, kv.Value)).ToList());
public IObservable<IReadOnlyList<AccountTuple>> on_account_tuples => on_accounts.Select(d => d.Select(kv => new AccountTuple(kv.Key, kv.Value)).ToList());
public IObservable<AdminModelWrapper> on_admin_data => _wrapper_subject.AsObservable();
public IObservable<IReadOnlyDictionary<uint, string>> on_users { get; }
public IObservable<IReadOnlyDictionary<uint, string>> on_accounts { get; }
public IObservable<TableUpdate<UserTuple, uint>> all_user_tuples { get; }
public IObservable<IReadOnlyList<AccountTuple>> on_account_tuples => on_accounts.Select(d => d.Select(kv => new AccountTuple(kv.Key, kv.Value)).ToListSorted(a => a.name));
public UserTuple? get_current_user() {
foreach (var kv in _user_map) {
// just for good measure, there should never be > 1 element in _user_map, and it should always match _user_name
if (kv.Value == _user_name)
return new UserTuple(kv.Key, kv.Value);
}
return null;
}
public AccountTuple? get_default_account() {
foreach (var kv in _account_map) {
return new AccountTuple(kv.Key, kv.Value);
}
return null;
}
public uint? get_user_id(string user) => _id_for_name(user, _user_map);
public uint? get_account_id(string account) => _id_for_name(account, _account_map);
public void Dispose() => Disposable.dispose(ref _dispose);
public IObservable<Update<T, TKey>> permission_filter<T, TKey>(IObservable<Update<T, TKey>> positions, Func<T, uint> get_account_id) where TKey : IEquatable<TKey> =>
user.permissions == UserTuple.Permissions.Admin ?
positions :
positions.Filter(on_accounts.Select(map => new Func<T, bool>(p => map.ContainsKey(get_account_id(p)))));
static uint? _id_for_name(string name, IReadOnlyDictionary<uint, string> map) {
foreach (var kv in map) {
if (kv.Value == name)
return kv.Key;
}
return null;
}
public IObservable<Update<T, TKey>> permission_filter<T, TKey>(IObservable<Update<T, TKey>> positions, Func<T, string> get_account_name) where TKey : IEquatable<TKey> =>
user.permissions == UserTuple.Permissions.Admin ?
positions :
positions.Filter(on_accounts.Select(map => {
var hash = new HashSet<string>(map.Values);
return new Func<T, bool>(v => hash.Contains(get_account_name(v)));
}));
public AccountTuple? get_default_account() =>
_account_map.Select(kv => new AccountTuple(kv.Key, kv.Value)).TryFirst();
public void Dispose() =>
Disposable.dispose(ref _dispose);
}
}
+67 -5
View File
@@ -1,4 +1,6 @@
using System;
using System.IO;
using System.Diagnostics;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
@@ -68,17 +70,77 @@ namespace mbts.ui.shell
{
Log.Gen.info("Application.OnExit");
if (_runtime != null) _runtime.Dispose();
utils.BTSNativeMethods.finit_spark_lib();
base.OnExit(e);
Environment.Exit(0);
}
void start_stunnel(string path, uint job_error)
{
string config_error;
if (!mbts.config.Configuration.try_initialize(out config_error))
{
_stunnel_process = Process.Start(path + "bin\\stunnel.exe");
if (_stunnel_process != null)
{
for (int i = 0; i < 10; i++)
{
if (mbts.config.Configuration.try_initialize(out config_error))
break;
System.Threading.Thread.Sleep(500);
}
}
else
stunnel_job_error = "Stunnel Job Error code: " + job_error +
" could not start stunnel " + (config_error ?? string.Empty);
}
}
void kill_stunnel()
{
try
{
Process[] ps = Process.GetProcessesByName("stunnel");
ps.ForEach(p =>
{
try { p.Kill(); }
catch {}
});
}
catch { }
}
Process _stunnel_process;
static internal string stunnel_job_error { get; private set;}
void init_stunnel(string[] argv)
{
try
{
var path = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\BTS\\stunnel\\";
if (File.Exists(path + "config\\stunnel.conf"))
{
uint job_error = BTSUINativeMethods.setup_process_job_object();
//if we can't put this process and stunnel into a job, try to stop stunnel then restart
if(job_error != 0)
kill_stunnel();
start_stunnel(path, job_error);
}
}
catch(Exception ex)
{
stunnel_job_error = "Error starting stunnel: " + ex.Message;
}
}
public new int Run() {
var argv = Environment.GetCommandLineArgs();
try {
if (argv.Contains("-multiple") ||
_mutex == null ||
_mutex.WaitOne(TimeSpan.Zero, true)) {
try {
if (argv.Contains("-multiple") || _mutex == null || _mutex.WaitOne(TimeSpan.Zero, true))
{
if(_mutex == null || _mutex.WaitOne(TimeSpan.Zero, true)) {
if (!argv.Contains("-nostunnel")) {
init_stunnel(argv);
}
}
return base.Run();
}
else {
+3 -7
View File
@@ -4,13 +4,9 @@ using mbts.config;
using mbts.spark;
using mbts.ui;
using System;
using System.Collections.Generic;
using System.ComponentModel.Composition;
using System.Diagnostics;
using System.Linq;
using System.Reactive.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Input;
@@ -22,8 +18,8 @@ namespace bts.ui {
IDisposable _dispose;
[ImportingConstructor]
public AboutDaemon(IBus bus, [Import("username")]string username) {
_user = username;
public AboutDaemon(IBus bus, UserTuple user) {
_user = user.name;
_bus = bus;
_dispose = bus.subscribe(SparkTags.About).OnDispatcher().Subscribe(_ => show_about());
}
@@ -62,4 +58,4 @@ namespace bts.ui {
Disposable.dispose(ref _dispose);
}
}
}
}
@@ -4,43 +4,112 @@ using mbts;
using mbts.spark;
using mbts.ui;
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.ComponentModel.Composition;
using System.Linq;
using System.Reactive.Linq;
using System.Threading;
using System.Windows;
namespace bts {
[Export, Export(typeof(IShellDaemon))]
class DeleteSyntheticDaemon : IShellDaemon, IDisposable {
// request_id is noted in the series of log messages that occur during a particular delete op.
static int _request_id = 1;
readonly OrdersModel _orders_model;
readonly ErrorReporter _error_reporter;
IReadOnlyDictionary<uint, ExecutionStrategyImmutable> _strategy_map =
DictionaryHelper.empty<uint, ExecutionStrategyImmutable>();
IDisposable _dispose;
[ImportingConstructor]
public DeleteSyntheticDaemon(IBus bus, OrdersModel orders_model, ErrorReporter error_reporter) {
_orders_model = orders_model;
_error_reporter = error_reporter;
_dispose = bus.subscribe(SparkTags.SyntheticDeleteTag)
.OnDispatcher()
.Subscribe(_delete_synthetic);
_dispose = Disposable.Create(
bus.subscribe(SparkTags.SyntheticDeleteTag).Subscribe(_delete_synthetic),
orders_model.spreader.strategy.Subscribe(map => _strategy_map = map));
}
public void Dispose() =>
Disposable.dispose(ref _dispose);
async void _delete_synthetic(uint id) {
var (orders, orders_success) = await _orders_model.on_orders.FirstAsyncTask(SparkUtils.DefaultTimeOut);
async void _delete_synthetic(IImmutableSet<uint> keys) {
var log = new LoggerContext(Log.Ui, $"Synthetic Delete Req {unchecked(Interlocked.Increment(ref _request_id))} - ", null);
if (keys.is_null_or_empty()) {
log.warn("received empty delete request (no securities specified).");
return;
}
log.info($"received request to delete the following {keys.Count} securities: {string.Join(", ", keys)}");
var (orders, orders_success) = await _orders_model.security_order_groups.FirstAsyncTask(SparkUtils.DefaultTimeOut);
if (!orders_success) {
_error_reporter.report_error($"Unable to delete synthetic security ({id}): unable to determine whether or not security ({id}) has working orders (deletion is not permitted while there are working orders).");
Log.Ui.warn($"Ignoring request to delete synthetic security ({id}) because the orders lookup timed out (must confirm no working orders).");
} else if (orders.state.Values.Any(o => o.order.Def.SecurityKey == id && o.order.is_non_terminal())) {
Log.Ui.warn($"Ignoring request to delete synthetic security ({id}) because non-terminal-orders were detected.");
var msg = "Unable to delete synthetic securities: " +
$"timed out waiting for orders table (must verify that a synthetic security does not have any working orders before it can be deleted).";
_error_reporter.report_error(msg);
log.warn(msg);
} else {
ExecutionStrategyImmutable? strategy = await _orders_model.spreader.lookup_strategy_async(id);
if (strategy.HasValue) {
ExecutionStrategyImmutable deleted_strategy = strategy.Value.with(deleted: true);
await _orders_model.spreader.save_strategy(id, deleted_strategy);
var working_orders = new List<uint>();
var missing_strategies = new List<uint>();
var items = new List<(uint key, ExecutionStrategyImmutable strategy)>();
var temp_strats = _strategy_map;
foreach (var k in keys) {
if (orders.state.TryGetValue(k, out var sec_group) && sec_group.table.state.Values.Any(tup => tup.order.is_active())) {
working_orders.Add(k);
} else if (!temp_strats.TryGetValue(k, out var strat)) {
missing_strategies.Add(k);
} else {
items.Add((k, strat.with(deleted: true)));
}
}
var lines = new List<string>();
if (working_orders.Count > 0) {
lines.Add($"skipping {working_orders.Count} securities because they have working orders.");
}
if (missing_strategies.Count > 0) {
lines.Add($"skipping {missing_strategies.Count} securities because their execution strategies were not discovered.");
}
if (lines.Count > 0)
log.warn(string.Join("; ", lines));
var errors = await _orders_model.spreader.save_strategies(items);
int error_count = errors.Count(e => !string.IsNullOrEmpty(e));
log.info($"{items.Count - error_count}/{items.Count} attempted deletes were successful (skipped {working_orders.Count + missing_strategies.Count}).");
// display results to user
const string dialog_title = "Synthetic Deletion";
string display_msg;
MessageBoxImage icon = MessageBoxImage.None;
if (keys.Count > 1) {
if (error_count == 0 && working_orders.Count == 0 && missing_strategies.Count == 0) {
display_msg = $"Synthetic securities have been deleted.";
icon = MessageBoxImage.Information;
} else {
display_msg = $"{keys.Count - error_count - working_orders.Count - missing_strategies.Count}/{keys.Count} securities were successfully deleted.";
icon = MessageBoxImage.Error;
}
} else {
if (error_count == 0 && working_orders.Count == 0 && missing_strategies.Count == 0) {
display_msg = "Synthetic security has been deleted.";
icon = MessageBoxImage.Information;
} else {
string reason;
if (error_count > 0) {
reason = errors[0];
} else if (missing_strategies.Count > 0) {
reason = "did not find execution strategy.";
} else if (working_orders.Count > 0) {
reason = "working orders detected.";
} else {
// unexpected code path
reason = "unknown error.";
}
icon = MessageBoxImage.Error;
display_msg = $"Unable to delete synthetic security: " + reason;
}
}
BTSMessageBox.Show(display_msg, dialog_title, BTSMessageBoxButtons.OK, icon);
}
}
}
}
}
+114 -8
View File
@@ -1,18 +1,20 @@
using bts.api;
using bts.api.core;
using bts.support;
using bts.utils;
using mbts;
using mbts.spark;
using mbts.ui;
using System;
using System.Collections.Generic;
using System.ComponentModel.Composition;
using System.Reactive.Linq;
using System.Windows.Threading;
using System.Windows;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Threading;
namespace bts.spark
{
namespace bts.spark {
[Export, Export(typeof(IShellDaemon))]
public class ErrorReporter : IShellDaemon, IDisposable {
readonly ErrorReportService _svc;
@@ -20,9 +22,9 @@ namespace bts.spark
IDisposable _dispose;
[ImportingConstructor]
public ErrorReporter(ErrorReportService svc, IBus bus, [Import("username")] string username) {
public ErrorReporter(ErrorReportService svc, IBus bus, UserTuple user) {
_svc = svc;
_username = username;
_username = user.name;
_dispose = bus.subscribe(SparkTags.Support).OnDispatcher().Subscribe(msg => show_support_window(msg, "Report a problem"));
}
@@ -47,6 +49,45 @@ namespace bts.spark
ErrorMessage = message,
});
}
public async Task report_silently(string contact, string description, string userdata) {
var request = append_logs(new ErrorReport {
User = _username,
ErrorMessage = description,
UserDescription = userdata,
Contact = contact
}.immutable());
var reply = await _svc.send_report_async(request);
}
public static ErrorReportImmutable append_logs(ErrorReportImmutable src) {
var result = src.CloneToMutable();
var windows_log = LogUtil.read_windows_event_log();
if (!windows_log.IsEmpty) {
result.Files.Add(new FileData {
Name = "Application.evtx.gz",
Contents = windows_log
});
}
var (data,date) = LogUtil.read_latest_crash_dump();
if (!data.IsEmpty) {
result.Files.Add(new FileData {
Name = $"spark-{date.ToString("s")}.dmp.gz",
Contents = data
});
}
var spark_log = LogUtil.read_logs_compressed();
if (!spark_log.IsEmpty) {
result.Files.Add(new FileData {
Name = "log.gz",
Contents = spark_log
});
}
return result.immutable();
}
}
static class ErrorReporterExtensions {
@@ -82,7 +123,6 @@ namespace bts.spark
}
}
//public static async Task<Result<T>>
public static async Task<(T value, bool success)> safe_execute<T>(this ErrorReporter error_reporter, Func<Task<Result<T>>> execute, Func<T, bool> get_success, Func<T, string> get_error_msg, string desc) {
try {
var result = await execute();
@@ -101,5 +141,71 @@ namespace bts.spark
void _report_error(string msg) =>
error_reporter.report_error($"Error {desc}: {msg}", AlgoStudioWindow.NAME, MessageBoxImage.Warning);
}
public static async Task<TResult> safe_execute<T, TResult>(
this ErrorReporter error_reporter,
Func<Task<Result<T>>> execute,
Func<T, bool> get_success,
Func<T, string> get_error_msg,
Func<T, bool, TResult> result_selector,
string desc) {
//
try {
var result = await execute();
if (!result.success) {
_report_error(result.error_message);
} else if (!get_success(result.value)) {
_report_error(get_error_msg(result.value));
} else {
return result_selector(result.value, true);
}
} catch (Exception ex) {
_report_error(ex.ToString());
}
return result_selector(default, false);
//
void _report_error(string msg) =>
error_reporter.report_error($"Error {desc}: {msg}", AlgoStudioWindow.NAME, MessageBoxImage.Warning);
}
public static async Task<(TResult result, string error_msg)[]> safe_execute_batch<T, TResult>(
this ErrorReporter error_reporter,
IEnumerable<Task<T>> execute,
Func<T, (TResult result, string error_msg)> result_selector,
string desc,
string title) {
//
try {
var results = await Task.WhenAll(execute as Task<T>[] ?? ArrayHelper.clone_optimized(execute));
var result_values = new (TResult, string)[results.Length];
StringBuilder error_bd = null;
for (int i = 0; i < results.Length; i++) {
var r = results[i];
var (result, error) = result_selector(r);
if (!string.IsNullOrEmpty(error)) {
if (error_bd == null) {
error_bd = new StringBuilder();
} else {
error_bd.AppendLine();
}
error_bd.Append(error);
}
result_values[i] = (result, error);
}
if (error_bd != null) {
var error_msg = error_bd.ToString();
if (!string.IsNullOrEmpty(error_msg))
_report_error(error_msg);
}
return result_values;
}
catch (Exception ex) {
_report_error(ex.ToString());
}
return null;
//
void _report_error(string msg) =>
error_reporter.report_error($"Error {desc}: {msg}", title, MessageBoxImage.Warning);
}
}
}
}
@@ -0,0 +1,68 @@
using bts.api;
using bts.shell;
using mbts;
using mbts.persist;
using mbts.spark;
using mbts.ui;
using mbts.ui.spark;
using mbts.ui.utilities;
using System;
using System.ComponentModel.Composition;
using System.Linq;
using System.Reactive.Disposables;
using System.Reactive.Linq;
using System.Windows;
using Disposable = mbts.Disposable;
namespace bts {
[Export(typeof(IShellDaemon))]
class GlobalAlertsDaemon : IShellDaemon, IDisposable {
const string
// used for logging/diagnostic purposes
_window_name = "Global Alerts Dialog",
// actual window title
_window_title = "Alerts";
readonly ThreadedWindowLauncher _launcher;
readonly UserSettingsHub _hub;
readonly IBus _bus;
readonly INotificationService _notification_service;
IDisposable _dispose;
[ImportingConstructor]
public GlobalAlertsDaemon(IBus bus, UserSettingsHub hub, INotificationService notification_service) {
_bus = bus;
_hub = hub;
_notification_service = notification_service;
_launcher = new ThreadedWindowLauncher(_window_name);
_dispose = Disposable.Create(
bus.subscribe(SparkTags.ShowGlobalAlertsTag)
.Subscribe(_ => _launcher.show(_view_factory)),
_hub.subscribe_default_settings()
.SubscribeEach(s => new CompositeDisposable(
s.alerts.trade_alerts.Where(t => t.is_enabled).Select(
a => _notification_service.link_to_trades(
a.predicate.security_criteria, a.predicate.create(), a.sound)))));
}
Window _view_factory() {
var vm = new GlobalAlertsVM();
vm.load_from(_hub.current.alerts);
vm.request_commit += commit;
var sec_sub = _bus.subscribe(SparkTags.SecuritiesTag).OnDispatcher().Subscribe(m => vm.security_map = m);
var win = new GlobalAlertsDialog {
Title = "Alerts",
DataContext = vm
};
win.Closed += (s, e) => Disposable.dispose(ref sec_sub);
return win;
void commit() {
var s = _hub.current.with(alerts: vm.create());
_hub.save_default(s).ignore();
}
}
public void Dispose() =>
Disposable.dispose(ref _dispose);
}
}
+15 -22
View File
@@ -1,5 +1,6 @@
using bts.api;
using bts.api.synthetic;
using bts.md;
using mbts;
using mbts.co2;
using mbts.spark;
@@ -7,14 +8,10 @@ using mbts.ui;
using System;
using System.Collections.Generic;
using System.ComponentModel.Composition;
using System.Linq;
using System.Reactive.Linq;
using System.Threading.Tasks;
using System.Linq;
using SecurityKey = System.UInt32;
using System.Collections.Concurrent;
using System.Threading;
using bts.api.user;
using bts.md;
namespace bts {
[Export(typeof(IInitializable))]
@@ -24,21 +21,25 @@ namespace bts {
readonly Lazy<SyntheticSecurityService> _ss;
readonly Dictionary<SecurityKey, SecurityMD> _deleted_synthetics = new Dictionary<SecurityKey, SecurityMD>();
static uint get_naggle() => mbts.config.Configuration.get<md.RelayOptions>().naggle_ms;
[ImportingConstructor]
public MDDaemon(Lazy<IBus> bus, Lazy<AuthTokenImmutable> token, Lazy<SyntheticSecurityService> ss) :
base(get_naggle(), MDSourceOptions.DeferInit) {
public MDDaemon(Lazy<IBus> bus, Lazy<AuthTokenImmutable> token, Lazy<SyntheticSecurityService> ss, UserTuple user)
: base(mbts.config.Configuration.get<md.RelayOptions>().naggle_ms, MDSourceOptions.DeferInit, user) {
_bus = bus;
_token = token;
_ss = ss;
_ss = ss;
}
override public void initialize() {
public int priority => 55;
[Export]
MDConsumer consumer => _consumer;
IBus bus => _bus.Value;
public override void initialize() {
_relay.set_token(_token.Value);
_dispose.Add(
_ss.Value.subscribei_metadata()
.Select(upd => upd.all.ToDictionary(i => i.SecurityKey, i => i.Strategy))
.Select(upd => upd.all.Where(i => i.HasStrategy).ToDictionary(i => i.SecurityKey, i => i.Strategy))
.Subscribe(t => {
var deleted_synthetic_keys = new HashSet<uint>(t.Where(kv => kv.Value.Deleted).Select(kv => kv.Key));
// add back 'undeleted' synthetics
@@ -59,16 +60,8 @@ namespace bts {
// Post full dictionary of syntheics here
bus.post(SparkTags.SyntheticstrategiesTag, t);
}));
_dispose.Add( this.on_securities.Subscribe( (md) => {
bus.post(SparkTags.SecuritiesTag, md);
}));
_dispose.Add(on_securities.Subscribe(md => bus.post(SparkTags.SecuritiesTag, md)));
Task.Run(run);
}
[Export]
MDConsumer consumer => _consumer;
public int priority => 55;
IBus bus => _bus.Value;
}
}
}
+55
View File
@@ -0,0 +1,55 @@
using System;
using System.ComponentModel.Composition;
using mbts.ui;
using mbts;
using Newtonsoft.Json;
using System.Threading.Tasks;
namespace bts.spark {
[Export(typeof(IShellDaemon))]
class OopsDaemon : IShellDaemon, IDisposable {
[ImportingConstructor]
public OopsDaemon(ErrorReporter e) {
var pid = get_pid();
if (pid.HasValue) {
handle_unclean_shutdown(e, pid.Value);
}
save_pid();
}
public void Dispose() {
clear_pid();
}
void handle_unclean_shutdown(ErrorReporter e, int oldpid) {
string extra = "";
try {
var conf = mbts.config.Configuration.get<bts.config.System>();
extra = JsonConvert.SerializeObject(conf, Formatting.Indented);
}
catch { }
Task.Run(() => e.report_silently(
$"Host: {Environment.MachineName}",
$"pid: {oldpid}\n{extra}",
"Automated crash report")
);
}
const string _subkey = @"Software\BTS";
private void save_pid() {
using (var key = Microsoft.Win32.Registry.CurrentUser.CreateSubKey(_subkey)) {
key.SetValue("pid", System.Diagnostics.Process.GetCurrentProcess().Id, Microsoft.Win32.RegistryValueKind.DWord);
}
}
private void clear_pid() {
using (var key = Microsoft.Win32.Registry.CurrentUser.CreateSubKey(_subkey)) {
key.DeleteValue("pid",false);
}
}
private int? get_pid() {
using (var key = Microsoft.Win32.Registry.CurrentUser.CreateSubKey(_subkey)) {
return key.GetValue("pid") as int?;
}
}
}
}
+30 -5
View File
@@ -3,14 +3,17 @@ using bts.api.core;
using bts.api.orderman;
using bts.spark;
using mbts;
using mbts.config;
using mbts.spark;
using mbts.ui;
using mbts.ui.spark;
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.ComponentModel.Composition;
using System.Reactive.Linq;
using System.Windows;
using LadderSettings = mbts.spark.LadderSettings;
namespace bts.shell {
[Export(typeof(IShellDaemon))]
@@ -18,20 +21,26 @@ namespace bts.shell {
readonly IBus _bus;
readonly OrdersModel _model;
readonly ErrorReporter _error_reporter;
readonly bool _close_on_send;
IReadOnlyDictionary<uint, SecurityMD> _md_map;
TableUpdate<(SecurityImmutable? sec, OrderRecordImmutable order), uint> _orders;
IDisposable _dispose;
[ImportingConstructor]
public OrderTicketDaemon(IBus bus, OrdersModel model, ErrorReporter error_reporter) {
public OrderTicketDaemon(IBus bus, OrdersModel model, ErrorReporter error_reporter)
: this(bus, model, error_reporter, Configuration.get<bts.config.OrderTicketOptions>().close_on_send) { }
public OrderTicketDaemon(IBus bus, OrdersModel model, ErrorReporter error_reporter, bool close_on_send) {
_bus = bus;
_model = model;
_error_reporter = error_reporter;
_close_on_send = close_on_send;
_dispose = Disposable.Create(
model.on_orders.OnDispatcher().Subscribe(o => _orders = o),
bus.subscribe(SparkTags.SecuritiesTag).OnDispatcher().Subscribe(m =>_md_map = m),
bus.subscribe(SparkTags.ShowOrderTicketFromSecurityTag).OnDispatcher().Subscribe(_show_order_ticket),
bus.subscribe(SparkTags.ShowOrderTicketTag).OnDispatcher().Subscribe(_show_order_ticket),
bus.subscribe(SparkTags.ShowOrderTicketAutoLookupTag).Subscribe(_show_order_tickets),
bus.subscribe(SparkTags.ShowModifyOrderTag).OnDispatcher().Subscribe(_show_modify_order)
);
}
@@ -42,23 +51,39 @@ namespace bts.shell {
void _show_order_window(Window window) {
foreach (var kv in AlgoStudioModelUtils.get_dynamic_resources(_model.algo_model.ui_configuration))
window.Resources[kv.Key] = kv.Value;
// the dynamic algo 'SecurityKey' template has a ContractPickerPopup that expects the security map to be available as a DynamicResource.
var sub = _bus.subscribe(SparkTags.SecuritiesTag)
.OnDispatcher()
.Subscribe(sec_map => window.Resources[ResourceKeys.Securities] = sec_map);
window.Closed += (s, e) => Disposable.dispose(ref sub);
window.Show(-200, -160, true);
}
void _show_order_ticket(SecurityMD smd) =>
_show_order_window(new OrderTicket {
DataContext = new NewOrderTicketVM(_model, smd,
Observable.Return(_model.factory.default_ladder_settings(smd.security)))
Observable.Return(LadderSettings.Default)) {
close_on_send = _close_on_send
}
});
void _show_order_ticket((OrderDefinitionImmutable def, double price, uint size) ops) {
if (_md_map.TryGetValue(ops.def.SecurityKey, out SecurityMD smd))
_show_order_window(new OrderTicket {
DataContext = new NewOrderTicketVM(_model, smd, ops.def, ops.price, ops.size,
Observable.Return(_model.factory.default_ladder_settings(smd.security).calculator_buttons))
Observable.Return(LadderSettings.Default.calculator_buttons)) {
close_on_send = _close_on_send
}
});
}
void _show_order_tickets(IImmutableSet<uint> securities) {
foreach (var id in securities.empty_if_null()) {
if (_md_map.TryGetValue(id, out var smd))
_show_order_ticket(smd);
}
}
void _show_modify_order(uint order_key) {
if (_orders.state.TryGetValue(order_key, out var ori) && ori.sec.HasValue
&& (ori.order.HasDef && ori.order.Def.HasCustomDef && !(ori.order.Def.CustomDef.HasStop || ori.order.Def.CustomDef.HasStopLimit))) {
@@ -66,10 +91,10 @@ namespace bts.shell {
_show_order_window(new OrderModificationDialog {
DataContext = new ExistingOrderTicketVM(_model,
Observable.Return((md,ori.order)),
Observable.Return(_model.factory.default_ladder_settings(ori.sec.Value).calculator_buttons)
Observable.Return(LadderSettings.Default.calculator_buttons)
)
});
}
}
}
}
}
@@ -69,10 +69,11 @@ namespace bts {
cpv.Width = double.NaN;
cpv.Height = double.NaN;
vm.ok_action = () => {
vm.ok_action += () => {
window.Close();
message.complete(select_result(vm)).execute(_bus);
};
vm.cancel_action += () => window.Close();
window.move_to_mouse();
window.Show();
}
@@ -4,15 +4,12 @@ using mbts;
using mbts.config;
using mbts.ui;
using System;
using System.Collections.Generic;
using System.ComponentModel.Composition;
using System.Linq;
using System.Net.NetworkInformation;
using System.Text;
using System.Threading.Tasks;
namespace bts.perf {
[Export, Export(typeof(IShellDaemon))]
class ShellLatencyDaemon : IShellDaemon, IDisposable {
readonly ShellLatencyService _service;
@@ -23,10 +20,10 @@ namespace bts.perf {
Ping _pinger = new Ping();
[ImportingConstructor]
public ShellLatencyDaemon(ShellLatencyService service, [Import("username")] string user) {
public ShellLatencyDaemon(ShellLatencyService service, UserTuple user) {
_service = service;
_version = Configuration.get<bts.config.System>().version;
_username = user;
_username = user.name;
_hostname = Environment.MachineName;
_forever_ping_host(_pinger);
@@ -104,4 +101,4 @@ namespace bts.perf {
Disposable.dispose(ref _subs);
}
}
}
}
Loaded 100 of 1397 files, more files were not shown because too many files have changed in this diff. Show more