Compare commits

...
Author SHA1 Message Date
Michael Harding 189157b1c7 initialize_for_test changes (thanks eric) 2019-06-13 14:50:24 -04:00
Michael Harding 64fd8addb2 Update Lean qty factor shell script 2019-06-13 09:38:11 -04:00
Michael Harding 4490ac303e SPARK-2438: Lean Qty test 2019-06-12 15:41:16 -04:00
Michael Harding 666bd07411 Merge branch 'master' into spreader_lean_qty 2019-06-10 12:56:44 -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
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 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
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
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
Pedro Pinto 147e43b464 Merged with master 2019-06-07 16:58:35 -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
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
Taha Afzal a4d63a1421 this should fix the confusion 2019-06-06 19:13:46 -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
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
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
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
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
Jake Norbut 3b9c2f5d70 adding a try/catch around the leg lookup 2019-05-28 16:58:27 -05: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
Jake Norbut 2b1b1f1681 Merge branch 'master' of bitbucket.org:bluetradesys/spark into SPARK-2464 2019-05-28 13:23:17 -05: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
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
Taha Afzal e8a467d5f1 1.Position limit check for QHO and 2. QHO crash for rejected orders 2019-05-27 16:03:44 -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
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
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
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
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
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
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
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
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
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
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
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
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
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
Jake Norbut 931ed76673 implementing IEditableObject via reflection 2019-05-14 14:58:54 -05: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
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
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
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
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
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
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
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
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
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
Eric Harding 09e8fabcf2 ExchangeSim - use open_quantity for mbo instead of quantity 2019-05-02 12:14:24 -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
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
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
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
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
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
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
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
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
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
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
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
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
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
Michael Harding 8a53863218 Merge branch 'master' into spreader_test 2019-04-23 16:16:19 -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
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
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
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
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 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
John Colvin add897f4a6 fix QuantityMeasureControl visual state transition bug 2019-04-20 12:21:11 -05: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
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
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
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
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
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
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
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
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
Pedro Pinto 7d7ddf53d9 Cover supports attach/detach/update. 2019-04-05 17:34:42 -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
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
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
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
Jake Norbut 16acc4f5b0 Mass cancel messaging nits 2019-04-02 09:42:20 -05:00
John Colvin f09607caaf Merge remote-tracking branch 'origin/master' into SPARK-1944-attach/detach/update 2019-04-02 09:32:24 -05:00
John Colvin b8a94f2540 Merged in miniob-crash (pull request #205)
fix crash in miniob

Approved-by: Jake Norbut <jake.norbut@bluetradesys.com>
2019-04-02 14:11:57 +00:00
John Colvin 3af7e561b9 fix crash in miniob 2019-04-02 09:01:53 -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
Pedro Pinto f871dfe142 Merged. 2019-04-01 14:48:40 -04:00
Pedro Pinto d44de204ee Merge remote-tracking branch 'origin/ice_md' 2019-04-01 14:34:32 -04:00
Pedro Pinto 04beea61eb Updated release notes. 2019-04-01 14:34:03 -04:00
Pedro Pinto 2181b92970 Merged 2019-04-01 14:25:48 -04:00
Pedro Pinto 693c730f51 Update release notes. 2019-04-01 14:24:44 -04:00
Kevin Darby 0ccba5bb0b Merged in fix_sim (pull request #202)
RTM: Fix ladder highlighting and aggressor marking in sim

Approved-by: Pedro Pinto <pedro.pinto+atlassian@bluetradesys.com>
2019-04-01 18:24:09 +00:00
Pedro Pinto 3458be59d7 Merge branch 'master' of bitbucket.org:bluetradesys/spark 2019-04-01 14:17:52 -04:00
Pedro Pinto 7dc9aa0710 Uppdate release notes. 2019-04-01 14:17:02 -04:00
Pedro Pinto 88d6dd0f00 Merge remote-tracking branch 'origin/SPARK-2162-notificationservice-cleanup' 2019-04-01 14:11:34 -04:00
Eric Harding ce4c46da04 Add some logging to spark shell shutdown sequence 2019-04-01 14:03:09 -04:00
Pedro Pinto 59c1f6a511 Updated release notes 2019-04-01 12:58:44 -04:00
Pedro Pinto 938caf9a4f Updated release notes. 2019-04-01 12:55:51 -04:00
Pedro Pinto df4f061b6c Merged 2019-04-01 12:47:38 -04:00
Jake Norbut 8afee21df7 hooking up the yes/no filter to the column 2019-04-01 11:21:02 -05:00
Pedro Pinto f34014eb25 Merged SPARK-2198 again 2019-04-01 12:11:58 -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
Jake Norbut b07eec08b4 Yes No formatting in row 2019-04-01 10:36:25 -05:00
Pedro Pinto 964274f5c4 Updated release notes. 2019-04-01 10:02:45 -04:00
Pedro Pinto c16941977c Merge remote-tracking branch 'origin/SPARK-2189' 2019-04-01 09:55:38 -04:00
Pedro Pinto 6b19119ab2 Updated release notes 2019-04-01 09:54:11 -04:00
Taha Afzal 9c4e1b5250 fixing build 2019-04-01 09:48:01 -04:00
Pedro Pinto ea42086e96 Merge branch 'SPARK-2198' of bitbucket.org:bluetradesys/spark 2019-04-01 09:39:05 -04:00
Pedro Pinto 292873b189 Update release notes. 2019-04-01 09:37:01 -04:00
Pedro Pinto 8545a5ef38 Merge branch 'SPARK-2150' 2019-04-01 09:30:03 -04:00
Pedro Pinto 6a52fff3d5 Updated release notes. 2019-04-01 09:28:33 -04:00
John Colvin 4ec6fafbc2 Merged in SPARK-2160-shell-windows-offscreen (pull request #195)
RTM: SPARK-2160 shell windows come up off screen sometimes

Approved-by: Jake Norbut <jake.norbut@bluetradesys.com>
2019-04-01 13:11:20 +00:00
Pedro Pinto b08e2c2ee6 Updated release notes. 2019-04-01 09:08:58 -04:00
Pedro Pinto 8bdd033501 Merge branch 'Documentation' 2019-04-01 09:04:51 -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
Taha Afzal 76466e83f0 changing hedger addiiton log from error to info 2019-03-29 17:26:36 -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
Kevin Darby 2540dc0510 ops notes 2019-03-29 15:20:35 -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
Kevin Darby f0132c84b6 Merge branch 'master' of bitbucket.org:bluetradesys/spark into fix_sim 2019-03-29 12:57:37 -04:00
Jake Norbut 57ca9596c8 changing column name 2019-03-29 11:05:15 -05: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
Jake Norbut bf4953f6dc adding TradedToday column to pnl 2019-03-29 09:45:32 -05:00
Jake Norbut c277fcd503 adding has_day_trades property 2019-03-29 09:44:55 -05:00
Jake Norbut dff57a43dd Adding TradedToday to Column enum 2019-03-29 09:43:53 -05:00
Jake Norbut 39c71d0c16 adding has day trades field to pnl's FilterState proto 2019-03-29 09:39:21 -05: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
Jake Norbut 009e72953c adding SecurityType default fitler; technical_debt++ 2019-03-28 15:31:56 -05:00
Jake Norbut 635163c895 hiding exch, start pnl, total net pos, and total net pnl by default 2019-03-28 15:03:54 -05: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
Jake Norbut 95e96a6afc remove pnl rows from which there is no net pos or day pos 2019-03-28 13:52:29 -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
Pedro Pinto f5354776f1 Top order support attach/detach and full update. 2019-03-27 11:06:04 -04:00
Kevin Darby c7f0e2dd58 Merge branch 'master' of bitbucket.org:bluetradesys/spark into ice_md 2019-03-26 18:43:38 -04:00
Jake Norbut f5e79a65a3 relocating comment after PR edit 2019-03-26 11:17:37 -05:00
Jake Norbut c958f4bf1a PR suggestion - making row_vm -> communication a bit more flexibile 2019-03-26 11:15:15 -05:00
Pedro Pinto 9413eb2206 Removed incorrect assertion. 2019-03-26 09:20:31 -04:00
Pedro Pinto e986f77e72 Merged 2019-03-25 17:39:47 -04:00
Pedro Pinto 75095ce874 Moved Join to BaseAlgoOrder 2019-03-25 17:39:02 -04: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
Eric Harding 95939a5534 SPARK-2087 add GE to default symbol list 2019-03-25 10:22:52 -04:00
Kevin Darby 9a7164b42b Merge branch 'ice_md' of bitbucket.org:bluetradesys/spark into ice_md 2019-03-25 10:10:04 -04:00
Kevin Darby f347fda47f PR details 2019-03-25 10:09:37 -04:00
Kevin Darby d75ab3a63f default to no ice symbols 2019-03-22 23:12:24 -04:00
Kevin Darby b30f59227e note to reference jetfix on the precision 2019-03-22 23:11:01 -04:00
Kevin Darby ef60d4200a Fix ladder highlighting and aggressor marking in sim 2019-03-22 17:56:19 -04:00
Jake Norbut ed6f0b8bdb Merge branch 'master' of bitbucket.org:bluetradesys/spark into SPARK-2150 2019-03-22 15:17:21 -05: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
Kevin Darby 89b5610aa2 make it so time slice doesn't crash, 2019-03-22 12:18:36 -04:00
Pedro Pinto f721098ae0 BaseBook order class is code complete. 2019-03-22 11:16:54 -04:00
Kevin Darby bfff6454ef Merged in twap (pull request #197)
just trying to get a gui for timeslice
2019-03-22 14:44:07 +00:00
Jake Norbut 766116eac4 adding confirmation to OB cancel buys and cancel sells 2019-03-22 09:33:49 -05:00
Jake Norbut 8d49de3f61 simplying boolean comparison 2019-03-21 14:31:59 -05:00
Jake Norbut 16cf4554c5 refactoring into a much simpler implementation 2019-03-21 14:24:32 -05:00
Jake Norbut 6b17efee60 Converting cancel all command to new SparkConfirmationCommandParamObserver 2019-03-21 13:44:17 -05:00
Jake Norbut 5d64213455 Adding new SparkConfirmationCommandParamObserver, which adds a confirmation func to SparkCommandParamObserver 2019-03-21 13:40:21 -05:00
John Colvin b90e5e4274 TickUpDownDouble - remove and sort usings 2019-03-21 12:02:00 -05:00
John Colvin bacd4558e1 TickUpDownDouble - don't require DataContext to implement IWillLetYouKnowWhenIDispose 2019-03-21 12:00:55 -05:00
John Colvin 008e698766 TickUpDownDouble allows user to enter '.' 2019-03-21 11:48:12 -05:00
Pedro Pinto ed7f066f20 Porting book algos to attach/detach/update API 2019-03-21 09:11:58 -04:00
Jake Norbut db1b2a63af the start of a lean test 2019-03-21 08:05:33 -05:00
Kevin Darby d7c81a08ef might be able to implement this tomorrow 2019-03-20 23:07:46 -04:00
John Colvin aadb6c86f3 DynamicOrderParamVM supports 'Enumerated' param type 2019-03-20 14:18:00 -05:00
John Colvin 0ef44e92aa SPARK-2160 pr edit: refer to 'source_window_rect' for width/height params instead of window (easy way to avoid extra dp lookups) 2019-03-20 10:46:47 -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
Kevin Darby 5653a66a31 just trying to get a gui for timeslice 2019-03-19 22:48:15 -04:00
Kevin Darby ee2f76553b tests pass 2019-03-19 17:54:37 -04:00
Kevin Darby c1887b9786 launch.json 2019-03-19 15:28:11 -04:00
Kevin Darby 1fd5e51b9e reenabled cme, now we can get both ice and cme 2019-03-19 15:23:40 -04:00
John Colvin 56d3a27e7f SPARK-2162 / SPARK-2164 INotificationService - remove fake strongly typed 'link<T>' extension method 2019-03-19 13:12:04 -05:00
John Colvin 1c65b1d87a rename generic type arg 'TPredicateBuilder' -> 'TPredicateData' 2019-03-19 13:00:25 -05:00
John Colvin 693910f093 SPARK-2162 / SPARK-2163 GridSettingsManager/VM - replace IPredicateBuilder dependency with predicate-data factory(delegate) 2019-03-19 12:58:02 -05:00
Kevin Darby 498b38ebcb Merge branch 'master' of bitbucket.org:bluetradesys/spark into ice_md 2019-03-18 16:00:59 -04:00
John Colvin 99b9c51ad6 OrderTypeVMBase - initialize child_algos.is_expanded with this.is_expanded 2019-03-18 14:44:07 -05:00
John Colvin fe92389eab OrderBook - hide fills slave grid in 'attaching-orders' visual state 2019-03-18 14:20:37 -05:00
John Colvin 1ca5b217fc OrderBook - assign algo-template-key to OrderDefinition when sending attached orders (if template is selected) 2019-03-18 14:07:01 -05:00
John Colvin fb91206e0f pr edit: get window dimensions with window.ActualWidth/Height 2019-03-18 13:56:17 -05:00
John Colvin 91f4de00f8 pr edit: should not have changed while-loop to if-condition 2019-03-18 13:54:01 -05:00
John Colvin 28980f10ae SPARK-2160 shell windows come up off screen sometimes 2019-03-18 13:41:29 -05:00
Taha Afzal db20433d44 helper functions to QHOOrderManager 2019-03-18 13:58:42 -04:00
John Colvin 4e4ab52032 OrderBook - combine modify/attach visual state groups into 1 group of 'right-panel-states' 2019-03-18 12:20:58 -05:00
John Colvin 4cc513f1d3 RXOperableCollection - assign '_comparer' in constructor 2019-03-17 15:30:43 -05:00
John Colvin 7904065333 SPARK-2159 keep the attached order params and normal order params window the same size and animate the transition 2019-03-16 18:17:10 -05:00
John Colvin 961e06c31f SPARK-2153 Modify Algos -> Modify Orders 2019-03-16 12:23:14 -05:00
John Colvin 4132bdaba4 SPARK-2155 Send Attached Orders -> Attach To Orders 2019-03-16 12:20:05 -05:00
John Colvin 1c75f5f530 SPARK-2156 Dismiss attachment on click of grid 2019-03-16 12:17:46 -05:00
John Colvin d8e7dd7c3b OrderBooView - change element naming-scheme in xaml 2019-03-16 11:30:16 -05:00
John Colvin d0377475bb SPARK-2157 Detach Selected Orders -> Detach And Cancel Selected Orders 2019-03-16 11:20:38 -05:00
John Colvin 7826ff17c0 finish merge started by pedro (resolve conflicts in SpreaderOrderVM.cs) 2019-03-16 11:06:34 -05:00
John Colvin a46982333b SPARK-2158 Algo Studio Orders are Attachable 2019-03-16 11:06:34 -05:00
John Colvin e2cebaa5c8 add 'AlgoData' member to OrderDataHelper.Defauls (use in OrderBookVM) 2019-03-15 19:53:42 -05:00
John Colvin d03987591c OrderBook - order params ui populates 'account' with common selected value 2019-03-15 19:53:42 -05:00
John Colvin e909c37f88 OrderBookVM - refactor SelectedAlgosMon -> SelectedOrderParamsMon 2019-03-15 19:53:42 -05:00
Pedro Pinto e998edc20f Merged from master, note that SpreaderOrderVM.cs was not merged yet, so this client build will fail 2019-03-15 14:41:02 -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
Pedro Pinto 1c1be2b334 Idempotent cancels for Join,Iceberg and Native orders. 2019-03-15 11:20:47 -04:00
Michael Harding 04e006b812 Add new Spreader and Algo studio videos to the manual 2019-03-15 10:44:58 -04:00
John Colvin 5d89257643 OrderBook - make attach-order panel pop out less 2019-03-15 00:57:09 -05:00
John Colvin 897e134714 C# style cop changes 2019-03-14 21:15:29 -05:00
John Colvin e6cb97028b OrderBook - subscribe_common_sec_md notifies observer on subscribe 2019-03-14 21:13:31 -05:00
John Colvin 6c0dc80d43 OrderBook - sync attached-order-params with common values from selected orders 2019-03-14 21:13:31 -05:00
John Colvin ce3a4562d9 OrderBook - attach/detach logging 2019-03-14 21:13:31 -05:00
Pedro Pinto 217f0cd4cc Merged 2019-03-14 21:18:35 -04:00
Pedro Pinto 1e649ccce6 Made NativeOrder able to process full updates. 2019-03-14 21:17:15 -04:00
John Colvin cbc69ec5fd OrderBook - don't lose right-panel-width (when hidden) during attach-op 2019-03-14 20:12:22 -05:00
John Colvin 0d1eedc34a OrderBook - wrap 'send_attached_orders_async' in try/catch 2019-03-14 20:12:22 -05:00
John Colvin 4e85bf4520 OrderBook - refactor 'property-update-throttle' code to use CommonValueMonitor 2019-03-14 20:12:22 -05:00
Pedro Pinto 5d0023a80b Fixed a bug in detach handling in Join. 2019-03-14 21:09:16 -04:00
Pedro Pinto e300de2425 Fixed a few bugs in new Join 2019-03-14 20:13:18 -04:00
Pedro Pinto 569877752e Merged 2019-03-14 19:08:48 -04:00
Pedro Pinto 4846cf7693 Join with attach/detach and full update is code complete. 2019-03-14 19:04:51 -04:00
John Colvin 16a46955f4 OrderBook - attach buttons become disabled when selected order transitions from working -> non-working 2019-03-14 16:43:16 -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
John Colvin 13a6d68b60 OrderBook - change 'Modify Order' keyboard shortcut Ctrl+Alt+M -> Ctrl+Shift+M 2019-03-14 13:05:15 -05:00
John Colvin 1affd992de OrderBook - reduce attach-ui panel width 2019-03-14 12:39:27 -05:00
John Colvin d951258891 OrderBook - bottom of attach-ui was getting chopped off 2019-03-14 12:32:40 -05:00
John Colvin f5dfb0264b OrderBook - change default fills slave grid height 400 -> 138 2019-03-14 11:19:36 -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
John Colvin 3b8f5c5093 OrderBook - minor style changes to right-panel 2019-03-14 00:04:34 -05:00
John Colvin 253d213818 OrderBook - unify attach/modify order param controls/vms 2019-03-13 21:41:49 -05:00
John Colvin f89cb3d61e OrderBook - prevent 'Modify Algos' button from hiding below visible bounds 2019-03-13 17:29:35 -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
John Colvin eb6573399b OrderBook - add 'Cancel' button to attach-orders-panel 2019-03-13 15:10:05 -05:00
John Colvin 8ba8ce76ce CancelButton Style - add 'Cancel (Esc)' tooltip 2019-03-13 15:07:33 -05:00
John Colvin e65b8e9d4d OrderBook - disable 'send attached orders' button when selection is empty or has non-working orders 2019-03-13 14:27:33 -05:00
John Colvin 2fc379fbef OrderBookView - ensure fills slave grid min height in xaml (64) 2019-03-13 13:52:10 -05:00
John Colvin fb96a75a8e OrderBook - change attach-menu-item text from 'Attach Selected Orders' -> 'Attach To Selected Orders' 2019-03-13 13:46:03 -05:00
John Colvin 240d15af47 OrderBookView - remove attach-instructions text xaml 2019-03-13 13:46:03 -05:00
John Colvin 2530e43797 OrderBook - hide attach-instruction text, animate right panel 2019-03-13 13:09:28 -05:00
John Colvin b05d85d6c3 OrderBook - change 'Attach' prompt style 2019-03-13 12:22:04 -05:00
John Colvin 52f2e77310 OrderBook - change Attach/Detach icons 2019-03-13 12:16:57 -05:00
John Colvin bd00c6de3e SPARK-2093 Attach/Detach ui 2019-03-13 11:48:08 -05:00
Jake Norbut 84e443ee4b copying *.sh scripts for testing on linux 2019-03-13 11:40:16 -05:00
Jake Norbut 02ed327ec7 clarifying tests 2019-03-12 16:20:46 -05:00
Jake Norbut e9162263d6 Merge branch 'master' of bitbucket.org:bluetradesys/spark 2019-03-12 16:14:03 -05:00
Jake Norbut 3b3cc9a51c clarifying test 2019-03-12 16:13:51 -05:00
Jake Norbut 5b959ca5bd OB window command update when selected row's row vm changes 2019-03-12 14:39:25 -05:00
John Colvin 54f03c4a03 Merged in SPARK-2107-sound-triggers (pull request #193)
SPARK-2107 QA: settings/SoundAndNotificationsTest.txt
2019-03-12 17:58:36 +00:00
Pedro Pinto c4d297969b Improved tests. 2019-03-12 13:54:12 -04:00
John Colvin 1f86456437 SPARK-2107 QA: settings/SoundAndNotificationsTest.txt 2019-03-12 12:50:32 -05:00
Pedro Pinto e24e04ca4f Fixed OrderManager reentrancy problem reported by Taha 2019-03-12 10:01:57 -04:00
John Colvin 87aea4812f OrderBook algo editor would stop loading non-spreader algos once a spreader order was selected 2019-03-11 21:27:22 -05:00
John Colvin 21ae3b14c8 OrderBook attach/detach ui - use 'Pen' cursor when attachment is in progress 2019-03-11 20:20:29 -05:00
John Colvin 708ae185f1 rename OrderBookAttachTargetAdorner -> OrderBookAttachmentTargetAdorner (matches file) 2019-03-11 20:10:50 -05:00
John Colvin 5c6dbd7bd1 OrderBook - hook up attach/detach api calls 2019-03-11 20:07:29 -05:00
John Colvin 08a1e07ab6 Merged in SPARK-2098-spreader-orders-missing-security (pull request #192)
RTM SPARK-2098 security is not assigned to SpreaderOrderDefinition when sending orders
2019-03-11 23:57:58 +00:00
John Colvin 038e6d16af SPARK-2098 security is not assigned to SpreaderOrderDefinition when sending orders 2019-03-11 16:59:18 -05:00
Eric Harding fe2e1e9945 Merge branch 'AdditionalTracing-MinimumInterval' of bitbucket.org:bluetradesys/spark 2019-03-11 17:00:30 -04:00
Eric Harding 20d5276874 Remove trace::log_scope function and just use constructor 2019-03-11 16:53:12 -04:00
John Colvin f19a280b7f DIYGridRowHighlighterAdorner derives from new generic Adorner<T> class 2019-03-11 15:39:57 -05:00
Eric Harding b2f3d093d2 Merged in AdditionalTracing-MinimumInterval (pull request #191)
RTM: cut down on tracing load by supplying a minimum interval
2019-03-11 20:28:05 +00:00
John Colvin 4860f706ad Merged in SPARK-2097-change-cover/lean-defaults (pull request #190)
SPARK-2097 change Lean/Cover defaults - Lean.MaxChaseTicks = 2, Cover.HedgeTicks = 1

Approved-by: Kevin Darby <kevin.darby@bluetradesys.com>
2019-03-11 20:24:06 +00:00
Eric Harding 29ddd6621c Move NativeOrder::on_activate trace message so it doesn't get triggered by warmup 2019-03-11 16:11:21 -04:00
Jake Norbut 3821dfb8ff Merge branch 'master' of bitbucket.org:bluetradesys/spark into system_tests 2019-03-11 14:45:10 -05:00
John Colvin 47cf9e2fe6 OrderBook - add 'Attached Target Order Key' column 2019-03-11 14:14:24 -05:00
Jake Norbut 01a8502b20 refactoring to resuse user and account between different tests 2019-03-11 14:04:40 -05:00
John Colvin df75518389 OrderBook - add parent-key-regex property to FilterStates proto (guess we accidentally omitted it) 2019-03-11 14:01:20 -05:00
John Colvin 90c371c72f OrderBookColumns - remove 'sort_member_path' (not needed bc orderbook handles sorting events internally) 2019-03-11 13:48:46 -05:00
Jake Norbut edfa079326 ib avg filled test 2019-03-11 13:46:00 -05:00
John Colvin 9609f7e6cf OrderBook FilterStates proto - override obj Equals/GetHashCode 2019-03-11 13:35:26 -05:00
Eric Harding e8e0f01fb7 Merged master into AdditionalTracing-MinimumInterval 2019-03-11 14:16:09 -04:00
Eric Harding 41a04de31b Update threshhold with help from compiler 2019-03-11 14:14:51 -04:00
Jake Norbut 316a617c65 more refactoring 2019-03-11 13:08:16 -05:00
John Colvin 30c83b7c72 OrderBookGridView - stack 'ColumnKeys' enum fields vertically (easier to read) 2019-03-11 13:02:17 -05:00
John Colvin 382d8b468c ObservableNode - assign child_node.parent when adding child 2019-03-11 12:58:43 -05:00
John Colvin b3b1af68d0 SPARK-2097 change Lean/Cover defaults - Lean.MaxChaseTicks = 2, Cover.HedgeTicks = 1 2019-03-11 12:23:49 -05:00
John Colvin cbe6d07a86 OrderBookStartupData - set default values for algo_editor_width/height/is_visible 2019-03-11 11:03:51 -05:00
John Colvin 6d67700ee6 OrderBookView - reduce 'attach-algo-instructions' text fadeout duration from 1 sec to 0.5 2019-03-11 10:49:12 -05:00
Jake Norbut 0e92a12e65 refactoring/reorg 2019-03-11 10:08:13 -05:00
Pedro Pinto 7cbf729607 Cleaned up release notes further. 2019-03-11 08:52:35 -04:00
Pedro Pinto 6e8851d92c Updated subrepo pointers 2019-03-11 08:51:31 -04:00
Pedro Pinto 460e747f55 Merge branch 'master' of bitbucket.org:bluetradesys/spark 2019-03-11 08:49:24 -04:00
Pedro Pinto 20978b10d4 Updated release notes 2019-03-11 08:49:19 -04:00
John Colvin 42e0cfba70 Merged in SPARK-2079-trigger-cleanup (pull request #183)
RTM - SPARK-2079 trigger cleanup
2019-03-11 12:48:44 +00:00
Michael Harding 728c485013 Merged in doc_temp_build (pull request #174)
RTM: Doc temp build
2019-03-11 12:47:40 +00:00
Eric Harding b83f88e098 Merged in AlmostNeverRecordSim (pull request #185)
RTM: Almost never want to record sim market data
2019-03-11 12:46:55 +00:00
Eric Harding 32b1a38655 Merged in DenyCopy (pull request #177)
RTM: Explicitly deny copying a service.  make_*_publisher points back to the owning service
2019-03-11 12:44:49 +00:00
Taha Afzal 24934f6607 Merged in SPARK-2058-netchange (pull request #184)
RTM SPARK-2058 netchange
2019-03-11 12:43:56 +00:00
Brian Muhr 90b56277ca Merged in Documentation (pull request #179)
RTM: Documentation - added Algo Studio, new images, freshened up quite a bit

Approved-by: Michael Harding <michael.harding@bluetradesys.com>
2019-03-11 12:42:51 +00:00
Eric Harding 20ca8a7ffe Merged in AdditionalTracing (pull request #189)
RTM: Additional Tracing

Approved-by: Pedro Pinto <pedro.pinto+atlassian@bluetradesys.com>
2019-03-11 12:40:57 +00:00
Pedro Pinto 6ed4adbc14 Merged in fix_warmup_limit_polution (pull request #187)
RTM. Fixed order warm up code to clear errors detected during warmup
2019-03-11 12:38:05 +00:00
Eric Harding 9117e3e238 Add a minimum tracing interval for scoped logs 2019-03-11 07:58:43 -04:00
Eric Harding c0f079b7f6 Code review feedback 2019-03-11 07:31:03 -04:00
John Colvin e9cf1db184 OrderBookView - Fills/AlgoEditor GridSplitter needs min height to prevent it from vanishing when fills grid is collapsed 2019-03-10 23:37:28 -05:00
John Colvin e4c98d947e Merge remote-tracking branch 'origin/SPARK-2079-trigger-cleanup' into SPARK-1944-attach/detach/update 2019-03-10 23:10:59 -05:00
John Colvin ab9de97d6e remove file that was accidentally checked in 2019-03-10 22:59:55 -05:00
John Colvin 4e425a3380 SPARK-2093 Attach/Detach ui 2019-03-10 22:57:52 -05:00
John Colvin 751f22645d SPARK-2089 [cherry-picked] Strange null ref exception in OrderBook row-selection changed callback during application shutdown 2019-03-10 22:21:53 -05:00
John Colvin 47daf439d0 OrderPropertiesEditor - observe_order_type() check if templates are enabled 2019-03-10 21:41:44 -05:00
Eric Harding 19ce3a7dd4 Additional spreader tracing 2019-03-10 16:19:15 -04:00
John Colvin ac67c84ce7 OrderBookWindow - remove individual SparkCommand fields (reduce scope to be local to thread_init()) 2019-03-10 15:04:03 -05:00
John Colvin 79120ea7a5 OrderBook 'fills slave grid' - init predicate hides all rows 2019-03-10 14:45:43 -05:00
John Colvin 5686b57d47 ObservableAutoWrapper - fix typeo (change 'Reset' to 'Remove') 2019-03-10 14:38:06 -05:00
John Colvin cb456a439c fix typeo in LazySubscription 2019-03-10 14:33:42 -05:00
John Colvin a85a7f624a refactor [TableUpdate]LeftJoin\Filter extensions to use AggregateLatest (share common code) 2019-03-10 14:27:39 -05:00
John Colvin 19e4da9936 StringBuilderEx - remove implicit 'StringBuilder' cast operators (seems sketch with reference types) 2019-03-09 22:09:27 -06:00
John Colvin 1494c37cc7 OrderBook - add 'fills-slave-grid' above the algo editor (shows fills for current row-selection) 2019-03-09 22:09:27 -06:00
John Colvin af1fbaf3ed implement TableUpdate filter with IObservable predicate 2019-03-09 22:09:27 -06:00
John Colvin 82a93e39f8 DIYGrid - use max 'visible' column's font size to determine min row height 2019-03-09 22:09:27 -06:00
John Colvin 36684f8ee5 ObservableFilterCollection - in 'reset(),' clear the target collection if source is empty 2019-03-09 22:09:27 -06:00
John Colvin c8cd2ae1ad fix 'sync_with_never_duplicate()' - should remove items from 'dest' that aren't in 'src' 2019-03-09 22:09:27 -06:00
John Colvin 93afb5b602 introduce FillsVMContainer 2019-03-09 22:09:27 -06:00
John Colvin 429b0bb8f8 ObservableAggregateCollection.Aggregator implements IList (not new functionality, just refactored some methods) 2019-03-09 22:09:27 -06:00
Pedro Pinto 80ce5447e5 Validate that IcebergOrders must have child definitions. 2019-03-08 17:56:27 -05:00
Pedro Pinto 609b0dceb1 Native orders now reflect new FIX tags when attached to. 2019-03-08 17:49:51 -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
Pedro Pinto ea47042816 Merge branch 'SPARK-1944-attach/detach/update' of bitbucket.org:bluetradesys/spark into SPARK-1944-attach/detach/update 2019-03-08 17:25:30 -05:00
Pedro Pinto 4b23e17534 Updating native order FIX tags when attached. 2019-03-08 17:25:00 -05:00
John Colvin f69301611a OrdersModel - for non-algo updates, set Update.Custom to null instead of populating with existing order's CustomDef 2019-03-08 15:52:38 -06:00
Kevin Darby 7ac54242e0 Merge branch 'master' of bitbucket.org:bluetradesys/spark into ice_md 2019-03-08 16:19:04 -05:00
Kevin Darby 1ebf8219c2 ice descriptions in mview 2019-03-08 16:17:53 -05:00
Kevin Darby f0b14cb8dc forgot to init new string fields 2019-03-08 16:10:02 -05:00
Kevin Darby 7259f81ab5 forgot to init new string fields 2019-03-08 16:03:49 -05:00
Kevin Darby 3b902b61dd ice spreads 2019-03-08 15:55:10 -05:00
John Colvin c04ac5cd48 OrderDataHelper - fix get_metadata() 'Spreader' switch-case 2019-03-08 14:36:39 -06:00
John Colvin aa39349fc4 SPARK-2092 Orderbook update ui supports spreader algos 2019-03-08 14:36:39 -06:00
John Colvin d1c915fef3 ObservableAutoWrapper - fix typeo (change 'Reset' to 'Remove') 2019-03-08 14:14:08 -06:00
John Colvin 69bdf07423 SPARK-2089 Strange null ref exception in OrderBook row-selection changed callback during application shutdown 2019-03-08 14:14:08 -06:00
John Colvin 4115a6c790 AlgoStructureKey - structure-serialization supports DynamicOrderDefinition 2019-03-08 14:14:08 -06:00
John Colvin 8f8aae57de remove IAlgoVM.can_edit_blah props; view binds to permission flags w EnumHasFlagsConverter; view uses VisualStates 2019-03-08 14:14:08 -06:00
John Colvin 362f75c8b2 OrderBookVM - null check an event, fix initial algo editing permissions 2019-03-08 14:14:07 -06:00
Pedro Pinto 39e855e691 Merged 2019-03-08 14:08:46 -05:00
Pedro Pinto 73303ccd33 Merge branch 'fix_warmup_limit_polution' into SPARK-1944-attach/detach/update 2019-03-08 14:02:23 -05: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
Kevin Darby 6cfef51e3d subrepo 2019-03-07 18:12:39 -05:00
Kevin Darby 76edb94905 ticks.... 2019-03-07 18:10:11 -05:00
Kevin Darby e4bf9fc747 ice market data 2019-03-07 17:56:28 -05:00
John Colvin 6826494898 EnumHelper - don't initialize 'ThreadStatic' fields 2019-03-07 13:37:02 -06:00
Pedro Pinto 69fcfbd6ce Removed over-zealous assertion. 2019-03-07 14:28:49 -05:00
Pedro Pinto 64973e1b51 Merged fix_om_reentrancy into queue_holder_order 2019-03-07 13:29:20 -05:00
Pedro Pinto c1d62a2ff6 Fixed OrderManager reentrancy problem reported by Taha 2019-03-07 13:27:05 -05:00
Kevin Darby d488ff23ba I misunderstood how onixs wants to do the ice threading. fixed 2019-03-07 11:38:38 -05:00
Pedro Pinto c1d4b9cd9f Fixed order warm up code to clear errors detected during warmup
This could cause later orders to fail even if the error condition no
longer obained.
2019-03-07 11:23:57 -05:00
Pedro Pinto dce856e4af Fixed duplication of entries in event_log_archive in perf_log 2019-03-07 11:04:11 -05:00
Taha Afzal f4c0f24e80 reading qho queue size from ui 2019-03-06 20:02:38 -05:00
Kevin Darby 6b6fd9c40a more ice 2019-03-06 14:58:09 -05:00
Pedro Pinto 1fa419eae2 Merge branch 'SPARK-1944-attach/detach/update' of bitbucket.org:bluetradesys/spark into SPARK-1944-attach/detach/update 2019-03-06 14:42:16 -05:00
Pedro Pinto e3a3eb6d85 Redirected Iceberg factory to create Iceberg2. 2019-03-06 14:41:57 -05:00
Pedro Pinto 18a32f9a05 White space. 2019-03-06 14:41:26 -05:00
John Colvin b7c127b2d8 EnumHasFlagsConverter - ContentProperty = 'Flags' 2019-03-06 12:59:16 -06:00
John Colvin f83f94fb07 rename [class]EnumFlagsToBooleanConverter -> EnumHasFlagsConverter (matches filename) 2019-03-06 12:55:28 -06:00
John Colvin 23f76a1c80 remove some redundant\unused code 2019-03-06 12:49:08 -06:00
John Colvin cc0f6ea448 OrderBook Algo Panel - show inactive order algos, but disable controls 2019-03-06 12:48:58 -06:00
Taha Afzal 37b211532e merging from master 2019-03-06 11:53:02 -05:00
John Colvin cbb6936553 OrderBookView - animate GridSplitter background on mouse over 2019-03-05 23:30:28 -06:00
John Colvin 633433cab9 Colors.xaml - fix line endings 2019-03-05 23:24:35 -06:00
John Colvin 3ab7ed0b71 AlgoEditorView - remove ugly ToString() text when Limit, Market etc., are selected 2019-03-05 23:10:54 -06:00
John Colvin fc1adf8c28 OrderBookWindow - include 'show/hide algo editor command' in toolbar (not just context menu) 2019-03-05 20:31:24 -06:00
John Colvin 79cf313b5b SPARK-2014 Add OB support for full updates 2019-03-05 20:18:24 -06:00
John Colvin 00834a668c ObservableDistinctCollection - actually use equality comparer arg 2019-03-05 20:18:23 -06:00
John Colvin 32c9c23d7e fix typeo in MapAggregate() extension (actually use key_comparer arg) 2019-03-05 20:18:23 -06:00
John Colvin 5ac8d2ada6 AlgoSelector - set selected_algo_changed hook in constructor (not 'load_from' method) 2019-03-05 20:18:23 -06:00
John Colvin 54eb6ceaa9 fix typeo in LazySubscription 2019-03-05 20:18:23 -06:00
John Colvin 540db91311 add config to enable\disable multi-threading for ISharedWindows 2019-03-05 20:18:05 -06:00
John Colvin 1ee2193c88 ObservableAutoWrapper.connect_item_actions - invoke action for existing items 2019-03-05 20:16:48 -06:00
John Colvin 84877af947 SPARK-2079 [pr edit]child algo 'name' overlapped expander button 2019-03-05 20:16:48 -06:00
John Colvin 388cf92a70 SPARK-2079 [pr edit]remove #define ALLOW_FIXED_PRICE_TRIGGER 2019-03-05 20:16:48 -06:00
John Colvin 840441a749 SPARK-2079 Trigger Clean up (simplify) 2019-03-05 20:16:48 -06:00
John Colvin c39a510d09 refactor\cleanup OrderTypeVMBase and impls 2019-03-05 20:16:48 -06:00
Kevin Darby f7265740e7 ICE securities, from the actual ICE 2019-03-05 18:08:20 -05:00
Pedro Pinto 299d46aa2c Attach/Detach passes initial tests. 2019-03-05 15:44:01 -05:00
Jake Norbut f006d4ffdb Merge branch 'SPARK-2054' of bitbucket.org:bluetradesys/spark into SPARK-2058-netchange 2019-03-05 14:21:35 -06:00
John Colvin 31dd7849b9 SPARK-2086 SyntheticEditor - user can't type '.' in price multiplier cell 2019-03-05 14:17:19 -06:00
Jake Norbut bcf9b97420 Merge branch 'SPARK-2054' of bitbucket.org:bluetradesys/spark into SPARK-2058-netchange 2019-03-05 12:56:08 -06:00
John Colvin 697ffd71eb ObservableAutoWrapper.connect_item_actions - invoke action for existing items 2019-03-04 23:52:22 -06:00
Jake Norbut b56fc2445c != instead of !(); John leaves no stone unturned 2019-03-04 17:05:13 -06:00
Jake Norbut a4d162c3a2 EnumHelper equality be gone 2019-03-04 16:53:08 -06:00
Jake Norbut 527bc05b6f removing comment cruft 2019-03-04 15:49:17 -06:00
Jake Norbut a52d65859b 3 bools to 1 Enum in the protobuf 2019-03-04 15:45:30 -06:00
Jake Norbut 363b9e3e7a I missed an early return branch in _format_tick 2019-03-04 15:31:21 -06:00
Eric Harding 3a06684146 Almost never want to record sim market data 2019-03-04 16:15:53 -05:00
John Colvin 8643feabf2 SPARK-2079 [pr edit]child algo 'name' overlapped expander button 2019-03-04 13:44:50 -06:00
Pedro Pinto 345f6ed9fe Added detach handling to iceberg 2019-03-04 14:44:42 -05:00
Pedro Pinto 31aa9d9bf6 Merge remote-tracking branch 'origin/master' into SPARK-1944-attach/detach/update 2019-03-04 14:30:32 -05:00
John Colvin e7f1c59210 SPARK-2079 [pr edit]remove #define ALLOW_FIXED_PRICE_TRIGGER 2019-03-04 13:27:44 -06:00
Pedro Pinto 0c063a3876 Iceberg with attach is code complete. 2019-03-04 14:13:39 -05:00
Jake Norbut c9f403973b Adding a ColSpan on the groupbox so it doesn't push over the merged combo box 2019-03-04 10:53:49 -06:00
Jake Norbut d6bc6fa289 simplifying logic regarding decision to format with decimal part 2019-03-04 10:02:15 -06:00
Taha Afzal 7557ca38cb Merge branch 'SPARK-2054' into SPARK-2058-netchange 2019-03-04 09:03:16 -05:00
Pedro Pinto af253198d2 Iceberg that can attach. 2019-03-04 08:55:36 -05:00
Pedro Pinto cc381d605c Merged with master 2019-03-04 08:55:06 -05:00
Jake Norbut ef59511a01 woops, fixing bug 2019-03-04 07:50:10 -06:00
Jake Norbut 8dfbb106a6 hide decimals when in ticks mode 2019-03-04 07:46:59 -06:00
Taha Afzal 3e9a931c5f removing an unused function 2019-03-03 23:15:06 -05:00
Taha Afzal 71fac664e8 the net change test now tests for quoting prices on both legs 2019-03-03 16:52:29 -05:00
Taha Afzal 1b39ffc323 cleaning up the test 2019-03-03 16:30:19 -05:00
John Colvin bc69c669ae SPARK-2079 Trigger Clean up (simplify) 2019-03-02 21:50:17 -06:00
Taha Afzal 170f7426aa for net change, the reported price with filled_qty==0 was incorrect 2019-03-02 22:43:35 -05:00
John Colvin 16d30e450f refactor\cleanup OrderTypeVMBase and impls 2019-03-02 19:36:19 -06:00
Taha Afzal a3787ee65a Merge branch 'SPARK-2054' into SPARK-2058-netchange 2019-03-01 16:59:42 -05:00
Taha Afzal 14d5d36067 merging master 2019-03-01 16:57:26 -05:00
Jake Norbut 1af4b97b97 ui feedback from taha 2019-03-01 12:56:41 -06:00
Michael Harding faf60af9c3 Merge branch 'master' into doc_temp_build 2019-03-01 13:52:48 -05:00
John Colvin 109fee099f Merged in SPARK-2082 (pull request #181)
SPARK-2082 mview - canceled orders appear to be working

Approved-by: Eric Harding <eric.harding@bluetradesys.com>
Approved-by: Jake Norbut <jake.norbut@bluetradesys.com>
2019-03-01 18:01:31 +00:00
John Colvin 747b44c48d fix strange line ending change in last commit to _index.md 2019-03-01 11:59:01 -06:00
John Colvin 4b091a1259 SPARK-2082 release note 2019-03-01 11:50:56 -06:00
Jake Norbut 9626bee38e resetting this width I inadvertently changed 2019-03-01 10:55:52 -06:00
Jake Norbut 776bc71c22 ladder prices in net change terms 2019-03-01 10:51:16 -06:00
John Colvin 7c0e310f6a SPARK-2082 mview - canceled orders appear to be working 2019-03-01 10:13:49 -06:00
Michael Harding 761657b56b Fix typos 2019-03-01 10:30:41 -05:00
Michael Harding 2988967f1f Merge branch 'master' into doc_temp_build 2019-03-01 09:29:36 -05:00
Kevin Darby 724da31316 adding data files 2019-02-28 17:50:46 -05:00
Pete Fisher f7309c389e _index.md edited online with Bitbucket 2019-02-28 21:53:15 +00:00
Pedro Pinto df1dbd76b5 Merge branch 'fix_cache_warm_logs' 2019-02-28 15:58:51 -05:00
Pedro Pinto deaf8b6ad5 Somehow did not push this in. 2019-02-28 15:58:11 -05:00
Kevin Darby 2ae5b50445 ice builds with .so 2019-02-28 15:01:35 -05:00
Kevin Darby dfcf38289f move externals up for ice .so 2019-02-28 14:44:13 -05:00
Pedro Pinto 5e0edd00f4 Merged in fix_cache_warm_logs (pull request #180)
Avoided logging anything when warming up order manager cache.

Approved-by: Taha Afzal <taha.afzal@bluetradesys.com>
2019-02-28 19:20:06 +00:00
Pedro Pinto f25a667ff0 Fixed transition log msg when calling warm cache. 2019-02-28 14:16:38 -05:00
Kevin Darby 39a1252084 added Queue Holder Length gui to spreader for Taha 2019-02-28 14:08:46 -05:00
Pedro Pinto 4f3eaa8b9c Updated release notes. 2019-02-28 13:43:41 -05:00
Pedro Pinto 5098767363 Avoided logging anything when warming up order manager cache. 2019-02-28 13:32:43 -05:00
Michael Harding 09436473ed Merged master into Documentation 2019-02-28 13:27:25 -05:00
Michael Harding 5524e89a10 Add images 2019-02-28 13:26:02 -05:00
Pedro Pinto c2f954a79d More changes to attach/detach API 2019-02-28 13:07:41 -05:00
Taha Afzal d615dcc7d6 tests were failing because of direct vs merged 2019-02-28 11:10:56 -05:00
Taha Afzal d582ed8436 more tests 2019-02-27 19:29:18 -05:00
Taha Afzal c5768c4022 randomized the prices and markets in the net change test 2019-02-27 19:08:29 -05:00
Kevin Darby 1c54b0140b ready to test, but we need to solve a link issue 2019-02-27 16:41:38 -05:00
John Colvin 4d52de3f09 Merged in SPARK-2076 (pull request #178)
SPARK-2076 Sounds crash (Dan 1.5)

Approved-by: Eric Harding <eric.harding@bluetradesys.com>
2019-02-27 20:48:54 +00:00
John Colvin 9864d18a60 SPARK-2076 [pr edit] log error instead of throwing an exception (when unable to link predicate). 2019-02-27 14:37:53 -06:00
Brian Muhr 6c652df3eb index.md edited online with Bitbucket 2019-02-27 20:34:00 +00:00
Jake Norbut 6fb8fdc9f6 updating test timeout 2019-02-27 14:28:45 -06:00
Pedro Pinto e79a73147a Merged with master 2019-02-27 15:15:06 -05:00
Michael Harding c4e684f934 SPARK-2047: change temp dir path 2019-02-27 14:41:43 -05:00
John Colvin 1590c6d6f6 SPARK-2076 Sounds crash (Dan 1.5) 2019-02-27 13:37:50 -06:00
Taha Afzal 51ac39c166 test comments 2019-02-27 14:21:41 -05:00
Eric Harding f04a48d4f8 Explicitly deny copying a service. make_*_publisher points back to the owning service 2019-02-27 14:00:04 -05:00
Pedro Pinto 6a921ae900 Merge remote-tracking branch 'origin/master' into SPARK-1944-attach/detach/update 2019-02-27 13:48:22 -05:00
Michael Harding f7baf6c05a Merge branch 'master' into doc_temp_build 2019-02-27 13:39:11 -05:00
Taha Afzal 1eaf3d8629 taming the net_change tests 2019-02-27 13:16:31 -05:00
Jake Norbut b7fcd17ef0 first test; create retrieve update delete of algo definitions 2019-02-27 11:05:23 -06:00
Brian Muhr 62ecd1a721 index.md edited online with Bitbucket 2019-02-27 16:35:51 +00:00
Pedro Pinto 0f13d27efe Improvements on attach/detach API 2019-02-27 10:08:55 -05:00
Kevin Darby e034fd2623 Merge branch 'master' of bitbucket.org:bluetradesys/spark into ice_md 2019-02-26 18:23:23 -05:00
Kevin Darby a3b8d579a1 hooked up all ice callbacks except books 2019-02-26 18:20:22 -05:00
Taha Afzal cabc84a577 tests for net change transformation 2019-02-26 17:04:59 -05:00
Kevin Darby 9d2cdb702d getting somewhere 2019-02-26 16:00:26 -05:00
Michael Harding 482ca6b484 SPARK-2065: Move order functions to OrderUtilities 2019-02-26 14:02:09 -05:00
Pedro Pinto d52347cd71 Trigger state update on new definition in OM. 2019-02-26 11:57:11 -05:00
Pedro Pinto 0ab628fb6c Allow orders to change their full definition. 2019-02-26 11:43:10 -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 394c7fd954 Merge branch 'SPARK-2058-netchange' of bitbucket.org:bluetradesys/spark into SPARK-2058-netchange 2019-02-26 10:52:00 -05:00
Pedro Pinto 1a8a492ef7 Attach/detach tweaks. 2019-02-26 09:56:24 -05:00
Taha Afzal b2d1969e9f ticks in net change working now, by transforming the spread 2019-02-25 17:24:31 -05:00
Eric Harding 744797b91c Add compute_synthetic_book function 2019-02-25 14:26:23 -05:00
Pedro Pinto 74066c0ffe Refactored OrderServices 2019-02-25 13:55:13 -05:00
Pedro Pinto 0269d5fa86 Merged with master 2019-02-25 12:50:06 -05:00
Pedro Pinto 84a5a11a9c attach/detach code complete perhaps. 2019-02-25 12:49:23 -05:00
Michael Harding 6446e38aea Merge branch 'master' into doc_temp_build 2019-02-25 11:48:36 -05:00
Michael Harding 32df88914b Merge branch 'master' into doc_temp_build 2019-02-25 11:29:21 -05:00
Michael Harding 628490ac2d Hide JS errors in IE 2019-02-25 11:10:19 -05:00
Michael Harding ef475f7003 Merge branch 'master' into doc_temp_build 2019-02-25 11:09:41 -05:00
Kevin Darby d0784feddd more ice 2019-02-25 10:34:58 -05:00
Pedro Pinto a01e6df7fa Merged with master 2019-02-25 09:06:55 -05:00
Taha Afzal 76a1367510 Price calc (standard vs net change) is a property on LegPropertyData 2019-02-24 20:21:21 -05:00
Taha Afzal fef5ae4aff Adhering spreader to bts::api::SyntheticContract::PriceCalc (from the old one) 2019-02-23 23:59:09 -05:00
Taha Afzal 2c9e83c6f0 Merge branch 'SPARK-2058-netchange' of bitbucket.org:bluetradesys/spark into SPARK-2058-netchange 2019-02-22 17:50:10 -05:00
Taha Afzal 35738c25f1 dividing by tick_size for net change 2019-02-22 17:50:02 -05:00
Eric Harding e64567f8ad SPARK-2062 Unify NetChange enums in UI 2019-02-22 17:15:52 -05:00
Michael Harding 5865ab21bc Downgrade js to es3 2019-02-22 17:05:11 -05:00
Pedro Pinto d4caccdbfb Build. 2019-02-22 14:50:25 -05:00
Eric Harding 78b6169750 Update SyntheticContract.PriceCalc enum values 2019-02-22 12:24:01 -05:00
Eric Harding e2c0d81f19 Update NetChange enums to be per security rather than per leg. Also non mutable 2019-02-22 11:59:51 -05:00
Pedro Pinto 4ede8a62ea Merged with master 2019-02-22 11:31:05 -05:00
Eric Harding b811b960ec SPARK-2063 Ladder day change doesn't update as often as I'd like 2019-02-22 09:39:15 -05:00
Eric Harding bf0507e434 Fix synthetic_net_change unit test 2019-02-22 08:37:21 -05:00
John Colvin 1205a35b69 SyntheticEditorVM - add 'MarketDataType' param-row back (accidentally removed) 2019-02-21 19:53:18 -06:00
John Colvin 2f4d2a9c0d SPARK-2058 / SPARK-2062 Synthetic NetChange should be set per Synthetic not per Leg (UI Only) 2019-02-21 19:43:40 -06:00
John Colvin 08e5088d72 SPARK-2058 / SPARK-2059 Allow 100/100 tick size 2019-02-21 18:40:08 -06:00
Eric Harding e7b371aa6f SPARK-2060 NetChange in Ticks 2019-02-21 12:49:55 -05:00
Eric Harding 3094eee327 Add double division operator to IntPrice 2019-02-21 12:00:01 -05:00
Pedro Pinto ba11248ac9 attach/detach 2019-02-21 09:03:26 -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
Michael Harding 80ff61c9b2 Docs: change URL in config.toml 2019-02-20 09:40:27 -05:00
Pedro Pinto 22cde8aa0d Merge branch 'master' into SPARK-1944-attach/detach/update 2019-02-19 17:02:02 -05:00
Michael Harding 2a42c1fab0 SPARK-2047: Build user docs in a temp dir 2019-02-19 16:38:17 -05:00
Pedro Pinto 3dba49e899 More attach/detach design docs. 2019-02-19 10:18:27 -05:00
Taha Afzal ff53cf8b4d QHO working from the spreader 2019-02-16 22:33:47 -05:00
Kevin Darby 4a64e45d36 translated onixs::Handler settings to our config. 2019-02-15 18:08:26 -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
Pedro Pinto 23d7a9e1ad Improved error handling in native order. 2019-02-15 11:27:25 -05:00
Pedro Pinto 7bd9d3f4ad Merge remote-tracking branch 'origin/master' into SPARK-1944-attach/detach/update 2019-02-15 09:07:28 -05:00
Kevin Darby 97f09768bb got the boilerplate up, now just need to get the right ice handlers and options in there 2019-02-14 17:55:34 -05:00
Taha Afzal 87a03a3759 merging master 2019-02-14 15:52:04 -05:00
Pedro Pinto 7740f64bfd Iceberg2 is working. 2019-02-14 12:40:15 -05:00
Pedro Pinto 7ccbb69f5c Made native order ignore any bad updates/cancels after it terminates. 2019-02-14 12:37:19 -05:00
Pedro Pinto b4ba527c12 Generalized dynamic order mechanism to support any order. 2019-02-14 12:34:08 -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
Pedro Pinto a62a41a0aa IB2 code complete. 2019-02-12 17:13:53 -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
Kevin Darby 2b4add85a2 kinda copy / pastey stuff from cme 2019-02-12 13:00:47 -05:00
Pedro Pinto 904023c5fa Added a few comments. 2019-02-12 09:50:32 -05:00
Pedro Pinto a9fc3d43a0 Fixed merge. 2019-02-12 09:36:57 -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
Pedro Pinto 4febc07aa0 Merged with master 2019-02-11 18:35:29 -05:00
Pedro Pinto 198e76f722 Renamed crack detach. 2019-02-11 17:52:26 -05:00
Pedro Pinto 836301e75f Iceberg with update 2019-02-11 16:50:35 -05:00
Pedro Pinto ad37a652c5 Refactor 2019-02-11 16:50:35 -05:00
Pedro Pinto 5bed54c953 More SDK work. 2019-02-11 16:50:35 -05:00
Pedro Pinto 5675c4e117 Renamed crack to detach. 2019-02-11 16:50:35 -05:00
Jake Norbut 16f1e568a5 release notes - words 2019-02-11 16:50:35 -05:00
Jake Norbut e375274cbe Updating release notes describing Floating Order Book 2019-02-11 16:50:35 -05:00
Pedro Pinto cf3ef9323a dev_process.md edited online with Bitbucket 2019-02-11 16:50:35 -05:00
Pedro Pinto 7e2e2bf1b0 Dev doc 2019-02-11 16:50:35 -05:00
Kevin Darby 781c9dcc86 moved that using std::vector out of header 2019-02-11 16:50:35 -05:00
Kevin Darby a8a922160d move externals pointer to proto36, small changes in spark to support that 2019-02-11 16:50:35 -05:00
Pedro Pinto 367bd0e3b9 Added release notes 2019-02-11 16:50:35 -05:00
Eric Harding 4215d96ba9 Wait to give obvm obvm a chance to load rows and not flash 2019-02-11 16:50:35 -05:00
Jake Norbut 50d18eb10d PR edits - Style cop 2019-02-11 16:50:35 -05:00
Jake Norbut b65fedc781 PR edit - simplify LINQ expressions when using Where and FirstOrDefault 2019-02-11 16:50:35 -05:00
Jake Norbut 88c8663d29 PR - naming 2019-02-11 16:50:35 -05:00
Jake Norbut 8c7dd2460d PR edit - changing orderbook_vm property to method to better reflect the nature of the beast 2019-02-11 16:50:35 -05:00
Jake Norbut f20ee21ce7 PR edits - Simplifying XAML since UserControl is a ContentControl 2019-02-11 16:50:35 -05:00
Jake Norbut a61e21bd87 PR edits - Hashset for the win over List for Contains 2019-02-11 16:50:35 -05:00
Jake Norbut 39014696f3 PR edit; Set is your friend 2019-02-11 16:50:35 -05:00
Jake Norbut af278d2d87 PR edits - devolving qty/dirty and price/dirty 2019-02-11 16:50:35 -05:00
Jake Norbut 636e170f44 PR edits 2019-02-11 16:50:35 -05:00
Jake Norbut 3d4fe8f832 PR edit; columns setter is now private 2019-02-11 16:50:35 -05:00
Pedro Pinto 94285918bf Trying to fix the linux/win war on CMAkeDeps.cmake 2019-02-11 16:50:35 -05:00
Jake Norbut 2ba7f949cc MinWidth so that the vertical scrollbar does not cover up the content in the last column 2019-02-11 16:50:35 -05:00
Jake Norbut fc82ccf221 enforce max height on popop size 2019-02-11 16:50:35 -05:00
Jake Norbut e71b1518f0 move edit price immediately after edit qty 2019-02-11 16:50:35 -05:00
Jake Norbut 7738da7d16 remove ladder tooltip and backing property 2019-02-11 16:50:35 -05:00
Jake Norbut c91eedcca0 minor refactoring, some notes after talking w/ john 2019-02-11 16:50:35 -05:00
Jake Norbut 4f5f4c61f3 inline price ticker 2019-02-11 16:50:33 -05:00
Jake Norbut 2f31fb6284 qty ticker layout changes 2019-02-11 16:48:53 -05:00
Jake Norbut d18caa7ba1 auto close popup when no orders remain 2019-02-11 16:48:53 -05:00
Jake Norbut ac88586c8f darken popup border 2019-02-11 16:48:53 -05:00
Eric Harding 968dfbac2a Need spark_test.dll for system tests 2019-02-11 16:48:53 -05:00
Eric Harding 0501418da6 provide_command_line for system_tests -configserver 2019-02-11 16:48:53 -05:00
Eric Harding 4efd853c96 Simplify getting a security 2019-02-11 16:48:53 -05:00
Michael Harding a384eb9f73 Return int from sparkcmd 2019-02-11 16:48:53 -05:00
Eric Harding 4747fe5535 Make sure every sparkcmd command respects -configserver 2019-02-11 16:48:53 -05:00
Eric Harding 94eb1e37cb Add netcore publish to jenkinsbuild.cmd 2019-02-11 16:48:53 -05:00
Jake Norbut fd1ae60e49 remove checkin cruft 2019-02-11 16:48:53 -05:00
Jake Norbut 62d06180ea making row stay in edit mode when a change has not yet been committed but the selection has been moved off the row 2019-02-11 16:48:53 -05:00
Jake Norbut dba3b9371c hopefully use the right Dispatcher this time 2019-02-11 16:48:53 -05:00
Jake Norbut aadfe2a677 mini ob - inline qty tick up/down; formatting 2019-02-11 16:48:53 -05:00
Jake Norbut c0c34efc47 adding comment back in 2019-02-11 16:48:53 -05:00
Jake Norbut b66fb02174 adding single-click delete/cancel functionality 2019-02-11 16:48:53 -05:00
Jake Norbut 3cf026ff47 Properly Dispose of the OrderBookVM when the popup closes 2019-02-11 16:48:53 -05:00
Jake Norbut 8619084fa7 adding a border around the popup window 2019-02-11 16:48:53 -05:00
Jake Norbut f6df644ab1 MiniOB will have parent-child rows expanded by default 2019-02-11 16:48:53 -05:00
Jake Norbut 1183dee418 Create a new OrderbookVM each time; fixes crash when launching mini-ob from same badge multiple times 2019-02-11 16:48:53 -05:00
Jake Norbut ffaba90c96 Remove ContextMenu from Badge and setup new Popup 2019-02-11 16:48:53 -05:00
Jake Norbut 9eb760b3c7 Adding a Popup dep prop to the Badge. Note - I don't think Ineed AffectsRender here 2019-02-11 16:48:53 -05:00
Jake Norbut 70fcb30c67 DIYGrid - adding dep prop to allow rows horizontal scrollbar to be strictly collapsed 2019-02-11 16:48:53 -05:00
Jake Norbut 553ab7b858 in case my machine starts on fire 2019-02-11 16:48:53 -05:00
Kevin Darby 4c798f6db4 initial push 2019-02-11 16:14:41 -05:00
Kevin Darby b2e275124f update externals with onixs ice docs 2019-02-11 13:35:14 -05:00
Kevin Darby 36e4f62a53 moved externals pointer forward to capture onixs ice addition 2019-02-11 12:38:00 -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
Pedro Pinto 8dcf41e9cf Added attach/detach interface proposal. 2019-02-01 10:08:08 -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
Pedro Pinto a0bf0e93f4 Fixed comment. 2019-01-30 14:48:00 -05:00
Pedro Pinto 5529e80e17 Tentative new order services interface. 2019-01-29 18:07:27 -05:00
Pedro Pinto 5df7cec55a Merge branch 'master' into SPARK-1944-attach/detach/update 2019-01-29 16:25:03 -05:00
Pedro Pinto 8f705d42b3 Merge branch 'master' into SPARK-1944-attach/detach/update 2019-01-29 10:44:50 -05:00
Pedro Pinto fc2f85b842 Refactored a bit. 2019-01-28 08:52:34 -05:00
Pedro Pinto ffe5eee584 Merged with ticker update branch 2019-01-18 10:21:48 -05:00
Pedro Pinto b7897fc7ac Documenting the iceberg design. 2019-01-16 14:00:16 -05:00
Pedro Pinto b4d18a62c9 Allowed async return out of order operations. 2019-01-16 09:41:06 -05:00
Pedro Pinto c6b450f45c Fixed broken perf traces. 2019-01-15 13:58:15 -05:00
Pedro Pinto 6a46049610 Merged 2019-01-15 09:21:20 -05:00
Pedro Pinto 21712711f7 Added Order API support for return result of order ops. 2019-01-14 12:48:14 -05:00
Pedro Pinto 9f1bb177b8 Fixed build. 2019-01-12 15:56:01 -05:00
Pedro Pinto dcd2cc22e1 Removed trace::CorID from most of the order code. 2019-01-12 15:45:08 -05:00
Pedro Pinto af91ee1512 Merge remote-tracking branch 'origin/master' into SPARK-1944-attach/detach/update 2019-01-11 12:50:12 -05:00
Pedro Pinto b4d63aa3cc Merge branch 'master' into SPARK-1944-attach/detach/update 2019-01-10 14:26:34 -05:00
Pedro Pinto d0e32911ad Made recovery of lost order use case insensitive op id and account.
Turns out CME upper cases operator id and clearing account when it
sends them back.
2019-01-10 11:23:20 -05:00
Pedro Pinto 75fa582774 Merged master 2019-01-09 17:51:21 -05:00
Pedro Pinto 69155162ca Improved replay of fix messages to be more robust. 2019-01-09 17:44:17 -05:00
Pedro Pinto 2c865c123a Fixed broken persistence of orders. 2019-01-09 17:43:41 -05:00
Pedro Pinto 0ec955cc90 Possibly fixed persistence failure when trying to duplicate fill. 2019-01-09 15:21:07 -05:00
Pedro Pinto 0c4e22537d Upgraded SDK example to support op result of order.activate() 2019-01-09 15:19:37 -05:00
Pedro Pinto 601eb4ece1 key needs to be setup before we can call on_init_from_exe_report 2019-01-09 15:18:34 -05:00
Pedro Pinto b84a638199 Fixed life time bug when retuerning a def from an execution report. 2019-01-09 15:17:50 -05:00
Pedro Pinto 34350fd469 Fixed utterly broken recovery of orders from execution reports. 2019-01-09 15:11:53 -05:00
Pedro Pinto a469da5cc6 Fixed race condition when obtaining thread name of perf log thread. 2019-01-09 14:45:35 -05:00
Pedro Pinto 8be8a67f18 Adding results to order operations. 2019-01-07 18:06:46 -05:00
Pedro Pinto abc2e55610 Added assert. 2019-01-02 14:37:23 +00:00
Pedro Pinto cfd15d3371 Allowed full order definition updates. 2018-12-31 17:46:00 +00:00
Pedro Pinto 44369bae43 Some work on supporting full order updates. 2018-12-28 22:13:38 +00:00
916 changed files with 47367 additions and 12081 deletions

No files matched your search

+183 -91
View File
@@ -1,82 +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": [],
@@ -96,24 +28,118 @@
"description": "Skip STL",
"text": "skip -gfi /usr/include/c++/7/bits/*.h",
"ignoreFailures": true
},
{
"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",
"test_filter"
],
"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]"],
"args": [
"test",
"[spreader]"
],
"stopAtEntry": false,
"cwd": "/home/bts/spark/build/ninja_debug/src/server/sparkd/",
"environment": [],
@@ -133,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": {
@@ -145,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": [],
@@ -165,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": {
@@ -177,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": [],
@@ -197,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": {
@@ -208,10 +246,13 @@
"name": "MD Tests",
"type": "cppdbg",
"request": "launch",
"program": "/home/bts/spark/build/ninja_debug/src/server/sparkd/sparkd",
"args": ["test", "[md]"],
"program": "/home/bts/spark/build/ninja_debug/server/sparkd",
"args": [
"test",
"SingleWriterConcurrentVector"
],
"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",
@@ -234,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",
@@ -249,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",
@@ -268,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
},
]
}
+2
View File
@@ -55,6 +55,8 @@ else ()
COMMAND ln ARGS -sf ${CMAKE_BINARY_DIR}/web ${CMAKE_BINARY_DIR}/server
COMMAND ln ARGS -sf ${CMAKE_BINARY_DIR}/data_files ${CMAKE_BINARY_DIR}/server
COMMAND ln ARGS -sf ${CMAKE_BINARY_DIR}/src/lib/libspark.so ${CMAKE_BINARY_DIR}/server
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"
+1 -1
View File
@@ -1 +1 @@
set(sources /home/ppinto/Dropbox/bts/spark/doc/user/build.sh;/home/ppinto/Dropbox/bts/spark/doc/user/mkdocs.yml;bts-help-theme/404.html;bts-help-theme/base.html;bts-help-theme/content.html;bts-help-theme/css/base.css;bts-help-theme/css/bts.css;bts-help-theme/css/font-awesome.min.css;bts-help-theme/css/highlight.css;bts-help-theme/css/local.css;bts-help-theme/fonts/fontawesome-webfont.eot;bts-help-theme/fonts/glyphicons-halflings-regular.eot;bts-help-theme/img/favicon.ico;bts-help-theme/js/base.js;bts-help-theme/js/bootstrap-3.0.3.min.js;bts-help-theme/js/highlight.pack.js;bts-help-theme/js/jquery-1.10.2.min.js;bts-help-theme/keyboard-modal.html;bts-help-theme/main.html;bts-help-theme/nav-sub.html;bts-help-theme/nav.html;bts-help-theme/search-modal.html;bts-help-theme/toc.html;docs/Help.md;docs/Launcher.md;docs/Logging-In-to-the-System.md;docs/Market.md;docs/My-Windows.md;docs/Settings.md;docs/Spreader.md;docs/Trading.md;docs/images/image1.png;docs/images/image10.png;docs/images/image11.png;docs/images/image12.png;docs/images/image13.png;docs/images/image14.png;docs/images/image15.png;docs/images/image16.png;docs/images/image17.png;docs/images/image18.png;docs/images/image19.png;docs/images/image2.png;docs/images/image20.png;docs/images/image21.png;docs/images/image22.png;docs/images/image23.png;docs/images/image24.png;docs/images/image25.png;docs/images/image26.png;docs/images/image27.png;docs/images/image28.png;docs/images/image29.png;docs/images/image3.png;docs/images/image30.png;docs/images/image31.png;docs/images/image32.png;docs/images/image33.png;docs/images/image34.png;docs/images/image35.png;docs/images/image36.png;docs/images/image37.png;docs/images/image38.png;docs/images/image39.png;docs/images/image4.png;docs/images/image40.png;docs/images/image41.png;docs/images/image42.png;docs/images/image43.png;docs/images/image44.png;docs/images/image45.png;docs/images/image46.png;docs/images/image47.png;docs/images/image48.png;docs/images/image49.png;docs/images/image5.png;docs/images/image50.png;docs/images/image51.png;docs/images/image52.png;docs/images/image53.png;docs/images/image54.png;docs/images/image55.png;docs/images/image56.png;docs/images/image57.png;docs/images/image58.png;docs/images/image59.png;docs/images/image6.png;docs/images/image60.png;docs/images/image61.png;docs/images/image62.png;docs/images/image63.png;docs/images/image64.png;docs/images/image65.png;docs/images/image66.png;docs/images/image67.png;docs/images/image68.png;docs/images/image69.png;docs/images/image7.png;docs/images/image70.png;docs/images/image71.png;docs/images/image72.png;docs/images/image73.png;docs/images/image74.png;docs/images/image76.png;docs/images/image8.png;docs/images/image9.png;docs/index.md;docs/release_notes.md)
set(sources /home/ppinto/Dropbox/bts/spark/doc/user/build.sh;content/_index.md;content/bts_spark/Algos/_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/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)
+1 -1
View File
@@ -22,7 +22,7 @@ update_deps_file("${All_Deps}")
add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/web/docs/index.html
COMMAND /bin/bash ${CMAKE_CURRENT_SOURCE_DIR}/build.sh
ARGS ${CMAKE_BINARY_DIR}/web/docs/
ARGS ${CMAKE_BINARY_DIR}/web/docs/ ${CMAKE_BINARY_DIR}
COMMENT "Building Manual UI"
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
DEPENDS ${All_Deps})
+14 -3
View File
@@ -1,8 +1,19 @@
#!/bin/bash
tmpfile=$(mktemp /tmp/quiet_build_log.XXXX)
cp -r ../../src/sdk/doc/* ./content/bts_spark_sdk/Server/
./run_zola.sh build -u '/docs/' -o $1 >$tmpfile 2>&1
rm ./content/bts_spark_sdk/Server/algos.md
cur_dir=$(pwd)
temp_path="$2/web_temp"
zola_path=$(readlink -f "../../externals/linux/bin/zola/zola")
mkdir -p $temp_path
cp -r ./* $temp_path
cd $temp_path
$zola_path build -u '/docs/' -o $1 >$tmpfile 2>&1
cd $cur_dir
rm -r $temp_path
if [ $? -eq 0 ]
then
rm $tmpfile
+2 -2
View File
@@ -1,5 +1,5 @@
# The URL the site will be built for
base_url = "https://www.bluetradingsystems.com/docs"
base_url = "https://www.bluetradingsystems.com/documentation"
title = "BTS Spark Documentation"
@@ -15,4 +15,4 @@ build_search_index = true
[extra]
# Put all your custom variables here
book_numbered_chapters = false
book_numbered_chapters = false
@@ -0,0 +1,46 @@
+++
title = "BTS Basic Algos"
weight = 10
sort_by = "weight"
insert_anchor_links = "right"
+++
## 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
Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

+1 -1
View File
@@ -25,7 +25,7 @@ insert_anchor_links = "right"
which will list what version you are running as well as who is
currently logged in.
![](image32.png)
![](about_spark.png)
## Activity log
This is an overall log viewer which will show
Binary file not shown.

After

Width:  |  Height:  |  Size: 942 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 101 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

+20 -16
View File
@@ -51,7 +51,7 @@ insert_anchor_links = "right"
securities you have chosen, in this example, it appears like the
following:
![](image63.png)
![](market_view.png)
- Once a market view is launched and you are viewing data, you can
customize the view further by the following:
@@ -88,31 +88,34 @@ insert_anchor_links = "right"
- Change securities
- Click on the settings icon ![](image12.png)which will launch the market view security selection.  You can add or remove Securities you have already selected and are shown in the market view.
- Click on the settings icon ![](change_securities.png) which will launch the market view security selection.  You can add or remove Securities you have already selected and are shown in the market view.
- Launch an order ticket
- This is done 1 of 2 ways:
- This is done 1 of 3 ways:
- Single left clicking on either the Bid Qty, Bid Price, Ask Price,
or Ask Qty which will bring up an order ticket pre-populated with
either the Bid or Ask price and volume.
- Highlighting a single security and clicking on the order ticket
![](image23.png) icon
on the left-hand browser window of the market view
- Highlighting a single security and right clicking bringing up the
menu options to launch an order ticket.
- Launch a ladder for 1 security
- You can double-click on any security in the market view, besides
the Bid Qty, Bid Price, Ask Price, or Ask Qty columns to launch a
ladder for that Security.
- This is done 1 of 2 ways:
- You can double-click on any security in the market view, besides
the Bid Qty, Bid Price, Ask Price, or Ask Qty columns to launch a
ladder for that Security.
- Highlighting a single security and right clicking bringing up the
menu options to launch a ladder.
- Launching multiple ladders
- If you hold down the Ctrl key and select multiple securities, you
can then click on the ladder icon
![](image69.png) on
the left-hand side to bring up the selected ladders all at
once.
- This is done 1 of 2 ways:
- If you hold down the Ctrl key and select multiple securities, you
can then click on the ladder icon on the left hand side to bring
up the selected ladders all at once.
- Highlighting multiple securities and right clicking to bring up
the menu options to launch a ladder.
- Launching a Fills window for 1 or many securities
@@ -158,8 +161,9 @@ insert_anchor_links = "right"
- On launching a security browser will appear, allowing you to choose
the products you would like to view.
![](image30.png)
![](time_and_sales.png)
- From time and sales, you can launch the same items as the market
view with the exception of a launching the synthetic window to
create a synthetic product
create a synthetic product
- From the settings icon ![](settings_icon.png) you can customize the time and sales modifying grid; the colors of the aggressor, status of trades coming in, as well as font sizes and which columns to see.
Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 99 KiB

@@ -5,6 +5,7 @@ sort_by = "weight"
insert_anchor_links = "right"
+++
{{ youtube(id="RZU9Wj0cETo") }}
<div>
<iframe width="560" height="315" src="https://www.youtube.com/embed/XEZpuPAgMC0" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 70 KiB

+139 -40
View File
@@ -59,7 +59,7 @@ insert_anchor_links = "right"
functionality to quickly perform various tasks with live orders as
well as launch other modules.  It appears like the below:
- ![](image4.png)
![](spark_menu_order_book.png)
- ![](image48.png)Fills -
clicking on this will launch a fills window
@@ -79,6 +79,18 @@ insert_anchor_links = "right"
- ![](image2.png)Cancel
all - clicking on this will cancel all working orders you have the
order book
- ![](recreate_icon.png) Recreate - clicking this will recreate already cancelled orders, sending them back to market with the same price and quantity as they were previously at before being cancelled.
- ![](collapse_all_icon.png) Collapse all - This will collapse all trees inside the order book to show only the top level of the order.
- ![](expand_all_icon.png) Expand all - This will expand to show everything inside the order book.
- ![](settings_icon.png) Settings - This launches the settings for the orderbook.
- Furthermore, there is a “floating” or “mini orderbook” feature as well
integrated within the ladder itself.
- To access this, you need to center click with your mouse wheel over
working orders on the ladder.
- From here, you can change the price and quantity of any working order
within the mini orderbook straight from the window
- This looks like below:
![](mini_orderbook.png)
## Fills
@@ -89,6 +101,8 @@ insert_anchor_links = "right"
like
- All fill windows are brought up as tabs and can be combined with
all other windows within BTS
- There is also a settings button in the left hand tab which can be
launched to customize the fills window
## P&amp;L
@@ -104,10 +118,20 @@ insert_anchor_links = "right"
other windows within BTS
- All columns are sortable and either searchable or can be further
filtered by entering in min and max values.
- Below is an example P&L window showing a user’s multiple accounts
and various positions in each:
- There is also a settings button in the left hand tab which can be
launched to customize the P&amp;L window
- In regards to the PnL specifically, you can choose how you want the
PnL calculated based on Last, MidPoint, or Settle price.
- This is accomplished on the top bar, which when clicked on, displays
the choices for calculation, this appears like below:
![](image67.png)
![](pnl_calculation.png)
- Below is an example P&L window showing a user’s multiple accounts and
various positions in each:
![](pnl_window.png)
## Ladder
@@ -125,7 +149,7 @@ insert_anchor_links = "right"
market with a single click
- Below is an example ladder:
![](image36.png)
![](ladder.png)
- The ladder consists of 2 major parts, the Ladder itself and the
information and control section on the left-hand side
@@ -213,37 +237,59 @@ insert_anchor_links = "right"
         
![](image50.png)
- Lean
- This is a specialized algo order which allows the user to
- Lean
- This is a specialized algo order which allows the user to
essentially watch the opposite-inside market size and cross when
that size goes below the threshold defined.
- “Crossing” means to take an order working on the bid and 'cross' by
buying into the asks.  This is often referred to as “paying up” as
well
- “Cross” means to take an order working on the bid and 'cross' by
buying into the asks.  This is often referred to as “paying up” as well
![](image22.png?v2)
![](lean_algo_control.png)
- Join
- This is a specialized algo order which allows the user to enter an
- Join
- This is a specialized algo order which allows the user to enter an
order which will watch the opposite-inside market and join when the
market flips and has at least threshold size as defined.
- “Flip” refers to the event where the best offer becomes the best
bid or the market trades away from you, i.e. the line moves up in
the GUI.  The reverse is true if selling.
![](image41.png)
![](join_algo_control.png)
- Top
- This is a specialized algo order which allows the user to
- Top
- This is a specialized algo order which allows the user to
essentially not trade by themselves
- If the order is on the market (current bid price) and the quantity
- If the order is on the market (current bid price) and the quantity
on that bid price is below the top threshold defined the order will
cancel and do nothing else
![](top_algo_control.png)
![](image26.png)
- Offset
- The goal of the offset order is to send your order X amount of ticks
from where you actually place it on the ladder. This is sometimes
known as a "fat finger" safety.
![](offset_algo_control.png)
- 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.
![](oco_algo_control.png)
- Cover
- A Cover order’s purpose is to fire a hedge order (of any algo-type) in response to fills from it’s child order on the opposite side of the market N ticks away.
![](cover_algo_control.png)
- Trigger
- The Trigger order is exactly as it sounds, where it will trigger an order based on conditions defined.
- This order also has exit strategy built in where a user can define when the trigger order can auto-cancel based on time as well as price conditional.
![](trigger_algo_control.png)
- The middle of the control section is where you can click on
predefined values to quickly populate the volume at which you wish
@@ -264,20 +310,36 @@ insert_anchor_links = "right"
-  The bottom section of the control area of a ladder has 4 aspects
to it
- Cancel Buys, which will cancel all buys currently working on the
ladder
- Cancel Sells, which will cancel all sells currently working on the
ladder
- Cancel All, which will cancel all orders on the ladder
- Settings, which will launch the ladder settings window which
appears like below
- Cancel Buys, which will cancel all buys currently working on the
ladder
- Cancel Sells, which will cancel all sells currently working on the
ladder
- Cancel All, which will cancel all orders on the ladder
- Settings, which will launch the ladder settings window which
appears like below
![](ladder_settings.png)
- Fonts and Colors - This is where you can customize the overall main
aspects of the ladder.
- Market Break Lines - These are where can control the viewing of what
has been traded through various shading.
- Market Size Display - This is where you can define if you wish
to see implieds or not and how exactly you would like to see them.
- Volume Display - Where you can choose to show the volume traded at price
graph and what details you would like to see.
- Size Presets - Here you can define what volume of predefined quick buttons
you would like to see or any at all. You can remove these by clicking on the “X” next to the volume number to remove one or many.
- Algo Favorites - Here you can set up which “quick button” or user defined
algos to see. You can customize the amount of columns to be
displayed as well.
- Left Panel - This is where you can remove predefined information on the
left panel to save room and get rid of data that you might not require
to see.
![](image71.png)
- The other, main part of the ladder, is the ladder itself as
displayed below
![](image65.png)
![](ladder_main_part.png)
- There are 5 main columns
@@ -291,14 +353,10 @@ insert_anchor_links = "right"
where the last trade occurred
- Functionality of the ladder
- To enter an order directly by clicking in the ladder, left click on either the bid or ask volume with a volume greater than 0 on the predefined value box on the left-hand section
- A badge will be displayed within the orders column of the value you have chosen and the quantity filled as displayed below
- To enter an order directly by clicking in the ladder, left click on
either the bid or ask volume with a volume greater than 0 on the
predefined value box on the left-hand section
- A badge will be displayed within the orders column of the value you
have chosen and the quantity filled as displayed below
![](image46.png)
![](ladder_badges.png)
- To change the price level you wish to work the order, you can right-click and hold on the badge to move it up or down the ladder for the
desired price
@@ -344,3 +402,44 @@ insert_anchor_links = "right"
- Please note you can also launch the required parameters for algo or
synthetic orders by clicking on the right arrow next to the algo or
synthetic
## Algo Studio
{{ youtube(id="DHIa5tnifKc") }}
- The BTS Algo Studio was built for users to experience algo composability
never seen before in a professional futures trading system.
- There is no limit for putting both “canned algos” already present in the
system as well as user defined algos fed into the system via the API.
- This is all in place in a very user friendly GUI as shown below:
![](algo_studio.png)
- There are 3 main areas of the Algo Studio:
- Left Pane (from top to bottom)
- Add Algo
- Clone Algo
- Save Algo
- Remove Algo
- Middle Pane
- This is where your customized algo will be displayed in a running list
- Right Pane
- This is where your complete customization happens of combining various
algos together and saving them to fit your exact needs
- On the very top are the name and abbreviation boxes
- For the name you can simply name the algo whatever you would like
- For the abbreviation section (which is optional), you can put in an
abbreviated name for the algo which will be displayed on the Algo
buttons on the ladder. (Example - Algo name = PROFIT_OCO_LEAN,
Abbrev. = POL)
Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

@@ -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"
+++
+155
View File
@@ -4,6 +4,161 @@ weight = 3
sort_by = "weight"
insert_anchor_links = "right"
+++
## 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
## 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)
- 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
- Fixed Aggressor coloring and ladder high/low coloring in the SIM execution gateway
- Added initial support for ICE market data
- In an effort to streamline the PnL report we've made the following changes:
- The PnL report will by default filter for Futures contracts only
- If you wish to see Spread contracts again you may change Security Type column filter
- The PnL report will now only show rows in which there is a position (net and/or day)
- The Exchange, Start PnL, Total Net Pos, and Total Net PnL columns are now hidden by default
- 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
- 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
- Improved algo documentation
- Changed how the spreader uses net change
- Simplified trigger algo user interface
### Internal changes
- Defaulted to not recording sim market data
- Improved documentation build
- Added additional performance tracing
## 1.5.5
- Fixed Market View 'stale working orders' bug
## 1.5.4
- Avoided logging when warming up cache
## 1.5.3
- Fixed sounds startup issue
## 1.5.2
- Added better logging to AlgoDefinitionService
+5
View File
@@ -54,3 +54,8 @@ img {
background: #ccc;
border: 1px solid #aaa;
}
iframe {
width:560px;
height:315px;
}
+197 -223
View File
@@ -1,223 +1,197 @@
function initToggleMenu() {
var $menu = document.querySelector(".menu");
var $menuIcon = document.querySelector(".menu-icon");
var $page = document.querySelector(".page");
$menuIcon.addEventListener("click", function() {
$menu.classList.toggle("menu-hidden");
$page.classList.toggle("page-without-menu");
});
}
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) {
var li = document.createElement("li");
li.classList.add("search-results__item");
li.innerHTML = `<a href="${item.ref}">${item.doc.title}</a>`;
li.innerHTML += `<div class="search-results__teaser">${makeTeaser(item.doc.body, terms)}</div>`;
return li;
}
// Go from the book view to the search view
function toggleSearchMode() {
var $bookContent = document.querySelector(".book-content");
var $searchContainer = document.querySelector(".search-container");
if ($searchContainer.classList.contains("search-container--is-visible")) {
$searchContainer.classList.remove("search-container--is-visible");
document.body.classList.remove("search-mode");
$bookContent.style.display = "block";
} else {
$searchContainer.classList.add("search-container--is-visible");
document.body.classList.add("search-mode");
$bookContent.style.display = "none";
document.getElementById("search").focus();
}
}
function initSearch() {
var $searchInput = document.getElementById("search");
if (!$searchInput) {
return;
}
var $searchIcon = document.querySelector(".search-icon");
$searchIcon.addEventListener("click", toggleSearchMode);
var $searchResults = document.querySelector(".search-results");
var $searchResultsHeader = document.querySelector(".search-results__header");
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).filter(function (r) {
return r.doc.body !== "";
});
if (results.length === 0) {
$searchResultsHeader.innerText = `No search results for '${term}'.`;
return;
}
currentTerm = term;
$searchResultsHeader.innerText = `${results.length} search results for '${term}':`;
for (var i = 0; i < Math.min(results.length, MAX_ITEMS); i++) {
if (!results[i].doc.body) {
continue;
}
// var item = document.createElement("li");
// item.innerHTML = formatSearchResultItem(results[i], term.split(" "));
console.log(results[i]);
$searchResultsItems.appendChild(formatSearchResultItem(results[i], term.split(" ")));
}
}, 150));
}
if (document.readyState === "complete" ||
(document.readyState !== "loading" && !document.documentElement.doScroll)
) {
initToggleMenu();
} else {
document.addEventListener("DOMContentLoaded", function () {
initToggleMenu();
initSearch();
});
}
function initToggleMenu() {
var $menu = document.querySelector(".menu");
var $menuIcon = document.querySelector(".menu-icon");
var $page = document.querySelector(".page");
$menuIcon.addEventListener("click", function () {
$menu.classList.toggle("menu-hidden");
$page.classList.toggle("page-without-menu");
});
}
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) {
var li = document.createElement("li");
li.classList.add("search-results__item");
li.innerHTML = "<a href=\"" + item.ref + "\">" + item.doc.title + "</a>";
li.innerHTML += "<div class=\"search-results__teaser\">" + makeTeaser(item.doc.body, terms) + "</div>";
return li;
}
// Go from the book view to the search view
function toggleSearchMode() {
var $bookContent = document.querySelector(".book-content");
var $searchContainer = document.querySelector(".search-container");
if ($searchContainer.classList.contains("search-container--is-visible")) {
$searchContainer.classList.remove("search-container--is-visible");
document.body.classList.remove("search-mode");
$bookContent.style.display = "block";
}
else {
$searchContainer.classList.add("search-container--is-visible");
document.body.classList.add("search-mode");
$bookContent.style.display = "none";
document.getElementById("search").focus();
}
}
function initSearch() {
var $searchInput = document.getElementById("search");
if (!$searchInput) {
return;
}
var $searchIcon = document.querySelector(".search-icon");
$searchIcon.addEventListener("click", toggleSearchMode);
var $searchResults = document.querySelector(".search-results");
var $searchResultsHeader = document.querySelector(".search-results__header");
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).filter(function (r) {
return r.doc.body !== "";
});
if (results.length === 0) {
$searchResultsHeader.innerText = "No search results for '" + term + "'.";
return;
}
currentTerm = term;
$searchResultsHeader.innerText = results.length + " search results for '" + term + "':";
for (var i = 0; i < Math.min(results.length, MAX_ITEMS); i++) {
if (!results[i].doc.body) {
continue;
}
// var item = document.createElement("li");
// item.innerHTML = formatSearchResultItem(results[i], term.split(" "));
console.log(results[i]);
$searchResultsItems.appendChild(formatSearchResultItem(results[i], term.split(" ")));
}
}, 150));
}
if (document.readyState === "complete" ||
(document.readyState !== "loading" && !document.documentElement.doScroll)) {
initToggleMenu();
}
else {
document.addEventListener("DOMContentLoaded", function () {
initToggleMenu();
initSearch();
});
}
+6 -1
View File
@@ -8,5 +8,10 @@ $(document).ready(function() {
$(".back-button")
.html("Go Back")
.click(_ => window.history.back());
.click(function(_) { window.history.back()});
if(navigator.userAgent.indexOf("Trident") > -1) {
console.log(navigator.userAgent);
$(".search-icon").css("display", "none");
}
});
+3
View File
@@ -1,3 +1,6 @@
1.5.7
- Fixed Aggressor coloring and ladder high/low coloring in SIM
1.4.2
- Be sure the system has a bts user before deployment. bts is the superuser, he has all permissions and can see all market data
- After deployment re-permission all existing users for trading, riskadmin, and/or md admin permissions as appropriate
+65 -4
View File
@@ -1,4 +1,6 @@
using System;
using System.IO;
using System.Diagnostics;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
@@ -66,18 +68,77 @@ namespace mbts.ui.shell
protected override void OnExit(ExitEventArgs e)
{
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))
init_stunnel(argv);
return base.Run();
}
else {
@@ -73,6 +73,7 @@ namespace bts {
window.Close();
message.complete(select_result(vm)).execute(_bus);
};
vm.cancel_action = () => window.Close();
window.move_to_mouse();
window.Show();
}
@@ -6,6 +6,7 @@ using bts.api.persistence;
using bts.api.position;
using bts.api.synthetic;
using bts.co2;
using bts.md;
using bts.metrics;
using bts.support;
using System.ComponentModel.Composition;
@@ -50,6 +51,9 @@ namespace Spark {
AlgoServiceWrapper _algo_service_wrapper;
[Export]
public AlgoServiceWrapper algo_service_wrapper => _algo_service_wrapper ?? (_algo_service_wrapper = new AlgoServiceWrapper(context));
[Export]
public MBOService mbo_service => context.locate<MBOService>();
}
class AlgoServiceWrapper {
+27
View File
@@ -22,10 +22,14 @@ namespace mbts.ui {
AddBoxesGeometryKey = nameof(AddBoxesGeometryKey),
AddFileGeometryKey = nameof(AddFileGeometryKey),
AddFileThinGeometryKey = nameof(AddFileThinGeometryKey),
AttachAlgosKey = nameof(AttachAlgosKey),
CheckMarkGeometryKey = nameof(CheckMarkGeometryKey),
DataEditGeometryKey = nameof(DataEditGeometryKey),
DetachAlgosKey = nameof(DetachAlgosKey),
DiskGeometryKey = nameof(DiskGeometryKey),
DiskFileGeometryKey = nameof(DiskFileGeometryKey),
DocumentGeometryKey = nameof(DocumentGeometryKey),
DocumentAddGeometryKey = nameof(DocumentAddGeometryKey),
DocumentBrokenGeometryKey = nameof(DocumentBrokenGeometryKey),
DocumentCopyGeometryKey = nameof(DocumentCopyGeometryKey),
DocumentEmptyGeometryKey = nameof(DocumentEmptyGeometryKey),
@@ -35,10 +39,14 @@ namespace mbts.ui {
EditDocumentAltGeometryKey = nameof(EditDocumentAltGeometryKey),
EditDocumentGeometryKey = nameof(EditDocumentGeometryKey),
GearGeometryKey = nameof(GearGeometryKey),
LetterAKey = nameof(LetterAKey),
LetterDKey = nameof(LetterDKey),
OrdersGeometryKey = nameof(OrdersGeometryKey),
PaymentGeometryKey = nameof(PaymentGeometryKey),
PencilGeometryKey = nameof(PencilGeometryKey),
PlayGeometryKey = nameof(PlayGeometryKey),
ProhibitedGeometryKey = nameof(ProhibitedGeometryKey),
RubberStampGeometryKey = nameof(RubberStampGeometryKey),
StarGeometryKey = nameof(StarGeometryKey),
ToolsGeometryKey = nameof(ToolsGeometryKey),
TrashGeometryKey = nameof(TrashGeometryKey),
@@ -115,6 +123,7 @@ namespace mbts.ui {
public static ImageSource AddBoxes => create_icon(AddBoxesGeometryKey);
public static ImageSource AddEncircled { get { return load_resource_and_freeze("AddEncircled"); } }
public static ImageSource AddFile => create_icon(Smashicons.AddFileGeometryKey);
public static ImageSource AttachAlgos => create_icon(AttachAlgosKey);
public static ImageSource Beaker { get { return load_resource_and_freeze("Beaker"); } }
public static ImageSource Book { get { return load_resource_and_freeze("Book"); } }
@@ -138,10 +147,13 @@ namespace mbts.ui {
public static ImageSource ModifyOrder { get { return load_resource_and_freeze("ModifyOrder"); } }
public static ImageSource CheckMark => create_icon(CheckMarkGeometryKey);
public static ImageSource Clock { get { return load_resource_and_freeze("Clock"); } }
public static ImageSource DataEdit => create_icon(DataEditGeometryKey, Brushes.White, new Pen(Brushes.Black, 1).frozen());
public static ImageSource Defrag { get { return load_resource_and_freeze("Defrag"); } }
public static ImageSource DetachAlgos => create_icon_and_rotate(DetachAlgosKey, Brushes.Red);
public static ImageSource Disk => create_icon(DiskGeometryKey);
public static ImageSource DiskFile => create_icon(DiskFileGeometryKey);
public static ImageSource Display { get { return load_resource_and_freeze("Display"); } }
public static ImageSource DocumentAdd => create_icon(DocumentAddGeometryKey);
public static ImageSource DocumentBroken => create_icon(DocumentBrokenGeometryKey);
public static ImageSource DocumentCopy => create_icon(DocumentCopyGeometryKey);
public static ImageSource DocumentEmpty => create_icon(DocumentEmptyGeometryKey);
@@ -158,6 +170,8 @@ namespace mbts.ui {
public static ImageSource Knight { get { return load_resource_and_freeze("Knight"); } }
public static ImageSource Payment => create_icon(PaymentGeometryKey);
public static ImageSource Pencil => create_icon(PencilGeometryKey);
public static ImageSource Prohibited => create_icon(ProhibitedGeometryKey);
public static ImageSource RubberStamp => create_icon(RubberStampGeometryKey);
public static ImageSource RedoCircular => create_icon(UndoCircularGeometryKey, Brushes.Black, null, new ScaleTransform(-1, 1));
public static ImageSource Spawn { get { return load_resource_and_freeze("Spawn"); } }
public static ImageSource Star => create_icon(StarGeometryKey);
@@ -186,6 +200,19 @@ namespace mbts.ui {
return rv;
}
public static ImageSource create_icon_and_rotate(string geometric_path_key, Brush brush = null, Pen pen = null, Transform transform = null, double degrees = 90) {
if (brush == null) {
brush = Brushes.Black;
}
var drawing = create_drawing(geometric_path_key, brush, pen, transform);
var dg = new DrawingGroup();
dg.Children.Add(drawing);
dg.Transform = new RotateTransform(degrees);
var rv = new DrawingImage(dg);
rv.Freeze();
return rv;
}
public static Drawing create_drawing(string geometric_path_key) =>
create_drawing(geometric_path_key, Brushes.Black);
+30
View File
@@ -5,6 +5,14 @@
xmlns:mbts="clr-namespace:mbts.ui"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
>
<sys:String x:Key="{x:Static mbts:Icons.AttachAlgosKey}">
M10.519881,14.945064C11.300896,14.955074,12.079896,15.102078,12.819896,15.386075L10.878893,17.326085C9.6458764,17.201085,8.3688531,17.591071,7.4258485,18.533091L3.5977991,22.360102C1.9327704,24.026093 1.9317786,26.736124 3.5977991,28.402117 5.2638197,30.068108 7.9748359,30.068108 9.6398644,28.402117L13.467914,24.575106C14.410919,23.632109,14.800938,22.355097,14.675937,21.121083L16.615963,19.180096C17.523962,21.546103,17.034943,24.325104,15.126931,26.234108L11.298882,30.061119C8.7138591,32.64612 4.5238051,32.64612 1.9387672,30.062127 -0.64625573,27.477126 -0.64625573,23.287106 1.9387672,20.701098L5.7668166,16.875065C7.077837,15.564055,8.8018727,14.923061,10.519881,14.945064z M19.825993,10.418039L21.580012,12.17305 12.089907,21.665091 10.333873,19.911087z M25.383069,0C27.077088,3.0538786E-08 28.771109,0.64599859 30.063117,1.9390028 32.647133,4.5230274 32.647133,8.7120385 30.062109,11.298047L26.235068,15.125058C24.327055,17.033085,21.547022,17.52207,19.181973,16.614077L21.121998,14.674067C22.356022,14.799068,23.633046,14.409051,24.57605,13.466054L28.403094,9.6400513C30.068121,7.9740295 30.069129,5.2630205 28.403094,3.5980362 26.738064,1.9320143 24.027033,1.9320143 22.362034,3.5980362L18.533986,7.4240398C17.591958,8.3670363,17.201968,9.643042,17.32697,10.877056L15.385937,12.817066C14.478913,10.452035,14.968939,7.6730337,16.875945,5.7660436L20.703019,1.9390028C21.995026,0.64599859,23.689047,3.0538786E-08,25.383069,0z
</sys:String>
<sys:String x:Key="{x:Static mbts:Icons.DetachAlgosKey}">
M19.522852,25.255011L20.920847,25.256994 20.920847,29.729012 19.522852,29.729012z M22.826874,21.952002L25.989905,25.113989 25.001887,26.101996 21.838856,22.941015z M25.269894,19.506992L29.742937,19.509007 29.742937,20.906012 25.269894,20.907995z M10.519729,14.945011C11.300744,14.954991,12.079745,15.103001,12.818766,15.386997L10.878742,17.327C9.6457264,17.200016,8.368704,17.592014,7.4257004,18.532993L3.597655,22.359015C1.9326275,24.025 1.9316508,26.734991 3.597655,28.40299 5.2636887,30.068001 7.9747178,30.066017 9.6397144,28.40299L13.468767,24.575018C14.410794,23.633001,14.800783,22.355993,14.674774,21.122015L16.615807,19.181004C17.523806,21.547003,17.034817,24.325995,15.126776,26.233008L11.298761,30.061012C8.713709,32.644997 4.5236599,32.644997 1.9396465,30.061012 -0.64638097,27.475012 -0.64638097,23.286017 1.9386395,20.702002L5.7666852,16.875004C7.0777046,15.562992,8.8017227,14.922001,10.519729,14.945011z M2.1536381,10.959994L6.6257035,10.959994 6.6266801,12.359988 2.1536381,12.359988z M6.7686803,5.894014L9.9307338,9.0549947 8.9427158,10.044008 5.7806932,6.8819901z M10.976735,2.1390082L12.374761,2.1390082 12.375768,6.6130081 10.975728,6.6130081z M25.382902,0C27.076922,-1.8170738E-08 28.770941,0.6470033 30.063955,1.9389956 32.646992,4.5220043 32.646992,8.7130147 30.061941,11.297L26.234902,15.126011C24.326891,17.032993,21.546862,17.521,19.181845,16.614994L21.121868,14.674015C22.35586,14.798008,23.63389,14.407992,24.575886,13.467013L28.403933,9.6390096C30.067953,7.972994 30.069967,5.2619945 28.403933,3.5960094 26.738905,1.9310002 24.0269,1.9320073 22.361872,3.5960094L18.533827,7.4249893C17.591829,8.3659993,17.201811,9.6440145,17.32782,10.87601L15.385781,12.817996C14.477781,10.453005,14.968784,7.6730062,16.875818,5.7659928L20.702858,1.9379885C21.994864,0.64599622,23.688883,-1.8170738E-08,25.382902,0z
</sys:String>
<!--AddBoxes (the icon is free to use if we include this information in our credit section)
Source: https://www.flaticon.com/authors/gregor-cresnar
Ttile: Add free icon
@@ -40,6 +48,21 @@
</sys:String>
</x:Array>
<sys:String x:Key="{x:Static mbts:Icons.DocumentAddGeometryKey}">
M10.830011,12.05L13.334007,12.05 13.334007,16.535997 17.819998,16.535997 17.819998,19.03902 13.334007,19.03902 13.334007,23.525016 10.830988,23.525016 10.830988,19.03902 6.3460046,19.03902 6.3449975,16.53499 10.830988,16.535997z M2.2799975,2.4149805L2.2799975,29.580015 22.121998,29.580015 22.121998,8.500008 15.83599,8.500008 15.83599,2.4149805z M0,0L15.83599,0 17.125998,0 22.681996,5.439977 24.407,7.125007 24.407,32.000001 0,32.000001z
</sys:String>
<!--File (the icon is free to use if we include this information in our credit section)
Source: https://www.flaticon.com/authors/chanut
Ttile: Cancel free icon
Credit: Icon made by Chanut from www.flaticon.com-->
<sys:String x:Key="{x:Static mbts:Icons.ProhibitedGeometryKey}">
M32.759,0C14.696,0,0,14.695,0,32.759s14.695,32.759,32.759,32.759s32.759-14.695,32.759-32.759S50.822,0,32.759,0z
M6,32.759C6,18.004,18.004,6,32.759,6c6.648,0,12.734,2.443,17.419,6.472L12.472,50.178C8.443,45.493,6,39.407,6,32.759z
M32.759,59.518c-5.948,0-11.447-1.953-15.895-5.248l37.405-37.405c3.295,4.448,5.248,9.947,5.248,15.895
C59.518,47.514,47.514,59.518,32.759,59.518z
</sys:String>
<!--File (the icon is free to use if we include this information in our credit section)
Source: https://www.flaticon.com/authors/smashicons
Ttile: File free icon
@@ -88,6 +111,9 @@
s1-0.448,1-1v-5h5c0.552,0,1-0.448,1-1S52.052,46,51.5,46z
</sys:String>
<sys:String x:Key="{x:Static mbts:Icons.DataEditGeometryKey}">
M17.997977,17.396268C18.197928,17.396268,18.297904,17.496276,18.497975,17.596284L19.497972,18.295283C19.99797,18.595292,20.697919,19.195308,21.197917,19.495299L22.196937,20.195323C22.696935,20.495315,22.596959,20.995322,22.096961,21.195338L20.997966,21.695346C20.497968,21.89434,19.597947,22.294355,19.097949,22.494355L17.997977,22.994363C17.497979,23.194362,17.097957,22.894355,17.197932,22.394347L17.297908,21.195338C17.398005,20.595323,17.497979,19.695315,17.497979,19.195308L17.597955,17.995277C17.497979,17.695283,17.69793,17.396268,17.997977,17.396268z M1.799981,13.597213L19.697923,13.597213 17.997977,15.896244C17.797906,16.096259 17.69793,16.396253 17.69793,16.69626 17.197932,16.796268 16.79791,17.296275 16.697934,17.895284L16.597959,19.195308 1.799981,19.195308C0.79998477,19.195308,0,18.395291,0,17.396268L0,15.396237C0,14.396221,0.79998477,13.597213,1.799981,13.597213z M1.799981,6.7981106L21.796914,6.7981106C22.696935,6.7981106,23.49698,7.498118,23.596955,8.3981257L20.697919,12.397197 1.799981,12.397197C0.79998477,12.397197,0,11.597181,0,10.597165L0,8.5981418C0,7.598126,0.79998477,6.7981106,1.799981,6.7981106z M27.796891,4.3990708C27.996963,4.3990708,28.096938,4.3990708,28.296889,4.5990711L31.695924,7.0981179C31.995851,7.3981105,32.095948,7.7981258,31.895875,8.0981341L23.296908,19.795308C23.096957,20.095315,22.596959,20.195323,22.196937,19.895314L18.797902,17.396268C18.497975,17.096274,18.398002,16.69626,18.597951,16.396253L27.196918,4.6990786C27.396869,4.4990784,27.59694,4.3990708,27.796891,4.3990708z M1.799981,0L21.796914,0C22.79691,4.9549271E-08,23.596955,0.8000156,23.596955,1.800031L23.596955,3.7990554C23.596955,4.7990709,22.79691,5.5990864,21.796914,5.5990864L1.799981,5.5990864C0.79998477,5.4990941,0,4.6990786,0,3.6990629L0,1.7000236C0,0.8000156,0.79998477,4.9549271E-08,1.799981,0z
</sys:String>
<sys:String x:Key="{x:Static mbts:Icons.DiskGeometryKey}">
M403.213,20H0v472h512V128.787L403.213,20z M131,50h180v100h10h20h10V50h30v130H131V50z M381,462H131V315
c0-8.271,6.729-15,15-15h220c8.271,0,15,6.729,15,15V462z M482,462h-71V315c0-24.813-20.187-45-45-45H146
@@ -271,6 +297,10 @@
M0,0L25.194,16 0,32z
</sys:String>
<sys:String x:Key="{x:Static mbts:Icons.RubberStampGeometryKey}">
M1.8950181,29.607025L24.423994,29.607025 24.423994,31.103027C24.423994,31.601013,24.025009,32,23.526993,32L2.7920208,32C2.2929976,32,1.8950181,31.601013,1.8950181,31.103027z M0,19.838013L26.218001,19.838013 26.218001,27.813019 0,27.813019z M12.960014,0C16.549,0 19.538988,2.9909973 19.538988,6.57901 19.538988,8.0750122 19.041002,9.3710022 18.243,10.46701L18.043995,10.766022C17.345997,11.863007 16.647999,12.76001 16.647999,12.76001 15.052999,15.651001 15.253011,17.745026 15.253011,17.745026L10.667015,17.745026C10.667015,17.745026 10.866997,15.651001 9.2719967,12.76001 9.2719967,12.76001 8.5739996,11.863007 7.8760016,10.766022L7.6759898,10.46701 7.5769908,10.368011C6.7790176,9.3710022 6.3810074,7.9750061 6.3810074,6.57901 6.3810074,2.9909973 9.2719967,0 12.960014,0z
</sys:String>
<!--File (the icon is free to use if we include this information in our credit section)
Source: https://www.flaticon.com/authors/smashicons
Ttile: File free icon
@@ -1,7 +1,7 @@
using bts.api;
using bts.api.orderman;
using bts.collections;
using mbts.co2;
using mbts.collections;
using mbts.spark.utilities;
using mbts.ui;
using mbts.ui.controls;
@@ -137,6 +137,12 @@ namespace mbts.spark {
public ICommand ask_implied_size_click { get; }
public ICommand working_asks_click { get; }
public ICommand default_command { get; }
public string market_description {get;}
public string cleared_alias { get; }
public string product_description { get; }
public string hub_alias { get; }
public string strip_name{ get; }
public string mic_code { get; }
public ObservableCollection<RowAnimation> row_animations { get; } = new ObservableCollection<RowAnimation>();
@@ -198,13 +204,15 @@ namespace mbts.spark {
}
}
void _show_order_book(Side side) =>
_bus.post(SparkTags.ShowOrderBookTag, new bts.shell.OrderBookWindowFactory.OrderBookStartupData(
new bts.shell.OrderBookWindowFactory.FilterStates {
statuses = new[] { OrderStatus.Working },
sides = new[] { side },
security_criteria = new SecurityCriteria(security)
}));
void _show_order_book(Side side) {
var ob_settings = bts.shell.orderbook.OrderBookStartupData.Default;
ob_settings.filters = new bts.shell.orderbook.FilterStates {
statuses = new[] { OrderStatus.Working },
sides = new[] { side },
security_criteria = new SecurityCriteria(security)
};
_bus.post(SparkTags.ShowOrderBookTag, ob_settings);
}
void _show_order_ticket(MarketViewView.Columns col) {
var order = _orders_model.factory.order(security);
@@ -1,4 +1,6 @@
using bts.api;
using bts.collections;
using bts.utils;
using mbts.persist;
using mbts.spark.filters;
using mbts.ui;
@@ -7,7 +9,6 @@ using mbts.ui.utility;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Reactive.Linq;
using System.Reactive.Subjects;
using System.Windows.Data;
@@ -22,7 +23,6 @@ namespace mbts.spark {
readonly OrdersModel _orders_model;
IWindowSettingsManager<GridSettings> _settings_manager;
public MarketViewVM(IBus bus, OrdersModel orders_model, IObservable<StartupData> state, IWindowSettingsManager<GridSettings> settings_manager )
: this(bus, orders_model, state, state.SelectManyInSeries(s => s.security_criteria.subscribe_md(bus)), settings_manager) { }
@@ -40,7 +40,7 @@ namespace mbts.spark {
add_col(Columns.Security, "Security", r => r.security.ToString(), nameof(Row.security), DefaultColumnWidths.Security, security_filter, DataGridFilterKnownTemplates.Regex);
add_col(Columns.Volume, "Volume", r => r.volume.ToString(), nameof(Row.volume), DefaultColumnWidths.Volume, volume_filter, DataGridFilterKnownTemplates.ULongMinMax);
add_col(Columns.Last, "Last", r => r.format_price(r.last_price), nameof(Row.last_price), DefaultColumnWidths.Price, last_price_filter, DataGridFilterKnownTemplates.DoubleMinMax);
add_col(Columns.LastSize, merged_size_col_header, r => r.last_size.ToString(), nameof(Row.last_size), DefaultColumnWidths.Size, last_size_filter, DataGridFilterKnownTemplates.UShortMinMax, h_alignment: System.Windows.HorizontalAlignment.Right);
add_col(Columns.LastSize, merged_size_col_header, r => r.last_size.ToString(), nameof(Row.last_size), DefaultColumnWidths.Size, last_size_filter, DataGridFilterKnownTemplates.UIntMinMax, h_alignment: System.Windows.HorizontalAlignment.Right);
add_col(Columns.Position, "Pos", r => r.position.ToString(), nameof(Row.position), DefaultColumnWidths.Size, position_filter, DataGridFilterKnownTemplates.IntMinMax, true, h_alignment: System.Windows.HorizontalAlignment.Right);
add_hl_working_orders_col(Columns.WorkingBids, working_col_header, nameof(Row.working_bids_text), nameof(Row.working_best_bid), nameof(Row.working_bids_click), working_bid_volume_filter, BTSColors.MarketData.bid, System.Windows.HorizontalAlignment.Right);
add_col(Columns.BidImpliedSize, implied_size_col_header, r => r.bid_implied_size.ToString(), nameof(Row.bid_implied_size), DefaultColumnWidths.ImpliedDirectMergedSize, bid_implied_size_filter, DataGridFilterKnownTemplates.UIntMinMax, font_color: BTSColors.MarketData.bid, h_alignment: System.Windows.HorizontalAlignment.Right);
@@ -57,6 +57,13 @@ namespace mbts.spark {
add_col(Columns.SessionLow, "Low", r => r.format_price(r.session_low), nameof(Row.session_low), DefaultColumnWidths.Price, session_low_filter, DataGridFilterKnownTemplates.DoubleMinMax, h_alignment: System.Windows.HorizontalAlignment.Right);
add_col(Columns.SessionHigh, "High", r => r.format_price(r.session_high), nameof(Row.session_high), DefaultColumnWidths.Price, session_high_filter, DataGridFilterKnownTemplates.DoubleMinMax, h_alignment: System.Windows.HorizontalAlignment.Right);
add_col(Columns.SecurityKey, "Security Key", r => r.security_key.ToString(), nameof(Row.security_key), DefaultColumnWidths.SecurityKey, security_key_filter, DataGridFilterKnownTemplates.Regex);
add_col(Columns.MarketDescription, "Market Description", r => r.security.market_description(), nameof(Row.market_description), DefaultColumnWidths.SecurityKey, market_description_filter, DataGridFilterKnownTemplates.Regex);
add_col(Columns.ClearedAlias, "Cleared Alias", r => r.security.cleared_alias(), nameof(Row.cleared_alias), DefaultColumnWidths.SecurityKey, cleared_alias_filter, DataGridFilterKnownTemplates.Regex);
add_col(Columns.ProductDescription, "Product Description", r => r.security.product_name(), nameof(Row.product_description), DefaultColumnWidths.SecurityKey, product_description_filter, DataGridFilterKnownTemplates.Regex);
add_col(Columns.HubAlias, "Hub Alias", r => r.security.hub_alias(), nameof(Row.hub_alias), DefaultColumnWidths.SecurityKey, hub_alias_filter, DataGridFilterKnownTemplates.Regex);
add_col(Columns.StripName, "Strip Name", r => r.security.strip_name(), nameof(Row.strip_name), DefaultColumnWidths.SecurityKey, strip_name_filter, DataGridFilterKnownTemplates.Regex);
add_col(Columns.MicCode, "Mic Code", r => r.security.mic_code(), nameof(Row.mic_code), DefaultColumnWidths.SecurityKey, mic_code_filter, DataGridFilterKnownTemplates.Regex);
//
void add_col(Columns col_key, string header, Func<Row, string> get_text, string prop, double width, IDataGridColumnFilter filter, string filter_template, bool is_animatable = false, Color? font_color = null, System.Windows.HorizontalAlignment h_alignment = System.Windows.HorizontalAlignment.Left) =>
columns.Add(new RenderTextColumn<Row, Columns>(col_key, get_text, filter, filter_template) {
@@ -74,7 +81,7 @@ namespace mbts.spark {
add_hl_col(col_key, header, price_binding(prop), prop, command_prop, filter, DataGridFilterKnownTemplates.DoubleMinMax, DefaultColumnWidths.MViewPrice, foreground, background, DefaultSelectionHighlight, h_alignment);
void add_hl_merged_size_col(Columns col_key, string header, string sort_prop, string text_prop, string command_prop, IDataGridColumnFilter filter, Color foreground, System.Windows.HorizontalAlignment h_alignment) =>
add_hl_col(col_key, header, new Binding(text_prop), sort_prop, command_prop, filter, DataGridFilterKnownTemplates.UShortMinMax, DefaultColumnWidths.ImpliedDirectMergedSize, foreground, null, null, h_alignment);
add_hl_col(col_key, header, new Binding(text_prop), sort_prop, command_prop, filter, DataGridFilterKnownTemplates.UIntMinMax, DefaultColumnWidths.ImpliedDirectMergedSize, foreground, null, null, h_alignment);
void add_hl_working_orders_col(Columns col_key, string header, string text_prop, string sort_prop, string command_prop, IDataGridColumnFilter filter, Color foreground, System.Windows.HorizontalAlignment h_alignment) =>
add_hl_col(col_key, header, new Binding(text_prop), sort_prop, command_prop, filter, DataGridFilterKnownTemplates.IntMinMax, working_orders_col_width, foreground, null, null, h_alignment);
@@ -173,6 +180,40 @@ namespace mbts.spark {
return grid_settings_manager.create();
}
public static IComparer<Row> get_column_comparer(Columns column) {
switch (column) {
case Columns.Security: return wrap(r => r.security);
case Columns.SecurityKey: return wrap(r => r.security.Id);
case Columns.Volume: return wrap(r => r.volume);
case Columns.Last: return wrap(r => r.last_price);
case Columns.LastSize: return wrap(r => r.last_size);
case Columns.Position: return wrap(r => r.position);
case Columns.WorkingBids: return wrap(r => r.working_bid_volume);
case Columns.BidImpliedSize: return wrap(r => r.bid_implied_size);
case Columns.BidDirectSize: return wrap(r => r.bid_direct_size);
case Columns.BidMergedSize: return wrap(r => r.bid_merged_size);
case Columns.Bid: return wrap(r => r.bid_price);
case Columns.Ask: return wrap(r => r.ask_price);
case Columns.AskMergedSize: return wrap(r => r.ask_merged_size);
case Columns.AskDirectSize: return wrap(r => r.ask_direct_size);
case Columns.AskImpliedSize: return wrap(r => r.ask_implied_size);
case Columns.WorkingAsks: return wrap(r => r.working_ask_volume);
case Columns.Settlement: return wrap(r => r.settlement);
case Columns.DayChange: return wrap(r => r.day_change);
case Columns.SessionLow: return wrap(r => r.session_low);
case Columns.SessionHigh: return wrap(r => r.session_high);
case Columns.MarketDescription: return wrap(r => r.market_description);
case Columns.ClearedAlias: return wrap(r => r.security.cleared_alias());
case Columns.ProductDescription: return wrap(r => r.security.product_name());
case Columns.HubAlias: return wrap(r => r.security.hub_alias());
case Columns.StripName: return wrap(r => r.security.strip_name());
case Columns.MicCode: return wrap(r => r.security.mic_code());
default: return null;
}
IComparer<Row> wrap<T>(Func<Row, T> selector) =>
Comparer<T>.Default.wrap(selector);
}
#region Filters
public IDataGridColumnPersistentFilter<Row, string> security_filter { get; }
public IDataGridColumnPersistentFilter<Row, DoubleMinMaxState> bid_price_filter { get; } = new DoubleMinMax<Row>(r => r.bid_price, nameof(Row.bid_price));
@@ -194,6 +235,14 @@ namespace mbts.spark {
public IDataGridColumnPersistentFilter<Row, IntMinMaxState> working_ask_volume_filter { get; } = new IntMinMax<Row>(r => r.working_ask_volume, nameof(Row.working_ask_volume));
public IDataGridColumnPersistentFilter<Row, ULongMinMaxState> volume_filter { get; } = new ULongMinMax<Row>(r => r.volume, nameof(Row.volume));
public IDataGridColumnPersistentFilter<Row, string> security_key_filter { get; } = new RegexFilterVM<Row>(r => r.security_key.ToString(), nameof(Row.security_key));
public IDataGridColumnPersistentFilter<Row, string> market_description_filter { get; } = new RegexFilterVM<Row>(r => r.security.HasIce ? r.security.Ice.MarketDescription : "", nameof(Row.market_description));
public IDataGridColumnPersistentFilter<Row, string> cleared_alias_filter { get; } = new RegexFilterVM<Row>(r => r.security.HasIce ? r.security.Ice.ClearedAlias : "", nameof(Row.cleared_alias));
public IDataGridColumnPersistentFilter<Row, string> product_description_filter { get; } = new RegexFilterVM<Row>(r => r.security.HasIce ? r.security.Ice.ProductName : "", nameof(Row.product_description));
public IDataGridColumnPersistentFilter<Row, string> hub_alias_filter { get; } = new RegexFilterVM<Row>(r => r.security.HasIce ? r.security.Ice.HubAlias : "", nameof(Row.hub_alias));
public IDataGridColumnPersistentFilter<Row, string> strip_name_filter { get; } = new RegexFilterVM<Row>(r => r.security.HasIce ? r.security.Ice.StripName : "", nameof(Row.strip_name));
public IDataGridColumnPersistentFilter<Row, string> mic_code_filter { get; } = new RegexFilterVM<Row>(r => r.security.HasIce ? r.security.Ice.MicCode : "", nameof(Row.mic_code));
public FilterStates get_filter_states() {
return new FilterStates {
@@ -216,7 +265,13 @@ namespace mbts.spark {
working_bid_volume = working_bid_volume_filter.get_state(),
working_ask_volume = working_ask_volume_filter.get_state(),
volume = volume_filter.get_state(),
security_key = security_key_filter.get_state()
security_key = security_key_filter.get_state(),
market_description = market_description_filter.get_state(),
cleared_alias = cleared_alias_filter.get_state(),
product_description = product_description_filter.get_state(),
hub_alias = hub_alias_filter.get_state(),
strip_name = strip_name_filter.get_state(),
mic_code = mic_code_filter.get_state(),
};
}
#endregion
@@ -8,7 +8,9 @@ namespace mbts.ui.spark {
/// Interaction logic for MarketSheetsView.xaml
/// </summary>
partial class MarketViewView : UserControl {
public enum Columns { Security, Volume, Last, LastSize, Position, WorkingBids, Bid, BidMergedSize, BidDirectSize, BidImpliedSize, Ask, AskMergedSize, AskDirectSize, AskImpliedSize, WorkingAsks, Settlement, DayChange, SessionLow, SessionHigh, SecurityKey }
public enum Columns { Security, Volume, Last, LastSize, Position, WorkingBids, Bid, BidMergedSize, BidDirectSize, BidImpliedSize, Ask, AskMergedSize, AskDirectSize, AskImpliedSize, WorkingAsks, Settlement, DayChange, SessionLow, SessionHigh, SecurityKey,
MarketDescription, ClearedAlias, ProductDescription, HubAlias, StripName, MicCode
}
public MarketViewView() {
InitializeComponent();
@@ -1,7 +1,9 @@
using bts;
using bts.api;
using bts.shell;
using bts.shell.fills;
using bts.spark;
using bts.utils;
using mbts.persist;
using mbts.ui;
using mbts.ui.settings;
@@ -11,12 +13,13 @@ using mbts.utils;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reactive.Disposables;
using System.Reactive.Linq;
using System.Windows;
namespace mbts.spark {
class MarketViewWindow : SparkWindow<MarketViewWindowFactory.StartupData>, ISharedWindow {
const string _window_type = "MarketView", _thread_id = "MarketView", _window_type_display_name = "Market View";
class MarketViewWindow : SparkWindow<MarketViewWindowFactory.StartupData>, ISharedWindow, ISlowMeasureContentSize {
const string _window_type = "MarketView", _window_type_display_name = "Market View";
readonly OrdersModel _orders_model;
readonly AllowOnce _init_guard = new AllowOnce("MarketView");
readonly IWindowSettingsManager<GridSettings> _settings_manager;
@@ -25,6 +28,9 @@ namespace mbts.spark {
MarketViewWindowFactory.StartupData _state;
IReadOnlyList<SparkCommand> _commands;
IDisposable _subscriptions;
SecurityCriteria
_selected_security_criteria_backing,
_sorted_selected_security_criteria_backing;
public MarketViewWindow(MarketViewWindowFactory factory, IBus bus, OrdersModel orders_model, MarketViewWindowFactory.StartupData state, WindowSettingsManager<GridSettings> settings_manager)
: base("Market View", bus, factory, SparkCommands.ShowMarketView.icon) {
@@ -32,6 +38,7 @@ namespace mbts.spark {
_state = state;
_settings_manager = settings_manager;
Icon.Freeze();
thread_id = config.Configuration.get<bts.config.MultiThreadedWindows>().market_view ? "MarketView" : null;
}
event Action<MarketViewWindowFactory.StartupData> _state_changed;
@@ -42,12 +49,53 @@ namespace mbts.spark {
public override MarketViewWindowFactory.StartupData SaveState =>
_state = new MarketViewWindowFactory.StartupData(_state.security_criteria, _vm.get_filter_states(), _vm.get_grid_save_state(), _vm.rows_view.get_sorting_criteria(_vm.columns));
public override double MinWidth => MarketViewWindowFactory.StartupData.DefaultGridSettings.columns.Sum(gcs => gcs.width)
public override double MinWidth => MarketViewWindowFactory.StartupData.DefaultGridSettings.columns.Where(c => c.is_visible).Sum(gcs => gcs.width)
+ SPARK_MENU_COLLAPSED_WIDTH
+ LAUNCHER_BUTTON_BORDER_WIDTH
+ EXTRA_FOR_NO_HORIZONTAL_SCROLLBAR_WIDTH;
public string thread_id => _thread_id;
public string thread_id { get; }
SecurityCriteria _selected_security_criteria {
get {
if (_selected_security_criteria_backing == null) {
if (_sorted_selected_security_criteria_backing != null) {
_selected_security_criteria_backing = _sorted_selected_security_criteria_backing;
} else if (_vm != null)
_selected_security_criteria_backing = new SecurityCriteria(_vm.selected_rows.Select(r => r.security));
}
return _selected_security_criteria_backing;
}
}
SecurityCriteria _sorted_selected_security_criteria {
get {
if (_sorted_selected_security_criteria_backing == null) {
if (_vm != null) {
var sorting_criteria = _vm.rows_view.get_sorting_criteria(_vm.columns);
var comp_builder = new ComparerBuilder<MarketViewVM.Row>();
foreach (var sc in sorting_criteria) {
if (_vm.columns.TryGetFirst(col => string.Equals(col.id, sc.col_name, StringComparison.CurrentCultureIgnoreCase), out var match)) {
if (match is ui.controls.DIYGrid.IKeyedColumn<MarketViewView.Columns> kcol) {
var col_comp = MarketViewVM.get_column_comparer(kcol.key);
if (col_comp != null) {
comp_builder.add(sc.is_ascending ? col_comp : col_comp.reverse());
} else {
Log.Ui.warn($"{_window_type} is unable to find the row comparer for the '{sc.col_name}' column.");
}
} else {
Log.Ui.warn($"{_window_type} is unable find a column with id '{sc.col_name}.'");
}
}
}
var comp = comp_builder.to_comparer();
_sorted_selected_security_criteria_backing = new SecurityCriteria(_vm.selected_rows.Ordered(comp).Select(r => r.security));
}
}
return _sorted_selected_security_criteria_backing;
}
}
bool _has_selected_rows() => _vm != null && _vm.selected_rows.Count > 0;
public void thread_init() {
_init_guard.check_access();
@@ -55,17 +103,44 @@ namespace mbts.spark {
var state_src = Observable.FromEvent<Action<MarketViewWindowFactory.StartupData>, MarketViewWindowFactory.StartupData>(cb => _state_changed += cb, cb => _state_changed -= cb).StartWith(_state);
_vm = new MarketViewVM(_bus, _orders_model, state_src, _settings_manager);
_view = new MarketViewView { DataContext = _vm };
_view._grid.Sorting += on_grid_sorting;
/// The 'CanExecute' plumbing for the cmds below is designed to avoid potentially costly .ToList() operations on the selected_rows/securities.
/// Some of the cmds post ITags with data that is, or has, a SecurityCriteria member; the SecurityCriteria constructor creates a new List of the specified securities.
/// For these commands, the objective is to evaluate 'CanExecute' without instantiating the SecurityCriteria (or more importantly, without creating a new List).
// show time and sales
var show_tas_cmd = new DelegateCommand(() => {
var sc = _selected_security_criteria;
if (sc.is_defined())
_bus.post(SparkTags.ShowTimeAndSalesTag, sc);
}, _has_selected_rows);
var show_tas_actual_cmd = SparkCommands.ShowTimeAndSales;
var show_tas_cmd_wrapper = new SparkCommandCommand(show_tas_actual_cmd.title, show_tas_actual_cmd.icon, show_tas_cmd);
// show fills
var show_fills_cmd = new DelegateCommand(() => {
var sc = _selected_security_criteria;
_bus.post(SparkTags.ShowFillsTag, new FillsSettings(
new FillsFilterStates {
security = sc.is_defined() ? sc : _state.security_criteria
}));
});
var show_fills_actual_cmd = SparkCommands.ShowFills();
var show_fills_cmd_wrapper = new SparkCommandCommand(show_fills_actual_cmd.title, show_fills_actual_cmd.icon, show_fills_cmd, SparkCommands.KeyGestures.ShowFills);
// show synthetic create
var show_synth_create_cmd = new DelegateCommand(() => {
var sc = _sorted_selected_security_criteria;
if (sc.is_defined())
_bus.post(SparkTags.ShowSyntheticCreateTag, sc);
}, () => _vm.selected_rows.Count > 0 && _vm.selected_rows.Count <= 24);
var show_synth_create_actual_cmd = SparkCommands.ShowSyntheticCreate();
var show_synth_create_cmd_wrapper = new SparkCommandCommand(show_synth_create_actual_cmd.title, show_synth_create_actual_cmd.icon, show_synth_create_cmd, SparkCommands.KeyGestures.ShowSyntheticCreate);
var update_securities_cmd = SparkCommands.change_securities_callback(_window_type_display_name);
_commands = new List<SparkCommand> {
SparkCommands.ShowLadders.complete(_vm.selected_security_mds_observable(), smds => smds.Count > 0),
SparkCommands.ShowOrderTicketFromSecurity.complete(_vm.current_security_md, md => md.HasValue, ConvertUtils.ValueOrDefault),
SparkCommands.ShowFills.complete(_vm.selected_securities_observable(), _ => true,
secs => new FillsWindowFactory.StartupData(new FillsWindowFactory.FilterStates {
security = secs.Count > 0 ? new SecurityCriteria(secs) : _state.security_criteria
})
),
SparkCommands.ShowTimeAndSales.complete(_vm.selected_securities_observable(), _ => true, secs => secs.Count > 0 ? new SecurityCriteria(secs) : _state.security_criteria),
SparkCommands.ShowSyntheticCreate.complete(_vm.sorted_selected_securities_observable(), secs => secs.Count > 0 && secs.Count <= 24, secs => new SecurityCriteria(secs)),
SparkCommands.ShowLadders(SparkCommands.KeyGestures.ShowLadder).complete(_vm.selected_security_mds_observable(), smds => smds.Count > 0),
SparkCommands.ShowOrderTicketFromSecurity(SparkCommands.KeyGestures.ShowOrderTicket).complete(_vm.current_security_md, md => md.HasValue, ConvertUtils.ValueOrDefault),
show_fills_cmd_wrapper,
show_tas_cmd_wrapper,
show_synth_create_cmd_wrapper,
SparkCommands.change_securities_command(() => (update_securities_cmd, _state.security_criteria)),
// wrap the grid settings view factory in a dialogCommand here since the vm is destroyed/recreated when the security criteria changes
SparkCommands.window_settings_command(new DialogCommand(() => {
@@ -86,8 +161,27 @@ namespace mbts.spark {
return dialog;
}))
};
_subscriptions = _bus.subscribe(update_securities_cmd.tag).OnDispatcher().Subscribe(c =>
_state_changed?.Invoke(_state = new MarketViewWindowFactory.StartupData(c, _vm.get_filter_states(), _vm.grid_settings_manager.create())));
//
_vm.selection_changed += on_selection_changed;
_subscriptions = new CompositeDisposable(_bus.subscribe(update_securities_cmd.tag).OnDispatcher().Subscribe(c =>
_state_changed?.Invoke(_state = new MarketViewWindowFactory.StartupData(c, _vm.get_filter_states(), _vm.grid_settings_manager.create())))) {
() => {
_vm.selection_changed -= on_selection_changed;
_view._grid.Sorting -= on_grid_sorting;
}
};
void on_selection_changed((IEnumerable<MarketViewVM.Row> removed, IEnumerable<MarketViewVM.Row> added) change) {
// invalidate selected security criteria
_selected_security_criteria_backing = null;
_sorted_selected_security_criteria_backing = null;
show_tas_cmd.RaiseCanExecuteChanged();
show_fills_cmd.RaiseCanExecuteChanged();
show_synth_create_cmd.RaiseCanExecuteChanged();
}
void on_grid_sorting(object sender, ui.controls.DIYGridSortingEventArgs e) =>
_sorted_selected_security_criteria_backing = null;
}
public override void Dispose() {
@@ -97,6 +97,12 @@ namespace bts.shell {
public static GridColumnSettings session_low => new GridColumnSettings(col_id(Columns.SessionLow), DefaultColumnHeaders.SessionLow, width: DefaultColumnWidths.Price, horizontal_alignment: System.Windows.HorizontalAlignment.Right);
public static GridColumnSettings session_high => new GridColumnSettings(col_id(Columns.SessionHigh), DefaultColumnHeaders.SessionHigh, width: DefaultColumnWidths.Price, horizontal_alignment: System.Windows.HorizontalAlignment.Right);
public static GridColumnSettings security_key => new GridColumnSettings(col_id(Columns.SecurityKey), DefaultColumnHeaders.SecurityKey, is_visible: false, width: DefaultColumnWidths.SecurityKey);
public static GridColumnSettings market_description => new GridColumnSettings(col_id(Columns.MarketDescription), DefaultColumnHeaders.MarketDescription, is_visible: false, width: DefaultColumnWidths.SecurityKey);
public static GridColumnSettings cleared_alias => new GridColumnSettings(col_id(Columns.ClearedAlias), DefaultColumnHeaders.ClearedAlias, is_visible: false, width: DefaultColumnWidths.SecurityKey);
public static GridColumnSettings product_description => new GridColumnSettings(col_id(Columns.ProductDescription), DefaultColumnHeaders.ProductDescription, is_visible: false, width: DefaultColumnWidths.SecurityKey);
public static GridColumnSettings hub_alias => new GridColumnSettings(col_id(Columns.HubAlias), DefaultColumnHeaders.HubAlias, is_visible: false, width: DefaultColumnWidths.SecurityKey);
public static GridColumnSettings strip_name => new GridColumnSettings(col_id(Columns.StripName), DefaultColumnHeaders.StripName, is_visible: false, width: DefaultColumnWidths.SecurityKey);
public static GridColumnSettings mic_code => new GridColumnSettings(col_id(Columns.MicCode), DefaultColumnHeaders.MicCode, is_visible: false, width: DefaultColumnWidths.SecurityKey);
@@ -128,6 +134,12 @@ namespace bts.shell {
yield return session_low;
yield return session_high;
yield return security_key;
yield return market_description;
yield return cleared_alias;
yield return product_description;
yield return hub_alias;
yield return strip_name;
yield return mic_code;
}
}
@@ -177,6 +189,18 @@ namespace bts.shell {
public UIntMinMaxState ask_direct_size;
[ProtoMember(20)]
public UIntMinMaxState ask_implied_size;
[ProtoMember(21)]
public string market_description;
[ProtoMember(22)]
public string cleared_alias;
[ProtoMember(23)]
public string product_description;
[ProtoMember(24)]
public string hub_alias;
[ProtoMember(25)]
public string strip_name;
[ProtoMember(26)]
public string mic_code;
}
}
}
@@ -1,7 +1,6 @@
using bts.api;
using bts.co2;
using mbts.co2;
using mbts.collections.extensions;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -1,22 +1,23 @@
using bts.api;
using bts.co2;
using bts.collections;
using mbts.persist;
using mbts.spark.filters;
using mbts.ui;
using mbts.ui.controls;
using mbts.ui.settings;
using mbts.ui.spark;
using mbts.ui.utility;
using System;
using System.Linq;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Reactive.Linq;
using System.Threading.Tasks;
using System.Windows.Input;
using System.Windows.Media;
using static bts.shell.TimeAndSalesWindowFactory;
using static mbts.ui.controls.DIYGrid;
using mbts.persist;
using mbts.ui.settings;
using System.Reactive.Linq;
namespace mbts.spark {
class TimeAndSalesVM : SecurityGrid<TimeAndSalesVM.Row, TradeInfo> {
@@ -1,6 +1,7 @@
using bts;
using bts.api;
using bts.shell;
using bts.shell.fills;
using bts.spark;
using mbts.co2;
using mbts.persist;
@@ -19,7 +20,7 @@ using static bts.shell.TimeAndSalesWindowFactory;
using static mbts.ui.controls.DIYGrid;
namespace mbts.spark {
class TimeAndSalesWindow : SparkWindow<StartupData>, ISlowWindow {
class TimeAndSalesWindow : SparkWindow<StartupData>, ISharedWindow {
const string _window_type = "TimeAndSales", _window_type_display_name = "Time And Sales";
readonly MDConsumer _consumer;
readonly TimeAndSalesWindowFactory _factory;
@@ -48,7 +49,7 @@ namespace mbts.spark {
+ SPARK_MENU_COLLAPSED_WIDTH
+ LAUNCHER_BUTTON_BORDER_WIDTH
+ EXTRA_FOR_NO_HORIZONTAL_SCROLLBAR_WIDTH;
public string thread_id { get; }
public override StartupData SaveState => _state = _vm.value.create();
public override void Dispose() =>
@@ -62,9 +63,9 @@ namespace mbts.spark {
var current_smd_source = connectable_builder.create(vm => vm.current_security_md_observable(_bus)).OnDispatcher();
var selected_secs_source = connectable_builder.create(vm => vm.selected_securities_observable()).OnDispatcher();
_commands = new SparkCommand[] {
SparkCommands.ShowLadder.complete(current_smd_source, md => md.HasValue, ConvertUtils.ValueOrDefault),
SparkCommands.ShowOrderTicketFromSecurity.complete(current_smd_source, md => md.HasValue, ConvertUtils.ValueOrDefault),
SparkCommands.ShowFills.complete(selected_secs_source, always_true, get_fills_startup_data),
SparkCommands.ShowLadder(SparkCommands.KeyGestures.ShowLadder).complete(current_smd_source, md => md.HasValue, ConvertUtils.ValueOrDefault),
SparkCommands.ShowOrderTicketFromSecurity(SparkCommands.KeyGestures.ShowOrderTicket).complete(current_smd_source, md => md.HasValue, ConvertUtils.ValueOrDefault),
SparkCommands.ShowFills(SparkCommands.KeyGestures.ShowFills).complete(selected_secs_source, always_true, get_fills_startup_data),
SparkCommands.ShowMarketView.complete(selected_secs_source, always_true, secs => secs.Count > 0 ? new SecurityCriteria(secs) : _state.security_criteria),
SparkCommands.change_securities_command(() => (update_securities_cmd, _state.security_criteria)),
// wrap the grid settings view factory in a dialogCommand here since the vm is destroyed/recreated when the security criteria changes
@@ -92,8 +93,8 @@ namespace mbts.spark {
_initialize();
bool always_true<T>(T _) => true;
FillsWindowFactory.StartupData get_fills_startup_data(IReadOnlyList<SecurityImmutable> secs) =>
new FillsWindowFactory.StartupData(new FillsWindowFactory.FilterStates {
FillsSettings get_fills_startup_data(IReadOnlyList<SecurityImmutable> secs) =>
new FillsSettings(new FillsFilterStates {
security = secs.Count > 0 ? new SecurityCriteria(secs) : _state.security_criteria
});
void update_criteria(SecurityCriteria c) {
@@ -20,6 +20,8 @@
<sys:Double x:Key="RowHeight">16</sys:Double>
<sys:Double x:Key="NegativeRowHeight">-16</sys:Double>
<sys:Double x:Key="ItemsHostCanBeDisabledCollapsedHeight">15</sys:Double>
<sys:Double x:Key="HeaderPanelItemSeparation">6</sys:Double>
<Thickness x:Key="Margin.LHeaderPanelItem" Left="{StaticResource HeaderPanelItemSeparation}"/>
<Thickness
x:Key="GroupLevelMargin"
Left="{x:Static usp:ExecutionStrategyEditor.GroupLevelIndent}"
@@ -100,7 +102,7 @@
</usp:DataGridParameterCellTemplateConverter.BooleanTemplate>
<usp:DataGridParameterCellTemplateConverter.DoubleTemplate>
<DataTemplate>
<c:TickUpDownDouble Value="{Binding value}" IsEnabled="{Binding enabled}" Increment="{Binding tick_increment, FallbackValue={u:Double 1}}"/>
<c:TickUpDownDouble Value="{Binding value}" IsEnabled="{Binding enabled}" Increment="{Binding tick_increment, FallbackValue={u:Double 1}}" FlushTextImmediately="False"/>
</DataTemplate>
</usp:DataGridParameterCellTemplateConverter.DoubleTemplate>
<usp:DataGridParameterCellTemplateConverter.IntTemplate>
@@ -369,16 +371,21 @@
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="7*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="3*"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="5*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<TextBlock VerticalAlignment="Center" IsEnabled="{TemplateBinding IsNew}">Name</TextBlock>
<TextBox
x:Name="PART_Name_TextBox" Grid.Column="1" Margin="6,0,0,0" HorizontalAlignment="Stretch" IsEnabled="{TemplateBinding IsNew}"
x:Name="PART_Name_TextBox"
Grid.Column="1"
Margin="{StaticResource Margin.LHeaderPanelItem}"
MinWidth="80"
HorizontalAlignment="Stretch"
IsEnabled="{TemplateBinding IsNew}"
Text="{Binding SyntheticName, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}, ValidatesOnDataErrors=True, ValidatesOnNotifyDataErrors=True, NotifyOnValidationError=True}"
>
<u:Behavior.BindingUpdateGroups>
@@ -390,18 +397,22 @@
</u:Behavior.BindingUpdateGroups>
</TextBox>
<TextBlock
Grid.Column="2" VerticalAlignment="Center" Margin="6,0,0,0" Text="Ticks" IsEnabled="{TemplateBinding IsNew}"
Grid.Column="2" VerticalAlignment="Center" Margin="{StaticResource Margin.LHeaderPanelItem}" Text="Ticks" IsEnabled="{TemplateBinding IsNew}"
Visibility="{Binding LegTuples.Count, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource IntNotZeroVisibilityConverter}}"
/>
<c:TickFactorsPicker
x:Name="PART_TickFactorsPicker" Grid.Column="3" Margin="6,0,0,0" IsEnabled="{TemplateBinding IsNew}" HorizontalAlignment="Stretch"
x:Name="PART_TickFactorsPicker" Grid.Column="3" Margin="{StaticResource Margin.LHeaderPanelItem}" IsEnabled="{TemplateBinding IsNew}" HorizontalAlignment="Stretch"
SelectedTickFactors="{Binding TickFactors, RelativeSource={RelativeSource TemplatedParent}, Mode=TwoWay}"
Visibility="{Binding LegTuples.Count, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource IntNotZeroVisibilityConverter}}"
/>
<TextBlock Grid.Column="4" VerticalAlignment="Center" Margin="6,0,0,0">Pricing</TextBlock>
<TextBlock Grid.Column="4" VerticalAlignment="Center" Margin="{StaticResource Margin.LHeaderPanelItem}" IsEnabled="{TemplateBinding IsNew}" >Pricing</TextBlock>
<ComboBox
Grid.Column="5" Margin="6,0,0,0" IsEnabled="False"
ItemsSource="{x:Static usp:ExecutionStrategyEditor.PriceCalcItems}" SelectedItem="{Binding PriceCalc, RelativeSource={RelativeSource TemplatedParent}}"
Grid.Column="5"
Margin="{StaticResource Margin.LHeaderPanelItem}"
Width="90"
IsEnabled="{TemplateBinding IsNew}"
ItemsSource="{x:Static usp:ExecutionStrategyEditor.PriceCalcItems}"
SelectedItem="{Binding price_calc}"
>
<ComboBox.ItemTemplate>
<DataTemplate>
@@ -409,7 +420,6 @@
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
<c:HelpButton Grid.Column="6" Margin="3,0,0,0"/>
</Grid>
<c:DataGridEx
x:Name="PART_DataGrid"
@@ -1,4 +1,5 @@
using bts.api;
using bts.collections;
using bts.spark;
using mbts.spark;
using mbts.ui.adorners;
@@ -7,7 +8,6 @@ using mbts.ui.utility;
using mbts.user.settings;
using mbts.utils;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Collections.Specialized;
@@ -99,7 +99,7 @@ namespace mbts.ui.spark {
#region PriceCalc
public static readonly DependencyProperty PriceCalcProperty = DependencyProperty.Register("PriceCalc", typeof(SyntheticContract.Types.PriceCalc), typeof(ExecutionStrategyEditor),
new FrameworkPropertyMetadata(SyntheticContract.Types.PriceCalc.Diff, FrameworkPropertyMetadataOptions.BindsTwoWayByDefault));
new FrameworkPropertyMetadata(SyntheticContract.Types.PriceCalc.Standard, FrameworkPropertyMetadataOptions.BindsTwoWayByDefault));
public SyntheticContract.Types.PriceCalc PriceCalc { get => (SyntheticContract.Types.PriceCalc)GetValue(PriceCalcProperty); set => SetValue(PriceCalcProperty, value); }
public static readonly IEnumerable<SyntheticContract.Types.PriceCalc> PriceCalcItems = EnumHelper.get_values<SyntheticContract.Types.PriceCalc>();
@@ -315,7 +315,6 @@ namespace mbts.ui.spark {
else if (t == typeof(uint)) return UIntTemplate;
else if (t == typeof(QuantityMeasure)) return QuantityMeasureTemplate;
else if (t == typeof(LegSpreaderParams.Types.MarketDataType)) return MarketDataTypeTemplate;
else if (t == typeof(LegSpreaderParams.Types.LegMarketDataCalculation)) return MarketDataCalculationTemplate;
else if (t == typeof(ConditionalQuoting.Types.PriceType)) return ConditionalPriceTypeTemplate;
else return null;
}
@@ -12,6 +12,9 @@
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/Modules/Spreader/ExecutionStrategyEditor.xaml"/>
</ResourceDictionary.MergedDictionaries>
<Style TargetType="ScrollViewer">
<Setter Property="u:ScrollViewerCorrector.FixNestedScrolling" Value="False"/>
</Style>
</ResourceDictionary>
</Window.Resources>
<Grid>
@@ -16,7 +16,7 @@ using System.Windows;
using static bts.shell.SyntheticManagementWindowFactory;
namespace mbts.spark {
class SyntheticManagementWindow : SparkWindow<StartupData>, ISlowWindow {
class SyntheticManagementWindow : SparkWindow<StartupData>, ISharedWindow {
const string _window_type = "SyntheticManagement";
SingleValuePump<SyntheticManagementDialogVM> _vm = new SingleValuePump<SyntheticManagementDialogVM>();
StartupData _state;
@@ -33,8 +33,20 @@ namespace mbts.spark {
_state = state;
_settings_manager = settings_manager;
Icon.Freeze();
thread_id = config.Configuration.get<bts.config.MultiThreadedWindows>().synthetic_management ? "SyntheticManagement" : null;
}
public override string window_type => _window_type;
public override UIElement Content => _view;
public override IEnumerable<SparkCommand> Commands => _commands;
public override StartupData SaveState => _state = _vm.value.create();
public override double MinWidth =>
StartupData.DefaultGridSettings.columns.Sum(gcs => gcs.width)
+ SPARK_MENU_COLLAPSED_WIDTH
+ LAUNCHER_BUTTON_BORDER_WIDTH
+ EXTRA_FOR_NO_HORIZONTAL_SCROLLBAR_WIDTH;
public string thread_id { get; }
public void thread_init() {
Log.notnull(_state);
@@ -54,14 +66,15 @@ namespace mbts.spark {
), SparkCommand.create("Clone", Icons.CloneSynthetic, SparkTags.ShowSyntheticCloneTag).complete(
current_row_connectable_builder.create(observe_row_strategy),
rs => rs.HasValue, select_row_strategy_tuple
), SparkCommands.ShowLadder.complete(
), SparkCommands.ShowLadder(SparkCommands.KeyGestures.ShowLadder).complete(
vm_connectable_builder.create(vm => vm.current_security_md), md => md.HasValue, ConvertUtils.ValueOrDefault
), SparkCommands.ShowOrders.complete(() => new OrderBookWindowFactory.OrderBookStartupData {
filters = new OrderBookWindowFactory.FilterStates {
security_criteria = new SecurityCriteria(_vm.value.row_vms.Select(r => r.security))
}
}
), SparkCommands.window_settings_command(new DialogCommand(() => {
), SparkCommands.ShowOrders.complete(() => {
var ob_settings = bts.shell.orderbook.OrderBookStartupData.Default;
ob_settings.filters = new bts.shell.orderbook.FilterStates {
security_criteria = new SecurityCriteria(_vm.value.row_vms.Select(r => r.security))
};
return ob_settings;
}), SparkCommands.window_settings_command(new DialogCommand(() => {
var vm = new WindowSettingsDialogVM<GridSettings, SimpleGridSettingsVM>(
_settings_manager,
us => us.synthetic_management_grid,
@@ -101,16 +114,6 @@ namespace mbts.spark {
else _view.DataContext = _vm.value;
}
public override string window_type => _window_type;
public override UIElement Content => _view;
public override IEnumerable<SparkCommand> Commands => _commands;
public override StartupData SaveState => _state = _vm.value.create();
public override double MinWidth =>
StartupData.DefaultGridSettings.columns.Sum(gcs => gcs.width)
+ SPARK_MENU_COLLAPSED_WIDTH
+ LAUNCHER_BUTTON_BORDER_WIDTH
+ EXTRA_FOR_NO_HORIZONTAL_SCROLLBAR_WIDTH;
public override void Dispose() {
Disposable.dispose(ref _vm);
Commands.OfType<IDisposable>().DisposeAll();
@@ -1,18 +0,0 @@
using mbts.ui.spark;
using LegMarketDataCalculation = bts.spark.LegSpreaderParams.Types.LegMarketDataCalculation;
namespace mbts.spark {
partial class SyntheticEditorVM {
class MarketDataCalculationModel : RowModelBase<LegMarketDataCalculation> {
public override string display_name { get; } = "Market Data Calculation";
public override string help_text { get; }
public override string man_page { get; } = string.Empty;
public override LegMarketDataCalculation get_value(LegSpreaderParamsTuple leg_tup) =>
leg_tup.leg_params.LegMdCalc;
public override void set_value(LegSpreaderParamsTuple leg_tup, LegMarketDataCalculation value) =>
leg_tup.leg_params.LegMdCalc = value;
}
}
}
@@ -1,6 +1,5 @@
using bts.shell;
using bts.spark;
using mbts.collections.extensions;
using mbts.ui.spark;
using System.Collections.Generic;
@@ -1,6 +1,5 @@
using bts.shell;
using bts.spark;
using mbts.collections.extensions;
using mbts.ui.spark;
using System.Collections.Generic;
@@ -1,6 +1,5 @@
using bts.shell;
using bts.spark;
using mbts.collections.extensions;
using mbts.ui.spark;
using System.Collections.Generic;
@@ -1,6 +1,5 @@
using bts.shell;
using bts.spark;
using mbts.collections.extensions;
using mbts.ui.spark;
using System.Collections.Generic;
@@ -1,6 +1,5 @@
using bts.shell;
using bts.spark;
using mbts.collections.extensions;
using mbts.ui.spark;
using System.Collections.Generic;
@@ -1,6 +1,5 @@
using bts.shell;
using bts.spark;
using mbts.collections.extensions;
using mbts.ui.spark;
using System.Collections.Generic;
@@ -1,6 +1,5 @@
using bts.shell;
using bts.spark;
using mbts.collections.extensions;
using mbts.ui.spark;
using System.Collections.Generic;
@@ -1,6 +1,5 @@
using bts.shell;
using bts.spark;
using mbts.collections.extensions;
using mbts.ui.spark;
using System.Collections.Generic;
@@ -1,6 +1,5 @@
using bts.shell;
using bts.spark;
using mbts.collections.extensions;
using mbts.ui.spark;
using System.Collections.Generic;
@@ -1,6 +1,5 @@
using bts.shell;
using bts.spark;
using mbts.collections.extensions;
using mbts.ui.spark;
using System.Collections.Generic;
@@ -1,12 +1,10 @@
using mbts.ui.spark;
using bts.shell;
using bts.spark;
using PriceType = bts.spark.ConditionalQuoting.Types.PriceType;
using mbts.collections.extensions;
using mbts.ui.spark;
using System.Collections.Generic;
using bts.shell;
using PriceType = bts.spark.ConditionalQuoting.Types.PriceType;
namespace mbts.spark
{
namespace mbts.spark {
partial class SyntheticEditorVM
{
class ConditionalQuotingPriceTypeModel : RowModelBase<PriceType>
@@ -1,6 +1,5 @@
using bts.shell;
using bts.spark;
using mbts.collections.extensions;
using mbts.ui.spark;
using System.Collections.Generic;
@@ -1,5 +1,4 @@
using bts.spark;
using mbts.collections.extensions;
using mbts.ui.spark;
using System.Collections.Generic;
using System.Windows;
@@ -1,6 +1,5 @@
using bts.shell;
using bts.spark;
using mbts.collections.extensions;
using mbts.ui.spark;
using System.Collections.Generic;
@@ -1,6 +1,5 @@
using bts.shell;
using bts.spark;
using mbts.collections.extensions;
using mbts.ui.spark;
using System.Collections.Generic;
@@ -0,0 +1,44 @@
using bts.spark;
using mbts.ui.spark;
using System.Collections.Generic;
using System.Windows;
namespace mbts.spark
{
partial class SyntheticEditorVM
{
class QuoteQueueHolderModel : RowModelBase<uint>, IHaveFontParams
{
IDictionary<uint, uint> _value_store = new Dictionary<uint, uint>();
public QuoteQueueHolderModel()
{
}
public override string display_name { get; } = "Queue Holder Length";
public override string help_text { get; } = "How many levels of queue to hold";
public override string man_page { get; } = string.Empty;
public override ParameterSection[] section_path { get; } = new[] { Sections.Quote };
public FontWeight font_weight => FontWeights.SemiBold;
public void apply_value(LegSpreaderParamsTuple leg_tup) =>
leg_tup.leg_params.QuoteParams.NQueueHolderOrders = _value_from_store(leg_tup);
public override uint get_value(LegSpreaderParamsTuple leg_tup) =>
_get_value(leg_tup).NQueueHolderOrders;
public override void set_value(LegSpreaderParamsTuple leg_tup, uint value)
{
_value_store[leg_tup.SecurityKey] = value;
leg_tup.leg_params.QuoteParams.NQueueHolderOrders = value ;
}
protected override bool _get_enabled(LegSpreaderParamsTuple leg_tup) =>
_get_value(leg_tup) != null;
QuoteParams _get_value(LegSpreaderParamsTuple leg_tup) =>
leg_tup.leg_params.QuoteParams;
uint _value_from_store(LegSpreaderParamsTuple leg_tup) =>
_value_store.GetValueOrDefault(leg_tup.SecurityKey, _ => 0u);
}
}
}
@@ -1,6 +1,5 @@
using bts.shell;
using bts.spark;
using mbts.collections.extensions;
using mbts.ui.spark;
using System.Collections.Generic;
@@ -1,6 +1,5 @@
using bts.shell;
using bts.spark;
using mbts.collections.extensions;
using mbts.ui.spark;
using System.Collections.Generic;
@@ -1,4 +1,5 @@
using bts.api;
using bts.collections;
using bts.shell;
using bts.spark;
using bts.utils;
@@ -26,6 +27,7 @@ namespace mbts.spark {
readonly PriceMultiplierModel _price_mult_model;
readonly List<IDisposable> _resources = new List<IDisposable>();
readonly Property<bool> _has_working_orders, _can_add_leg;
Security _synthetic;
bool _set_name_automatically, _set_ticks_automatically, _set_quantities_automatically, _set_price_mults_automatically, _is_setting_quantities, _is_setting_price_mults;
TickFactors _tick_factors;
@@ -71,7 +73,7 @@ namespace mbts.spark {
_has_working_orders = backing(nameof(has_working_orders), false);
contract_picker_model = new ContractPickerModel(bus, false, null, new SecurityCriteria(new[] {
new SecurityCriteriaClause() {
exchanges = EnumHelper.get_values_except(Venue.Bts).ToLArray()
exchanges = EnumHelper.get_values_except(Venue.Bts).ToArray()
}
}));
contract_picker_model.cancel_action = _close_new_leg_popup;
@@ -198,16 +200,17 @@ namespace mbts.spark {
var post_hedge_opposite_market_based_cross_threshold = new PostHedgeOppositeMarketVolumeBasedCrossThresholdModel();
var post_hedge_opposite_market_based_cross_cross_ticks = new PostHedgeOppositeMarketVolumeBasedCrossCrossTicksModel();
var is_quote_model = new IsQuoteModel();
rows = new IRowModel[] {
_quantity_model,
_price_mult_model,
new IsQuoteModel(),
is_quote_model,
//new EnableHedgeModel(), //TAHA_SPREADER
new HedgeRatioModel(),
//new MinLeanQtyModel(), //TAHA_SPREADER
//new QuoteHiddenModel(),
new QuoteQueueHolderModel(),
new MarketDataTypeModel(),
new MarketDataCalculationModel(),
new QuoteThrottleEnabledModel(quote_throttle_inside_ticks, quote_throttle_outside_ticks),
quote_throttle_inside_ticks,
quote_throttle_outside_ticks,
@@ -291,7 +294,9 @@ namespace mbts.spark {
public ExecutionStrategyImmutable get_strategy() {
var mutable_strategy = _strategy.CloneToMutable();
mutable_strategy.LegParamsMap.Clear();
foreach (var lt in leg_tuples) mutable_strategy.LegParamsMap.Add(lt.leg.Security.Id, lt.leg_params);
foreach (var lt in leg_tuples) {
mutable_strategy.LegParamsMap.Add(lt.leg.Security.Id, lt.leg_params);
}
return new ExecutionStrategyImmutable(mutable_strategy);
}
@@ -316,9 +321,12 @@ namespace mbts.spark {
return string.Empty;
}
static IEnumerable<LegSpreaderParamsTuple> _get_legs(Security synthetic, ExecutionStrategyImmutable strategy) =>
synthetic.Synthetic.Legs
.Select(l => new LegSpreaderParamsTuple(l, strategy.LegParamsMap[l.Security.Id].Clone()));
static IEnumerable<LegSpreaderParamsTuple> _get_legs(Security synthetic, ExecutionStrategyImmutable strategy) {
foreach (var l in synthetic.Synthetic.Legs) {
if (strategy.LegParamsMap.TryGetValue(l.Security.Id, out var p))
yield return new LegSpreaderParamsTuple(l, p);
}
}
void _close_new_leg_popup() {
is_new_leg_popup_open = false;
@@ -1,10 +1,9 @@
using bts.api;
using bts.shell;
using bts.collections;
using bts.spark;
using mbts.persist;
using mbts.spark.filters;
using mbts.ui;
using mbts.ui.controls;
using mbts.ui.settings;
using System;
using System.Collections.Generic;
@@ -169,12 +168,13 @@ namespace mbts.spark {
void _show_ladder() =>
_bus.post(SparkTags.ShowLadderTag, md);
void _show_order_book() =>
_bus.post(SparkTags.ShowOrderBookTag, new OrderBookWindowFactory.OrderBookStartupData {
filters = new OrderBookWindowFactory.FilterStates {
security_criteria = new SecurityCriteria(security)
}
});
void _show_order_book() {
var ob_settings = bts.shell.orderbook.OrderBookStartupData.Default;
ob_settings.filters = new bts.shell.orderbook.FilterStates {
security_criteria = new SecurityCriteria(security)
};
_bus.post(SparkTags.ShowOrderBookTag, ob_settings);
}
}
}
}
@@ -19,8 +19,6 @@
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/view/Controls/Order/AlgoTemplateTreeView.xaml"/>
<ResourceDictionary Source="/view/Controls/Order/AlgoPickerNodeView.xaml"/>
<ResourceDictionary Source="/view/Controls/Order/AlgoContentTemplateSelector.xaml"/>
</ResourceDictionary.MergedDictionaries>
<!--Primitive Constants-->
<sys:Double x:Key="HorizontalPush1">4</sys:Double>
@@ -559,85 +557,27 @@
</Grid>
</RadioButton>
</Grid>
<GroupBox
x:Name="content_host"
<usp:AlgoEditorView
Grid.Row="2"
DataContext="{Binding content_source}"
Background="Transparent"
BorderBrush="{Binding content_source.algo_root, Converter={StaticResource OrderTypeBrushConverter}}"
BorderBrush="{Binding algo_root, Converter={StaticResource OrderTypeBrushConverter}}"
Margin="0,6,0,0"
Padding="12,8"
>
<GroupBox.Style>
<Style TargetType="GroupBox" BasedOn="{StaticResource ContentHostGroupBoxStyle}">
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="BorderBrush" Value="Transparent"/>
<Style.Triggers>
<Trigger Property="BorderBrush" Value="Transparent">
<Setter Property="BorderThickness" Value="0"/>
</Trigger>
<Trigger Property="usp:AlgoStudioView.IsMouseOverNodeContent" Value="True">
<Setter Property="BorderThickness" Value="2"/>
</Trigger>
</Style.Triggers>
</Style>
</GroupBox.Style>
<GroupBox.Header>
<ComboBox
Grid.Column="3"
ToolTipService.ShowOnDisabled="True"
SelectedItem="{Binding selected_definition.algo_root}"
ItemsSource="{Binding selected_definition.algos_view}"
Margin="{StaticResource Margin.LP1}"
Width="140"
>
<ComboBox.Style>
<Style TargetType="ComboBox">
<Style.Triggers>
<DataTrigger Binding="{Binding content_source}" Value="{x:Null}">
<Setter Property="Visibility" Value="Collapsed"/>
</DataTrigger>
<DataTrigger Binding="{Binding selected_definition.templates.Count, Converter={StaticResource IntIsZeroConverter}, FallbackValue={u:False}}" Value="{u:True}">
<Setter Property="IsEnabled" Value="True"/>
</DataTrigger>
<DataTrigger Binding="{Binding selected_definition.templates.Count, Converter={StaticResource IntIsZeroConverter}, FallbackValue={u:False}}" Value="{u:False}">
<Setter Property="IsEnabled" Value="False"/>
<Setter Property="ToolTip" Value="Cannot change structure while templates are present."/>
</DataTrigger>
</Style.Triggers>
</Style>
</ComboBox.Style>
<ComboBox.ItemTemplate>
<DataTemplate>
<usp:OrderTypeItem DisplayName="{Binding display_name}" BadgeFill="{Binding meta.Color, Converter={StaticResource ColorToBrushConverter}}"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
</GroupBox.Header>
<ContentControl
Grid.IsSharedSizeScope="True"
Content="{Binding selected_definition.algo_root}"
ContentTemplateSelector="{StaticResource AlgoTemplateSelector}"
Margin="{StaticResource Margin.TP1}"
>
<ContentControl.Resources>
<Style TargetType="GroupBox" BasedOn="{StaticResource ContentHostGroupBoxStyle}"/>
</ContentControl.Resources>
</ContentControl>
</GroupBox>
<c:DialogSkirt Grid.Row="3" Margin="{StaticResource Margin.TP2}" Background="Transparent">
<c:DialogSkirt.RightItems>
<x:ArrayExtension Type="{x:Type Button}">
<Button ToolTipService.ShowOnDisabled="True" Command="{Binding save_cmd}" CommandParameter="{Binding content_source}" Width="100" Style="{StaticResource {x:Static c:DialogSkirt.DialogSkirtButtonStyleKey}}" ToolTip="{Binding save_cmd_tooltip}" IsDefault="True">
<TextBlock Text="{Binding selected_definition.name, StringFormat='{}Save {0}'}"/>
</Button>
<Button ToolTipService.ShowOnDisabled="True" Command="{Binding revert_cmd}" CommandParameter="{Binding content_source}" Width="100" Style="{StaticResource {x:Static c:DialogSkirt.DialogSkirtButtonStyleKey}}" ToolTip="{Binding revert_cmd_tooltip}">
<TextBlock Text="{Binding selected_definition.name, StringFormat='{}Revert {0}'}"/>
</Button>
</x:ArrayExtension>
</c:DialogSkirt.RightItems>
</c:DialogSkirt>
/>
<StackPanel Grid.Row="3" HorizontalAlignment="Right" Orientation="Horizontal">
<StackPanel.Margin>
<Thickness Left="{StaticResource DialogSkirtPadding.Left}" Top="{StaticResource VerticalPush2}" Right="{StaticResource DialogSkirtButtonPadding.Right}" Bottom="{StaticResource DialogSkirtPadding.Bottom}"/>
</StackPanel.Margin>
<Button ToolTipService.ShowOnDisabled="True" Margin="{StaticResource DialogSkirtButtonMargin}" Command="{Binding save_cmd}" CommandParameter="{Binding content_source}" Width="100" ToolTip="{Binding save_cmd_tooltip}" IsDefault="True">
<TextBlock Text="{Binding selected_definition.name, StringFormat='{}Save {0}'}"/>
</Button>
<Button ToolTipService.ShowOnDisabled="True" Margin="{StaticResource DialogSkirtButtonMargin}" Command="{Binding revert_cmd}" CommandParameter="{Binding content_source}" Width="100" ToolTip="{Binding revert_cmd_tooltip}">
<TextBlock Text="{Binding selected_definition.name, StringFormat='{}Revert {0}'}"/>
</Button>
</StackPanel>
</Grid>
</ScrollViewer>
</Grid>
</AdornerDecorator>
</UserControl>
</UserControl>
@@ -1,8 +1,6 @@
using mbts.spark;
using mbts.ui.converters;
using mbts.ui.extensions;
using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Input;
@@ -18,26 +16,11 @@ namespace mbts.ui.spark {
public AlgoStudioView() {
InitializeComponent();
DataContextChanged += (s, e) => set_controller();
content_host.PreviewMouseMove += content_host_PreviewMouseMove;
content_host.MouseEnter += content_host_MouseEnter;
content_host.MouseLeave += content_host_MouseLeave;
set_controller();
// local methods
void set_controller() => Disposable.replace(ref _controller, AlgoStudioViewControllerFactory.create(DataContext, _tree_view, name_text_box, custom_badge_color_picker_button, custom_badge_color_picker_popup));
void content_host_PreviewMouseMove(object sender, MouseEventArgs e) => refresh_is_mouse_over_content_host(e);
void content_host_MouseEnter(object sender, MouseEventArgs e) => refresh_is_mouse_over_content_host(e);
void content_host_MouseLeave(object sender, MouseEventArgs e) => refresh_is_mouse_over_content_host(e);
void refresh_is_mouse_over_content_host(MouseEventArgs e) => content_host.set_current_if_changed(IsMouseOverNodeContentProperty, this.ChildAtPoint<GroupBox>(e.GetPosition(this)) == content_host);
}
#region IsMouseOverNodeContent
public static readonly DependencyProperty IsMouseOverNodeContentProperty =
DependencyProperty.RegisterAttached("IsMouseOverNodeContent", typeof(bool), typeof(AlgoStudioView), new PropertyMetadata(false));
public static bool GetIsMouseOverNodeContent(DependencyObject d) => (bool)d.GetValue(IsMouseOverNodeContentProperty);
public static void SetIsMouseOverNodeContent(DependencyObject d, bool value) => d.SetValue(IsMouseOverNodeContentProperty, value);
#endregion
public new AlgoStudioVM DataContext {
get => base.DataContext as AlgoStudioVM;
set => base.DataContext = value;
@@ -13,7 +13,7 @@ using System.Windows;
using StartupData = bts.shell.AlgoStudioWindowFactory.StartupData;
namespace mbts.spark {
internal class AlgoStudioWindow : SparkWindow<StartupData>, IShellWindow {
internal class AlgoStudioWindow : SparkWindow<StartupData>, ISharedWindow {
public const string
NAME = "Algo Studio",
TemplatesEnabledKey = nameof(TemplatesEnabledKey),
@@ -37,7 +37,7 @@ namespace mbts.spark {
: base(NAME, bus, factory, SparkCommands.ShowAlgoStudio.icon) {
_model = model;
_state = state;
thread_init();
thread_id = config.Configuration.get<bts.config.MultiThreadedWindows>().algo_studio ? "AlgoStudio" : null;
}
public override StartupData SaveState => _state = _vm.create();
@@ -45,12 +45,12 @@ namespace mbts.spark {
public override string window_type => NAME;
public override UIElement Content => _view;
public override IEnumerable<SparkCommand> Commands => _commands;
public string thread_id => NAME;
public override double MinWidth =>
SPARK_MENU_COLLAPSED_WIDTH +
LAUNCHER_BUTTON_BORDER_WIDTH +
DEFAULT_CONTENT_WIDTH;
public override double MinHeight => DEFAULT_CONTENT_HEIGHT;
public string thread_id { get; }
bts.config.AlgoStudioOptions _ui_configuration => _model.algo_model.ui_configuration;
Loaded 100 of 916 files, more files were not shown because too many files have changed in this diff. Show more