John Colvin
758e9e2d94
check point
2023-04-17 23:32:19 -04:00
John Colvin
a5f86ed839
build (refactor): Split libspark up into smaller projects
2023-04-10 11:55:13 -04:00
John Colvin
dbfdf59bfe
build: Enable Binance US code ifdef CCAPI_ENABLE_EXCHANGE_BINANCE_US
2023-04-10 11:55:13 -04:00
John Colvin
abacf29b85
build: Enable Binance code ifdef CCAPI_ENABLE_EXCHANGE_BINANCE
2023-04-10 11:55:13 -04:00
John Colvin
5e7a31e5c5
chore: Consolidate MarketDataConfig.conf into market_data.conf
2023-04-10 11:55:13 -04:00
John Colvin
ab78ae867a
dev: Add docs for building/intellisense in VS Code
...
TODO: Add docs for building Spark on Windows
2023-04-10 11:55:13 -04:00
John Colvin
5e60f38b9b
build: Change CMakePresets build/install dirs to historic paths
...
<build|install>/<clang|gcc>/<debug|release>
2023-04-10 11:10:37 -04:00
John Colvin
8f4b4be6db
build: Fix CMakePresets build
...
Also drop 'spark_' in 'spark_admin_web_app_bundle' target. It's just too
long
2023-04-10 11:10:37 -04:00
John Colvin
696195aefd
docker: Rename repo 'bluetradingsystems/sparkd-dev'
...
The previous name, 'johncolvin/bluetradingsystems', was chosen in a
misguided effort to adhere to a naming convention recommended by Docker
Hub (https://docs.docker.com/docker-hub/repos/create/ ). In hindsight,
this convention isn't well suited to our use case. Our images are shared
by multiple users (e.g., sparkd dev users all use the same sparkd-dev
image), so it doesn't make sense to name the repository after an
arbitrary user.
2023-04-08 12:18:39 -05:00
John Colvin
36f0a544e9
fix (pre-emptive): Include <map> in header that uses std::map
...
The build wasn't broken, so any deps on members that use map must have
included 'map' themselves
2023-04-08 00:52:23 -04:00
John Colvin
f23242b18c
improvement: Only prepend venv to PATH once per shell
...
Even if build_spark.cmd is called repeatedly from the same shell. This
prevents PATH from growing too long (w/ repeating venv path entries)
2023-04-08 00:46:07 -04:00
John Colvin
75dd6d659b
chore: Remove old config defaults dir
2023-04-08 00:07:29 -04:00
John Colvin
a23d8228b4
chore: Remove unused spark_server.sln
2023-04-07 23:58:24 -04:00
John Colvin
59f3d54597
docs: Fix typo in readme
2023-04-07 23:57:44 -04:00
John Colvin
8b3166582d
refactor: Rename run_spark.cmd -> spark.cmd, add build-type arg
2023-04-07 23:55:12 -04:00
John Colvin
fd13316b8e
dev: Add c_cpp_properties.json and README for intellisense on win
2023-04-07 12:14:49 -04:00
John Colvin
5991ab03ec
Removing docker/windows submodule (was accidentally added back)
2023-04-07 12:14:49 -04:00
John Colvin
b9bc6184d4
diag: Add sym/type/exch to invalid sec channel log
2023-04-07 12:14:49 -04:00
John Colvin
aab3e836c3
fix: Add Spot -> Stock sec type conversion switch case
2023-04-07 12:14:49 -04:00
John Colvin
ed0fc60900
build: Clean up build_spark.py a bit
2023-04-07 12:14:48 -04:00
John Colvin
6764ae268e
Removing docker/linux submodule (was accidentally added back)
2023-04-07 12:14:48 -04:00
John Colvin
6d3d9ddacf
fix build: Fix merge errors (mostly trivial stuff)
2023-04-07 12:13:44 -04:00
Taha
ccd76ec284
Symbols.conf
2023-04-06 21:48:34 -04:00
Taha Afzal
d52ea0e997
Adding macro to stop MarketDataConfigUtils from building into windows
2023-04-07 01:41:06 +00:00
John Colvin
15e23fe486
fix: Remove 'run_emumba' from md/Run.cpp
...
MarketDataGateway manages emumba/deribit connections now
Bugs (fixed):
* An spdlog exception is thrown because the run_emumba thread spawns a
2nd emumba_logger.
Cause: The first emumba logger is spawned by the EmMDListener
instantiated in MarketDataGateway. We shouldn't be starting emumba
connections in 2 places.
2023-04-06 15:26:19 -04:00
John Colvin
d9e5b11026
fix: Disable MDPublisher thread (at least for now)
2023-04-06 15:07:46 -04:00
John Colvin
21c19c94c2
fix: Fix typo in config defaults
2023-04-06 14:58:59 -04:00
John Colvin
c31d9d6c72
Merge remote-tracking branch 'origin/spark_crypto.dev' into spark_crypto.websocket-api.linux
2023-04-06 14:44:22 -04:00
John Colvin
a7e89b075b
Merge remote-tracking branch 'origin/spark_crypto.ccapi' into spark_crypto.websocket-api.linux
2023-04-06 12:55:53 -04:00
John Colvin
f50430e9e2
fix: Fwd ports in start_docker script
2023-04-06 00:02:53 -04:00
John Colvin
4891250959
docs: Add directions to create container from terminal
2023-04-06 00:02:53 -04:00
John Colvin
ad1b89ff88
docs: Add links to dev container docs in README
2023-04-05 23:50:38 -04:00
John Colvin
49053d31c2
chore: Remove docker build script
...
It's just as easy to run the docker build cmd manually
2023-04-05 23:05:50 -04:00
John Colvin
651ebdbb41
docs: Remove unnecessary sample code in README
2023-04-05 23:04:03 -04:00
John Colvin
d21de803f6
docker: Check if aliases.fish exists before sourcing it
2023-04-04 23:52:10 -04:00
John Colvin
bb81151392
docker: Remove unused opt from build script
2023-04-04 23:52:10 -04:00
John Colvin
2b277b84a2
docker: Improve devcontainer_post_create.sh
...
* Create fish config dir if it doesn't exist
* Ensure git is run from a dir inside the repo
* Add basic logs
2023-04-04 23:52:10 -04:00
John Colvin
2bf4502d06
docker: Add set_user/start_docker scripts
...
Leave the image's default user as 'root' so we can modify the non-root user's
uid/gid. This is a common technique used in containers to gain file permissions
in mounted dirs.
The default user's uid/gid can't be changed because a bash process runs under
their ownership as long as the container is up. A user's uid/gid cannot be
changed while that user owns a process (at least not via 'usermod').
2023-04-04 23:52:10 -04:00
John Colvin
94d1b9d784
improvement: Fwd ports in devcontainer, don't stop on close
2023-04-04 00:30:04 -04:00
John Colvin
ceee66d5f2
fix build: Add compile def 'SHARED_MEMORY_PREFIX' for win build
2023-04-03 19:30:14 -04:00
Taha Afzal
2e9a968752
Merge branch 'spark_crypto.websocket-api.linux' of bitbucket.org:bluetradesys/spark into spark_crypto.websocket-api.linux
2023-04-03 11:14:30 -05:00
John Colvin
6c2989b139
refactor (docker): Replace usermod cmds w/ opts in 'useradd'
2023-04-03 11:52:19 -04:00
John Colvin
6c2bfee616
fix (docker): Set default user without specific group
...
Bugs (fixed):
* The default user does not have sudo permission in the container,
unless the user is specified explicitly in the 'docker exec' cmd
(via -u <user>).
Cause: When the default user is specified with a specific group
(in this case, its namesake 'bts'), it is excluded from all other
groups, including 'sudo'.
2023-04-03 11:43:37 -04:00
John Colvin
30c5ea7fb2
chore: Name devcontainer scripts after associated json prop
2023-04-03 10:49:58 -04:00
John Colvin
a6831b5548
chore: Add devcontainer.json to bootstrap devcontainers
2023-04-03 10:49:58 -04:00
John Colvin
b42943fe8d
chore: Rename Docker image 'spark-dev' -> 'sparkd-dev'
...
This is a more accurate and appropriate name than 'spark-dev' because
the image is designed to build/run Sparkd and the Spark Api Server (both
of which are daemons, hence the appropriateness of the 'd' suffix). It
isn't designed to build/run the front-end desktop application, Spark.
2023-04-03 10:28:51 -04:00
John Colvin
06c833e96c
fix: Use correct prefix in md cleanup
...
Bugs (fixed):
* Assert crash in MDSource.h "Marketdata heartbeats are bad..."
Cause: The MD cleanup procedure, which is supposed to delete md files
from shared memory (from previous runs), wasn't deleting anything.
The file globbing pattern it was using (to determine which files to
delete) never produced any matches because it had the wrong prefix. As
a result, market data would often be loaded with a stale heartbeat
timestamp from a previous run.
Note: This occurred as a side effect of making the shared memory prefix
configurable when we ported the api server over to Linux (so the api
server and sparkd could run on the same container/machine whilst
maintaining independent shared memory files).
2023-04-03 10:28:51 -04:00
John Colvin
9aff02b225
chore: Remove unused docker scripts
2023-04-03 10:28:51 -04:00
John Colvin
4229a523a8
docker: Init devcontainer bashrc and config.fish
2023-04-03 10:28:51 -04:00
John Colvin
82e9e6b6bf
docker: Change default docker_user to "bts"
...
This way we can all use the same dev image. It also means one less
variable in our containers that paths/scripts need to account for.
VS Code can automatically update the remote user's uid in the container
to avoid permission issues in mounted dirs.
2023-04-03 13:48:43 +00:00
John Colvin
904a6db1d0
fix: Add Mercury default conf
...
The quickbus was essentially broken when running on the 'default'
defaults, for lack of a better word, because the ingoing/outgoing queues
in BrokerProxy would be initialized with size 0.
2023-04-03 13:48:16 +00:00
John Colvin
2a9f03741e
chore: Move docker files into main repo
...
Changes to Docker-related files/configuration don't occur in a vacuum.
They are made in coordination with changes to the main repository, so it
doesn't make sense to track them separately.
Note: Removing the 'windows' Docker files completely. No one has has
used them in a long, long time. The client build would be broken in
there anyways, the image is based on .NET Framework 3.5!
2023-04-03 13:48:16 +00:00
John Colvin
fd3de056c1
style (cli): Clean up 'key-code' cmd
...
* Rename 'key-code' -> 'key' (better grammar for the sub cmds)
* Rename 'key-gen' -> 'gen'
Now the 'key' cmds are 'sparkd key gen/encrypt/decrypt'
2023-03-31 05:00:07 +00:00
John Colvin
978a1e8566
dev: Integrate Docker w/ VS Code devcontainers
...
Hopefully this resolves all of the trouble/confusion in setting up
sparkd Docker containers
2023-03-31 04:59:58 +00:00
Taha Afzal
36e1771579
Merge branch 'spark_crypto.websocket-api.linux' of bitbucket.org:bluetradesys/spark into spark_crypto.websocket-api.linux
2023-03-28 16:05:06 -05:00
John Colvin
0d23fd50f5
improvement: Indent protos in sparkd config cmd
...
So proto values are indented relative to the key, which is the type name
2023-03-28 10:45:03 -04:00
John Colvin
367c9c1c7c
chore: Include metrics.h in MDSource.h
...
This file was broken, as it defines methods that depend on metrics.h.
However, the build wasn't broken because references to such methods
are in files that happen to include metrics.h themselves.
2023-03-28 00:45:07 -04:00
John Colvin
78f5526ce7
refactor: Add spark_test, Spark.Console to Spark.Api.Server sln
2023-03-28 00:45:07 -04:00
John Colvin
a1d7ebd260
improvement: Lower 'finit_spark_lib' log level to Diag
2023-03-28 00:45:07 -04:00
John Colvin
3fda1cb369
improvement: Add null check for rule_desc in cfg lookup
...
It is possible rule_desc is null given an inappropriate field_name arg
2023-03-28 00:45:07 -04:00
John Colvin
2c2a68022b
improvement: Spruce up 'config' cli
...
It's naturally a bit messy because we expose the c++ cli to csharp, so
it can be invoked via Spark.Console (cs) or sparkd
2023-03-28 00:45:07 -04:00
arhamGIT
bb321926bc
names wkng in subs, examples working
2023-03-27 11:40:51 -05:00
John Colvin
45c35ba1b2
fix build: Fix install path issues in cmake
2023-03-26 13:44:25 -04:00
John Colvin
77c61d5e3f
fix build: Run dotnet tool restore when building webapp
2023-03-26 13:44:25 -04:00
John Colvin
12962ed5ca
Update docker/linux, and externals
...
* Fixes a few build dep issues
* Adds [docker] user in container, rather than image
* Automatically installs emumba libs when creating/starting new docker
containers
* Binds sparkd ports to the host so containers don't need to share the
host's network stack (allows us to run sparkd in containers in WSL)
* Adds flag to start_docker.sh to allow mounting existing dirs
* Improves start_docker.sh help text
2023-03-26 13:44:22 -04:00
John Colvin
f472db002c
feat (sparkd cli): Bring back 'web' cmd
2023-03-25 11:46:23 -04:00
John Colvin
6939f32f69
refactor: Rename 'web' -> 'Admin.WebApp' in CMakeLists
2023-03-25 11:43:29 -04:00
John Colvin
0107d934e5
fix: Resolve req paths correctly in Admin WebApp
2023-03-25 11:00:45 -04:00
Taha Afzal
ce9880a9b1
changed samples
2023-03-21 12:44:43 -04:00
Taha Afzal
317f17d7da
added examples
2023-03-21 12:39:58 -04:00
Taha Afzal
7da128da6b
removed allow all headers
2023-03-21 01:16:02 -04:00
Taha Afzal
f603866860
changed config to make on titan
2023-03-21 01:14:56 -04:00
John Colvin
dc2d525955
fix build: Reorder link libraries
...
For some reason, it the previous order of link libs caused an unresolved
external symbol related to open ssl (looks like a version macro)
2023-03-20 13:26:44 -04:00
John Colvin
e97335189a
refactor: Rename Spark.Admin.Console -> WebApp
...
This is a more appropriate name (it is a web app after all), especially
now that we've renamed sparkcmd -> Spark.Console (a literal console
app). The old name implies a parallel between the two apps that doesn't
exist.
2023-03-20 13:26:44 -04:00
John Colvin
81ce58268f
improvement: Clean up Spark.Console
...
* Reword cli verbs, opts, and help text
* Rename files, folders, and namespaces
* Run code formatter
2023-03-20 13:26:44 -04:00
John Colvin
7dace3fc1d
refactor: Rename sparkcmd -> Spark.Console
...
This is a more conventional name for a companion console app
2023-03-20 13:26:44 -04:00
John Colvin
f4794bea33
improvement: Add sparkd (config-server) opt to configcheck cli
2023-03-20 13:26:44 -04:00
John Colvin
b044ff3b2a
chore: Transcribe more proto2 defaults to .conf files
...
After upgrading to proto3
2023-03-20 13:26:44 -04:00
John Colvin
cd7856c46e
fix build (spark): Add DeploymentType proto to spark_core
2023-03-20 13:26:44 -04:00
John Colvin
3be0ee6072
refactor: Move LazyObservable to Spark.Core.Reactive
2023-03-20 13:26:44 -04:00
John Colvin
198d26fda1
refactor: Move ObservableExtensions to Spark.Core.Reactive
2023-03-20 13:26:44 -04:00
John Colvin
8b26ac4456
chore: Remove unused code
2023-03-20 13:26:44 -04:00
John Colvin
d6f172e953
refactor: Move KeyedValueSet to Spark.Core.Collections
...
Also rename to 'KeyedValueCollection'
2023-03-20 13:26:44 -04:00
John Colvin
91ee9b739a
refactor: Move ChangeDictionary to Spark.Core.Collections
2023-03-20 13:26:44 -04:00
John Colvin
b568128180
improvement: Set sys cfg build_type to release (if not debug)
...
For completeness sake
2023-03-20 13:26:44 -04:00
John Colvin
53a87530ee
refactor: Remove erroneous 'qualifier' field from SystemConfig
2023-03-20 13:26:44 -04:00
John Colvin
450de301a9
build: Generate tsconfig file in the build dir
...
It never should have been dumped in the source directory in the first
place.
2023-03-20 13:26:44 -04:00
John Colvin
462b0f4eda
build: Get rid of redundant py CMake utils
2023-03-20 13:26:44 -04:00
John Colvin
17402ce94a
refactor: Replace os::bts_data_path w/ SystemConfig::data_path
2023-03-20 13:26:44 -04:00
John Colvin
b7fae8a6f5
fix: Init quickbus node cfg w/ proper defaults
2023-03-20 13:26:44 -04:00
John Colvin
4058a98290
refactor: Rename .conf files w/ snake_case
...
To be consistent w/ corresponding .proto files
2023-03-20 13:26:44 -04:00
John Colvin
06d7693ed6
fix: Set hardcoded defaults for quickbus cfg
...
Remove these hardcoded vals once config defaults have been properly
refactored
2023-03-20 13:26:44 -04:00
John Colvin
2b01f3d902
fix: Ensure shared mem block size isn't 0
2023-03-20 13:26:44 -04:00
John Colvin
d231ee50b7
chore: Fill in tedious defaults for jetfix cfg
2023-03-20 13:26:43 -04:00
John Colvin
815546d5ab
fix build: Link appropriate libs for api server build
2023-03-20 13:26:43 -04:00
John Colvin
3fda0e4427
build: Add api server (dotnet) build tgt to CMakeLists
2023-03-20 13:26:43 -04:00
John Colvin
a1eec029ac
build: Only add sparkd related tgts if BUILD_SPARKD is true
2023-03-20 13:26:43 -04:00
John Colvin
2bbe92dbab
build: Add option to enable/disable building docs
...
We only need to build the docs for proper releases
2023-03-20 13:26:43 -04:00
John Colvin
b3d0040faa
build: Replace CMAKE_BUILD_TYPE refs w/ generator expressions
...
To support multi-config generators (e.g., Ninja MultiConfig)
2023-03-20 13:26:43 -04:00
John Colvin
c3e924be17
build (sparkd): Build server_layout target by default
...
The 'server_layout' was recently excluded from the default build target,
'all', because it depends on sparkd. The was done so we could optionally
configure cmake to build libspark without sparkd, as the new websocket
api server only depends on the former.
2023-03-20 13:26:43 -04:00
John Colvin
dc5574e660
build: Use generator expression in tsconfig path
...
This is the modern CMake way. It makes the code cleaner, and supports
multi-config generators
2023-03-20 13:26:43 -04:00
John Colvin
5c19b391b1
chore: Add 'bin' dir to gitignore
...
The IDE (vscode) generates a 'bin' dir in the Spark.Admin.Console proj.
Presumably, this happens because the out dir is specified as a command
line arg, rather than defined in a proj file, as is the case w/ the
Spark client build.
2023-03-20 13:26:43 -04:00
John Colvin
79cb3162f2
build: Stop tracking CMakeDeps files
...
Not sure why these files were tracked in the first place, but cmake
automatically detects changes to the source file glob. Perhaps they were
originally added because it didn't work on some older version of CMake.
2023-03-20 13:26:43 -04:00
John Colvin
e49254356a
chore: Update 'tsconfig.g' path in .gitignore
...
Should've done this when the 'src/web' was renamed 'Spark.Admin.Console'
2023-03-20 13:26:43 -04:00
John Colvin
3192ef5561
build: Link cmake out dir to dotnet out dir
...
So dotnet intellisense knows where to find generated source files
2023-03-20 13:26:43 -04:00
John Colvin
8158bcb4f3
fix: Remove symlink reguardless of source path's existence
2023-03-20 13:26:43 -04:00
John Colvin
b03cb94d60
build: Fix typo in msbuild prop
2023-03-20 13:26:43 -04:00
John Colvin
0f968c65b6
Fix client build after porting api server to linux
2023-03-20 13:26:43 -04:00
John Colvin
6b92773e87
build: Add quiet_exec.sh to build deps
...
This script probably won't ever change. Nevertheless, it is a dependency
of the admin console build.
2023-03-20 13:26:43 -04:00
John Colvin
870e1b7301
build: Use webpack mode equiv for debug/release build types
2023-03-20 13:26:43 -04:00
John Colvin
477a2f6da3
build (refactor): Rename build_web -> build_admin_console
2023-03-20 13:26:43 -04:00
John Colvin
85fe84406d
chore: Clean up build_web.py a bit
2023-03-20 13:26:43 -04:00
John Colvin
e8096a4db9
refactor (build): Consolidate web build into Spark.Admin.Console sln
2023-03-20 13:26:43 -04:00
John Colvin
e68e673835
refactor (build): Remove redundant CWD class
2023-03-20 13:26:43 -04:00
John Colvin
53274e865a
fix (pre-emptive): Fix CWD pop_path default value
...
In Python, default param values are evaluated once (not each time the fn
is called). This meant that, unless 'pop_path' was explicitly specified
in the CWD ctr, it wasn't necessarily the current working directory.
2023-03-20 13:26:43 -04:00
John Colvin
64df20cb36
refactor: Remove unused config-fallback path
...
This seems to have been here since the dawn of Spark. It is only
initialized via the -ConfigFallback option in the sparkd cli, an option
that no one ever uses (the cli provides no documentation for it either).
2023-03-20 13:26:43 -04:00
John Colvin
1977ad8ad4
build (web): Upgrade web build to net7.0
2023-03-20 13:26:43 -04:00
John Colvin
a7e63d02e9
refactor: Use 'preferred_separator' when normalizing path
...
So callers don't have to provide the platform-dependent separator arg
2023-03-20 13:26:43 -04:00
John Colvin
593be8d069
diag: Log error on login fail
2023-03-20 13:26:43 -04:00
John Colvin
f7e173f902
refactor: Enable MDConsumerInterop for api server build
2023-03-20 13:26:43 -04:00
John Colvin
7eefae4c42
diag: Add config logs
...
This may be temporary, but we should keep them until we know the new
proto3 configs are solid
2023-03-20 13:26:43 -04:00
John Colvin
7bb0951169
feat: Add dump-books/securities cmds to api server cli
2023-03-20 13:26:43 -04:00
John Colvin
787fb879d2
refactor: Make TickUtils public
2023-03-20 13:26:43 -04:00
John Colvin
c23dafcb89
refactor: Overload subscription fns w/ filter delegate
...
Makes the impl more robust, as there is no reason the filter must be
tied to a specific type of filter object
2023-03-20 13:26:43 -04:00
John Colvin
111278b63b
refactor: Make SecurityCriteriaExtensions public
2023-03-20 13:26:43 -04:00
John Colvin
2008478378
fix (pre-emptive): Fix typo (check val == 1, not 0)
...
Bugs (fixed):
The IObservable.StopAfter ext fn never actually stops the sequence
(even after the timeout expires).
2023-03-20 13:26:43 -04:00
John Colvin
d5de60bc21
refactor: Move TableFormatter into spark_core
2023-03-20 13:26:43 -04:00
John Colvin
76172d0a5f
fix: Align first item with others in TableUpdate description
2023-03-20 13:26:43 -04:00
John Colvin
1893df1f5c
improvement: Lookup key rather than iterate through items
2023-03-20 13:26:43 -04:00
John Colvin
a07fa26bfe
fix: Pass BlitUserSymbol by val to cpp
...
This is a csharp/cpp interop method. The csharp delegate, which is passed
to and eventually invoked from cpp, accepts this param by value already,
but for some reason the corresponding cpp delegate accepts that same
param by ref. While working to enable the api server build on Linux, I
discovered this delegate was receiving bogus data from cpp. The problem
went away when I changed the cpp delegate param to be passed by value,
rather than ref.
2023-03-20 13:26:43 -04:00
John Colvin
41447067a2
fix: Pass non primitive args by ptr in native interop
2023-03-20 13:26:43 -04:00
John Colvin
1dd3d39a21
fix: Add nullcheck in FlattenTableSeries
2023-03-20 13:26:43 -04:00
John Colvin
4f772a1d57
build: Don't explicitly set GENERATED True for gen'd protos
...
CMake does this automatically now (as of version 3.20). Also, for some
reason unbeknownst to me, cmake doesn't clean the generated proto files
when they are explicitly marked as such.
2023-03-20 13:26:43 -04:00
John Colvin
97bd49d221
fix (py): Ensure 'PathOrNone.path' is actually Path or None
2023-03-20 13:26:43 -04:00
John Colvin
b4374cec6b
build: Add script to build api server
2023-03-20 13:26:43 -04:00
John Colvin
7e5c1218a3
build: Make app-data, shared mem paths configurable via CMake
...
This allows sparkd and the api server to run simultaneously in the same
docker, w/ independent data (on disk)
2023-03-20 13:26:43 -04:00
John Colvin
475970659c
fix: Rename Logging.conf lowercase to match .proto
...
Now that we run csharp on Linux, case sensitivity matters
2023-03-20 13:26:43 -04:00
John Colvin
e0706dde01
refactor: Move DeploymentType cfg to its own file
2023-03-20 13:26:43 -04:00
John Colvin
986ea74e63
fix: Call Enumerable.FirstOrDefault explicitly in overload
...
Bugs (Fixed):
* StackOverflow ex is thrown in EnumerableExtensions.FirstOrDefault
(custom overload by us) when the 'predicates' param is empty
Cause: Our FirstOrDefault overload was calling itself (recursively),
rather than System.Linq.Enumerable.FirstOrDefault
2023-03-20 13:26:43 -04:00
John Colvin
fa0e6f7c10
fix: Get rid of 'Press any key to cancel' prompt
...
Console.Read throws an exception when running on linux. Furthermore, the
process can still be killed w/ ctrl+c so this doesn't remove any
functionality.
2023-03-20 13:26:43 -04:00
John Colvin
ea5156122c
refactor: Init ServiceContext & login outside of data sync
...
The login process is asynchronous, so it doesn't really fit in the
(synchronous) 'WebsocketDataSync.init' fn. This also reduces some state
in WebsocketDataSync, which is always a good thing, as it makes the
ServiceContext member readonly, and allows it to assume the user is
already logged in.
2023-03-20 13:26:41 -04:00
John Colvin
97b974a31f
refactor: Clean up ServiceContext a bit
2023-03-20 13:23:49 -04:00
John Colvin
ef98682620
refactor: Add IServiceProvider interface to Spark.Api
...
Designed to resemble Microsoft's well-known interface,
System.IServiceProvider
2023-03-20 13:23:49 -04:00
John Colvin
d70eb158c4
build: Upgrade Google.Protobuf to v3.21.12
2023-03-20 13:23:49 -04:00
John Colvin
6fc34e922a
build: Remove unused msbuild Item Proto3Excel
2023-03-20 13:23:49 -04:00
John Colvin
fe65554c7a
build: Add linux/windows OS conditions to msbuild props
2023-03-20 13:23:49 -04:00
John Colvin
78d9b678a8
build: Consolidate Proto3 output paths to OutDir & CSName
...
Unf, CSName is necessary because protoc converts .proto filenames to
TitleCase when generating .cs files. The other generated files
(client.pb.cs, server.pb.cs and immutable.pb.cs) don't have this problem
because they are generated with our own custom plugin.py, which gives us
control over the generated filename.
2023-03-20 13:23:49 -04:00
John Colvin
88302c9470
build: Upgrade TargetFramework to net7.0
...
We've been using several net7.0 preview features for a while now. Now that a
stable net7.0 release is available, it is time upgrade officially. This also
aids the effort to build csharp on Linux, where these preview features didn't
work out of the box. Lastly, trying to make these preview features work would
be a waste of time, as namespaces/interfaces in the official release have
changed in a way that isn't backwards compatible w/ the preview features.
2023-03-20 13:23:49 -04:00
John Colvin
ac6c9e5c46
fix: Fix typo (make prop static)
2023-03-20 13:23:49 -04:00
John Colvin
b1de323151
build: Use lower case exts in msbuild Directory.Build files
...
This is necessary now that we are building csharp on Linux, where, unlike
Windows, paths are case-sensitive.
2023-03-20 13:23:49 -04:00
John Colvin
24e57872ce
build: Add Spark.Api.Server sln
...
This sln contains the csprojs needed to run the websocket api server on
linux. Like the spark_client sln, it also depends on libspark.
2023-03-20 13:23:49 -04:00
John Colvin
ddd3f301b3
chore: Remove obsolete proto messages
2023-03-20 13:23:49 -04:00
John Colvin
7007fc9d6b
chore: Remove obsolete proto option 'cc_enable_arenas'
2023-03-20 13:23:49 -04:00
John Colvin
7ca407fc42
chore: Translate proto2 default vals to .conf files
...
All proto2 config was just upgraded to proto3, which doesn't support
default values
2023-03-20 13:23:49 -04:00
John Colvin
5217e8801e
Update externals to get new proto v21.12 (windows)
2023-03-20 13:23:48 -04:00
John Colvin
ddd50cd916
build: Remove unused build prop 'protogen'
...
This was only needed to generate proto2 csharp classes, which were all
just upgraded to proto3
2023-03-20 13:23:48 -04:00
John Colvin
9ae3ababfa
build: Remove proto2 target/props from cs build
...
Don't need them now that all cfgs have been upgraded to proto3
2023-03-20 13:23:48 -04:00
John Colvin
753cac0e7a
refactor: Make proto-generated c# classes public
...
Two partial class defs are generated per proto. While the 'main' def was
already public, the shorter one in 'immutable.cs' was not.
2023-03-20 13:23:48 -04:00
John Colvin
6c3c9ebbcb
refactor: Convert ui cfg to proto3
2023-03-20 13:23:48 -04:00
John Colvin
3aaa25a3e8
refactor: Convert toggles cfg to proto3
2023-03-20 13:23:48 -04:00
John Colvin
3fc0bce1de
chore: Remove unused file
2023-03-20 13:23:48 -04:00
John Colvin
fdb4544cb5
refactor: Convert various proto2 cfgs to proto3
2023-03-20 13:23:48 -04:00
John Colvin
f5741d8095
refactor: Convert system/logging cfg to proto3
2023-03-20 13:23:48 -04:00
John Colvin
539d1cfeae
build: Add option to use clang-13 explicitly
2023-03-20 13:23:48 -04:00
John Colvin
c1ed79757c
Upgrade linux protobuf from 3.19 -> 4.21.12
2023-03-20 13:23:48 -04:00
John Colvin
c37727f482
Update externals to get emumba-deribit v3.3.1
2023-03-20 13:23:48 -04:00
John Colvin
b25cd39481
fix build (linux): Update externals to support clang13, gcc12
...
Fixes the Release build (Debug was okay)
2023-03-20 13:23:48 -04:00
arhamGIT
5f93bed074
order update working
2023-03-20 16:13:50 -04:00
arhamGIT
ef9502c81b
order entry working
2023-03-03 17:17:23 -05:00
arhamGIT
4b2c2de990
id changed to string
2023-03-02 10:32:08 -05:00
arhamGIT
79dc76c5df
added entry point for taha
2023-02-28 10:14:28 -05:00
arhamGIT
fdbc64dfc5
basic order(lim/mark/ib) entry/deletion working
2023-02-27 13:45:45 -05:00
arhamGIT
62c20c96b4
forgot one file from last commit
2023-02-21 09:21:55 -05:00
arhamGIT
6b491ec209
strig list working
2023-02-21 09:16:43 -05:00
arhamGIT
d009deea0e
added list comprehension
2023-02-20 09:15:41 -05:00
arhamGIT
390d901463
hooked subscriptions up
2023-02-13 11:50:27 -05:00
John Colvin
a0bd207d93
feat (internal): Add price stats to md client
2023-02-08 00:33:10 -05:00
John Colvin
d62f88691c
feat (internal): Add price ticker to md client
2023-02-08 00:23:41 -05:00
John Colvin
b7c018b664
chore: Remove generated csproj file that was added by accident
2023-02-08 00:23:41 -05:00
arhamGIT
83127523b9
Merge branch 'spark_crypto.websocket-api' of bitbucket.org:bluetradesys/spark into spark_crypto.websocket-api
2023-02-07 10:51:40 -05:00
arhamGIT
86c824e28d
changed made to make js client work
2023-02-07 10:51:29 -05:00
arhamGIT
0349ff95bf
book subscription working
2023-02-07 10:51:09 -05:00
John Colvin
f62c867a20
feat (internal): Add trades md client
2023-02-06 19:42:43 -05:00
John Colvin
b403cacb93
refactor: Simplify TradesSource SecurityCriteria filter
2023-02-06 19:42:43 -05:00
John Colvin
4499a3751f
refactor: Move TradesSource to spark_api
...
So it can be used in the new websocket api
2023-02-06 19:42:43 -05:00
John Colvin
6d887cb72f
refactor: Get rid of redundant Product struct
2023-02-06 19:42:43 -05:00
John Colvin
10e13dd51d
refactor: Rename 'market_data' -> 'books'
2023-02-06 18:18:53 -05:00
arhamGIT
85edf68ff0
secuirties working
2023-02-06 09:43:47 -05:00
arhamGIT
259ac99cdd
books working
2023-02-06 09:25:12 -05:00
arhamGIT
39c3a34158
Merge branch 'spark_crypto.websocket-api' of bitbucket.org:bluetradesys/spark into spark_crypto.websocket-api
2023-02-06 09:21:04 -05:00
arhamGIT
dde8223052
books working
2023-02-06 09:05:32 -05:00
John Colvin
2548f27527
feat (internal): Add manual fills to orders client
2023-02-04 10:36:31 -05:00
John Colvin
ff03f092f5
chore: Remove useless white space
2023-02-04 10:36:31 -05:00
John Colvin
53ef67869b
refactor: Support null filters in orders client
2023-02-04 00:35:43 -05:00
John Colvin
d48f34d109
feat (internal): Add fills to OrdersClient
2023-02-04 00:35:42 -05:00
John Colvin
a2d9c39325
feat (internal): Add securities to md client
2023-02-04 00:32:29 -05:00
John Colvin
0c4f684036
improvement: Include qty display w/ BookTuple
...
This is needed to properly format json for websocket api
2023-02-04 00:09:24 -05:00
John Colvin
e587c8dbd7
refactor: Rename IncrementalMarketDataClient w/out Incremental
2023-02-04 00:09:24 -05:00
John Colvin
069ab45164
improvement: Provide order updates w/ corresponding root order
2023-02-04 00:09:24 -05:00
John Colvin
7b7de6f8fc
refactor: Move long 'RootDependent' lambda into own class
2023-02-04 00:09:23 -05:00
John Colvin
9ed3b2aecb
refactor: Return IConnectableObservable in TableUpdate.Cache
...
We were hiding the fact that an IConnectableObservable was being used
internally. Even worse, we were discarding the IDisposable returned from
its 'Connect' fn.
2023-02-04 00:09:23 -05:00
John Colvin
ecf3f922df
refactor: Replace OrderSecurity refs w/ OrderRecordTuple
...
The latter type was introduced to support the websocket server. Unlike
the old 'OrderSecurity' types, it has no wpf deps, and can thus be built
on Linux
2023-02-04 00:04:43 -05:00
John Colvin
1aa283fc8c
chore: Make AlgoID type public
...
It's referenced by outside projects, namely Spark. The build would have
been broken were it not for the 'InternalsVisibleTo' attribute.
TODO: Remove all 'InternalsVisibleTo' attributes (they smell hacky)
2023-02-04 00:04:43 -05:00
John Colvin
bfbf640986
refactor: Move AccountSecurityKey to spark_api
2023-02-04 00:04:43 -05:00
John Colvin
b6cd470ca6
refactor: Move AlgoDefinitionMetadata to spark_api
...
Part of larger effort to move deps from Spark to linux compatible projs
2023-02-04 00:04:43 -05:00
John Colvin
d826cff9d7
chore: Remove unused code
2023-02-04 00:04:42 -05:00
John Colvin
ff65a5ca5b
refactor: Get rid of old MarketDataClient in sdk examples
2023-02-04 00:04:42 -05:00
arhamGIT
9e012a2b3a
Merge branch 'spark_crypto.websocket-api' of bitbucket.org:bluetradesys/spark into spark_crypto.websocket-api
2023-02-02 11:29:04 -05:00
arhamGIT
a6f1c51539
changes suggested by john for sub hdlr
2023-02-02 11:27:13 -05:00
John Colvin
655f27543b
refactor: Include security w/ book data
2023-02-01 15:16:08 -05:00
John Colvin
762baca586
improvement: Add Errors enum mapped to exit code
2023-02-01 15:16:08 -05:00
John Colvin
ec769b49f6
feat (internal): Add expirations to SecurityCriteria
2023-02-01 15:16:08 -05:00
John Colvin
5153e8725c
refactor: Replace terse null/empty checks w/ is_null_or_empty
2023-02-01 15:16:08 -05:00
John Colvin
f79f2cc5b9
chore: Add NotNullWhen(false) attr to 'is_null_or_empty'
2023-02-01 15:16:08 -05:00
John Colvin
cdf4f341d4
fix: Consider SecurityCriteria 'defined' if callputs non-empty
2023-02-01 15:15:04 -05:00
John Colvin
f649c26304
chore: Remove superfluous fn
2023-02-01 15:14:23 -05:00
John Colvin
3a8d759a26
refactor: Move OrderFactory to own file, merge w DynamicOrderHelper
2023-02-01 15:14:23 -05:00
John Colvin
29ca6e98fb
refactor: Replace ShowOrderTicket tag's anon tuple w/ proper type
2023-02-01 15:14:22 -05:00
John Colvin
328dd9b2d3
feat (internal): Add OrdersClient
2023-02-01 15:14:22 -05:00
John Colvin
a1e58e5498
feat (internal): Add AdminClient
2023-02-01 15:14:22 -05:00
John Colvin
ef43aebc5d
refactor: Remove misplaced admin-related fns from OrderFactory
2023-02-01 15:14:22 -05:00
John Colvin
9a3304201e
refactor: Consolidate sync_with/never_duplicate fns
2023-02-01 15:14:22 -05:00
John Colvin
cd88710385
refactor: Move order utils from spark to spark_api
...
This is part of a larger effort to decouple business logic from windows
and the ui. Some utils are immediately needed for the websocket api.
2023-02-01 10:07:43 -05:00
John Colvin
2b3e4a4579
refactor: Move DisplayNameHelper to spark_core
2023-02-01 10:07:43 -05:00
John Colvin
05731cb9a2
refactor: Add OrderPriceComparer spark_api proj
2023-02-01 10:07:42 -05:00
arhamGIT
01eeadaf42
added changed suggested by john
2023-02-01 03:29:22 -05:00
arhamGIT
b4721882ec
log.notnull instead of customs, removed helpers
2023-02-01 00:15:11 -05:00
arhamGIT
3e894d0e27
used LoggerContext instead of custom task
2023-02-01 00:08:07 -05:00
arhamGIT
4e42125398
changed Programs.cs to use task.wait
2023-01-31 23:58:11 -05:00
arhamGIT
664cc37a03
fixed small bug
2023-01-31 23:46:51 -05:00
arhamGIT
f4a0da3518
code for book subcription building
2023-01-30 09:11:54 -05:00
John Colvin
5339d4ff93
refactor: Impl 'market_data' fn w/ SecurityCriteria filter
2023-01-27 14:36:38 -05:00
John Colvin
a31368f08d
refactor: Make 'subscribe_md' fn criteria param nullable
...
It was already checking for null, just needed to add the '?' to convey
this to callers. Also improve the method by checking if SecurityCriteria
'is_defined' before applying the filter.
2023-01-27 14:36:38 -05:00
John Colvin
136938ba1e
refactor: Add NotNullWhen attr to 'is_defined' ext
...
So static analysis tools recognize that the 'criteria' param must be
non-null when 'is_defined' returns true
2023-01-27 14:36:38 -05:00
John Colvin
09316b630d
refactor: Make SecurityCriteria/Clause public
2023-01-27 14:36:38 -05:00
John Colvin
99a661089f
refactor: Move Book into own file
2023-01-27 13:48:19 -05:00
arhamGIT
f26cb80e5f
changes for marketdataclient
2023-01-27 13:47:15 -05:00
Taha Afzal
cda3d18838
Simulted Exchange base classes added
2023-01-26 20:02:10 -05:00
arhamGIT
fae0325e87
added dummy function
2023-01-26 14:21:14 -05:00
Taha Afzal
118ca7248d
Merge branch 'spark_crypto.ccapi' of bitbucket.org:bluetradesys/spark into spark_crypto.ccapi
2023-01-25 17:01:51 -05:00
Taha Afzal
afa194ac54
Fixing the live vs replay priority (In short, if an exchange is configured for both live and replay, live gets precedence. Also, replay market data is not recorded
2023-01-25 17:01:32 -05:00
John Colvin
3538712692
fix (mview): Raise prop changed for qty '_text' props
...
Bugs (fixed):
* Quantities for Deribit futures are all 0
Cause: The row wasn't refreshing qty '_text' props when the quantities
changed
2023-01-24 23:24:37 -05:00
Taha Afzal
604c34384c
Adding Deribit to the default MarketDataConfigs
2023-01-24 22:01:33 -05:00
Taha Afzal
c18f1baafa
Merge branch 'spark_crypto.ccapi' of bitbucket.org:bluetradesys/spark into spark_crypto.ccapi
2023-01-24 21:08:56 -05:00
Taha Afzal
8e04920ab9
Starting Deribit from MarketDataGateway
2023-01-24 21:08:24 -05:00
arhamGIT
aa3147a4a6
Merge branch 'spark_crypto.dev' of bitbucket.org:bluetradesys/spark into spark_crypto.dev
2023-01-24 13:34:19 -05:00
arhamGIT
f7ab968e1b
added flow comments
2023-01-24 10:32:44 -05:00
arhamGIT
5ce3d9d1a9
updated datasync
2023-01-24 10:32:43 -05:00
arhamGIT
e2a9c91d3f
added comments
2023-01-24 10:32:43 -05:00
arhamGIT
78a8652e7a
separated logic into three classes needs comments
2023-01-24 10:32:43 -05:00
arhamGIT
e9c536df96
sockethandler done, need to give cons back to gtwy
2023-01-24 10:32:43 -05:00
arhamGIT
94429a1fbc
merged trydisconnecting with other function
2023-01-24 10:32:43 -05:00
arhamGIT
f2728dcf78
thread safe socket added
2023-01-24 10:32:43 -05:00
John Colvin
cbfd18c371
ui (orderbook): Use qty display cfg in right panel
2023-01-24 00:51:54 -05:00
John Colvin
60a31eb102
chore: Remove unnecessary BTS_EXPORTs
2023-01-24 00:51:54 -05:00
John Colvin
7c1e95d35d
ui (mview): Only show merged qty by default
...
Hide direct/implied qty cols
2023-01-24 00:51:54 -05:00
John Colvin
90a046d539
feat (ui): Use fractional qtys in md
...
Changing quantities from ints to floats introduces new rounding/display issues
(unlike with ints, we can't just call 'ToString()' and expect consistent
formatting). Formatting settings are needed, such as num-decimal-places and
display-multiplier, and they must be configurable per SecurityCriteria.
Fortunately, such configuration already exists in the form of SecurityMetadata
config (we tackled the same issue for order-entry). In order to integrate this
(newer) config with market data, references to the (older)
SymbolUIConfiguration (used once upon a time for DJ work), had to be replaced.
2023-01-24 00:51:53 -05:00
John Colvin
935a6f846c
fix build (client): Disable cpp that isn't needed on win
2023-01-24 00:51:44 -05:00
John Colvin
b02f814c65
fix (ui): Remove context menu items that do nothing
...
They were accidentally brought over from Edge. Their functionality
hasn't been implemented in Spark.
2023-01-23 01:34:55 -05:00
John Colvin
8c42aa93a2
chore: Remove unused code
2023-01-23 01:34:55 -05:00
John Colvin
357bc5ad44
fix (ui): Format perp futs 'Perp' suffix (not bogus exp)
2023-01-23 01:34:55 -05:00
John Colvin
07fb9e8eb7
ui (pnl): Use 'default_text' foreground in popup titles
...
Previously, the foreground for some popups was a hardcoded dark gray,
which became hard-to-read following the Dark Theme changes.
2023-01-23 01:34:55 -05:00
Taha Afzal
d641eba252
Removing some unused headers from includes
2023-01-22 18:38:31 -05:00
John Colvin
9f9fc4c8ab
fix (analytics-exps): Wait for sym list before loading selection
...
Bugs (fixed):
* The selected symbols aren't restored with the workspace
Cause: The selected symbols were getting loaded once, in the ctr, before the
list of symbols had been properly initialized. The view automatically
deselects items that aren't in the ItemsSource.
2023-01-22 12:23:03 -05:00
John Colvin
2aef052398
ui (pnl): Use gray font color when pnl is zero
2023-01-22 12:23:03 -05:00
John Colvin
1c2027506a
refactor: Clean up NullableColor/FontWeightProto
2023-01-22 12:23:03 -05:00
John Colvin
c3274b2008
refactor: Rename argb_color -> to_uint
...
This is a more appropriate name
2023-01-22 00:11:28 -05:00
John Colvin
99aef9e86e
refactor: Get rid of redundant prop 'NullableColorProto.argb'
...
It was a relic of the past. Although different fns are called in the props'
getters ('rgb_color' vs 'argb_color'), both ultimately return the same value.
2023-01-22 00:09:38 -05:00
Taha Afzal
77697f4312
Fixing windows C++ build
2023-01-21 22:16:35 -05:00
Taha Afzal
247d8b7ee8
Merging
2023-01-21 20:57:59 -05:00
Taha Afzal
06bed8747f
Adding Replay to MarketDataGateway
2023-01-21 20:38:37 -05:00
John Colvin
8e9233022e
fix (mini-ob): Return root element in CancelColumn.view_factory
...
Bugs (fixed):
* Mini Orderbook crashes immediately when opened
Cause: The (cell) view_factory fn wasn't returning the cell's root
element, and was instead returning the root's child element.
As a result, when the row attempted to add this element to its visual
tree, the following exception was thrown:
System.ArgumentException: Specified Visual is already a child of
another Visual or the root of a CompositionTarget.
2023-01-21 13:41:04 -05:00
John Colvin
954dc582dc
fix build: Make non-class fns in cpp files static
...
The build was broken bc a fn w/ signature 'eq(double, double)' was
defined twice, in TaskingEyeAlgo.cpp and CCAPISingleOrderManager.cpp.
2023-01-20 15:08:21 -05:00
John Colvin
df510f0e3b
Merge origin/spark_crypto.ccapi.fractional_qty_md
2023-01-20 15:08:19 -05:00
Taha Afzal
ef9b3b0544
Adding config protobuf for MD Replay
2023-01-20 11:35:58 -05:00
Taha Afzal
b8b3a57e8e
Putting recording behind config
2023-01-19 23:09:28 -05:00
Taha Afzal
d18020a45c
Merging spark_crypto.md_recording
2023-01-19 15:31:36 -05:00
Taha Afzal
e652c1cd24
Fixing the build (as per John)
2023-01-18 13:11:25 -05:00
Taha Afzal
8f5d6ccd51
Organized the common md recording functions
2023-01-17 23:36:04 -05:00
Taha Afzal
cbe4a488b9
Adding error handling for file based replay
2023-01-17 22:09:17 -05:00
Taha Afzal
8ce3ef69d0
Odds and Ends with replay
2023-01-17 17:09:02 -05:00
Taha Afzal
ab9fab13d9
Merging from spark_crypto.cme
2023-01-17 11:25:23 -05:00
Taha Afzal
309b0e64b2
Adding better logs
2023-01-16 21:46:27 -05:00
arhamGIT
a6324a9aa2
added flow comments
2023-01-16 13:19:39 -05:00
arhamGIT
64417a6867
updated datasync
2023-01-16 03:21:42 -05:00
arhamGIT
8e16dcde0d
added comments
2023-01-16 02:25:18 -05:00
Taha Afzal
2d8f6df0e2
Adding SimExecutionGateway, its not implemented yet
2023-01-15 19:09:21 -05:00
Taha Afzal
10199fb7ad
Adding spread support in replay
2023-01-13 16:20:33 -05:00
arhamGIT
6f6ac2866c
separated logic into three classes needs comments
2023-01-13 07:21:10 -05:00
arhamGIT
46837facbf
sockethandler done, need to give cons back to gtwy
2023-01-13 05:55:12 -05:00
John Colvin
4916211301
refactor: Add BTS_FATAL macros
...
Essentially just shorthand for 'bts_assert(false)'
2023-01-12 12:50:29 -05:00
John Colvin
1d8c4a0954
chore: Add various MarketDataConfig.conf profiles
2023-01-12 12:50:28 -05:00
John Colvin
64601914b2
feat: Add Binance US market data
2023-01-12 12:50:28 -05:00
John Colvin
b3ca5f133e
build: Add config profiles to override generated defaults
2023-01-12 12:50:28 -05:00
John Colvin
9c3397d367
build (web): Upgrade node packages
...
As of now (2022-01-03), only 1 package isn't up-to-date: 'protobufjs'.
It remains locked at version 6.11.3. Anything newer breaks the web build
with mysterious webpack errors that suggest various imports aren't
properly resolved.
2023-01-12 12:50:28 -05:00
John Colvin
b3dfce9f91
build (web): Automatically generate protos in venv
...
Finally, the server can be built outside of the venv (all dependent
build steps activate it automatically)
2023-01-12 12:50:28 -05:00
John Colvin
590d0028c2
chore: Add '!=' operator for Book
...
The '==' operator had already been defined. Presumably, the '!='
operator was omitted by mistake.
2023-01-12 12:50:28 -05:00
John Colvin
67cf817aa9
chore: Impl to/from_json for domain/md types
...
So objects of these types can be readily logged in a format that is
comprehensive, familiar, and consistent
2023-01-12 12:50:28 -05:00
John Colvin
35811512a4
chore: Remove FTX from default md conf
...
FTX is no more
2023-01-12 12:50:28 -05:00
John Colvin
c13c85ed44
refactor: Rename 'num_book_levels' -> 'num_depth_levels'
...
This seems to be a more common nomenclature
2023-01-12 12:50:28 -05:00
John Colvin
5c85dabad8
fix (ccapi logging): Store filename strings in buffer
...
So they don't point to bogus memory when the log is persisted (async)
2023-01-12 12:50:28 -05:00
John Colvin
c134b0f5ca
refactor: Move 'AllSameType' to its own header
2023-01-12 12:50:28 -05:00
John Colvin
d92ad7e2b6
build: Make ccapi log level configurable via cmake cache var
...
Default to 'Debug' for debug builds, and 'Warn' for release builds
2023-01-12 12:50:28 -05:00
John Colvin
4547d8cec1
refactor: Add runtime cfg for exch urls
...
CCApi otherwise harcodes them as pre-processor definitions (compile time).
We can use this runtime cfg to switch between test/prod urls without rebuilding
2023-01-12 12:50:28 -05:00
John Colvin
402a1f50f2
chore: Clean up Symbols.conf a bit
2023-01-12 12:50:28 -05:00
John Colvin
bada16ade7
chore: Add documentation for TimeStamp
2023-01-12 12:50:28 -05:00
John Colvin
9794465d88
fix build (gcc): Mark a few constexpr fns inline instead
...
The gcc compiler correctly detected the impls weren't constant expressions
2023-01-12 12:50:28 -05:00
John Colvin
1f163615c5
style: Run formatter on CMakeLists
2023-01-12 12:50:28 -05:00
John Colvin
4304d7f786
diag: Add output op & fmt impl for SecurityMarketDataStatistics
2023-01-12 12:50:28 -05:00
John Colvin
38a5d95df9
refactor: Change md config to support multiple venues at once
2023-01-12 12:50:28 -05:00
John Colvin
4897195629
feat: Add Binance USDS Futures market data
2023-01-12 12:50:28 -05:00
John Colvin
1416f05fbd
chore: Remove unused protos
2023-01-12 12:50:28 -05:00
John Colvin
ac1f64c3f5
fix build (sparkd): Add '-g' to cxx debug flags
...
Technically, the build wasn't broken, just the legacy script 'build_sparkd.py'.
The latest build procedure, which uses CMakePresets, doesn't have this problem.
2023-01-12 12:50:28 -05:00
John Colvin
8fa82840be
feat: Add Binance market data
...
Restructure build configurations so 'dev' builds target venue test urls,
while 'prod' builds target production urls (technically, there is only
one prod build at the moment; it's compiled w/ gcc/release). This is
necessary because the urls ccapi uses are defined at compile time (all
seem to be pre-processor directives defined in ccapi_macro.h).
2023-01-12 12:50:28 -05:00
Taha Afzal
af92b8922f
MD Recording and Replay is almost done, some cleanup needed - mainly organizing config, better logs and some code comments
2023-01-12 09:59:01 -05:00
arhamGIT
f3d1569cb3
merged trydisconnecting with other function
2023-01-12 09:45:59 -05:00
arhamGIT
da41a23c0e
thread safe socket added
2023-01-11 06:32:07 -05:00
Taha Afzal
e79aebbc8a
MDRecorder cleanup:
2023-01-09 23:20:46 -05:00
Taha Afzal
fcd6038d5d
Added implied market data to MDRecorder
2023-01-09 13:36:28 -05:00
Taha Afzal
d1fe0a03b5
MDRecorder almost done, need record implied and RFQ requests, as well as exit after an alloted time of recording
2023-01-09 09:38:03 -05:00
Taha Afzal
cfdca08cfe
CME Template 8
2023-01-06 11:52:30 -05:00
John Colvin
d400bf6263
refactor: Rename spartan 'FMT' macro 'TO_STRING'
...
Avoids conflict with new 'FMT' macro, which is an alias for 'fmt::format'
2023-01-04 13:35:38 -05:00
John Colvin
fa438db001
style: Add 'ReflowComments: false' to clang-format
...
So clang-format doesn't make pretty doxygen comments ugly (it doesn't
seem to know how to format them properly).
2023-01-04 13:35:38 -05:00
John Colvin
31dd34522f
chore: Add sec_descs to SecurityCriteria (cpp)
...
Corresponds to the 'names' field in SecurityCriteria proto
2023-01-04 13:35:38 -05:00
John Colvin
f5221910c8
fix: Support Spots in security sort impl
2023-01-04 13:35:38 -05:00
John Colvin
6e7e1980f5
fix (temp): Skip duplicate sec-exp keys in old edge code
...
It wasn't designed to support multiple exchanges, so Futures with the same
sym/exp from different exchanges yield duplicate sec-exp keys.
2023-01-04 13:35:38 -05:00
John Colvin
11e884e166
fix build (win): Build files in 'core' dir
2023-01-04 13:35:38 -05:00
John Colvin
88943f0857
refactor: Pass ostream to LiveLadderPrinter (don't hardcode cout)
2023-01-04 13:35:38 -05:00
John Colvin
a5459a3aff
improve: Optimize BookSide::is_sorted
2023-01-04 13:35:38 -05:00
John Colvin
e8fa4f23c6
refactor: Move ProtoReader/Printer to 'bts::io' ns
2023-01-04 13:35:38 -05:00
John Colvin
df82c0790b
fix: Remove leftover test-code flag
...
It was preventing securities from being propagated to shared memory
2023-01-04 13:35:38 -05:00
John Colvin
81f1d91f5b
style: Run clang-format on lib/md dir
2023-01-04 13:35:38 -05:00
John Colvin
abf0d45784
improvement: Refactor mdgw/ftx to use SecurityCriteria
...
So we can subscribe to depth for "FTX Options" or "FTX BTC Futures",
rather than having to list each security explicitly.
This commit also unhooks binance from MarketDataGateway. A new paradigm
is emerging with the FTX impl, and it'll be easier to redo Binance than
try to make the existing impl fit the new mold.
Unfortunately, ccapi doesn't provide all the security metadata we need, such as
the security type and expiration date/time, so we get the list of FTX
securities directly from the exchange.
2023-01-04 13:35:38 -05:00
John Colvin
556e2ab99e
refactor (chore): Clean up domain::Security a bit
...
* Rename 'min_quantity_increment_ammount' -> 'min_quantity_increment' to fix typo
* Remove old 'min_quantity_increment' member (it wasn't referenced anywhere)
* Initialize SecurityCommon w/ reasonable defaults (skipping initialization seems
like a premature performance optimization)
* Add a few members to verbose 'to_string' result
2023-01-04 13:35:38 -05:00
John Colvin
4b60fb5141
chore: Add nifty EnumMacros to replace boilerplate code
2023-01-04 13:35:38 -05:00
John Colvin
5eb9c57ba1
refactor: Use core::TimeStamp instead of chrono in TradeRecord
2023-01-04 13:35:38 -05:00
John Colvin
e08b80afee
chore: Make AggressorSide implicit convert from 'Value'
2023-01-04 13:35:38 -05:00
John Colvin
9b8e5896a2
chore: Remove unnecessary include
2023-01-04 13:35:38 -05:00
John Colvin
55e8c60a0b
chore: Move ContainsKey macro to lib/collections
2023-01-04 13:35:38 -05:00
John Colvin
a30b026c9d
chore: Tone down IDGenerator logging to Diag
2023-01-04 13:35:38 -05:00
John Colvin
cb79cbeb45
chore: Move SecurityCriteria classes into libspark
2023-01-04 13:35:38 -05:00
John Colvin
0e101aaf8b
improvement: Show sid in LiveLadderPrinter book output
2023-01-04 13:35:38 -05:00
John Colvin
e8244595f3
chore: Add to_string fn to Security
...
For diagnostic purposes (esp while we integrate more exchanges)
2023-01-04 13:35:38 -05:00
John Colvin
37512eb8d6
chore: Add some basic functionality to core::TimeStamp
2023-01-04 13:35:38 -05:00
John Colvin
567db063f3
fix: Create string in FMT_IMPL macro so it's compatible w/ LOG
...
Otherwise variables which aren't copied by default become corrupt when they go
out of scope (which happens bc our logging system is async).
2023-01-04 13:35:38 -05:00
John Colvin
cc1484a81e
chore: Move OSTREAM_FMT_IMPL.h into lib/core
2023-01-04 13:35:38 -05:00
John Colvin
0dc278eed5
chore: Support timezones when parsing iso dates
...
This is needed because FTX (and perhaps other exchanges) format
expirations with timezones
2023-01-04 13:35:38 -05:00
John Colvin
43ba30365a
fix: Update OSTREAM_FMT_IMPL macro
...
This macro defines 2 template specialization fns, 'parse' and 'format'.
* Change 'format' to be a const method
* Declare return type w/ 'decltype' (per latest official example from fmtlib)
2023-01-04 13:35:38 -05:00
John Colvin
02ac95404d
chore: Remove unused files
2023-01-04 13:35:38 -05:00
John Colvin
8388bdf1ec
chore: Add missing huobi & binance venues to 'Venue' proto
2023-01-04 13:35:38 -05:00
John Colvin
019c3dd8db
chore: Replace magic strings w/ CCAPI macros
...
These come from ccapi, so the code should never break due to an update
(not necessarily the case with the magic strings).
2023-01-04 13:35:38 -05:00
John Colvin
481380f883
chore: Assign asset & group when parsing ccapi securities
2023-01-04 13:35:38 -05:00
John Colvin
7c66260ff1
chore: Rename 'security_type' -> 'type'
...
For convenience (it's shorter)
2023-01-04 13:35:38 -05:00
John Colvin
ad465b593f
chore: Add fns to access SecurityCommon fields from Security
...
Bc I'm lazy and don't want to write 'security_common' everytime I need to access
these fields
2023-01-04 13:35:38 -05:00
John Colvin
00d702f998
chore: Remove accidental include
2023-01-04 13:35:38 -05:00
Taha Afzal
872f55d6c3
Reducing the logs and couts that were put while interfacing with CC
2023-01-04 13:35:38 -05:00
Taha Afzal
84f4c38336
Enabling spot market dtaa in the UI
2023-01-04 13:35:38 -05:00
Taha Afzal
b9b907490a
Enabling spot market data
2023-01-04 13:35:38 -05:00
Taha Afzal
8c6835a919
Merging
2023-01-04 13:35:38 -05:00
Taha Afzal
3a6bda4e08
Removing temporary security creation from CCMarketDataListener
2023-01-04 13:35:38 -05:00
Taha Afzal
60f76344c2
UI changes in SecurityExtensions to accomodate FTX
2023-01-04 13:35:38 -05:00
Taha Afzal
1fff7d5bcd
Removing #include of a deleted generated header
2023-01-04 13:35:38 -05:00
Taha Afzal
d77d3ab6c7
Merging CCListener work from a different branch
2023-01-04 13:35:35 -05:00
arhamGIT
4c91538f22
base websockets working
2023-01-04 04:34:44 -05:00
Taha Afzal
2eca4f7f14
Fixing the build, unused variable
2023-01-03 14:53:03 -05:00
John Colvin
053fa461a2
chore: Remove unnecessary includes
2023-01-03 14:53:03 -05:00
John Colvin
aa997466f0
chore: Remove unused files CCApiRequestor.h/cpp
2023-01-03 14:53:03 -05:00
John Colvin
fdf4fce5fa
refactor: Return error if md cfg invalid rather than assert/crash
2023-01-03 14:53:00 -05:00
Taha Afzal
5746460e8d
QueryServer while handling mic's use switch for exchange instead of ifs
2023-01-02 18:44:59 -05:00
John Colvin
569ac8e3e0
fix: Fix typo in 'MarketDataRegistrationError' type name
...
The 'Registration' part was misspelled 'Regstration'
2023-01-02 18:44:59 -05:00
Taha Afzal
d9efbb879d
IDGenerator is a thread-safe singleton now
2023-01-02 18:44:59 -05:00
John Colvin
92ff4198ef
refactor: Hook up ccapi 'on_securities' callback
...
Clean up ccapi md code while we're at it
2023-01-02 18:44:59 -05:00
John Colvin
48bd3ab49a
chore: Remove Binance-specific md impl from MarketDataGateway
...
It was creating needless clutter, as it was written before we knew about
ccapi. The new plan is to use a simple adaptor to interface with ccapi
for every exchange md.
Note: There are a handful of files related to the historic Binance impl
in the folder /lib/md/binance. I'm keeping them around for now, since
they are generally independent/isolated, and aren't causing clutter or
compromsing other code. Some of the utils there may come in handy down
the road.
2023-01-02 18:44:59 -05:00
John Colvin
9c7fc000e5
refactor: Replace FTX ccapi impl w/ exchange agnostic one
2023-01-02 18:44:59 -05:00
John Colvin
d2454b6b85
chore: Include <string> in MarketDataRegistrationError
...
Apparently <string> was included in all source files that referenced
MarketDataRegistrationError by coicidence (else the build would have been broken)
2023-01-02 18:44:59 -05:00
John Colvin
b4cda81535
build: Add -g to CMAKE_CXX_FLAGS_DEBUG
...
This flag tells compilers (both clang and gcc) to produce debug info
2023-01-02 18:44:59 -05:00
John Colvin
2d0fae0cbe
chore: Sort includes
2023-01-02 18:44:59 -05:00
Taha Afzal
5515404062
CCMarketDataListener now listens to CC and writes data to shared memory
2023-01-02 18:44:57 -05:00
John Colvin
24c4dc1861
fix build (g++-12 rel): Add '-Wnomaybe-uninitialized' flag
...
For some reason, this warning isn't suppressed in ccapi_date.h, which is
included as a system header (like all headers in externals). According to GCC's
documentation, compiler warnings shouldn't be emitted from system headers.
Disabling the warning for now so we can focus on bigger fish.
2023-01-02 18:42:39 -05:00
John Colvin
3b1a2357cc
fix build (client): Change 'WIN32' macros to '_WIN32'
...
Not sure exactly how this broke, but the WIN32 macro is no longer defined.
2023-01-02 18:42:39 -05:00
John Colvin
35371fe971
refactor: Remove redundant optional.h
...
It was from a time when Windows std didn't provide the 'optional' header
2023-01-02 18:42:39 -05:00
John Colvin
365394f28b
build: Fix build_spark.py (broken since CMakePresets introduced)
...
Pass additional cmake opts through cli. Specifically, those that were
moved from CMakeLists.txt to CMakePrests.json
2023-01-02 18:42:39 -05:00
John Colvin
88c70a3ea0
build (refactor): Add cmake_utils.py in py/core
...
So it can be referenced by both client/server build scripts
2023-01-02 18:42:39 -05:00
John Colvin
b0eb1175c1
Update docker/linux for ubuntu 22.10 image
2023-01-02 18:42:39 -05:00
John Colvin
e90d627125
build (web): Update npm packages
2023-01-02 18:42:39 -05:00
John Colvin
c1190d4ef9
build (refactor): Remove unused cmake var SPARK_PYTHON
2023-01-02 18:42:39 -05:00
John Colvin
67487415ad
build (refactor): Change some cmake cache vars to options
2023-01-02 18:42:39 -05:00
John Colvin
dcf80d7067
build: Fix build_sparkd.py (broken since CMakePresets introduced)
...
Pass additional cmake opts through cli. Specifically, those that were
moved from CMakeLists.txt to CMakePrests.json
2023-01-02 18:42:39 -05:00
John Colvin
99a778811a
fix build: Update externals
...
Disables a few warnings-as-errors in btree source files
2023-01-02 18:42:39 -05:00
John Colvin
eb76f0a6c5
fix build (gcc-12, clang>=11): Update externals
...
Disables a few warnings-as-errors in catch2 source files
2023-01-02 18:42:39 -05:00
John Colvin
b8de813859
build: Replace setup_builds w/ CMakePresets.json
...
Clean up CMakeLists a bit in the process:
* Define more cmake vars in CMakePresets
* Split linux/windows presets into separate files
2023-01-02 18:42:39 -05:00
John Colvin
6b480afd43
build (sparkd): Automatically create py venv in build script
2023-01-02 18:42:39 -05:00
John Colvin
40d21542ae
build (sparkd): Pipe 'eval' cmd stdout/err back to shell
...
So we can actually see the build output
2023-01-02 18:42:39 -05:00
John Colvin
a8af5d2523
fix build: Compile with gcc/g++ (version agnostic)
...
We don't really need a strict dependency on a compiler version, though
best practice is to use the latest gcc (12).
2023-01-02 18:42:39 -05:00
John Colvin
bfd12aed63
tools (log): Fix 'pretty' script & rename 'show_last_run'
2023-01-02 18:42:39 -05:00
John Colvin
76936ea50d
fix build (gcc): Disable warning stringop-overread
...
This warning (as error) was introduced with g++ 12
2023-01-02 18:42:39 -05:00
John Colvin
6947aea35e
diag: Log emumba cfg parse error code
2023-01-02 18:42:39 -05:00
John Colvin
34be51c648
refactor: Include <limits> in sane_algorithm.h
...
Although the build was fine, many methods in this header file depend on 'limits'
so it is appropriate to include it. Presumably all references to such methods are
made from source files that include <limits> by coincidence.
2023-01-02 18:42:39 -05:00
John Colvin
56b68b9a24
fix build (gcc): Don't let switch case fall through
...
Even if the case is simply 'bts_assert(false)'
2023-01-02 18:42:38 -05:00
John Colvin
84e6f010d7
build: Benign changes to remove errors in gcc 12
2023-01-02 18:42:38 -05:00
John Colvin
b360f953db
build: Benign changes to remove errors in clang 15
2023-01-02 18:42:38 -05:00
Taha Afzal
320427c9c5
Merge branch 'spark_crypto.dev' of bitbucket.org:bluetradesys/spark into spark_crypto.dev
2022-12-25 16:17:12 -05:00
Taha Afzal
5e8543902e
Sheet theos change colors for contracts that are in a task
2022-12-25 16:17:01 -05:00
John Colvin
edae3c9ab7
build (refactor): Remove 'zip' opt from publish_spark
...
The slight convenience afforded by this opt doesn't seem worth the
additional complexity. This script produces a self-contained application
folder. Decisions on what to do with that folder (whether or not to zip
it, etc.) are best left upstream.
2022-12-23 11:40:35 -05:00
John Colvin
fd9892c6b6
fix: Prevent raw_pb_callback premature garbage collection
...
Bugs (fixed):
* Startup crash w/ error message: "A callback was made on a garbage
collected delegate of type ApiNativeMethods.raw_pb_callback"
Cause: The callback is only referenced in unmanaged c++. Without references
in managed code, the Garbage Collector deems the delegate eligible for
collection before the callback has finished execution.
Note: The original solution forced a reference in managed code by storing it
in a class-member 'keepalive' dictionary, whose life isn't bound to the
[synchronous] scope of the 'send' method. The callback would then remove
itself from the dictionary in its last line of code. While this reduced the
chance of such an error occurring, occassional crashes persisted
(particularly in low-bandwidth environments). I suspect the frequency at
which garbage-collector threads run is inversely related to the frequency
at which data arrives from the server, as the latter triggers execution of
higher-priority threads.
Steps to repro:
1. Insert a Thread.Sleep statement (1000 ms should be sufficient) after
the call that removes the last reference to the delegate (i.e., make
the thread sleep for a significant amount of time in the callback
AFTER it becomes eligible for garbage collection).
2. Build, run, and observe crash on startup.
Solution: Wrap the callback in another class, and store the wrapper
in the dictionary rather than the callback itself. The reason why this
works isn't totally clear, however its effectiveness has been verified
with the repro (described above).
2022-12-23 11:25:07 -05:00
Taha Afzal
51c89fb8cc
Merge branch 'spark_crypto.prod' into spark_crypto.cme
2022-12-21 20:38:42 -05:00
Taha Afzal
45668baaf8
Adding code to Main
2022-12-20 12:17:51 -05:00
Taha Afzal
305cc0e01c
Adding simple concrete classes
2022-12-20 12:00:46 -05:00
Taha Afzal
f0f365538b
Initial check in for Websocker skeleton
2022-12-19 23:45:52 -05:00
Taha Afzal
f9bba0baed
Merge branch 'spark_crypto.dev' of bitbucket.org:bluetradesys/spark into spark_crypto.dev
2022-12-19 17:41:38 -05:00
John Colvin
306c18065a
chore: Add csproj bones for websocket api
2022-12-19 14:25:37 -05:00
Taha Afzal
ded674d87c
Enabling CME market data, and adding some new logs to track initialization of resources
2022-12-19 14:15:04 -05:00
John Colvin
c64c71c98c
fix build (sparkd install): Copy plugins to install dir
2022-12-15 12:47:35 -05:00
John Colvin
7de87c1c25
ui (refactor): Consolidate (Repeat)Button colors to one class
...
The only difference between a RepeatButton and a regular Button is in
the click-behavior (they should look identical).
2022-12-15 12:47:35 -05:00
John Colvin
12716bb6e1
fix: Add a couple null checks
2022-12-15 12:47:35 -05:00
John Colvin
8e68d573ff
ui (volsurface): Update oxyplot to get rid of 'dummy' win
2022-12-15 12:47:35 -05:00
Taha Afzal
dd66e94bfd
Merge branch 'spark_crypto.prod' of bitbucket.org:bluetradesys/spark into spark_crypto.prod
2022-12-09 16:59:50 -05:00
Taha Afzal
d399f75648
Decreasing the log rate on the server
2022-12-09 16:59:08 -05:00
John Colvin
937173dd2f
ui (volsurface): Update oxyplot to get rid of 'dummy' win
2022-12-09 13:23:44 -05:00
Taha Afzal
f1f7a40fba
Changing some Sheet UI Defaults
2022-12-09 01:53:08 -05:00
Taha Afzal
5522d364d4
Fixing Sheets and SpreadBox colors
2022-12-09 00:47:47 -05:00
John Colvin
3a218d246e
ui: Style ListBoxEx w/ dark theme colors
...
This control used in grid filters (multi-select)
2022-12-08 13:52:14 -05:00
John Colvin
bafc28e3bc
ui: Touch up orderbook panel (dark theme)
2022-12-08 13:52:14 -05:00
John Colvin
6d1eb474c4
ui (grid settings): Align column-list cell params
...
The [vertical] alignment issue was only noticeable in the pnl settings dialog
(its cell params section is taller than those in other settings dialogs), where
the shorter columns list was center aligned with the taller cell params.
2022-12-08 13:52:14 -05:00
John Colvin
d172f4ffab
ui: Touch up grid settings dialogs (dark theme)
2022-12-08 13:52:13 -05:00
John Colvin
c527b6e84f
ui: Touch up AlgoStudio (dark theme)
2022-12-08 13:51:55 -05:00
John Colvin
b8c7abd6b3
ui: Style TickUpDown ctrls w/ dark theme colors
2022-12-08 13:30:55 -05:00
John Colvin
fea8e184c1
style: Sort tag attributes in xaml
...
* Put attached props before regular (i.e., not attached) props
* Sort alphabetically, with exceptions for props that are logically
grouped together. For example Width/MinWidth/MaxWidth may be
adjacent, as they are all 'width' props.
2022-12-08 13:30:55 -05:00
John Colvin
44a7bc0de9
style: Format large xaml files
...
* Improves readability
* Adds new lines to make navigating through the tags easier
* Mostly just white space changes
fix add empty lines
fix empty lines (reword commit to 'white space changes')
fix white space
2022-12-08 13:30:55 -05:00
arhamGIT
4bad9ef183
ladder lines
2022-12-08 13:30:55 -05:00
arhamGIT
590835c627
ladder changed
2022-12-08 13:30:54 -05:00
arhamGIT
997766df92
partial PNL header fix
2022-12-08 13:30:54 -05:00
arhamGIT
cdbf66cd6c
grid fixed with new row colors
2022-12-08 13:30:54 -05:00
arhamGIT
4c90eed59e
bunch of changes for dark theme
2022-12-08 13:30:54 -05:00
John Colvin
d260f8ce2c
ui: Hardcode dark theme
2022-12-08 13:30:54 -05:00
Taha Afzal
12d0afb215
Merge branch 'spark_crypto.tasking_eye' of bitbucket.org:bluetradesys/spark into spark_crypto.tasking_eye
2022-12-06 15:21:46 -05:00
Taha Afzal
a9040f5f8f
For TaskingEye, side is not a part of the algo any more. Therefore selecting the bids and starting an eye, makes it go shoot at the bid, and vice verca for the asks
2022-12-06 15:21:37 -05:00
Taha Afzal
6e6acb5a71
Fix for TaskingEyeAlgo with empty security lists (ie when algo is launched from the ladder)
2022-12-06 15:17:54 -05:00
Taha Afzal
256697d5b0
Side is a parameter of TaskingEyeAlgo, it is inferred from the OrderDefinition (like other algos)
2022-12-06 11:06:44 -05:00
Taha Afzal
be9067b22e
AlgoWrapper was not publishing the filled fractional qtys, fixed now
2022-12-05 22:59:59 -05:00
Taha Afzal
a5874a59f0
AlgoWrapper was not reporting fractional qty fills, this fixes it now via using the get_quantity function in orderman_common.h
2022-12-05 21:56:50 -05:00
Taha Afzal
e8405e5638
OrderServiceServer starts calling ServiceBridge's do_work only once it gets the ready signal from ServiceBridge
2022-12-05 14:33:04 -05:00
Taha Afzal
ab70c9dfb1
Fixing problem with TaskingEye for fractional shot qtys
2022-12-04 23:21:23 -05:00
Taha Afzal
1e4d8584c7
Merge branch 'spark_crypto.tasking_eye' of bitbucket.org:bluetradesys/spark into spark_crypto.tasking_eye
2022-12-04 20:36:25 -05:00
Taha Afzal
29eef77099
ServiceBridge now periodically publishes the TheoEvent (with a flag indicating such). This helps the algos get the theos without waiting for the next update
2022-12-04 20:36:10 -05:00
Taha Afzal
c50e89ae78
Merge branch 'spark_crypto.tasking_eye' of bitbucket.org:bluetradesys/spark into spark_crypto.tasking_eye
2022-12-03 00:28:12 -05:00
Taha Afzal
89917713d6
Tasking eye UI work in the sheets
2022-12-03 00:28:00 -05:00
Taha Afzal
1e0ac46e07
Account name is part of the Tasking Eye Algo now
2022-12-02 23:18:06 -05:00
Taha Afzal
6279b8f5f5
Securities (string of sec_ids unfortunately) is a parameter in Tasking Eye Algo now
2022-12-02 15:44:25 -05:00
Taha Afzal
4007c87e20
Merge branch 'spark_crypto.tasking_eye' of bitbucket.org:bluetradesys/spark into spark_crypto.tasking_eye
2022-12-01 09:50:47 -05:00
Taha Afzal
ec0f42e76c
Adding timer for the theo publishing time
2022-12-01 09:50:37 -05:00
Taha Afzal
99f63c2a6f
Fixed a big with the shot throttle
2022-11-30 21:42:54 -05:00
Taha Afzal
12ac20f756
TaskingEyeAlgo code complete, it is firing orders and correctly (needs more testing and ui integration)
2022-11-30 15:39:00 -05:00
Taha Afzal
9d36d74005
TaskingEyeAlgo correctly subscribes and receives driver books
2022-11-29 13:42:15 -05:00
Taha Afzal
da2cc977a0
TaskingEyeAlgo hooked up to theos
2022-11-29 00:11:04 -05:00
Taha Afzal
84e7bdb586
Adding TaskingEyeAlgo
2022-11-28 16:57:12 -05:00
Taha Afzal
b062a229c8
Added on_theos to IAlgoOrder, and hooked up the plumbing
2022-11-28 10:54:38 -05:00
Taha Afzal
8680b3d815
Publishing the interp theos to the server is almost done
2022-11-25 22:20:08 -05:00
Taha Afzal
6ab0e4c5a7
Merge branch 'spark_crypto.tasking_eye' of bitbucket.org:bluetradesys/spark into spark_crypto.tasking_eye
2022-11-25 16:36:34 -05:00
Taha Afzal
867bcf97d0
Added InterpTheosServerPublisher, which allows to publish precomputed theos to the server
2022-11-25 16:36:26 -05:00
Taha Afzal
360bf9b37e
Added get_driver_sec to ITheoCalculator
2022-11-25 16:22:10 -05:00
Taha Afzal
4d85106fbf
Added server method to publish precomputed theos, feed it into a calculator, and publish the calculator as an event
2022-11-23 12:52:01 -05:00
Taha Afzal
64a253b581
Fixed the vol change in day bug (difference of uint64s was being assigned to an int32)
2022-10-26 09:37:25 -04:00
Taha Afzal
5f379c1356
SpreadBox minor button display fixes
2022-10-13 07:32:03 -04:00
Taha Afzal
76c80383ce
Merge branch 'spark_crypto.dev' into spark_crypto.prod
2022-10-13 00:55:11 -04:00
Taha Afzal
e5a6ea80f0
Making the SpreadBox button click more obvious (ToolStripButtons do not have the button like feel of a click)
2022-10-13 00:54:13 -04:00
Taha Afzal
b921e644df
Merge branch 'spark_crypto.dev' into spark_crypto.prod
2022-10-13 00:13:42 -04:00
Taha Afzal
1c3fb8c192
Merge branch 'spark_crypto.dev' of bitbucket.org:bluetradesys/spark into spark_crypto.dev
2022-10-13 00:00:40 -04:00
Taha Afzal
d530d86a30
Merge branch 'spark_crypto.prod' of bitbucket.org:bluetradesys/spark into spark_crypto.prod
2022-10-12 23:57:08 -04:00
Taha Afzal
9d9229ef56
Merge branch 'spark_crypto.spread_creation' into spark_crypto.dev
2022-10-12 23:43:11 -04:00
Taha Afzal
6f6f3c0800
RFQ qty and sides, sent from the client, are now sent over to Deribit
2022-10-12 23:39:44 -04:00
Taha Afzal
7b234044f6
Added controls in the spreadbox that allow for specifying qty and side for an RFQ
2022-10-12 20:08:24 -04:00
John Colvin
d46c82f34c
feat (ladder): Add side/qty inputs for rfqs
2022-10-12 15:41:57 -04:00
Taha Afzal
4d5af610f0
Added an 'RFQDialog' tag to SparkTags, that launches athe RFQDialog window
2022-10-12 11:55:19 -04:00
Taha Afzal
1e94466f24
RFQ for new spreads are now routed to emumba's create_combo method
2022-10-11 15:55:55 -04:00
Taha Afzal
3210c0bce4
Combo creation at Deribit is turned on from the UI now (it was disabled with a boolean switch prior to this commit)
2022-10-11 10:53:09 -04:00
Taha Afzal
849f4ac579
Merge branch 'spark_crypto.prod' of bitbucket.org:bluetradesys/spark into spark_crypto.prod
2022-10-10 15:14:40 -04:00
John Colvin
6d56f67697
feat: Add volsurface graph settings dialog
...
A lot of the vm code was already there, but I cleaned it up a bit. The view was
ported over from edge and also cleaned up/tweaked a bit.
2022-10-10 14:46:34 -04:00
John Colvin
c0289719e7
fix (pre-emptive): Add null check in 'DisposeAll' fn
...
Bugs (fixed):
* The volsurface graph settings dialog crashes when you click OK/Apply
Note: This fix is 'pre-emptive' because I saw the bug while working on the
vs graph settings dialog. That feat will be added shortly in a subsequent
commit (I wanted to commit the fix first so the bug wouldn't be in the
official 'feat' revision/commit).
Cause: A null ref ex is thrown in DisposeAll, because the List of IDisposables
to dispose contains null items.
Another way to fix the bug would have been to make sure null items aren't
added to these Lists in the first place. However, that places the burden (to
check for null) on the callers' shoulders, and leaves open the potential for
this bug in every place where 'DisposeAll' is called.
2022-10-10 14:35:29 -04:00
John Colvin
a32e969b39
fix (ui): Fix ColorPickerControl/Popup SelectedColor binding
...
There were a few issues here:
* The ColorPickerPopup was binding it's own SelectedColor prop to the internal
ColorPickerControl's SelectedColor prop. The SelectedColor prop is typically also
bound to some (external) viewmodel's 'color' prop. This is problematic as
Dependency Properties can only be associated with one 'Write' binding.
* The code designed to keep various sub-color properties in sync with the
result color was confusing, and didn't seem to work. For example, the ARGB
sliders' values didn't match those of the 'result' color.
2022-10-10 14:22:34 -04:00
John Colvin
f5899e7781
fix (vs graph): Bind series vm color to correct OxyPlot prop
...
Bugs (fixed):
* The VolSurface graph colors don't reflect the settings. They appear to be
randomly generated.
Cause: The series vm's color prop was bound to 'TextColor' in the model; it
should have been bound to 'Color'
2022-10-10 11:17:17 -04:00
John Colvin
ed07c956a7
ui: Remove quotes around 'Enter' in col filter prompt
...
Looks cleaner this way, and isn't clipped given the current width
2022-10-10 11:15:14 -04:00
Taha Afzal
2022ee5a07
Completing Deribit execution test
2022-10-10 11:01:59 -04:00
Taha Afzal
a0bc1e8691
Spreader can handle options now
2022-10-09 23:56:38 -04:00
Taha Afzal
c1951ac49a
Added ability to view md/theo in USD, in the sheets
2022-10-08 21:45:57 -04:00
John Colvin
e159e0e77b
ui (man fills): Add 'Time Entered' column
2022-10-07 15:04:36 -04:00
John Colvin
6bbd4134ec
ui (man fills): Use foreground to indicate buy/sell
2022-10-07 15:04:35 -04:00
John Colvin
8a72b2150a
ui (rec rep): Use font weight to indicate price/qty discreps
2022-10-07 15:04:35 -04:00
John Colvin
e4d5d1eeb2
ui (rec rep): Use foreground to indicate long/short pos
2022-10-07 15:04:35 -04:00
John Colvin
6bf2726b63
ui (rec rep): Filter out system spread positions
...
The exchange splits spread positions into the individual legs
2022-10-07 14:50:10 -04:00
Taha Afzal
a63af0cb46
Manual tests for Deribit order execution
2022-10-06 22:37:39 -04:00
John Colvin
b2a7e1d2ed
feat: Add 'Send RFQ' button to ladder
2022-10-05 13:35:00 -04:00
John Colvin
32a38b3b5a
refactor: Remove unused code
2022-10-05 13:35:00 -04:00
John Colvin
8533bcf0a7
style: Format LadderView.xaml
...
It's a big file. Irregular formatting/spacing makes it difficult to navigate.
* Use max line width of 100
* Add empty line after multiline tags
* Trim trailing white space
* Rename terse xml namespaces:
- 'converters' -> 'cv'
- 'spark' -> 'sp'
- 'mbts' -> 'u'
fix fmt ladder
2022-10-05 13:34:39 -04:00
John Colvin
e00eae1129
refactor (ui): Enable auto-refresh in column-text filters
...
feat (mview): Enable auto-refresh in security filter
This behavior is (more) consistent with other modern search uis
2022-10-05 01:05:24 -04:00
John Colvin
95595c4cbf
fix: Arrange Adorner by target's RenderSize (not Desired)
...
Bugs (fixed):
* The Adorner that is used to render a text prompt on top of text boxes appears
clipped; it doesn't span the width of the TextBox.
2022-10-05 01:05:24 -04:00
John Colvin
aad36a4972
fix (mview): Prevent icon flicker when selection changes
...
Observe changes to MarketViewVM.current_row' rather than
'MarketViewVM.selected_rows'. The latter (collection) is momentarily empty when
the selection switches from one row to another, during which time the buttons
are disabled, hence the flicker.
2022-10-05 01:05:24 -04:00
Taha Afzal
cc03f47d70
SpreadBoxes can be brought up from MV
2022-10-04 22:17:46 -04:00
Taha Afzal
5c5e5c23ef
SpreadDisplayForm's start location is not tied to the launching window now
2022-10-04 21:31:30 -04:00
John Colvin
4b531a2a1a
feat: Add 'Send RFQ' button to mview
2022-10-04 18:07:30 -04:00
John Colvin
35530bec0b
refactor: Remove unused variable
2022-10-04 16:42:50 -04:00
John Colvin
5853bb2436
refactor: Make RFQSend tag data immutable
...
It's safer this way. The data doesn't need to be mutated.
2022-10-04 16:39:01 -04:00
John Colvin
bfdf45d30d
fix (ui): Fix typo so spreads' qty metadata comes from 1st leg
2022-10-04 15:33:11 -04:00
Taha Afzal
a330bc5020
MV and Ladder use GreekTuple.normalized_theo now
2022-10-03 23:20:48 -04:00
Taha Afzal
66f68ef3ec
Fixing the spread filled price (EMNativeOrder needed to ignore spread_leg like the GLBX and ICENativeOrders
2022-10-03 23:19:10 -04:00
Taha Afzal
d6e651129b
RFQs are fully hooked up
2022-10-03 14:54:09 -04:00
Taha Afzal
d4a59b8253
UI sends RFQ requests (and almost combo creations)
2022-10-03 00:04:55 -04:00
Taha Afzal
569f1460a4
Wiring up RFQ sending
2022-10-03 00:04:55 -04:00
Taha Afzal
2f369dbd57
RFQ wiring complete
2022-10-02 22:20:44 -04:00
Taha Afzal
444e486862
Changing RFQ Proto
2022-10-01 22:15:05 -04:00
Taha Afzal
b42504d827
RFQ work to identify the spreads
2022-09-30 15:26:22 -05:00
Taha Afzal
18ac85a454
SpreadBox can identify listed spreads, shows the market data as well as allows orders (through ladder) and RFQs
2022-09-30 15:26:22 -05:00
Taha Afzal
788a1a06c5
Greeks for Spreads and Futures are added to bus's Greeks
2022-09-30 15:26:22 -05:00
John Colvin
787b485bce
fix (ladder): Init qty input to null (not nan)
...
Bugs (fixed):
* The ladder qty box defaults to 'NaN' when opened
* Cannot change qty input via keyboard until 'NaN' is cleared
2022-09-28 22:57:36 -05:00
John Colvin
788df0e888
fix build (gcc-11): Include optional
2022-09-28 21:22:47 -05:00
Taha Afzal
916532f7c5
Fixing formatting of Deribit spreads
2022-09-28 21:22:47 -05:00
Taha Afzal
3c511bb177
RFQ hooked up on the server side
2022-09-28 21:22:47 -05:00
Taha Afzal
49f13755c6
Adding RFQ to OrderService interface
2022-09-28 21:22:47 -05:00
Taha Afzal
dcb4b1ae7e
Spread leg fills at Deribit now have the correct prices
2022-09-28 21:22:47 -05:00
Taha Afzal
2152b48fe2
Spread execution is almost done, leg prices are not correct
2022-09-28 21:22:47 -05:00
John Colvin
b6f2f99f21
improve: Get spread qty metadata from first leg
2022-09-28 21:22:47 -05:00
John Colvin
c44df8ec06
style: Add documentation to ContractLegEnumerable
2022-09-27 17:03:58 -05:00
John Colvin
493f082d6d
fix (mview): Apply sec price format to theo & driver
2022-09-27 16:01:49 -05:00
John Colvin
bbe76b2709
feat (ladder): Show theo, delta, vega in left panel
2022-09-27 15:53:22 -05:00
John Colvin
ce8eda24fc
refactor: Make vm prop changed subs more performant
2022-09-27 10:53:39 -05:00
John Colvin
9f9113bf9a
refactor: Clean up LadderSettingsVM a bit
...
* Add readonly modifiers
* Declare 1 member per statement (don't separate members of same type by commas)
2022-09-26 13:34:50 -04:00
John Colvin
a199595938
feat (part): Add 'Spread Box' menu item in mview
...
It posts the selected securities to the 'SpreadBox.ShowSecurities' tag.
TODO: Hook up handler to launch spread boxes in response to the
'SpreadBox.ShowSecurities' tag
2022-09-22 23:51:51 -04:00
Taha Afzal
83de5fac75
Deribit spread market data is now written to shared memory
2022-09-22 23:51:48 -04:00
Taha Afzal
c688657d53
Vol surfaces are curtailed to the newest 500 at server startup
2022-09-22 23:51:41 -04:00
John Colvin
a5c62c66b1
refactor (ladder): Get theos from Greeks tag
...
The old tag, KeyedTheos, is redundant and will be removed soon
2022-09-22 22:04:44 -04:00
John Colvin
6d595d18ee
fix: Fix typo in requirements.txt ('=' -> '==')
2022-09-21 01:55:28 -04:00
John Colvin
946e8f1c47
Update externals
...
* Removes no-longer necessary node_modules dir
2022-09-21 00:17:31 -05:00
John Colvin
b765c3756d
chore: Remove arbitrary [vscode] 'tasks.json'
...
Vscode json files (settings, tasks, launch, etc.) should be tracked in the
dev/<name> dirs
2022-09-21 00:17:31 -05:00
John Colvin
54dc7bf6c3
fix (webapp): Add method without 'set_' prefix in generated js
...
We already do this for 'get_' prefixes
2022-09-21 00:17:31 -05:00
John Colvin
6142a08db6
build (client): Copy libspark.dll to 'publish' dir
...
This dll isn't automatically copied when 'dotnet publish' is executed, because
dotnet core isn't really integrated with cpp
2022-09-21 00:17:31 -05:00
John Colvin
ca59976e00
fix build (cpp win): Use explicit void template arg in memcpy
2022-09-21 00:17:31 -05:00
John Colvin
7f7a160916
fix build (cpp win): Disable ccapi code in windows
2022-09-21 00:17:31 -05:00
John Colvin
c8eb51c303
build (refactor): Move web build scripts to tools/py
...
Even though they're specific to the web CMakeLists proj, it's good to have all
build scripts in one place
2022-09-21 00:17:31 -05:00
John Colvin
4160233a58
build: Get rid of redundant setup_builds.sh
...
The new build_sparkd.py script handles both configuration and actual build
2022-09-21 00:17:31 -05:00
John Colvin
c5f79f754b
build: Compile sparkd w/ newer gcc v11
2022-09-21 00:17:31 -05:00
John Colvin
5f568d681a
Update docker/linux to get gcc v11
2022-09-21 00:17:28 -05:00
John Colvin
83a2147428
build (sparkd): Enable Binance for ccapi
2022-09-21 00:14:38 -05:00
John Colvin
9dd2cee6d9
refactor: Repurpose ccapi ftx-impl for general use
2022-09-21 00:14:38 -05:00
Taha Afzal
57365013bd
CCMarketDataListener is mostly complete, error handling and RFQs/state remains
2022-09-21 00:14:38 -05:00
Taha Afzal
3d55ef075b
CCMarketDataListener writes its security to shared memory now
2022-09-21 00:14:38 -05:00
Taha Afzal
14da6461b1
Constructor added to CCMarketDataListener
2022-09-21 00:14:38 -05:00
Taha Afzal
e84d3df024
Adding skeleton
2022-09-21 00:14:38 -05:00
John Colvin
ed38fe0ce9
fix build (web): Install webpack-cli
2022-09-21 00:14:38 -05:00
John Colvin
b5daee3bcf
build (web): Replace deprecated fn copy_tree w/ copytree
2022-09-21 00:14:38 -05:00
John Colvin
f5c8c29f5a
build: Migrate web build to net6.0
...
Clean up the web build process a bit while we're at it
* Add 'custom_commands' to run npm install in CMakeLists
* Generate tsconfig files for CMake preset configurations
* Rename local variables to _snake_case in CMakeLists
2022-09-21 00:14:38 -05:00
John Colvin
89fa2eae50
build: Enable web build in wsl
...
Not sure why this was disabled in the first place
2022-09-21 00:14:38 -05:00
John Colvin
41b8c9238c
build: Remove server/sparkd from libspark include path
2022-09-21 00:14:38 -05:00
John Colvin
28b66306da
chore (linux build): Add benign changes to satisfy gcc11
2022-09-21 00:14:38 -05:00
John Colvin
0bdbc1897a
chore (linux build): Add benign changes to satisfy clang13
2022-09-21 00:14:38 -05:00
John Colvin
c3d9443a89
build: Automate venv activation in server build
2022-09-21 00:14:38 -05:00
John Colvin
400db13a78
build: Update cmake-min-version to 3.12
...
Several 'add_compile_definitions' calls were added to the root
CMakeLists.txt as part of the ccapi_cpp lib integration (3.12 is the
version in which that call was introduced)
2022-09-21 00:14:38 -05:00
John Colvin
1d7d5858d5
build: Add script to build sparkd (server)
...
Similar to the py script used to build spark (client), 'build_spark.py'.
2022-09-21 00:14:38 -05:00
John Colvin
8792f24c5d
refactor (build): Move '_exit' to common module logging
...
Also rename 'exit_msg' since 'exit' is already a builtin fn
2022-09-21 00:14:38 -05:00
John Colvin
76d35b16eb
refactor (build): Change SparkPaths to return Path objs
2022-09-21 00:14:38 -05:00
John Colvin
81f7fe72ab
refactor (build): Move CWD & SparkPaths to common module file_utils
2022-09-21 00:14:38 -05:00
John Colvin
649ba11edb
Update docker/linux
2022-09-21 00:14:32 -05:00
John Colvin
2fc6d7c262
Update externals
...
* Upgrade ccapi to v5.31.2
* Upgrade emumba to v3.0.6
* Update emumba license (good til 2023-08-01)
2022-09-19 17:50:40 -05:00
John Colvin
45421eedce
chore: Move 'CME' specific script to 'cme' dir
2022-09-19 17:50:40 -05:00
John Colvin
8ecb3118e4
refactor (script): Use Path type rather than str
2022-09-19 17:50:40 -05:00
John Colvin
3fdb10890d
chore: Rename scripts w/ consistent grammar
2022-09-19 17:50:40 -05:00
John Colvin
2a6224c88d
chore: Move py scripts/utils into 'py' dir
2022-09-19 17:50:40 -05:00
John Colvin
8d6ddc8250
chore: Remove unused legacy scripts
2022-09-19 17:50:40 -05:00
John Colvin
6cc8590a1c
build: Use venv python to execute buildspark.py
...
Previously, the virtual environment was activated in the Proto3 build target.
Since the proto3 build target is executed once per proto file, and 91 proto
files are processed during the client cs build, this added significant time to
the build. For example, on [John's]my laptop, activating the venv takes ~0.15s,
which amounts to ~9.55 secs per build.
2022-09-19 17:50:40 -05:00
John Colvin
063d908775
build: Remove unused legacy build script
2022-09-19 17:50:40 -05:00
John Colvin
93565f0ebf
fix (jenkins): Update jenkins build procedures for spark-crypto
2022-09-19 17:50:40 -05:00
John Colvin
1d7fcf5d18
build: Move ':create_venv' fn to its own cmd script
...
So jenkins scripts can reference it as well as buildspark.cmd
2022-09-19 17:50:40 -05:00
John Colvin
897d20f12f
build: Refactor buildspark.py so 'build' fn can be imported
...
This way, jenkins build/deploy py scripts can import 'buildspark.build', and thus
don't have to than re-invent the 'build' wheel
2022-09-19 17:50:40 -05:00
John Colvin
a928925252
build: Add 'publish' target to build script for jenkins
2022-09-19 17:50:39 -05:00
John Colvin
4088affa15
fix (sparkd clang): Use 'clang' c compiler w/ 'clang++'
...
Otherwise cmake picks 'cc' by default
Bugs (fixed):
* Sparkd crashes due to strange runtime error related to multithreaded access
of std::promise in clang builds
2022-09-19 17:50:39 -05:00
Taha Afzal
7def6aacd2
MergedMDDaemon has a timer that can periodically remove expired contracts (not enabled right now)
2022-09-16 09:51:27 -04:00
Taha Afzal
94ae1780cd
Expired contracts are filtered out from the risk report
2022-09-16 09:51:27 -04:00
John Colvin
2c65c4376b
fix (orderbook): Invalid row view when qty display changes
...
Bugs (fixed):
* Orderbook qty formatting is inconsistent across Orderbook instances. Within
one Orderbook, the formatting does seem to be consistent.
2022-09-15 16:02:34 -04:00
John Colvin
68bb3dbfa1
refactor: Remove redundant member 'filled_quantity_text'
...
It is redundant since another prop, 'display_filled_quantity_text', returns the
exact same value. Eventually we should bring this prop back and replace the
'display_' one. The latter is a legacy prop, from the time before we had proper
Security metadata config. Removing the former for now because having both of
them causes needless confusion.
2022-09-15 15:58:23 -04:00
John Colvin
82a73693a6
fix: Post keyed theos to bus
...
They were already being created, just not published (perhaps due to a bad merge)
2022-09-15 15:39:38 -04:00
John Colvin
612cd4a4c8
fix: Remove refs to invalid 'default' SecurityImmutable
...
It's most (probably all) cases where a static 'default' SecurityImmutable is
used, a Nullable<SecurityImmutable> would more accurately represent the state,
which could likely (probably always) be described as "waiting for my real
security from an asynchronous source."
Bugs (fixed):
* [Race] When Fills window opens, an exception is thrown if the sec-filter's
items are sorted with a 'default' SecurityImmutable.
Cause: The static default SecurityImmutable doesn't have an underlying sec
type (i.e., ContractOneofCase == None). The compare fn doesn't support
this.
TODO (maybe): It might be a good idea to 'fix' the compare fn as well
(i.e., make it support 'None' sec types)
TODO (probably): Remove remaining references to the static default
SecurityImmutable
2022-09-15 15:39:38 -04:00
John Colvin
b3828dfc53
refactor: Add lazy param factory logic to SparkCommand
...
Some SparkCommands convert their parameter to another object that is posted to
the bus when the command is executed. The lazy param factory logic allows those
SparkCommands to hold off on converting the parameter until just before execution.
Thus, these SparkCommands naturally avoid passing invalid parameters to the
delegate (assuming the 'can_execute' evaluates to false for invalid parameters).
2022-09-15 15:39:38 -04:00
John Colvin
01f26567ed
refactor: Get rid of SecurityGrid base class
...
It was pretty old code, and needed to be removed due to its dependence on
non-null SecurityImmutables. The 'default' SecurityImmutable object is invalid,
and throws in its property accessors since the underlying Security object is null.
2022-09-15 15:27:35 -04:00
John Colvin
90d21c9c15
refactor (synth man): No need to support vm reassignment
...
This was over-engineering..it made things complicated for zero benefit
2022-09-15 15:27:35 -04:00
John Colvin
6351c1340e
refactor: Rename SelectManyInSeries -> SelectSeries
...
Shorter is better in this case
2022-09-15 15:27:35 -04:00
John Colvin
18cdddf76d
git: Remove phantom submodule
...
Can't recall why 'deribit-crypto-connector-demo-application' was added as a
submodule in the first place. It has no actual corresponding files in the main
repository, just an entry in the '.gitmodules' file. Removing it now because
it's causing jenkins builds to fail (jenkins attempts to clone all submodules
in the .gitmodules file, and it doesn't have access permission on this one).
2022-09-08 22:07:05 -04:00
John Colvin
b14c8bb1ac
Update docker/linux
...
* Get ccapi deps again (after rebasing the 'ccapi deps' commit in
docker/linux)
* Upgrade dotnet from a mixture of v2 & 3 to v6.0
2022-09-04 14:37:59 -04:00
John Colvin
ceff286120
fix build (server w/ ccapi-disbaled): Add ifdef SPARK_ENABLE_CCAPI ppds
2022-09-02 11:48:12 -04:00
John Colvin
59aa4677e8
Update docker/linux
...
To get rapidjson-dev (ccapi dep)
2022-09-02 11:31:58 -04:00
John Colvin
996cd4c856
fix (ladder settings ui): Init 'use_self_security' properly
...
When loading settings obj
2022-09-02 10:30:08 -05:00
John Colvin
9287149c26
refactor: Clean up 'bts.api.core.Result<T>'
...
Impl ToString while we're at it
2022-09-02 10:14:02 -05:00
John Colvin
306b56a999
fix (hopeful): Make sure callback disposed after subscription
...
Hopefully this fixes the 'Garbage Collected callback' crash on login
2022-09-02 09:45:02 -05:00
John Colvin
812cf0a43f
fix (man fills ui): Remove erroneous extra ladder button
2022-09-02 09:42:25 -05:00
John Colvin
2c539fd833
ui (ladder settings): Select self in sec-picker by default
...
For pre-existing fair value lines (this behavior's already implemented for new
fair value lines)
2022-09-01 11:07:51 -04:00
John Colvin
334295ed67
fix (ladder settings ui): Fix typo in binding
...
Resolve discrepancy between between xaml/cs
Bugs (fixed):
* Color palette section is empty in Fair Value Line color picker
2022-09-01 01:25:58 -04:00
John Colvin
c157b9cdfd
ui (ladder): Add 'Use Self Security' checkbox to settings ui
...
Incorporate it into the settings protobuf by making the security_key field
nullable and allowing 'null' to mean 'Use Self Security'
2022-09-01 01:21:09 -04:00
Taha Afzal
8280b7a815
Fixing Deribit order minor issues that were causing the spreader to cancel its child orders
2022-08-31 15:17:35 -04:00
Taha Afzal
fb7f982c65
Improving the logs
2022-08-31 15:17:35 -04:00
John Colvin
75b50d93e8
feat (orderbook): Add button to launch Ladder
2022-08-31 01:13:42 -04:00
John Colvin
865bdac9df
refactor: Enable nullable in LadderWindow.cs
2022-08-31 01:13:42 -04:00
John Colvin
ebe5f468d7
feat (open orders): Add button to launch Ladder
2022-08-29 22:54:48 -04:00
John Colvin
1bc8d886f4
fix: Don't reopen window on synchronous shutdown
...
Even if 'e.Cancel' is true, as the initial 'Closing' event is always canceled
to allow for asynchronous teardown
2022-08-29 22:54:48 -04:00
John Colvin
38e352e0d3
feat (man fills): Add button to launch Ladder
2022-08-29 22:54:48 -04:00
John Colvin
f6079e7031
refactor: Clean up ManualFillsWindowFactory
...
After refactoring the shell window logic into new 'ManualFillsWindow' class
2022-08-29 22:54:48 -04:00
John Colvin
8c51488190
refactor: Make proper ManualFillsWindow class
...
Instances of this class are generated instead of 'anonymous' shell windows.
This makes for cleaner code, better stack traces, etc.
2022-08-29 22:54:48 -04:00
John Colvin
9aad08ada6
feat (day fills): Add button to launch Ladder
2022-08-29 22:54:48 -04:00
John Colvin
2d3d11ba59
fix (ui): Set disabled animation KeyTime to 0
...
Bugs (fixed):
* The disabled button animation in SparkMenu (toolbar) is laggy
2022-08-29 22:54:47 -04:00
John Colvin
6087953185
feat (fills): Add button to launch Ladder
2022-08-29 22:54:47 -04:00
John Colvin
851654c8a5
feat (rec rep): Add button to launch Ladder
2022-08-29 22:54:47 -04:00
John Colvin
57a4745e29
feat (ladder): Add 'Theo' fair value line
2022-08-28 14:13:10 -05:00
John Colvin
32cd00895e
fix: Add null check in ContractPickerVM
...
The ContractPickerPopup's SecurityMap binding source may produce null values
during normal operations (esp when opening/closing the popup, as the binding
source may depend on visuals that are initialized/destroyed when the popup
opens/closes).
2022-08-28 13:51:04 -05:00
John Colvin
dee5f2684f
fix: Add 'IsEnabledForegroundConverter' to ResourceDictionary
...
Bugs (fixed):
* Client crashes when ladder settings dialog is opened
2022-08-28 13:21:27 -05:00
John Colvin
f639a526cf
refactor: Consolidate Co2 & md dirs into MarketData dir
2022-08-28 11:16:56 -05:00
Taha Afzal
d168d8712e
Added Keyed Theos that can be used to get theos from security ids
2022-08-25 11:58:54 -05:00
John Colvin
78a9605383
Update docker/linux
...
To get latest cmake
2022-08-24 01:34:38 -05:00
John Colvin
a713b1018e
fix (preemptive pnl): Actually use eq_comparer member
...
To determine when value changes occur (when to raise prop-changed event, etc.)
2022-08-23 16:54:31 -04:00
John Colvin
9f626dd10c
ui (launcher): Use consistent margin between buttons
2022-08-23 16:54:31 -04:00
John Colvin
8ec7fdd60a
ui (launcher): Remove pointless separator bar
2022-08-23 16:54:17 -04:00
John Colvin
ffb2245ae6
refactor: Clean up immutable.pb.cs code-gen template a bit more
...
So the generated code more closely follows our formatting practices
2022-08-23 16:54:17 -04:00
John Colvin
21051c9a0b
fix (pnl): Support Exp group popups filtering
2022-08-23 16:54:17 -04:00
John Colvin
1c8bd34144
ui (launcher): Remove pointless Help button
2022-08-23 02:29:05 -04:00
John Colvin
f614fb7e7d
ui (pnl): Indicate 'has day trades' w/ check mark
...
Instead of 'Yes/No'
2022-08-22 17:10:03 -04:00
John Colvin
b222cd3e55
ui (pnl): Drop border between group/section headers
...
It needlessly clutters the ui, since the contrasting backgrounds already
illustrate the distinction
2022-08-22 16:55:18 -04:00
John Colvin
4f2be64813
ui: Rename 'P&L' -> 'P&L Summary', 'Day P&L' -> 'P&L Day Fills'
2022-08-22 16:43:31 -04:00
John Colvin
bfb73ffc5a
refactor: Add 'Freeze' prop to BTSBrushExtension
2022-08-22 16:08:40 -04:00
John Colvin
9bb7025752
fix: Don't share nonfrozen Brushes across threads
...
Bugs (fixed):
* Grid settings dialogs crash when multiple are opened on diff threads
Cause: Brushes (and all Freezables) that haven't been frozen throw an ex when
any Dependency Properties are accessed from a thread that isn't associated
with their Dispatcher (i.e., the thread on which they were created).
2022-08-22 16:08:40 -04:00
John Colvin
bbfbd0b691
ui (launcher): Drop 'Reports' from buttons in Analytics module
...
Also change 'Vol Surfaces' -> 'Vol Surface' to be consistent (dropping
'Reports' from the other buttons made them singular)
2022-08-22 11:41:10 -04:00
John Colvin
5628e96a90
ui: Speed up expand/collapse animation in settings dialogs
2022-08-22 10:03:28 -04:00
John Colvin
ef517b7554
ui: Reduce column resize-grip width
...
It blocks too much of the column filter's clickable area
2022-08-22 01:46:01 -04:00
John Colvin
ba06af327d
ui (slide, combo): Drop ':' in last trade desc
2022-08-22 01:30:31 -04:00
John Colvin
b8b03172bc
ui (slide): Display vol save & update times adjacently
2022-08-22 01:30:31 -04:00
John Colvin
fb5c3c1e6e
fix (orderbook-panel): Stretch visible items to fill dead space
...
Clean up the OrderBookView's VisualState's a bit in the process. Set each
item's visibility to 'Collapsed' by default, and flip to 'Visible' in the
VisualStates
2022-08-22 01:30:31 -04:00
John Colvin
faaa7b11d4
fix (orderbook-ladder): Auto scroll to selected order
...
This used to work, not sure when it broke
2022-08-22 01:30:31 -04:00
John Colvin
92a0467e1e
fix (orderbook-ladder): Detect LadderVM changes w/ default Equals
...
Bugs (fixed):
* OrderBook ladder doesn't show orders
* OrderBook ladder doesn't allow user to scroll beyond initial price range
Cause: Both bugs occur because the LadderVMContainer doesn't detect LadderVM
instance changes unless LadderVM.security has changed
2022-08-22 01:30:31 -04:00
John Colvin
3bb2025ea2
fix (ladder): Make sure price-range 'busy' is flipped back to false
...
Once the async price-range-shift op is completed
Bugs (fixed):
* Can't scroll beyond initial price range in orderbook ladder
Cause: The LadderGridHost's price-range-shift 'busy' flag gets stuck to false
2022-08-22 01:30:31 -04:00
John Colvin
f2730ff0d7
doc: Add documentation for Task.ignore ext
2022-08-22 01:30:31 -04:00
John Colvin
7fcff9e5b4
refactor: Clean up MarketViewAnimation code a bit
2022-08-22 01:30:31 -04:00
John Colvin
51f83f4880
refactor: Rename 'HashCode.with' -> 'with_values'
...
Repurpose 'with' to accept a single value
2022-08-22 01:30:31 -04:00
John Colvin
88cb510aea
refactor: Remove the ulong 'lldatetime' ext
...
It's too esoteric. Most ulongs don't represent an 'LLDateTime'
TODO: Consider removing the uint 'argb' extensions for same reason
2022-08-22 01:30:14 -04:00
John Colvin
452c642af0
refactor: Rename TryFirst ext FirstOrNull
...
Also move to it from APIExtensions to EnumerableExtensions
2022-08-22 00:05:08 -04:00
John Colvin
3fafc5004e
refactor: Clean up LazySubscription, move to Spark.Core.Disposables ns
2022-08-22 00:05:07 -04:00
John Colvin
fd8e502140
refactor: Lock private obj (not 'this')
...
'Lock(this)' is generally bad practice. It's better to use an explicitly named
var that is minimally accessible to outside callers to reduce risk of deadlocks.
2022-08-22 00:05:07 -04:00
John Colvin
b499a5c38b
refactor: Move IDisposable utils to Spark.Core.Disposables ns
...
* Move Anonymous/FinalizableDisposable to own file
* Rename DisposableCombo -> ImmutableDisposable and move it to its own file
* Clean up IDisposable utils impl, but keep changes to calling code minimial
2022-08-22 00:05:04 -04:00
John Colvin
2320383b16
refactor: Remove DisposableContainer class
...
It's innately antithetical to the Dispose pattern, as it can never truly be
disposed
2022-08-22 00:03:11 -04:00
John Colvin
59b3e73330
fix: Assign IDisposable to _dispose member (not local var)
...
So it is properly disposed, and not just eventually collected by GC
2022-08-22 00:03:11 -04:00
John Colvin
9d9a1b86c4
fix: Fix typo in 'init_auto_login'
...
The 'SubscribeClosed' call should be executed immediately, and the returned
IDisposable disposed when 'login_hooks' is disposed (prior to this commit, it
wasn't calling 'SubscribeClosed' until login_hooks was disposed)
2022-08-22 00:03:11 -04:00
John Colvin
21cc2cefbf
refactor: Un-nest SelectorWrapper class, rename SelectorList
2022-08-22 00:03:11 -04:00
John Colvin
904df4260d
fix (preemptive): Fix typo in SelectorWrapper list
...
Bugs (fixed):
* [preemptive] SelectorWrapper.IsReadOnly is wrong
Details: The fix is considered 'preemptive' because this prop is almost
certainly not referenced. Nevertheless, the impl ought to be correct.
2022-08-22 00:03:11 -04:00
John Colvin
af785d5d0b
fix: Make sure ThreadSafeEvent uses same lock as owner
2022-08-22 00:03:11 -04:00
John Colvin
1d796856ca
refactor: Make spark_api depend on spark_core (not other way around)
2022-08-22 00:03:11 -04:00
John Colvin
35f0d5a53f
refactor: Split (Equality)Comparer utils up into modular classes
2022-08-22 00:03:10 -04:00
John Colvin
2b2fdd2b94
refactor: Remove borderline useless TaskExtensions
...
There were few references to these extensions, and many weren't referenced at all
2022-08-22 00:03:10 -04:00
John Colvin
9e4539a902
refactor: Remove unused code
2022-08-22 00:03:05 -04:00
John Colvin
a76c8ffd98
fix: Fix typo 'is not null' -> 'is null'
...
Bugs (fixed):
* Window size isn't restored if window has multiple tabs
Cause: The typo flips the bool arg that indicates whether or not a window
should be measured and fit to size (as happens when a window is opened for
the first time)
2022-08-18 16:17:22 -04:00
John Colvin
d7474cb8da
fix (ui): Await settings-save before disposing IShellWindow
...
Bugs (fixed):
* Can't reopen Fills windows via undo/redo in the BookMarks module
Details:
* Only applies to Fills windows closed via the tab-close 'x' button (not
the window-close 'x' button)
* Doesn't cause a crash, nor exhibit any side effects (aside from breaking
undo/redo)
Cause:
* ISlow/SharedWindows (i.e., shell windows that run on bg threads) are
disposed before the ISettingsCollector retrieves their state via
'IShellWindow.SaveState'. The FillsWindow sets its _vm member to null
when it is disposed, leading to a null-ref ex in its SaveState getter.
This ex is caught (synchronously) and logged as an error, which explains
the lack of side effects.
2022-08-18 13:57:44 -04:00
John Colvin
890a23a537
refactor: Rename AsyncEvent.invoke -> Invoke
...
To be syntactically consistent w/ csharp delegates (and the wpf Dispatcher,
which has Invoke/InvokeAsync methods)
2022-08-18 12:39:57 -04:00
John Colvin
ab17eee260
refactor: Remove unused code
2022-08-18 12:39:57 -04:00
Taha Afzal
acadc3bd7c
Fixing merge conflict
2022-08-17 20:26:23 -04:00
Taha Afzal
8701fb7132
Fixing qty in ExchangeOpenOrders for fractional qty orders
2022-08-17 14:12:23 -04:00
Taha Afzal
89fcb3092b
Fixing merge conflict
2022-08-17 12:54:27 -04:00
John Colvin
c9856b96ae
fix build (client): Remove erroneous using statement
2022-08-16 21:12:49 -04:00
John Colvin
04477a4b7c
refactor: Don't copy strings
2022-08-16 21:08:53 -04:00
John Colvin
99371a2ead
feat: Add Open Orders window
2022-08-16 17:25:03 -04:00
John Colvin
70487a8ef7
ui: Make 'B/S' the standard header for 'Side' cols
...
Until now, this header was hardcoded in OrderBookSettings
2022-08-16 17:25:03 -04:00
John Colvin
44c419fdaf
refactor: Move bool-check converter from rec rep to common place
...
Will be used in the new Open Orders window
2022-08-16 17:25:03 -04:00
John Colvin
5eb151f9a0
refactor: Move common orderbook col headers to shared place
...
Specifically, col headers that will be used in the new Open Orders window, for
consistency's sake
2022-08-16 17:25:03 -04:00
John Colvin
855a939c51
refactor: Return obj from Log.not/isnull fns
...
For convenience, so these calls may be used in a chain like manner, etc.
2022-08-16 17:25:03 -04:00
John Colvin
7071d9b961
refactor: Add Not/MaybeNull attributes to Log.not/isnull fns
...
So the compiler recognizes these methods guarentee a particular result of
the expression 'obj is null'
2022-08-16 17:25:03 -04:00
John Colvin
adf14491bc
refactor: Check if obj is of type 'T' in Optional<T>.Equals
2022-08-16 17:25:03 -04:00
John Colvin
7e0e8f2801
refactor: Clean up Optional<T>
2022-08-16 17:25:02 -04:00
John Colvin
4a37e2d6a6
refactor: Implement IKeyedData in generated cs pbuf types
...
For convenience, so we don't have to pass key-selector lambdas all over the
place when dealing w/ IObservable<TableUpdate>s from the pbuf services
2022-08-16 17:25:02 -04:00
John Colvin
12b2371a69
style: Clean up api code-gen template immutable.pb.cs
2022-08-16 17:25:02 -04:00
John Colvin
c19d173983
refactor: Move SecurityStore to spark_core, rename Resolver
2022-08-16 17:25:02 -04:00
John Colvin
203164f372
fix (preemptive): Init default UserSettings.day_fills_grid
...
This fix is preemptive because the hardcoded Day Fills defaults are automatically
used when the UserSettings.day_fills_grid member is null
2022-08-16 17:25:02 -04:00
John Colvin
6f69f1c2e2
fix (preemptive): Apply Day Fills settings migration rules
...
This is a preemptive fix bc as of now (8/14/2022), there are no Day Fills
migration rules
2022-08-16 17:25:02 -04:00
John Colvin
ad1a585b5c
refactor: Move Optional into Spark.Core
2022-08-16 17:25:02 -04:00
John Colvin
f29e367ec7
refactor: Clean up ObservableSortedCollection
...
* Enable nullability
* Run formatter
* Add readonly specifiers where possible
* Improve documentation
2022-08-16 17:25:02 -04:00
John Colvin
18127383f0
refactor: Make IObservableCollection inherit IReadOnly
2022-08-16 17:25:02 -04:00
John Colvin
b450c757c9
refactor: Move ObservableSortedCollection to Spark.Core.Collections
2022-08-16 17:25:02 -04:00
John Colvin
836683bcbe
refactor: Move IObservableCollection to Spark.Core.Collections
2022-08-16 17:25:02 -04:00
John Colvin
c271af30d8
refactor: Get rid of non-generic InsertRange ext
2022-08-16 17:25:02 -04:00
John Colvin
31fab94208
refactor: Get rid of non-generic AddRange ext
...
Most references to this fn were by generic IList<T>s. This resulted in error
prone, misleading code as such calls subtly bypass the compile-type type
constraints provided of the generic impl.
2022-08-16 17:25:02 -04:00
John Colvin
a9b5067d7a
refactor: Move fns from GlobalExtensions to less vague classes
2022-08-16 17:25:01 -04:00
John Colvin
7a31b025a2
refactor: Add 'ms' suffix to exch-open-order timestamp fields
...
Just to make it clear that they are milliseconds (not nanos, micros, etc.)
2022-08-16 17:24:52 -04:00
John Colvin
31897a1b2e
refactor: Change exch-open-order record_id to auto-incremented int
...
To insulate ourselves from potential duplicate-id bugs at the exchange
2022-08-16 16:46:47 -04:00
John Colvin
f93bc592cb
fix: Set RetrievedExchangeOpenOrder.exchange_order_id
...
Bugs (fixed):
* The 'exchange order id' field is empty in open orders data received
by client
2022-08-16 13:22:38 -04:00
John Colvin
6ca2753951
fix (vs): Use precison in terms of actual data for eq comp
...
Bugs (fixed):
* The tick up/down buttons have no effect for vol input cells
Cause: The cell vm ignores some value updates because the equality
comparer incorrectly considers the new value equal to the current one
(because it doesn't use enough decimal places in the comparison)
2022-08-11 01:33:43 -04:00
Taha Afzal
470ca0093e
Adding more logging helpers to VolSurfaceTroubleshootingFunctions
2022-08-10 20:54:10 -04:00
John Colvin
7e1715964f
fix (vs): Pass the vm's 'current_grid' to the model
...
Bugs (fixed):
* Cannot edit volsurface cell values (they are immediately reverted)
Cause: The vm was passing the model's grid back to itself before, effectively
undoing manual edits in cells
2022-08-10 18:27:41 -04:00
John Colvin
39e929a614
fix: Actually use eq-comp member in Property vm
2022-08-10 18:17:58 -04:00
John Colvin
a9aa06f275
fix (vs): Actually use coulmn comparer in cell vm
2022-08-10 18:11:27 -04:00
John Colvin
54510c9e59
refactor (vs grid): Supress recalc reqs while processing update
2022-08-10 14:26:28 -04:00
John Colvin
cb56429f04
refactor: Rename 'execute' -> 'Invoke'
...
To be consistent and interchangeable w/ System.Action
2022-08-10 14:26:28 -04:00
John Colvin
ac8147cc0f
refactor: Add 'implicit operator T(Optional<T>)' for convenience
2022-08-10 14:26:28 -04:00
John Colvin
82ac189ac9
refactor: Strip 'Wrapper' from 'DeferrableActionWrapper' name
2022-08-10 14:26:27 -04:00
John Colvin
5721ff78b6
fix (vs): Only request recalc when input changes (not output)
...
Bugs (fixed):
* The volsurface grid can get into an endless loop of recalc requests
2022-08-09 15:56:05 -04:00
John Colvin
7afd2947f1
refactor: Clean up vs grid vms a bit
...
* Split vs-cell-vm classes up into own files
* Rename classes by changing 'VolGrid' prefix to 'VolSurface'
* Remove unused struct VolSurfaceCellState
* Enable nullable
* Run formatter
2022-08-09 15:55:40 -04:00
John Colvin
c3e3862c5f
refactor: Update vs cell 'is_dirty' synchronously when vals change
2022-08-09 02:57:35 -04:00
John Colvin
bf2dc9ecca
fix (vs grid): Account for nan & rounding error
...
Bugs (fixed):
* The volsurface grid starts flasing is_dirty borders all over the place. The
repro is inexact, but it seems to happen after inputs are changed a few
times (perhaps from loading a previous volsurface).
* The volsurface grid flashes is_dirty borders just from clicking on an input
cell (even if no change is entered).
2022-08-09 02:57:35 -04:00
John Colvin
e0e188a02c
refactor: Enable NaN identity equality in tick_equals
2022-08-09 02:57:35 -04:00
John Colvin
79ba1654d3
fix: Fix typo in tick_equals fn
2022-08-09 02:57:35 -04:00
Taha Afzal
2aab0d18a5
Formatting slide exp, to look like PNL's
2022-08-08 23:45:02 -04:00
John Colvin
312c8ded11
fix (ui pnl): Add greek props to group row vm
...
Bugs (fixed):
* Greek sums still aren't visible in group rows (though they are visible in
Selected/Total header rows)
2022-08-08 16:11:25 -04:00
John Colvin
3f86779da6
ui (launcher): Move PNL menu items to Analytics module
2022-08-08 16:11:25 -04:00
John Colvin
716d3b8482
ui (day fills): Make title & icon consistent w/ PNL win
2022-08-08 16:11:25 -04:00
John Colvin
24f6dbc4f0
ui (day fills): Convert fill_time utc to local
2022-08-08 16:11:25 -04:00
John Colvin
3e943fa35e
refactor (pnl): Add 'PNL' prop to Icons class
...
To make it clear which icon belongs to which window
2022-08-08 16:11:25 -04:00
John Colvin
457f878b41
ui (pnl): Change win title to 'P&L' to match launcher menu item
2022-08-08 16:11:25 -04:00
John Colvin
ac2b2d042a
refactor: Split WorkspaceProtos up into 1 class/file
2022-08-08 16:11:25 -04:00
John Colvin
829d2cdbf6
refactor: Provide ICloneable impl in IProtobuf<T>
2022-08-08 16:11:25 -04:00
John Colvin
3cd9693b36
diag (vs): Log cell vm 'is_dirty' changes
2022-08-08 16:11:25 -04:00
John Colvin
2b52ecf2ef
perf (vs): Supress repeated 'is_dirty' updates
...
Before the updates reach the dispatcher thread
2022-08-08 16:11:25 -04:00
John Colvin
faab60cbc1
ui (vs): Convert NaN to 0 when users clicks tick up/down
2022-08-08 16:11:25 -04:00
John Colvin
b6be0d649d
fix (vs): Don't throw ex if parse_double input is null
...
Bugs (fixed):
* Previous vol surfaces may have missing data, which can lead to an assert
crash in the parse_double fn
2022-08-08 16:11:25 -04:00
Taha Afzal
2a65c45d21
Theos/Greeks are still produced if AW2 window is not loaded
2022-08-08 16:00:48 -04:00
Taha Afzal
dc6ae2ac29
Removing P from the names of greek columns in Day PNL
2022-08-08 11:53:56 -04:00
Taha Afzal
df4250c33a
Hooking AW2 populate empty exps
2022-08-07 22:03:50 -04:00
John Colvin
53504ef6f0
ui (pnl): Improve default settings
2022-08-07 15:18:16 -04:00
John Colvin
10afb1af06
ui (pnl): Show greek sums in group/header rows
2022-08-07 14:59:00 -04:00
John Colvin
a9149dfa87
refactor: Clean up PNLNormalizedData
...
* Use new lang feats: nullable, and 'init' prop setters
* Group 'sod', 'day', and 'working' members in respective groups
* Run formatter
2022-08-07 14:39:44 -04:00
John Colvin
5afa6695e7
fix (pnl view): Enforce min height for 'Selected' header row
2022-08-07 13:51:55 -04:00
John Colvin
d2a6d54090
refactor (pnl): Replace dyn resources w/ Bindings in xaml
...
Traditional Bindings are more performant than DynamicResources, and make for
cleaner code
2022-08-07 13:51:55 -04:00
John Colvin
794ac25c01
log: Change 'Begin/End' tags to 'BEG/END' in log_op ext
...
Improves readability of log_op logs
* Gives the 'BEG/END' tags a uniform width, so their msg bodies will align
* All caps makes the tags stand out
Improves readability by providing uniform width to the BEG/END tags
2022-08-07 13:51:55 -04:00
John Colvin
37214e9480
refactor: Make msg body param optional in 'fn' logger exts
2022-08-07 13:51:55 -04:00
John Colvin
90ab551778
ui (day fills): Format dates in exp col filter
2022-08-07 13:51:54 -04:00
John Colvin
9a4ec46440
fix: Don't begin shutdown til after workspace saved (async)
...
Bugs (fixed):
* Seems like only one window's settings are restored w/ workspace
2022-08-07 13:51:54 -04:00
John Colvin
c86d283755
fix: Supress empty TableUpdates in 'distinct_on'
...
Bugs (fixed):
* Discrete values column filters (i.e., multi-selector views) that are driven
by 'distinct_on' IObservable<TableUpdate> deselect items when the main
grid data changes
Cause: When processing updates from the input IObseravble, the 'distinct_on'
ext doesn't check if the new/old results are equal. This in turn causes the
selector-view to remove, then re-add items that didn't actually change.
Exhibiting reasonable behavior, the view deselects items when they are removed
from the ItemsSource.
2022-08-07 13:51:54 -04:00
John Colvin
941956c1b5
fix: Actually supress false changes in 'to_table_checked' ext
2022-08-07 13:51:54 -04:00
John Colvin
67e3d22104
style: Fix typo in param name '_selector' -> 'selector'
2022-08-07 13:51:54 -04:00
John Colvin
7e41c93f9a
refactor: Rename PNLFilterStates -> PNLFilterSettings
2022-08-07 13:51:54 -04:00
John Colvin
086ccbb3fa
refactor: Weaken T constraint for is_within_range ext
...
There is no reason T has to implement IFloatingPoint<T>
2022-08-07 13:51:54 -04:00
John Colvin
329ddc576d
ui (day fills): Add (groupable) exp column
2022-08-07 13:51:54 -04:00
John Colvin
1faef425ab
refactor: Consolidate format_expiration fns into single fn
2022-08-07 13:51:54 -04:00
John Colvin
bb068cf6b2
fix (preemptive): Add 'Option' case to exp switch expr
2022-08-07 13:51:54 -04:00
John Colvin
f7cade41c6
ui (day fills): Fmt qty cols w/ sec-meta display settings
2022-08-07 13:51:54 -04:00
John Colvin
47afd3a911
ui (day fills): Hide bid/ask cols by default
2022-08-07 13:51:54 -04:00
John Colvin
ef80d2a41d
ui: Shorten a few default column widths
...
Namely: Account, Exchange, and Symbol
2022-08-07 13:51:53 -04:00
John Colvin
44ef080e9f
ui (day fills): Format theo and driver w/ 4 dec places
...
With the caveat that future fills' drivers are formatted according to their own
tick factors (i.e., same as the "price" column). This should be good/reasonable
behavior because in rare cases where futures don't drive themselves, they are
most likely driven by a neighboring expiration with the same price display.
2022-08-07 13:51:53 -04:00
John Colvin
fef8d2c413
ui (day fills): Format price w/ sec's tick factors
2022-08-07 13:51:53 -04:00
John Colvin
201746e561
fix (day fills): Init column models w/ settings
...
Bugs (fixed):
* Day fills column settings are not restored with workspace
Cause: This is a kind-of re-entrancy bug. When the SimpleGridSettingsManager
attempts to load the initial column settings, it assigns props in the column
views. When the width prop is set, the column view forwards the new width to
the model, which causes the model to fire a settings_changed event, which
pipes the model's settings (which have not been fully initialized) back to
the view.
2022-08-07 13:51:53 -04:00
John Colvin
8e375a0b7f
ui (day fills): Use qty fg to indicate fill side
...
Rather than using the row bg, this gives the win a subtler, more modern look
2022-08-07 13:51:53 -04:00
John Colvin
045f3dc060
chore: Move ValueConverter into own file
2022-08-07 13:51:53 -04:00
John Colvin
6b6012236d
ui (day fills): Add pnl, delta foreground triggers
2022-08-07 13:51:53 -04:00
John Colvin
9cee798939
chore: Set ModalStateDefinition ContentProperty
...
For convenience in xaml (so ModalStateDefinition.Source can be defined without
explicit tag)
2022-08-07 13:51:53 -04:00
John Colvin
c79bdb12e0
refactor: Make ActivityLogCategories readonly props
2022-08-07 13:51:53 -04:00
John Colvin
bce77d65de
fix: Add null check in OptionsView
...
Bugs (fixed):
* If an Options View window is launched w/ "incomplete" security criteria
(i.e., not a tuple of Exch, Type, Sym), a null ref crash happens when the
window is restored with the workspace.
2022-08-07 13:51:53 -04:00
John Colvin
0db814ef2d
fix (rec rept): Use tick-factors to avoid rounding errors
...
Bugs (fixed):
* Reconcile Report can show false positive price mismatch
Cause: The epsilon const (1E-12) used in the price comparison too small.
Evidently, the Deribit-position prices provided to the Reconcile Report are
only accurate up to 9 decimal places.
2022-08-07 13:51:53 -04:00
John Colvin
31b5ec4bd3
fix (fills view): Change side col base class row type to the vm
...
Bugs (fixed):
* In the Fills window, side column cells are empty
2022-08-07 13:51:52 -04:00
John Colvin
e15cdfd76e
refactor: Add get bg/fg delegates to RenderColumnBase
...
These colors are frequently functions of the rows; now such cases don't require
implementation in classes that derive from RenderColumnBase
2022-08-07 13:51:52 -04:00
John Colvin
eb150ba82c
chore (ui): Hook up background setting in OrderTypeColumn
2022-08-07 13:51:52 -04:00
John Colvin
d763275179
fix (ui preemptive): Bind horiz align setting to horiz content align
...
Bugs (fixed)
* (preemptive) The OrderTypeColumn root border doesn't span the width of the
column. This would happen if the column's background was a
non-transparent brush, and horizontal alignment wasn't stretched.
2022-08-07 13:51:52 -04:00
John Colvin
2b96a8a5c4
ui: Enable grid background setting in all windows
...
And remove bool props that were used to toggle this behavior
2022-08-07 13:51:52 -04:00
John Colvin
31866c76b7
chore (vs graph): Add tick_line_color setting
2022-08-07 13:51:52 -04:00
John Colvin
a2da946e03
fix (vs graph): Actually use axis_line_color setting in vm
...
Bugs (fixed):
* The vs graph axis line color setting is ignored
2022-08-07 13:51:52 -04:00
John Colvin
528bab34e7
chore: Show color name in ColorNotFoundException msg
2022-08-07 13:51:52 -04:00
John Colvin
776b9e4f94
chore: Remove '_color' and '_brush' props from BTSColors
...
The BTSColor props are implicitly convertible to both System.Windows.Media.Color
and Brush
2022-08-07 13:51:52 -04:00
John Colvin
168d328e97
chore: Clean BTSColorExtension
2022-08-06 23:54:15 -04:00
John Colvin
f871dbd230
chore: Add 'Pure' attr to is_null_or_empty ext
2022-08-06 23:54:15 -04:00
John Colvin
1662b56ea0
refactor: Clean up ReflectionHelper a bit
...
* Rename '(static_)property_delegates_of_type' -> '(static_)property_getters',
and include name w/ prop getters
* Rename 'FindApplicableConstructor' -> 'get_constructor'
* Remove unused fns
2022-08-06 23:54:15 -04:00
John Colvin
f3302dbac0
fix (ui): Validate width/height before updating DragRectAdorner
2022-08-06 23:54:15 -04:00
John Colvin
181072f3e7
chore: Clean up ui settings classes
...
* Move most settings files into new dir 'Model/Settings'
* Conform code style to our current practices
2022-08-06 23:54:15 -04:00
John Colvin
f654312123
chore (refactor): Move synth mgmt settings classes into sep files
2022-08-05 13:41:37 -04:00
John Colvin
c46d97646a
fix: Gather individual win settings on dispatcher thread
...
In practice, window-states live on their respective dispatcher threads.
Window settings factories shouldn't be expected to be thread-safe.
2022-08-05 13:41:37 -04:00
John Colvin
41742359e9
fix (vs ui): Don't clip vs time sched ui
2022-08-05 13:41:37 -04:00
John Colvin
024723925e
ui (vs grid settings): Constrain window height
2022-08-05 13:41:37 -04:00
John Colvin
76b834768e
style: Clean up spark.csproj
2022-08-05 13:41:37 -04:00
John Colvin
89284bea87
build: Upgrade csharp nuget pkgs
2022-08-05 13:41:37 -04:00
John Colvin
532154640b
refactor: Replace PNLCellAppearance ctr w/ 'init' props
2022-08-05 13:41:36 -04:00
Taha Afzal
ab8468d498
Added function in VolSurfaceDisplayModel to populate empty exps
2022-08-04 18:42:15 -04:00
Taha Afzal
84b0332778
Better logs for the case when Deribit's open orders's security can not be resolved
2022-08-03 23:53:57 -04:00
Taha Afzal
20b601f290
Fixed the crash related to querying Deribit for open orders
2022-08-03 16:57:10 -04:00
Taha Afzal
47002cae4c
This PNL fix change was accidentally merged out
2022-08-03 08:47:50 -04:00
John Colvin
eaaffe369a
Fix typo typeof(HyperlinkCell) -> typeof(TextCell)
2022-08-03 00:07:39 -04:00
John Colvin
7292a31c00
fix (rec rep): Save grid settings w/ workspace
2022-08-03 00:07:39 -04:00
John Colvin
389d762a93
ui (launcher): Drop "2" in "P&L 2" menu item
...
It was leftover from the transition to the "new" pnl window (which hasn't been
new since 2019)
2022-08-03 00:07:39 -04:00
John Colvin
9704ebf096
style: Move ReconcileReportModel into rec rep dir
2022-08-03 00:07:39 -04:00
John Colvin
de320338ca
ui (launcher): Group 'Fill' menu items together
2022-08-03 00:07:39 -04:00
John Colvin
668dfd9130
feat (ui): Add Day Fills win
2022-08-03 00:07:39 -04:00
John Colvin
a2960b23a8
refactor (ITradeLogRow): Rename trader -> user, add user_id
...
Use consistent nomenclature throught the sys
2022-08-03 00:01:02 -04:00
John Colvin
55744edc25
refactor: Move SecurityDataHelper.Defaults into Security class
2022-08-02 13:24:48 -04:00
John Colvin
7ece5d18cb
refactor: Move sec 'key_fn' into Security class
2022-08-02 12:37:46 -04:00
John Colvin
8005ac8635
refactor: Name top_of_book tuple items bid/ask
2022-08-01 21:56:07 -04:00
John Colvin
c00a71fdfa
chore: Add fill_kind to ITradeLogRow
2022-08-01 11:14:29 -04:00
John Colvin
197c915968
Remove erroneous font_size binding in xaml
...
Each cell's font size comes from its associated column object (not the cell vm)
2022-08-01 11:14:29 -04:00
John Colvin
6d77a07bbe
fix: Load grid-level settings in pnl window
...
Font family/size/weight, foreground, background
2022-08-01 11:14:29 -04:00
John Colvin
adfb560dd1
chore: Post users-map on the bus
2022-08-01 11:14:29 -04:00
John Colvin
508d20e4e0
refactor: Rename ITradeLogRow.trade_key -> order_key
...
This is what it actually is; the trade_key misnomer was ported from edge
2022-08-01 11:14:29 -04:00
John Colvin
72457619f7
chore: Move IPositionModel to Spark.Trading ns
2022-08-01 11:14:29 -04:00
John Colvin
18d5b83a95
chore: Replace anon pnl win w/ proper PNLWindow class
...
The PNL window is too complex/terse to be nested anonymously in the
PNLWindowFactory class. This makes the code cleaner/easier to read.
2022-08-01 11:14:29 -04:00
John Colvin
653362b947
chore: Make 'Safe' IEnumerable exts accept nullable ref types
2022-08-01 11:14:29 -04:00
John Colvin
b7477b8f93
fix (fills ui): Add back 'Fill Status' col
...
Not sure when/why it went missing
2022-08-01 11:14:29 -04:00
John Colvin
105f1fceaf
ui (pnl): Increase sec column default width
2022-08-01 11:14:29 -04:00
John Colvin
cb65489ab7
fix (combo vm): Fix typo when assigning swipe_sum net/calls/puts
...
Bugs (fixed):
* The swipe sum net/puts are swapped in combo status bar
2022-08-01 11:14:29 -04:00
John Colvin
96772727df
fix (exp params): Ensure auto-picked driver has right sym
2022-08-01 11:14:29 -04:00
John Colvin
960a618fe1
fix: Bind pnl account col to AccountTuple
...
Bugs (fixed):
* The group-row pnl cell hyperlinks don't open anything when clicked
Cause: An InvalidCastException is thrown when the code that creates the fills
vm (for the popup) casts 'PNLRowCollectionViewGroup.Name' to an AccountTuple,
as said 'Name' member is bound to the 'account_name' (of type string).
2022-08-01 11:14:29 -04:00
John Colvin
505cd37225
chore: Assert that PositionPriceSize.GetHashCode isn't invoked
...
Impl doesn't guarentee equal objects produce the same hash
2022-08-01 11:14:28 -04:00
John Colvin
a5f66b8ac6
feat: Add greeks cols to pnl view (for options)
2022-08-01 11:14:28 -04:00
John Colvin
2021f29f62
feat: Support options in pnl view
2022-08-01 11:14:28 -04:00
John Colvin
9ccf3e0f87
chore: Remove UTF-8 BOM from pnl files
2022-08-01 11:14:28 -04:00
John Colvin
7cfc53eba8
refactor: Make sum_real ext generic (IFloatingPoint<T>)
...
Also add bool param 'nan_if_none' (to return NaN instead of 0 when values
contains no real numbers)
2022-08-01 11:14:28 -04:00
John Colvin
f9d269c750
chore: Add account_id to ITradeLogRow, IPNLUnit
2022-08-01 11:14:28 -04:00
John Colvin
67d5161fd1
chore: Dispose _pnl_calc in ReportDaemon.Dispose
...
This wasn't causing any problems in practice (this class is instantiated once
on startup and never gets disposed). However, since it implements IDisposable,
might as well do it correctly.
2022-08-01 11:14:28 -04:00
Taha Afzal
d6e9bbce71
Something funky, not sure why it is showing as touched
2022-08-01 11:14:28 -04:00
John Colvin
76ec2c0fa2
fix: Pass key_fn to TableUpdate Operate ext
...
Bugs (fixed):
* PNL window crashes immediately when opened
Cause: The 'Operate' ext fn aggregates an IObservable of TableUpdates w/
another IObservable of any T. If the latter fires before the former, an
'empty' TableUpdate is passed to the aggregate fn. When this happens, a
null ref ex is thrown in the 'empty' TableUpdate's ctr because the key
param is null.
2022-08-01 11:14:28 -04:00
Taha Afzal
e82a2c9402
Added Day PNL trades to PNLData
2022-08-01 11:14:28 -04:00
Taha Afzal
60ce106e24
Fixing a PNL crash which was caused by options for a symbol being temporarily null
2022-08-01 11:14:28 -04:00
Taha Afzal
1eb4952422
Added Control Keys to sheets, Ctrl + right click always brings up the context menu, Ctrl + market always brings up the ladder
2022-08-01 11:14:28 -04:00
Taha Afzal
3043582889
Improved some log messages
2022-08-01 11:14:28 -04:00
Taha Afzal
f604db6517
Reorganized PNL calculator and associated types
2022-08-01 11:14:28 -04:00
Taha Afzal
f95b0c19d7
Added PNL Calculation code
2022-08-01 11:14:28 -04:00
taha afzal
655bf87e92
Fixing open orders callback (was firing intermittent callbacks)
2022-07-22 16:36:52 -04:00
taha afzal
6d06a1920d
OrderServiceServer now publishes open orders
2022-07-22 15:16:03 -04:00
taha afzal
70af51e163
ExchangeOpenOrders are now routed all the way to OrderServiceServer
2022-07-21 20:36:17 -04:00
taha afzal
2c17fe334e
Added Exchange Open Orders function to IExecutionGateway
2022-07-21 00:38:15 -04:00
taha afzal
5eca2cd3ac
Exchange Open orders are routed all the way to EMExecutionGateway
2022-07-20 20:13:56 -04:00
taha afzal
4b5ff8cad4
Adding AsyncRequestHelper to EmMDListener, that allows code to be shared bw positions and open_orders request
2022-07-20 15:29:25 -04:00
taha afzal
89d5b25cc7
For EmMDListener, added a limit of 5 pending calls for positions, after which the counter is reset is positions are re-requested
2022-07-12 17:03:19 -04:00
Taha Afzal
3e10d403b4
Combo Report now listens to the sectups in the report configuration
2022-07-12 09:35:42 -04:00
Taha Afzal
1ebf06d49a
Slide report filters the securities based on the security tuples passed in the report
2022-07-12 09:35:42 -04:00
Taha Afzal
2be857a851
Forcing qty's to be rounded to 2
2022-07-12 09:35:42 -04:00
John Colvin
1de22a82e8
fix (combo settings ui): Refresh 'result' when sec criteria changes
...
Bugs (fixed):
* In Combo settings dialog, security criteria changes aren't committed to
server if they are the last prop changed before OK click
2022-07-12 01:00:51 -04:00
John Colvin
f275308cc8
build (client cpp): Remove ZERO_CHECK.vcxproj from spark_client.sln
...
The new cmake generates ZERO_CHECK.proj instead, which doesn't need to be
included in the sln. I think this change was introduced in v 3.22.
Devs: This won't break the build for older versions of cmake, although you may
need to manually touch "CMakeLists.txt" when you add/remove build src files
2022-07-12 01:00:44 -04:00
taha afzal
79de0dd4d8
Removed exchange from sub acocunt config
2022-07-11 21:13:05 -04:00
taha afzal
5cedf74406
Merge branch 'spark_crypto.multiple_accounts' into spark_crypto.dev
2022-07-11 17:44:02 -04:00
taha afzal
e5de6b4ad7
Changed the relationship of internal account to sub account to simple 1:1
2022-07-11 17:28:53 -04:00
John Colvin
e467195de1
chore (combo vm): Let end observer call OnDispatcher
...
This behavior could arguably be coupled with a Subscribe call, since its whole
purpose is to ensure subscription callbacks occur on the dispatcher thread.
2022-07-11 17:22:44 -04:00
John Colvin
913a5b4a7e
ui (combo settings): Show contract picker
2022-07-11 17:22:44 -04:00
John Colvin
feb8bd9b79
ui (slide settings): Show contract picker
2022-07-11 16:55:23 -04:00
taha afzal
846ecfa776
Fixed the reconcile issue where if the security existed in multiple accounts it was getting surpressed in one
2022-07-11 13:27:10 -04:00
taha afzal
d98fb399a8
Exchange Positions can now be obtained for multiple sub accounts
2022-07-09 01:40:28 -04:00
taha afzal
4a1c1d023a
Changes to accomodate the EM API change for mulitple accounts
2022-07-06 16:42:04 -04:00
taha afzal
43cba548f4
Adding some details to the logs to track order flow
2022-06-24 15:05:15 -04:00
taha afzal
772910ffe5
Fixing filled qty's fractional part not being filled on the server
2022-06-23 14:38:57 -05:00
John Colvin
767179caf7
chore (man fills): Format qty w/ sec metadata config
2022-06-23 14:38:57 -05:00
John Colvin
ee4a9150b8
refactor (man fills): Rename 'size' members 'quantity'
2022-06-23 14:24:04 -05:00
John Colvin
58914fa703
chore: Replace remaining refs to uint 'filled' fn w/ double impl
2022-06-23 14:24:04 -05:00
John Colvin
ba40e7044a
fix (ladder, preemptive): Fix typo in _fmt_mkt_depth_item
...
Bugs (fixed):
* The _fmt_mkt_depth_item fn potentially will return the result of the
delegate.ToString(), instead of invoking the delegate and returning the
result
2022-06-23 14:10:15 -05:00
John Colvin
010d0073fe
chore: Set BTC qty display config defaults
2022-06-23 02:05:23 -05:00
John Colvin
40210ce42e
chore: Remove unnecessary price_display config default
2022-06-23 01:35:22 -05:00
John Colvin
59cdafba21
fix: Don't cast manual fill qty to uint
2022-06-23 01:22:09 -05:00
John Colvin
fe6226baa5
ui (reconcile rep): Match all undefined positions
...
Now, all positions without real non-zero quantities are considered matches
2022-06-23 01:19:27 -05:00
John Colvin
45987c7652
feat: Show fractional qty in orderbook Filled col
2022-06-22 16:04:24 -05:00
John Colvin
a18ce97fb4
feat (ui): Support fractional qtys for order entry
2022-06-22 15:38:38 -05:00
John Colvin
13d5080bbc
refactor: Shorten modify/revert cmd prop names
...
Also consolidate modify_price/qty fns into single modify_order fn
2022-06-22 15:38:38 -05:00
John Colvin
9f07a36d1d
refactor: Move order-update-desc fn into OrderUtils for gen use
2022-06-22 15:38:38 -05:00
John Colvin
bc2e7f428a
chore: Add formal/consistent numeric exceptions/messages
2022-06-22 15:38:38 -05:00
John Colvin
53bfbdd349
fix: Sync 'has_value' prop for qty param
...
Bugs (fixed):
* Can't tick qty up/down in the orderbook right panel (clicking the
button has no discernible effect)
2022-06-22 15:38:38 -05:00
John Colvin
174eac9a59
refactor: Move OrderParamsVM into own file
...
OrderBookVM.cs was (and frankly still is) massive. Too massive
2022-06-22 15:38:38 -05:00
John Colvin
3775b86d9e
refactor: Rename 'size_' props 'quantity_' to be consistent
2022-06-22 15:38:38 -05:00
John Colvin
5e1c6d6209
fix build (windows): Don't include stdint-uintn.h on windows
2022-06-22 15:38:37 -05:00
taha afzal
0d0fb036ab
EmMDListener now get_open_orders and logging the open orders
2022-06-22 15:38:37 -05:00
taha afzal
f8668802ab
Fixing oder updates on fractional quantity orders (just a few lines)
2022-06-22 15:38:37 -05:00
taha afzal
c22a1382a1
Fractional qtys now work on the server (need some client side work)
2022-06-22 15:38:37 -05:00
Taha Afzal
941a0d91cc
Enabled Combo report to show fractions (ITradeLow had size of type int)
2022-06-13 20:01:47 -04:00
taha afzal
60456e4225
Deribit market data is blanked out now if the connection to Deribit is lost
2022-06-10 09:54:22 -04:00
John Colvin
440e28489a
build: Update libspark CMakeDeps_win
2022-06-09 13:49:55 -04:00
John Colvin
3da0f4eedc
ui: Indicate price discrep w/ subtler visual than qty discrep
2022-06-09 13:49:55 -04:00
Taha Afzal
497abfb443
Fixing Futures PNL in slide
2022-06-09 00:15:23 -04:00
Taha Afzal
7b04a7849b
Future delta fixed in Slide
2022-06-08 15:56:24 -04:00
taha afzal
e14b1e0b07
Limiter does not use StaticLimiter anymore because Deribit and Options are included in Risk enforcement now
2022-06-08 15:55:24 -04:00
John Colvin
2121ce2841
fix build (server gcc): Remove noexcept specifier from copy/move ops
...
The gcc compiler was deleting the copy/move operators declared in the
MarketDataSubscription class. This behavior was appropriate, as those
operators were declared with the 'noexcept' specifier, while the
copy/move operators of one of its members, params_ (of a proto-generated
type), lacked the 'noexcept' specifier.
2022-06-08 13:43:12 -04:00
John Colvin
c22e99941e
fix build: Disable ccapi dependent code on windows
...
It seems the ccapi lib doesn't support windows. External market data
subscription code only needs to be built on the server anyways.
2022-06-08 11:42:10 -04:00
John Colvin
3da646dc8a
fix build: Remove unnecessary import from binance-md proto
...
This removes an 'unused import' warning on build
2022-06-08 11:12:13 -04:00
John Colvin
fca675d43f
feat: Add option/deribit params to risk ui
2022-06-07 23:20:59 -04:00
John Colvin
a30523744d
feat: Implement ftx md subscription
...
Run 'sparkd ladder-demo' to check it out
2022-06-07 23:20:59 -04:00
John Colvin
80f5117c34
chore: Add is_empty fn to BookLevel
...
This pre-emptively fixes the BookSide::is_sorted fn, as it references
the previously non-existent BookLevel::is_empty fn
2022-06-07 23:07:33 -04:00
John Colvin
f77f73ec36
fix: Fix typo in MarketDataError type param
2022-06-07 23:07:33 -04:00
John Colvin
2385cf0d1b
refactor: Add add/remove fns to composite listener for convenience
2022-06-07 23:07:33 -04:00
John Colvin
bc778ad5bb
refactor: Rename CompositeListener -> CompositeMarketDataListener
...
Obviously a better, more descriptive name, and it matches the filename
(the oldname must have been an accident)
2022-06-07 23:07:33 -04:00
John Colvin
acb9c35d3b
logging: Add ccapi log adaptor
2022-06-07 23:07:33 -04:00
John Colvin
b8473e2632
Update externals to get ccapi lib
2022-06-07 23:07:33 -04:00
John Colvin
61b4696574
fix: Don't print bogus level in LadderLivePrinter
...
This is used when running 'sparkd ladder-demo'
Bugs (fixed):
* Sometimes it prints a bogus level
cause: The 'last_ask' iterator is pointing just after the last element
(i.e,. asks.end(), a bogus value)
2022-06-07 23:07:33 -04:00
John Colvin
91a79a5d96
refactor: Simplify md gateway/binance subscription
...
* Temporarily get rid of the register_listener fn, and just use
subscribe/unsubscribe to immediately connect/disconnect listeners to
exchange feeds. The 'register, then subscribe per sec-id' paradigm is
tricky to implement without access to security ids.
2022-06-07 23:07:33 -04:00
John Colvin
23927edf46
fix: Add missing log msg param
2022-06-07 22:44:33 -04:00
John Colvin
6c03e605b8
refactor: Consolidate md listener management into MarketDataGateway
...
This responsibility was awkwardly split between MarketDataGateway and
BinanceDepthStreamSite before, which made code confusing/hard to follow.
2022-06-07 22:44:33 -04:00
John Colvin
2e201159d8
refactor: Move BinanceDepthStreamParams into own file
2022-06-07 22:44:33 -04:00
taha afzal
5d56a8e440
Added some comments and imporves the logs
2022-06-06 17:27:08 -04:00
taha afzal
7097c85555
Fixing the SQLite error on archive_theos that was crashing the server on a duplicate key assertion
2022-06-06 15:14:57 -04:00
John Colvin
bf4c8e252f
Add install dir to gitignore
2022-06-03 22:41:16 -04:00
John Colvin
866cf33cd4
build: Set CMAKE_INSTALL_PREFIX (for deployment)
...
Run 'cmake --build <path_to_build> --target install' to create a self-
contained executable sparkd in the 'install' dir at the root of the repo
2022-06-03 22:35:44 -04:00
John Colvin
4561560b46
Remove redundant 'build' items in gitignore
2022-06-03 22:32:07 -04:00
John Colvin
bbadbf8e16
build: Move .cmake files to cmake dir (from tools)
2022-06-03 10:42:32 -04:00
John Colvin
68d8659115
fix (ui/slide): Fix greek tick-display formatting
...
Rather than fix the format fn for the old type, TickDisplaySettingsTuple,
convert params to the newer type, TickDisplaySettings, then call that type's
formatting fn (which isn't broken).
2022-06-03 01:16:03 -04:00
John Colvin
dd008962a7
ui (slide/vs settings): Adjust expand/collapse durations
2022-06-03 00:42:05 -04:00
John Colvin
e856e7e58f
style: Add 'at_most/least' aliases for min/max ext fns
...
Also add documentation (for completeness sake)
2022-06-03 00:41:04 -04:00
John Colvin
634d8e1aeb
fix (pre-emptive): Add null check in SecurityFormatter
2022-06-02 17:44:38 -04:00
John Colvin
eaa9376577
fix (pre-emptive): Add some null checks in ContractLegEnumerable
...
And clean up the code a bit while we're at it
2022-06-02 17:44:38 -04:00
John Colvin
3fb70fd645
fix (contractpicker): Don't init SecurityMap w/ empty dict
...
Bugs (fixed):
* The create-synth dialog crashes when picking a new leg's security
2022-06-02 17:44:38 -04:00
John Colvin
b793c75aa8
Add some null checks to LegSpreaderParamsTuple
2022-06-02 17:44:38 -04:00
John Colvin
cb26b9af39
fix (contractpicker): Remove SecurityMap CoerceValueCallback
...
This was breaking the binding so that the view had a different
security-map instance than the vm
2022-06-02 17:44:38 -04:00
John Colvin
f8059cc87e
build: Add verbosity opt to buildspark.py
2022-06-02 17:44:38 -04:00
John Colvin
07fe19ecdc
build: Symlink emumba license in build dir
...
So we don't have to do it manually
2022-06-02 02:15:14 -04:00
John Colvin
a292fe87e1
build: Set up cmake 'install' build target
...
The 'install' build target creates a self-contained (deployable) sparkd
package. It copies the sparkd executable and its dependencies into a
single directory (no symlinks), which can then be copied/deployed to
another machine.
Run `cmake --build . --target install` to install sparkd in the
directory defined by the CMAKE_INSTALL_PREFIX variable.
2022-06-02 01:32:17 -04:00
John Colvin
03d915b55c
Update externals to get emumba deribit lib 2.2.8
2022-06-02 00:47:42 -04:00
John Colvin
cc318535e9
fix (slide settings ui): Add show_commas prop to GreekDisplayVM
...
Bugs (fixed):
* The 'show commas' check box doesn't do anything in slide settings ui
Cause: The view is bound to a non-existent prop in the vm
2022-06-01 19:28:13 -04:00
John Colvin
9d245f3243
ui (vs settings): Wrap body in scrollviewer
2022-06-01 19:02:42 -04:00
John Colvin
6d7f95ac8e
ui (vs settings): Change radio buttons to dropdown
...
The radio buttons take up too much space
2022-06-01 19:02:42 -04:00
John Colvin
9d9df76f4e
refactor: Clean up KeyedTemplateSelector
...
* Use new lang feats
* Run formatter
* Split up classes into separate files
* Move into Controller dir (per the MVCVM paradigm)
2022-06-01 19:02:42 -04:00
John Colvin
a850082f44
refactor: Move StringExtensions to ns Spark.Core
2022-06-01 19:02:42 -04:00
John Colvin
521150a73b
refactor: Clean up StringExtensions
...
* Use new lang feats
* Run formatter
2022-06-01 19:02:42 -04:00
John Colvin
ed5f3fe740
ui (slide settings): Change param validation msgs
...
Change 'Specify' to 'Choose'
2022-06-01 19:02:41 -04:00
John Colvin
fd6fdd9768
Refresh radio-button-member 'IsChecked' when member-val changes
2022-06-01 19:02:41 -04:00
John Colvin
73bf104e9f
fix: Add null check
...
Also use null coalesce syntax to clean up existing null checks
2022-06-01 19:02:41 -04:00
John Colvin
24640e65b1
fix (pre-emptive): Add null check
2022-06-01 19:02:41 -04:00
John Colvin
eadfc38a69
refactor: Use nullability feat in ExceptNull, DisposeAll fns
2022-06-01 19:02:41 -04:00
John Colvin
098ee36c3a
fix: Init NotifyCollectionChangedEventArgs w/ correct args
...
Bugs (fixed):
* The ObservableAggregateCollection.Aggregator.Insert fn causes an
ArgumentException if the collection to be inserted is non-empty. This seems
to happen because the NotifyCollectionChangedEventArgs is improperly
constructed (the collection-tuple is passed as the 'changedItem' arg).
* The ObservableAggregateCollection.Aggregator.Insert fn appends existing
items to the end of the aggregate collection (instead of inserting them in
the appropriate index).
Note: This bug was only revealed after the first bug was fixed.
2022-06-01 19:02:41 -04:00
John Colvin
f4ed4d38f1
refactor: Change collection aggregator to use IReadOnlyList
...
It was previously accepting IReadOnlyCollection args, but the
ObservableCollection paradigm generally uses indexed lists
2022-06-01 19:02:41 -04:00
John Colvin
2ed3eaa325
refactor: Check if list already instantiates IList<T>
...
Before creating a new MutableWrapper<T>
2022-06-01 19:02:41 -04:00
John Colvin
3a7a02244b
refactor (ui): Use ExpandedContentSelector in vs win
2022-06-01 19:02:41 -04:00
John Colvin
79258b9404
fix (slide): Observe IObservables OnDispatcher
2022-06-01 10:11:26 -04:00
John Colvin
6376802d04
ui (slide): Use ExpandableContentSelector
2022-06-01 10:11:26 -04:00
John Colvin
2784e7652d
ui (control): Add ExpandedContentSelector for modal section-expansion
2022-06-01 10:11:26 -04:00
John Colvin
5b3925fae0
fix: Set GridSettings.enable_background_color in settings vm
2022-06-01 10:11:26 -04:00
John Colvin
077f6050f3
ui (login): Add F5 'refresh' cmd to retry connecting to server
2022-06-01 10:11:26 -04:00
John Colvin
791dd62b67
fix (ui): Fix typos in vs settings editor xaml
...
* Remove non-existent xmlns
* Change element-name 'curve_ops_gb' to 'StandardCurveOpsView'. The _gb suffix
doesn't make sense bc the element is no longer a GroupBox, and the new name
is stylistically consistent with the other section-view element-names
* Change 'Market Fit View' to 'Market Fit'
2022-06-01 10:11:15 -04:00
John Colvin
2364cda362
ui: Tweak expand/collapse animation
...
Use shorter duration for collapsing, and longer for expanding
2022-06-01 00:00:57 -04:00
John Colvin
aca4365e8d
fix (pre-emptive): Add null check
2022-05-31 16:43:22 -04:00
taha afzal
cac857a3a7
Busted fills filtered out of the PositionService position calculations
2022-05-30 15:38:08 -04:00
John Colvin
ed38ce958d
build: Resurrect web build
2022-05-28 11:40:45 -04:00
Taha Afzal
ed4b9b7426
Added is_active to ITradeLogRow, and changed Combo and Slide to use that
2022-05-26 19:31:13 -04:00
Taha Afzal
e4468f056d
Filtering out busted fills in Slide
2022-05-26 19:17:23 -04:00
Taha Afzal
4b580b407e
Adding FillStatus to ITradeLogRow and filtering the busted fills out in Combo
2022-05-26 19:08:47 -04:00
taha afzal
b575612b07
Fixing Busting of fills on ResetPositions
2022-05-26 18:39:19 -04:00
John Colvin
b506b971a4
feat: Init order ticket w/ default account from ladder profiles
2022-05-26 15:44:02 -04:00
John Colvin
c50f322dc1
refactor: Remove 'where class' constraint from FirstAsyncTask
...
The constraint didn't seem to serve a purpose
2022-05-26 12:57:02 -04:00
John Colvin
3a61f4d81d
ui: Add default-background control to grid settings dialog
2022-05-26 12:57:02 -04:00
John Colvin
a2b2de9783
feat: Reconcile Report
2022-05-25 14:28:58 -04:00
John Colvin
b2a6927b4b
Enable all column settings in mview (for all cols)
2022-05-25 14:28:57 -04:00
John Colvin
80dec4e1e2
ui: Fix typo to enable column background in GridSettingsView
2022-05-25 14:28:57 -04:00
John Colvin
77c7802496
Set cell-view's DIYGrid.Column when syncing w/ column geometry
2022-05-25 14:19:04 -04:00
John Colvin
cec2687085
ui: Increase default 'Security' col width
...
Many Deribit securities are wider than the previous col width
(particularly options)
2022-05-25 14:19:04 -04:00
John Colvin
ac118993d5
refactor: Change ManualFill.quantity to double
2022-05-25 14:19:04 -04:00
John Colvin
7634ecf730
refactor: Break up massive file Update.cs
...
Into one file per class
2022-05-25 14:19:04 -04:00
John Colvin
309d1fa287
refactor: Remove LegacyTableUpdate class
2022-05-25 14:19:04 -04:00
John Colvin
9231a91fb4
Fix typo in Update.merge fn
...
Bugs (fixed):
* When merging updates, a new ChangeDict is always instantiated
(sometimes unnecessarily). This was causing a performance hit, but
not actual bad/incorrect behavior, so it went unnoticed for years
2022-05-25 14:19:04 -04:00
John Colvin
f6f928a693
refactor: Move MarketDataAuxiliaryModel into Model dir
2022-05-25 14:19:03 -04:00
John Colvin
467216439b
refactor: Move PositionModel classes into own files
2022-05-25 14:19:03 -04:00
John Colvin
c63e73ab7c
refactor: Move SparkObservableExtensions into own file
...
And rename class ReactiveObservableExtensions
2022-05-25 14:19:03 -04:00
John Colvin
74fcacd800
Clear 'raw' (unfiltered) table changes on filter-updates
...
Otherwise, it would repeat the changes from the last data-update, and
break the incremental sequence
2022-05-25 14:19:03 -04:00
John Colvin
c1c46f01ab
refactor: Use DispatcherObservable class to avoid op chains
2022-05-25 14:19:03 -04:00
John Colvin
77083a1fa6
fix: Don't bypass Dispatcher.InvokeAsync in OnDispatcher ext
...
Otherwise the updates may not be received in order
2022-05-25 14:19:03 -04:00
John Colvin
5303f290b1
refactor: Move sec metadata utils into SecurityMetadataStore
2022-05-25 14:19:03 -04:00
John Colvin
895871c94b
refactor: Move SecurityCriteria classes into spark_core
...
Also move IBus there bc some SecurityCriteriaExtensions depend on it
(and spark_core seems more appropriate for IBus anyways)
2022-05-25 14:19:03 -04:00
John Colvin
3bff50b764
diag: Add TableUpdate.description ext
...
For diagnostic logging/tracking down bugs
2022-05-25 14:19:03 -04:00
John Colvin
86b7802b3b
Use RadioButtonGroupManager.Value prop instead of DataContext
...
This more clearly defines the behavior
2022-05-25 14:19:03 -04:00
John Colvin
4ff9aaf037
refactor: Clean up DIYGridFilterModel
2022-05-25 14:19:03 -04:00
John Colvin
99f7827e7e
refactor: Clean up RadioButtonGroupManager/Map
2022-05-25 14:19:03 -04:00
John Colvin
b67ac5c849
Simplify slide settings view by using RadioButtonGroupManager (not map)
2022-05-25 14:19:03 -04:00
John Colvin
0777f01607
fix: Remove il-advised SelectedItem(Binding) dp
...
It doesn't make sense to try to normalize the binding for different
groups into a single binding in the group manager
2022-05-25 14:19:03 -04:00
John Colvin
222dbf5443
refactor: Move RadioButtonGroupManagerMap into own file
2022-05-25 14:19:03 -04:00
John Colvin
9434f61030
fix: Make GroupManagerMap an Attached dp
...
It always should have been attached (analagous to a static prop)
2022-05-25 14:19:03 -04:00
John Colvin
9199594756
fix: Add null check for put/call_points in VolSurfaceDataFunctions
2022-05-25 14:19:03 -04:00
John Colvin
fc9318a831
ui: Refine vs settings dialog
...
Make it look more like combo/slide settings dialogs
2022-05-25 14:19:03 -04:00
John Colvin
e3fc28f082
fix: Wrap algometadata proto list in single class
...
Bugs (fixed):
* An exception is thrown when deserializing
AlgoDefinitionPersistedMetadata array
2022-05-25 14:19:03 -04:00
John Colvin
9cb7b84f57
Only recreate TViews when necessary in RXCollection
2022-05-25 14:19:03 -04:00
John Colvin
2689ed806d
fix: Add null check in VolSurfaceDataFunctions.get_symbols
2022-05-25 14:19:03 -04:00
John Colvin
5999e7856f
fix: Add null check for sec metadata in MDDaemon
2022-05-25 14:19:03 -04:00
John Colvin
96ad67b020
fix: Ensure ShellModuleVM.MenuContent is created at most once
2022-05-25 14:19:03 -04:00
John Colvin
47d5b95e13
ui (exp params): Add 'Set Driver to Nearest Exp' menu item
2022-05-25 14:19:02 -04:00
John Colvin
12108e6046
fix: Fix typo in 'abs' ext (should accpet INumber<T>)
2022-05-25 14:19:02 -04:00
John Colvin
021bdb8c23
Add ObservableHashSet
2022-05-25 14:19:02 -04:00
John Colvin
470f6c0988
Add Opacity option to ColorExtension (for xaml)
2022-05-25 14:19:02 -04:00
John Colvin
c8b87b4f79
Remove the ill-advised FontFamily enum
...
The library of potential font families to choose from is endless, so it
doesn't make sense to limit a user's options to a small set of arbitrary
presets
2022-05-25 14:19:02 -04:00
John Colvin
9d7e16fbf7
refactor: Move FontFamily exts into own file
...
This resolves some nagging namespace conflicts w/ FontFamily (in
System.Windows.Media and mbts.ui.utility.text)
TODO: Get rid of mbts.ui.utility.text.FontFamily (it was an ill-advised
enum to begin with)
2022-05-25 14:19:02 -04:00
John Colvin
5a45d5e12a
fix: Ensure AlgoData IObservable fires at least once
...
Bugs (fixed):
* The algo dropdown in ladder/ticket is empty
Note: this bug was exposed as side effect of a recent change to
prevent the TableUpdate Filter ext from firing empty TableUpdates
2022-05-25 14:19:02 -04:00
John Colvin
c793ec78a2
Don't send empty updates in TableUpdate Filter ext
2022-05-25 14:19:02 -04:00
John Colvin
7b2b7c5854
refactor: Get rid of 'semi_transparent' brushes in BTSColors
...
Doesn't seem worth the clutter
2022-05-25 14:19:02 -04:00
John Colvin
327615c9ac
refactor: Move 'position' utils from OrdersModel to PositionModel
...
OrdersModel contains way too much "miscellaneous" code. This will
reduce at least some of the clutter.
2022-05-25 14:19:02 -04:00
John Colvin
8e5d94b5e7
refactor: Move TickDisplayConverter into mbts.ui.converters ns
...
This is where all the other IValueConverter classes are defined
2022-05-25 14:19:02 -04:00
John Colvin
bd76a1f260
ui: Only expand one section at a time in slide settings dialog
2022-05-25 14:19:02 -04:00
John Colvin
1df2695f50
refactor: Clean up FillsVM
2022-05-25 14:18:57 -04:00
John Colvin
67d33a3315
Add null-check when disposing ObservableAutoWrapper item-hooks
2022-05-25 14:07:21 -04:00
John Colvin
c49cd3a06e
refactor: Clean up DIYGridRowsManager and related files/types
...
* Rename class suffix 'Manager' -> 'Model'
* Move classes into own files
* Put column-related classes in columns dir
* Enable nullable
* Run formatter
2022-05-25 14:07:21 -04:00
John Colvin
6c0545f566
fix: Don't deserialize AlgoDefinitionMetadata[] w/ length prefix
...
Bugs (fixed):
* AlgoDefinitionMetadata[] deserialization fails
2022-05-25 14:07:21 -04:00
John Colvin
f0eee365f9
fix: Catch & log deserialization exceptions
...
Rather than silently catching the exception upstream
2022-05-25 14:07:21 -04:00
John Colvin
274db506a9
Clean up DiscreteValuesFilterVM
2022-05-25 14:07:21 -04:00
John Colvin
1e5c56f3a7
refactor: Make key param optional in TableUpdate Filter ext
2022-05-25 14:06:49 -04:00
John Colvin
871c7a131f
refactor: Move Position extensions to own file in spark_api
2022-05-24 12:25:16 -04:00
John Colvin
7642d73f39
Add join_table fn to SecurityStore
2022-05-24 12:25:16 -04:00
John Colvin
ef69dfa646
refactor: Add 'table' subscription fns to generated proto services
...
* Provides a simple convenience, as nearly all api subscriptions made on the
front-end are converted to TableUpdates anyways
* Can help reduce overhead by instantiating TableUpdate subscriptions
lazily, and by using one internal TableUpdate subscription to provide
notifications to all observers
2022-05-24 12:25:16 -04:00
John Colvin
377be5030f
style: Clean up pb.cs templates (generated code)
2022-05-24 12:25:16 -04:00
taha afzal
896af55e79
Added commented to document flow of ExchangePosition
2022-05-24 12:24:47 -04:00
Taha Afzal
b9a4a2c148
Added right click context menu item in the sheets to launch ladders
2022-05-23 15:36:49 -04:00
Taha Afzal
e9f6d096cf
Disabling tasking context menu items from the sheet
2022-05-23 14:46:47 -04:00
taha afzal
25d4c54284
Added account_id to ExchangePosition
2022-05-23 11:51:10 -04:00
taha afzal
e4291e1c51
Adding account to ExchangePosition
2022-05-19 18:16:46 -04:00
taha afzal
5c11708728
Fixing assert on_get_all_position callback from EM
2022-05-18 17:56:06 -04:00
taha afzal
73a301192f
Fixing ExchangePosition's qty (unsigned uint related bug) and exchange
2022-05-18 17:14:39 -04:00
Taha Afzal
d972564d34
Clip defaults changed
2022-05-18 01:16:39 -04:00
taha afzal
e66a2d4663
Rejected orders now show up in the Orderbook UI
2022-05-18 00:42:00 -04:00
Taha Afzal
f92e13d898
Logging the key of the placed order
2022-05-16 16:03:46 -04:00
John Colvin
3d0698b326
task: Set ManualFill.FillType to 'AdminDay'
2022-05-16 15:57:28 -04:00
Taha Afzal
1e0ab86a24
MD entitlements turned off temporarily until we can add the settings to Risk Admin (web)
2022-05-12 18:02:22 -04:00
Taha Afzal
caa29b9513
Reducing market data related logging
2022-05-12 16:21:42 -04:00
Taha Afzal
c793768918
Bug with VolSurfaceUsage fixed
2022-05-12 00:09:37 -04:00
John Colvin
0132a0cff6
ui (exp params, combo): Format exps with month abv & day
...
This formatting is consistent with the rest of the system. Furthermore, it
ensures all sym/exp combinations have unique string reps (some symbols can have
multiple exps in one month, such as ETH).
2022-05-11 15:19:50 -04:00
John Colvin
f83b6ee898
ui (slide): Prevent last-trade & swipe-sum from overlapping
2022-05-10 13:38:36 -04:00
John Colvin
dc071dfa56
fix: RaisePropertyChanged when vm 'HasErrors' changes
2022-05-10 13:34:29 -04:00
John Colvin
fbfd601270
ui: Refine slide settings dialog
...
* Unify greeks configuration/display settings into one section
* Replace tabs with modal expandable sections (like in the analytics
shell module view)
2022-05-10 13:34:29 -04:00
John Colvin
9b5aea2458
refactor: Abstract out modal expand/collapse animation/behavior
...
From the analytics module view (so it can be used by other windows)
2022-05-10 13:31:57 -04:00
taha afzal
904ef92ece
Added reset_position to PositionService
2022-05-09 14:40:44 -04:00
John Colvin
74e950d459
ui: Don't filter manual fills
2022-05-07 17:51:44 -04:00
John Colvin
e99caef2dc
ui: Change 'Show Expanded' to 'Expand Symbols' in slide/combo
2022-05-07 16:42:15 -04:00
John Colvin
855e4a6ed8
ui: Change combo 'expand' icon to chevron right
...
It expands to the right (not down)
2022-05-07 16:40:16 -04:00
John Colvin
311b956461
Set manual fills' FillType to ADMIN_DAY (when creating)
2022-05-07 16:19:10 -04:00
John Colvin
b3b308cd9d
ui (fix): Set DIYGridLineAdorner.IsHitTestVisible to false
...
Otherwise it prevents click events from reaching the grid
2022-05-07 14:02:51 -04:00
John Colvin
a8480a34ba
fix: Detach DIYGridLineAdorner on dispose
2022-05-07 14:02:46 -04:00
John Colvin
3312637b8d
dev/john: Add vscode json files for windows/client
2022-05-07 13:57:49 -04:00
John Colvin
e6f7a82fb1
dev/john: Move 'vscode' json files into vscode/linux
...
They've always been specific to the linux/server code. Moving them as such
to make room for windows/client specific settings files.
2022-05-07 13:57:49 -04:00
John Colvin
5b934de69a
Add redundant checks to ensure readonly cells aren't copy/pasted in vs grid
2022-05-07 13:57:49 -04:00
John Colvin
0f78982f57
fix: Support copy/pasting in vs grid on readonly cell click
...
Only the option to copy the individual column value should be
hidden/disabled for readonly cells
2022-05-07 13:57:49 -04:00
John Colvin
18abbfc502
fix: Use vs grid's context menu rather than those of individual rows
...
Bugs (fixed):
* Crash when copy/pasting in volsurface grid
2022-05-07 13:57:49 -04:00
John Colvin
c3ae4c6dc5
refactor: Make VolSurfaceColumn.model readonly
...
It's never reassigned; should have been readonly to begin with
2022-05-07 13:57:09 -04:00
John Colvin
9b012649cd
fix: Add nullcheck for hscrollbar in grid line adorner
...
Bugs (fixed):
* A silent ArgumentNullException is thrown when opening volsurface windows
during startup
2022-05-07 13:57:09 -04:00
Taha Afzal
c126091155
VolSurfaceUsage is not read from config
2022-05-06 14:41:40 -04:00
taha afzal
c2fee56496
Adding temporary vol surface usage to config (simplifying it to only have symbol because SecTup had serialization issues in C#)
2022-05-06 13:55:44 -04:00
taha afzal
5461dc77aa
Added default config based risk limits for Deribit symbols
2022-05-05 20:39:47 -04:00
taha afzal
1b2a1c3fe3
Limiter can optionally get its value from config
2022-05-05 20:39:47 -04:00
Taha Afzal
a83a4fdd4f
UIOverrides for slide are ignored in the calcultor (were already disable din the UI for now)
2022-05-05 13:53:16 -04:00
Taha Afzal
4d4ee1f57c
TC2 is constructed on the correct options now
2022-05-04 15:11:24 -04:00
John Colvin
2bec4ae09f
ui: Hide position analysis filters in slide win
...
At least until they're actually implemented in model/calculation code
2022-05-04 15:07:14 -04:00
John Colvin
e3b91909a6
Hook up combo conf vm ErrorsChanged callback once (in ctr)
2022-05-04 14:58:57 -04:00
John Colvin
116ba3f629
Add venue component to report risk-terms/opt-equiv params
2022-05-04 14:56:43 -04:00
John Colvin
0ce6f8e6a2
style: Enable nullable in ComboReportFuturesGrid
2022-05-04 14:53:44 -04:00
John Colvin
9447cb67d2
fix: Populate exps list used to generate cols in combo futs grid
...
Bugs (fixed):
* Future positions aren't showing in combo report
2022-05-04 14:53:44 -04:00
John Colvin
92dacc5c3c
ui: Use consistent sorting in risk terms/opt equiv dropdowns
2022-05-04 14:53:44 -04:00
John Colvin
766dfe9dd3
ui: Hide security criteria param in slide settings win
2022-05-04 14:53:44 -04:00
John Colvin
84ecb54efd
ui: Change 'Volsurface' -> 'Vol Surface' in slide settings win
2022-05-04 14:53:44 -04:00
John Colvin
6ff8855dba
refactor: Change report security list to SecurityCriteria
2022-05-04 14:53:44 -04:00
John Colvin
7f349cfa71
ui: Use converter to generate 'pretty name' for sec criteria clause
2022-05-04 14:53:44 -04:00
John Colvin
948b23addc
fix: Don't add duplicate securities in slide config vm
...
Bugs (fixed):
* Slide settings dialog shows duplicate security items in dropdown
2022-05-04 14:53:44 -04:00
John Colvin
7031bb6fbe
fix (ui): Fix typo in slide settings dialog ok/apply cmd binding
2022-05-04 14:53:44 -04:00
John Colvin
15a04a1870
build: Temporarily disable web build
...
Until we can fix integration with dotnet 6
2022-05-04 09:23:32 -04:00
John Colvin
741c6d360a
fix: Refresh slide-settings vm 'result' when included syms change
2022-05-02 17:32:32 -04:00
John Colvin
c4f3ca26ef
ui: Use new spark menu toggle style in combo win/vm
2022-05-02 17:29:30 -04:00
John Colvin
3403adc1ff
fix: Hook up expanded/collapsed toggle in slide
...
Bugs (fixed):
* Changing the view-format in slide doesn't do anything
2022-05-02 17:29:30 -04:00
John Colvin
410d3aaf20
ui: Use opacity to indicate 'checked' state in spark menu
2022-05-02 17:29:30 -04:00
John Colvin
34905f6053
Fix benign typo in exp params win menu item init
2022-05-02 17:29:29 -04:00
John Colvin
6a16d419af
ui: Use checkmark icon for 'Checkable' items in spark win context menu
2022-05-02 17:29:29 -04:00
John Colvin
cd23c1a5a1
fix (ui): Use 'opacity' to indicate enabled/disabled in spark menu
...
Bugs (fixed):
* SparkMenuItems sometimes look disabled when they aren't (esp in
AnalyticsExpirationParameters win)
In wpf, VisualStates in different VisualStateGroups shouldn't adjust
common properties. A visual element can only be in 1 visual state at a
time. When a visual element transitions to a new visual state, all
depepdency property changes associated with the transition to the
previous state are cleared.
2022-05-02 17:29:29 -04:00
John Colvin
18793f8cd9
ui: Add 'Swipe Sum' tooltip in slide
2022-05-02 17:29:29 -04:00
John Colvin
c008147674
ui: Use DayMonthAbvDiff2000 format for last trade exp in combo/slide
2022-05-02 17:29:29 -04:00
John Colvin
47323c51c3
ui: Use normal font size of grid in combo
2022-05-02 17:29:29 -04:00
John Colvin
91f58620ac
ui: Make '|' separator in combo consistent w/ those in slide
2022-05-02 17:29:29 -04:00
John Colvin
91aeccb2ae
ui: Use normal font size outside of grids in slide
2022-05-02 17:29:29 -04:00
John Colvin
82864a609d
ui: Make '|' separator consistent in slide status bars (upper/lower)
2022-05-02 17:29:29 -04:00
John Colvin
828b1ca0c2
ui: Add '|' separators in slide status bar
2022-05-02 17:29:29 -04:00
John Colvin
6b740ece39
ui: Use common IValueConverter for last_trade in slide/combo wins
2022-05-02 17:29:29 -04:00
John Colvin
84f18288e0
fix: Fix typo 'call' -> 'put' in ComboReportOptionCellView
2022-05-02 17:29:29 -04:00
John Colvin
cf9e5862ed
fix: Invalidate 'measure' when ShowCallPut in combo opt cell
...
Bugs (fixed):
* combo report does not show call/put when 'Show Call/Put' is checked
2022-05-02 17:29:29 -04:00
John Colvin
4ca2b5f4d2
fix: Add missing 'ExpirationTextConverter' resource in ComboReportView
2022-05-02 17:29:29 -04:00
John Colvin
da2894512d
fix: Fix typo 'ComboReport' -> 'ComboReportView'
2022-05-02 17:29:29 -04:00
John Colvin
55e9487203
fix: Sync strikes and exps in combo on_data callback
2022-05-02 17:29:29 -04:00
John Colvin
19fb08e7ff
fix: Add nullcheck in TradeLogRow ctr
2022-05-02 17:29:29 -04:00
John Colvin
193b1025ad
style: Clean up ReportDaemon
2022-05-02 17:29:29 -04:00
John Colvin
8fa2a925cd
refactor: Use ToggleCommand/SparkMenuItemToggleModel in slide win
2022-05-02 17:29:29 -04:00
John Colvin
526daa9647
ui: Use 'candidate' icon for 'Use Candidate Vol' menu item
2022-05-02 12:29:03 -04:00
John Colvin
43bcc9fe02
Add 'candidate' icon
...
Even though not in use atm, it was hard to parse out the individual
candidate from the svg, and might come in handy down the road. Seems worth
keeping
2022-05-02 12:29:03 -04:00
John Colvin
51d6066420
fix: Add nullcheck in get_vs_price_map
2022-05-02 12:29:03 -04:00
John Colvin
0b11b83eb5
ui: Refine slide win
...
* dock account/risk terms to the left
2022-05-02 12:29:03 -04:00
John Colvin
a53dfd14b1
ui: Refine combo win
...
* make call/put toggle a spark menu item (in the toolbar)
* dock account/risk terms to the left
* hide account/risk terms labels (show them as tooltips instead)
2022-05-02 12:29:02 -04:00
John Colvin
cc0380d8f1
Add ToggleCommand type and related infrastructure
2022-05-02 12:29:02 -04:00
John Colvin
0a01d22e72
refactor: Rename 'UseCandidateVol' icon -> 'vol_curve'
2022-05-02 12:29:02 -04:00
John Colvin
e9f1c72198
refactor: Refine 'create_checked_icon' code/logic
...
Clean up code a bit, and add some parameters to custom fit/position the
check mark with any given Drawing
2022-05-02 12:29:02 -04:00
John Colvin
14af8823ed
refactor: Rename SparkCommandVM -> SparkMenuItemVM
...
Also move to 'ViewModels' dir
2022-05-02 12:29:02 -04:00
John Colvin
5900ce7d12
Fix windows build after moving FileUtils to lib
2022-05-02 12:29:02 -04:00
John Colvin
33e0a6bb46
Generate new keycodes for default config
...
These won't expire until 2032
2022-05-02 12:29:02 -04:00
John Colvin
ca3bc5059e
Read public key from config (for login/auth)
2022-05-02 12:29:02 -04:00
John Colvin
bd108dfe35
cli (server): Add key-code subcommand to sparkd
2022-05-02 12:29:02 -04:00
John Colvin
8a96c7441e
refactor: Clean up KeyCode
2022-05-02 12:29:01 -04:00
John Colvin
4eea3194fd
Remove unused args from key-code subcmds
2022-05-02 12:29:01 -04:00
John Colvin
dace332ac5
refactor: Move FileUtils into lib
2022-05-02 12:29:01 -04:00
John Colvin
af816bb905
fix: Don't cast numeric types via boxing
...
This is illegal
2022-05-02 12:29:01 -04:00
John Colvin
195c24ffef
refactor: Move SingleValueList to own file
2022-05-02 12:29:01 -04:00
John Colvin
92ad17aa19
fix: Save slide report before closing settings dialog
...
Bugs (fixed):
* Slide report configuration doesn't save on OK click (does save on Apply
click though)
2022-05-02 12:29:01 -04:00
John Colvin
eabc4bee4c
fix: Save combo report before closing settings dialog
...
Bugs (fixed):
* Combo report configuration doesn't save on OK click (does save on Apply
click though)
2022-05-02 12:29:01 -04:00
John Colvin
0ed9142cf0
test: Add HierarchicalDictionaryTest
2022-05-02 12:29:01 -04:00
John Colvin
1639683b43
fix: Set _value_count to 0 when HierarchicalDictionary is Cleared
2022-05-02 12:29:01 -04:00
John Colvin
05afb08c5d
fix: Ensure HierarchicalDictionary nodes in sync w/ parent data
2022-05-02 12:29:01 -04:00
John Colvin
c674e44c60
refactor: Enable nullable in EnumerableExtensions
2022-05-02 12:29:00 -04:00
John Colvin
e104c78471
fix (preemptive): Fix typo in Sum ext
...
This fix is preemptive only bc this fn isn't referenced atm
2022-05-02 12:29:00 -04:00
John Colvin
3d8ec63bd7
ui: Condense text/controls in top of Slide win
2022-05-02 12:29:00 -04:00
John Colvin
99670c9d28
ui: Move last update time down to status bar in Slide win
2022-05-02 12:29:00 -04:00
John Colvin
56126e19a7
refactor: Clean up SlideReportView.xaml.cs
2022-05-02 12:29:00 -04:00
John Colvin
05e8363504
ui: Change 'Use Candidate Vol' icon to look sort of like vol-curve
2022-05-02 12:29:00 -04:00
John Colvin
884741062b
ui: Add expand/collapse toggle menu item to Combo win
2022-05-02 12:29:00 -04:00
John Colvin
63c77966fa
ui: Add menu-orientation menu-item to Slide win
2022-05-02 12:29:00 -04:00
John Colvin
31745d9f0d
ui: Add menu-orientation menu-item to Combo win
2022-05-02 12:29:00 -04:00
John Colvin
78897ed608
refactor: Clean up SparkMenu
...
* use visual states instead of triggers for mouse-state-transition animation
* use new lang feats
* run formatter
2022-05-02 12:29:00 -04:00
John Colvin
5712bcdc57
Add PressedAnimationDuration prop to MouseStateDefinition
...
This provides a way to ensure that 'Pressed' animations, which takes a
non-zero amt of time, always run to completion (before animation for the
next state begins)
2022-05-02 12:28:59 -04:00
John Colvin
8e0a027584
style: Add documentation to ProjectToVector ext
2022-05-02 12:28:59 -04:00
John Colvin
12f88b5303
test: Add unit test for ProjectToVector ext
2022-05-02 12:28:59 -04:00
John Colvin
b119cad8a9
ui: Remove 'Focus' animation from SparkMenuButton
...
Not sure why this was here in the first place..it's identical to the
MouseOver animation
2022-05-02 12:28:59 -04:00
John Colvin
f30210e4e1
refactor: Move SparkMenu style/xaml to own file
2022-05-02 12:28:59 -04:00
John Colvin
a8d6a104c3
refactor: Clean up OptionDriverPriceMap
2022-05-02 12:28:59 -04:00
John Colvin
13df0c8638
Spruce up AnalyticsShellModuleView
2022-05-02 12:28:59 -04:00
John Colvin
fb70aa6514
fix (ui): Set combo report settings dialog title to string literal
...
Previously, it was bound to the report-name. However, the binding was broken.
Furthermore it doesn't seem appropriate to bind the title to the name since the
user can edit the name in the settings dialog
2022-05-02 12:28:59 -04:00
John Colvin
37fd1d424e
refactor: Rename (SlideReportSettings)View -> Dialog
...
This is more consistent with our name conventions, and dialog is more
precise description of the type
2022-05-02 12:28:59 -04:00
John Colvin
bdbbcb05dc
ui: Animate AnalyticsShellModule window-section expand/collapse
2022-05-02 12:28:59 -04:00
John Colvin
9cd5d0890f
ui: Add large-flat button style
2022-05-02 12:28:59 -04:00
John Colvin
7b1fa849ef
fix (preemptive): Curry 'Member' to DataContextChanged callback
...
Bugs (fixed):
* [preemptive] potential InvalidCastException in
RadioButtonGroupManager.DataContextChanged callback
2022-05-02 12:28:59 -04:00
John Colvin
a8b5cf81ee
fix (ui): Set combo report settings dialog title to string literal
...
Previously, it was bound to the report-name. However, the binding was
broken; furthermore it doesn't seem appropriate to bind to the name
since the user can edit the name in the settings dialog
2022-05-02 12:28:58 -04:00
John Colvin
bc62d4b359
refactor: Rename (ComboReportSettings)View -> Dialog
...
This is more consistent with our naming conventions, and 'dialog' is a
more precise description of this type.
2022-05-02 12:28:58 -04:00
John Colvin
4413580212
feat: Support modifying combo report 'name' after it is created
...
The csharp vm infrastructure was already in place, so this was just a matter of
adding the 'name' field to the settings view
2022-05-02 12:28:58 -04:00
John Colvin
8b653ef133
feat: Add volume col to TimeAndSales
2022-05-02 12:28:58 -04:00
John Colvin
b1f8ac7e22
refactor: Make Optional<T> a struct
...
It's a trivial, readonly type, so struct seems more appropriate than class
Bugs (fixed):
* [preemptive] greeks_tuple param potential null-ref exception in TradeInfo
'with' ext
2022-05-02 12:28:58 -04:00
John Colvin
a11c23d718
refactor: Enable nullable in TimeAndSales(Filter)Settings
2022-05-02 12:28:58 -04:00
John Colvin
9feceb9fdb
fix: Create new instance of ContextMenu on each open
...
Bugs (fixed):
* the volsurface grid context menu items' col/super header names don't stay
in sync with clicked cell (the names never change once the menu item becomes
visible for the first time)
2022-05-02 12:28:58 -04:00
John Colvin
bad6464fe9
refactor: Clean up VolSurfaceRowContextMenuVM
...
* use new lang feats
* run formatter
2022-05-02 12:28:58 -04:00
John Colvin
a6007ca362
refactor: Sync symbols in vs row context menu when vis-exps changes
...
Also, rename SymbolFilter -> SymbolItemVM
2022-05-02 12:28:58 -04:00
John Colvin
05348b01ae
refactor: Clean up VolSurfaceRowVM
...
* use new lang feats
* run formatter
2022-05-02 12:28:58 -04:00
John Colvin
abfabe3e21
Remove unused file VolSurfaceRowControl.cs
2022-05-02 12:28:58 -04:00
John Colvin
83e0da446a
refactor: Rename VolSurfaceRowContext -> VolSurfaceRowVM
2022-05-02 12:28:58 -04:00
John Colvin
85a48e71d1
refactor: Move vs row context menu vm to own file & unnest class
2022-05-02 12:28:57 -04:00
John Colvin
0671117660
refactor: Move sync_with ext to ListExtensions
2022-05-02 12:28:57 -04:00
John Colvin
654c5b3074
refactor: Rename 'command' members 'cmd' in VolSurfaceRowContext
2022-05-02 12:28:57 -04:00
John Colvin
aee5e54c14
refactor: Clean up VolSurfaceVM
...
* use new lang feats
* rename 'command' members 'cmd'
* sort members
2022-05-02 12:28:57 -04:00
John Colvin
e5df037992
refactor: Remove redundant LastOrDefault ext fn
2022-05-02 12:28:57 -04:00
John Colvin
06b9586eb6
refactor: Consolidate tick up/down fn pairs into singular tick fns
...
With 'is_up' params
2022-05-02 12:28:57 -04:00
John Colvin
79716dfdba
refactor: Add NotNullWhen attrs to tick up/down out params
2022-05-02 12:28:57 -04:00
John Colvin
02b6b5d078
fix: Handle nan qty gracefully on ladder qty button click
...
Just set the value to that of the clicked button (since you can't add
anything to NaN)
2022-05-02 12:28:57 -04:00
John Colvin
403e8d2947
ui: Change TickUpDownNullable control to reset null -> 0 on tick click
2022-05-02 12:28:57 -04:00
John Colvin
25e9c37987
refactor: Change props to generic T in TickUpDownNullableNumeric
...
Accidentally left several members defined as type double (this
now-generic class was refactored from TickUpDownNullableDouble)
2022-05-02 12:28:57 -04:00
John Colvin
99b58cf2bf
refactor: Clean up LadderVM
...
* use new lang feats
* sort members
* run formatter
2022-05-02 12:28:56 -04:00
John Colvin
78155cfbdf
refactor: Clean up LadderOrderVM
...
* use new lang feats
* sort members
* run formatter
2022-05-02 12:28:56 -04:00
John Colvin
1ba980d69f
refactor: Accept tuples with non-uniform types in 'Sum' ext
2022-05-02 12:28:56 -04:00
John Colvin
ef155aaedf
Remove redundant bootstrapping code from TableUpdateDemuxer
2022-05-02 12:28:56 -04:00
John Colvin
22c4b528cb
fix: Actually propagate updates to Subject nodes in TableUpdateDemuxer
...
Bugs (fixed):
* Working orders are not showing in ladder
2022-05-02 12:28:56 -04:00
John Colvin
fd71c6ac7a
Set ShowDecimalPart to false in default qty display settings
2022-05-02 12:28:56 -04:00
John Colvin
019fa134cb
fix: Use valid defaults for price/qty display in SecurityMD
2022-05-02 12:28:56 -04:00
John Colvin
4a40bd3364
refactor: Move SecurityDataHelper to spark_api proj
2022-05-02 12:28:56 -04:00
John Colvin
68229b2474
build (server): Update CMakeDeps
2022-05-02 12:28:56 -04:00
John Colvin
8727ed6ccd
Upgrade server to dotnet-sdk 6
...
* upgraded externals to install dotnet-sdk-6.0 in docker
* rewound the sdk version specified in global.json to 6.0.200 (latest
available in the apt repository)
* updated some fs code that wasn't backwards compatible (namely the
builtin 'TryParse' methods)
2022-05-02 12:28:56 -04:00
John Colvin
8ee3d5b8ad
web: Add tsconfig for clang release build
...
Not sure why this file was absent in the first place, as similar
tsconfig files were already present for clang debug, and gcc
debug/release
2022-05-02 12:28:55 -04:00
John Colvin
98ee43aa27
ui: Add spark menu items to toggle auto-copy-rolls/rates
2022-05-02 12:28:55 -04:00
John Colvin
92291e3f9f
refactor: Clean up AnalyticsParametersManager
...
* replace ThreadedBlackboard w/ IBus
* use new lang feats
* run formatter
2022-05-02 12:28:55 -04:00
John Colvin
1abb41a0d5
ui: Change sec-type abbrev to be all caps
2022-05-02 12:28:55 -04:00
John Colvin
0993195f03
fix: Use CollectionViewSource to workaround wpf bug
...
Bugs (fixed):
* Some dropdowns in exp params grid are empty
2022-05-02 12:28:55 -04:00
John Colvin
c2a7c6f994
fix: Set result to null if conversion to nullable<T> fails
...
Was setting the result to default(T) before
Bugs (fixed):
* Various exceptions stem from failed conversions to nullable types
when the underlying type doesn't have a valid default state. For
example, default instances of immutable protobufs throw exceptions in
property accessors for reference type members.
2022-05-02 12:28:55 -04:00
John Colvin
48900cf5a0
ui: Use BTSColors.input_dirty_border in exp params
...
This makes the 'dirty' color consistent with the rest of the system (was
using hardcoded Red before)
2022-05-02 12:28:55 -04:00
John Colvin
57fbb36808
feat: Add TimeWeightedInterpolated driver to analytics exp params
2022-05-02 12:28:55 -04:00
John Colvin
5c45384c34
refactor: Clean up AnalyticsExpirationParametersRowVM
...
* use new lang feats
* run formatter
2022-05-02 12:28:55 -04:00
John Colvin
f9aa162e2a
refactor: Clean up AnalyticsExpirationParametersVM
...
* use new lang feats
* run formatter
2022-05-02 12:28:55 -04:00
John Colvin
013d17c386
refactor: Enable nullable in AnalyticsExpirationParametersView.xaml.cs
2022-05-02 12:28:55 -04:00
John Colvin
ad250c3883
fix: Include sec-type str in ExpirationTextConverter
...
Bugs (fixed):
* ExpirationTextConverter.Convert doesn't include the sec-type part
when 'ShowType' is true
2022-05-02 12:28:55 -04:00
Taha Afzal
2c9e0012e2
Cleaning up VolSurfaceRiskCalculator vs VolSurfaceSlideCalculator
2022-04-29 12:57:35 -04:00
Taha Afzal
2516f23e37
TC2 gets its list of symbols form the settings the rightway now
2022-04-29 12:43:34 -04:00
Taha Afzal
d3a7bd48c2
Account setting in Slide is being respected now
2022-04-28 18:37:07 -04:00
Taha Afzal
4aeb7490e3
Slide calculates now if the caculation mode is set for Live Theo or Position update
2022-04-28 17:11:03 -04:00
Taha Afzal
265beef715
Slide is working (showing data, not verified the data though
2022-04-27 19:34:13 -04:00
Taha Afzal
a58bf83a9a
Added Combo computing code (temporarily brought old VoLSurfaceRiskCalculator back
2022-04-25 17:56:24 -04:00
John Colvin
9da1a4a2de
fix: Remove CharSet.Unicode' from 'Logger_log' DLLImport attr
...
Bugs (fixed):
* csharp logs only include the first char of the log message
Omnisharp recommended this be specified in the attribute after upgrading to
dotnet 6. They were wrong.
2022-04-20 12:48:37 -04:00
John Colvin
8a98e38e73
Include opts (and futs) in manual fills sec popup
2022-04-20 02:42:35 -04:00
John Colvin
3044f4a0b1
ui: Sort accounts in dropdown in slide settings dialog
2022-04-20 02:12:14 -04:00
John Colvin
5104ae1742
ui: Set ComboReportWindow.MinWidth to 500
...
The default width was too narrow, and caused some labels to overlap
2022-04-20 01:47:47 -04:00
John Colvin
987ec14da2
Remove redundant call to _validate in combo conf vm
2022-04-20 01:39:52 -04:00
John Colvin
24c6e0df97
fix: Refresh combo report-result prop when risk-terms-name changes
2022-04-20 01:39:21 -04:00
John Colvin
23d5d18b28
fix: Set report.Id when saving combo report
...
Bugs (fixed):
* When ok/apply is clicked in combo report settings, a new report is created
with those params, instead of modifying the existing report
2022-04-20 01:38:22 -04:00
John Colvin
0a38c241af
refactor: Rename ComboVM -> ComboReportVM
2022-04-20 00:36:53 -04:00
John Colvin
5b0d79ad17
refactor: Move ObservantAsyncCommand into ns Spark.ViewModel.Commands
2022-04-19 11:42:44 -04:00
John Colvin
833187559d
refactor: Move AsyncCommand to ns Spark.ViewModel.Commands
2022-04-19 11:42:44 -04:00
John Colvin
527066e4c8
refactor: Move IRaiseCanExecuteChangedCommand to ns Spark.ViewModel.Commands
2022-04-19 11:42:44 -04:00
John Colvin
bad30a49bf
Open options-view with security-picker
...
TODO: translate the SecurityCriteria into NMSheetsSettings so the
selected criteria is actually used in the window
2022-04-19 11:42:44 -04:00
John Colvin
24f40dd652
ui: Hide strikes/callput fields in contract-picker
2022-04-19 11:42:44 -04:00
John Colvin
dce61183dd
fix (preemptive): Unhook callbacks when contract-picker controller disposed
2022-04-19 11:42:44 -04:00
John Colvin
aeb81a9e86
fix (preemptive): Init contract-picker controller when datacontext changes
2022-04-19 11:42:44 -04:00
John Colvin
81aea15988
ui: Use qty display settings in fills
2022-04-19 11:42:44 -04:00
John Colvin
3e393208ab
ui: Use qty display settings in orderbook
2022-04-19 11:42:44 -04:00
John Colvin
0674accd05
Set initial qty to NaN (not 0) in ladder
...
This makes the initial state consistent with the state after clicking
'Clear'
2022-04-19 11:42:44 -04:00
John Colvin
0f0d8df572
fix: Set init val through display-translator in SizeCalculator
...
The init val was being passed to the erroneous `UserProperty<T?> _value` field,
which should have been deleted when the _display_translator was introduced.
Bugs (fixed):
* the ladder-view's initial size field is null when
2022-04-19 11:42:44 -04:00
John Colvin
0afd06be9c
feat: Support double qty input in order ticket
2022-04-19 11:42:44 -04:00
John Colvin
1539bfa8b1
feat: Support double quantity input in Ladder
2022-04-19 11:42:43 -04:00
John Colvin
a2336be143
fix: Check if _settings is null in LadderGridHost._refresh_prices
...
Bugs (fixed):
* NullReferenceException is thrown when the right-panel-ladder (in
OrderBook) is opened with no selected rows
2022-04-19 11:42:43 -04:00
John Colvin
7d65befc7e
refactor: Overload detect_property_changes w/ eq comp params
2022-04-19 11:42:43 -04:00
John Colvin
916b28bc16
refactor: Clean up LadderVMContainer
2022-04-19 11:42:43 -04:00
John Colvin
fb3447a6b4
refactor: Consolidate TickUpDownNullable classes into generic impl
2022-04-19 11:42:43 -04:00
John Colvin
2fa9b2e0e5
refactor: Rename TickUp/DownParameter TickUp/DownCommandParameter
2022-04-19 11:42:43 -04:00
John Colvin
a66d3fb28a
refactor: Return bool indicating whether object was disposed
2022-04-19 11:42:43 -04:00
John Colvin
6be017d35b
fix: Make new instances of arrow icons instead of sharing
...
Bugs (fixed):
* 'Freezable cannot be frozen' exception thrown when opening
multiple windows (on diff threads) that use the same arrow icons
2022-04-19 11:42:43 -04:00
John Colvin
ef24e5164f
refactor: Change uint qty members to doubles
2022-04-19 11:42:43 -04:00
John Colvin
a7f36b2361
refactor: Support generic numerics in tick-utils
2022-04-19 11:42:43 -04:00
John Colvin
3d404002a0
refactor: Make QuantityConversionData generic for numeric T
2022-04-19 11:42:43 -04:00
John Colvin
1922a1b49c
refactor: Make MathUtils/NumericExtensions generic
2022-04-19 11:42:43 -04:00
John Colvin
ca4ec7025c
Add price/quantity display config to SecurityMD
2022-04-19 11:42:43 -04:00
John Colvin
7dcfa709d5
Add SecurityMetadata (proto3) config
...
Immediate Purpose:
* Add security-based config for 'unit-quantity'
2022-04-19 11:42:43 -04:00
John Colvin
aa254142e8
Add client-side support for proto3 config
2022-04-19 11:42:42 -04:00
John Colvin
b00b12bed2
refactor: Clean up MDSource/Daemon and deps
2022-04-19 11:42:42 -04:00
John Colvin
dd7168a687
Add SecurityMetadata pbuf to client build
2022-04-19 11:42:42 -04:00
John Colvin
97b665733a
Add SecurityCriteria pbuf type to client build
2022-04-19 11:42:42 -04:00
John Colvin
4a6d3e3042
Add bts/api/domain to proto search path for config
2022-04-19 11:42:42 -04:00
John Colvin
f65cf43e21
refactor: Rename bts.api.domain.SecurityType.INDEX -> SPOT
2022-04-19 11:42:42 -04:00
John Colvin
f971d4db51
Add SYNTHETIC to bts.api.domain.SecurityType
2022-04-19 11:42:42 -04:00
John Colvin
8cd79c0372
Add BTS and SIM to bts.api.domain.Venue
2022-04-19 11:42:42 -04:00
John Colvin
9bc346e84a
refactor: Clean up SecurityCriteria
...
* move SecurityCriteriaClause into own file
* convert fields to props
* sort members
* use new lang feats
* run formatters
2022-04-19 11:42:42 -04:00
John Colvin
88d2e1756f
refactor: Rename config.cs -> Configuration.cs
2022-04-19 11:42:42 -04:00
John Colvin
dc09c45330
refactor: Clean up config.cs
...
* use new lang feats
* specify CharSet.Unicode in DLLImports (avoids warning ca2101)
* sort members
* run formatter
2022-04-19 11:42:42 -04:00
John Colvin
47e5b57789
style: Clean up SecurityMD
...
* sort members
* use new lang feats
* run formatter
2022-04-19 11:42:42 -04:00
John Colvin
c1ad8ed4b2
style: Clean up AnalyticsService.proto
2022-04-19 11:42:42 -04:00
John Colvin
3589b5c9a8
build: Upgrade MEF pkgs in spark proj
...
Also remove unneccessary pkg 'Microsoft.Extensions.DependencyInjection'
2022-04-19 11:42:42 -04:00
John Colvin
fbaf15ad34
fix: Export shared inst for IWindowManager/Interop
...
Bugs (fixed):
* 2 WindowManager instances are created on startup! This causes many
problems (for ex, 'IShellWindow.thread_init' is called twice for each
shell window)
2022-04-19 11:42:42 -04:00
John Colvin
ee1d02991c
feat: Port combo report over from edge
2022-04-19 11:42:42 -04:00
John Colvin
2450cb028e
Fix BTSOxyGraph background binding
2022-04-19 11:42:42 -04:00
John Colvin
ec1182f059
Impl IEquatable in SparkTag
...
This is a pre-emptive fix. Without it, we are susceptible to potential hash
collision bugs in the bus
2022-04-19 11:42:41 -04:00
John Colvin
7797d8255f
fix: Avoid duplicate entries in cpp list
2022-04-19 11:42:41 -04:00
John Colvin
a4780ecac7
refactor: Make 'within_range' param order consistent
2022-04-19 11:42:41 -04:00
John Colvin
32643990ee
refactor: Use generic math in MathUtils/NumericExtensions
2022-04-19 11:42:41 -04:00
John Colvin
5746e6267a
Check equality in BoundColumn prop setters
...
Only call 'RaisePropertyChanged' when value actually changes
2022-04-19 11:42:41 -04:00
John Colvin
501ec81405
build: EnablePreviewFeatures for cs build
...
Namely, to enable generic math to allow for generic use of numeric
binary operators
2022-04-19 11:42:41 -04:00
John Colvin
714f4fe995
refactor: Drop 'Single' in SingleComboReportCalculator
2022-04-19 11:42:41 -04:00
John Colvin
ead71a5618
style: Move ComboFuture/StrikeData into own files
2022-04-19 11:42:41 -04:00
John Colvin
eaf6e4ba28
refactor: Clean up VolSurfaceUtilityFunctions
...
* use new lang feats
* remove redundant ported functionality (refactor w/ impls in spark)
* run formatter
2022-04-19 11:42:41 -04:00
John Colvin
bef2c9310e
Add 'Fill' list ext fn
2022-04-19 11:42:41 -04:00
John Colvin
7b3e0d4a59
refactor: Clean up SecurityTuple/Expiration/Strike
...
* use new lang feats
* sort members
* run formatter
2022-04-19 11:42:41 -04:00
John Colvin
ea0705e7e4
fix: Avoid dupl keys when stripping exch from SecurityExpiration
2022-04-19 11:42:41 -04:00
John Colvin
7b9310f595
refactor: Repl IDict w/ IReadOnlyDicts in vs risk calc
2022-04-19 11:42:41 -04:00
John Colvin
a31f775de8
refactor: Simplify change_vol_dervs_to_percentages
2022-04-19 11:42:41 -04:00
John Colvin
f061630789
refactor: Clean up VolSurfaceRiskCalculator
...
* Use new lang feats
2022-04-19 11:42:41 -04:00
John Colvin
5d442125b0
refactor: Use switch case for is_delta_greek impl
2022-04-19 11:42:41 -04:00
John Colvin
e600f444f8
refactor: Clean up Slide/VolSurfaceRisk calcs
...
* Gather related 'out params' into new SecurityPositionData struct
* Break up long compute_and_fire fn in SlideReportCalculator into several fns
* Use new log_op fn to eliminate messy timer code sections
* Run formatter
2022-04-19 11:42:41 -04:00
John Colvin
a8ae4d6655
Add create, append, to_comparer fns for ComparerBuilder
2022-04-19 11:42:41 -04:00
John Colvin
a885fa7065
Add LoggerExtensions to record (time) ops
2022-04-19 11:42:41 -04:00
John Colvin
65665dc384
Add HierarchicalDictionary
...
A useful abstraction for nested dictionaries
2022-04-19 11:42:40 -04:00
John Colvin
a8992edf88
fix: Check report type when converting to Report pbuf
2022-04-19 11:42:40 -04:00
John Colvin
1b7dd28c2f
fix: Use key/value comparer args when creating SetMap
...
This is a pre-emptive fix, as this fn isn't currently referenced
2022-04-19 11:42:40 -04:00
John Colvin
ae692432a2
fix: Use sec type arg when converting vsexp to securityexp
...
Bugs (fixed):
* duplicate items in slide report expirations dropdown
In code recently ported from edge, the security type was [assumed to be]
implied by the symbol's capitalization: futures begin with upper-case letters,
while options begin with lower-case. This assumption has become unreliable (at
deribit, both futures and options are all upper-case).
2022-04-19 11:42:40 -04:00
John Colvin
c779b31a90
refactor: Clean up [csharp] co2 classes
...
* Move all [non-nested] classes/structs into own files
* Sort members
* Fix naming convention violations
* Use new lang feats
* Run formatter
2022-04-19 11:42:40 -04:00
John Colvin
cb4bf8f5f4
Remove unused class TimeAndSalesModel
2022-04-19 11:42:40 -04:00
John Colvin
96cd807720
Add fake slide report data
2022-04-19 11:42:40 -04:00
John Colvin
07c3150d2a
refactor: Change abstract TradeLogRow class to interface
2022-04-19 11:42:40 -04:00
John Colvin
c66a405e6d
refactor: Enable nullable (lang feat) on some Slide files
2022-04-19 11:42:40 -04:00
John Colvin
0558381bcb
Add DataTemplates ResourceDictionary to TimeFilterControl
...
So callers aren't required to include it themselves
2022-04-19 11:42:40 -04:00
John Colvin
1db47684b7
refactor: Remove redundant ImmutableWrapper for list
2022-04-19 11:42:40 -04:00
John Colvin
e16abd2e8b
Check AdornerLayer not null when adding drag adorner
...
Bugs (fixed):
* Opening slide report settings dialog causes crash
2022-04-19 11:42:40 -04:00
John Colvin
f7adc84f0e
feat: Port slide report over from edge
2022-04-19 11:42:40 -04:00
John Colvin
3acd51b247
refactor: Replace non pbuf ReportParameters with pbuf Report
2022-04-19 11:42:40 -04:00
John Colvin
6caab9c017
refactor: Make tags create/activate reports type-agnostic
2022-04-19 11:42:40 -04:00
John Colvin
97c61d2a4f
refactor: Rename SingleSlideReportCalculator SlideReportCalculator
2022-04-19 11:42:40 -04:00
John Colvin
4f6a0061fe
refactor: Clean up ObservableDemuxer
...
* Move to spark_core
* Split classes into sep files
* Use new lang feats
* Run formatter
2022-04-19 11:42:40 -04:00
John Colvin
5b201069e8
Add Bootstrap ext fn for IObservables
2022-04-19 11:42:39 -04:00
John Colvin
8b5d79847f
Add 'Select' ext fns for Update/TableUpdate
2022-04-19 11:42:39 -04:00
John Colvin
2d112a86af
refactor: Remove LegacyTableUpdate (repl w/ TableUpdate)
2022-04-19 11:42:39 -04:00
John Colvin
8806a62af7
refactor: Clean up ReflectionHelper/ObjectSnapshot
...
* Consolidate as much code as possible in ReflectionHelper (spark_core)
* Sort members
* Run formatter
2022-04-19 11:42:39 -04:00
John Colvin
01748ee847
Remove ExpirationTemplate from DataTemplates.xaml
...
It isn't general purpose enough to justify its presence in this global
resource file
2022-04-19 11:42:39 -04:00
John Colvin
6f1fb24a31
refactor: Move ExpTextConverter into own file
...
Also rename it "ExpirationTextConverter"
2022-04-19 11:42:39 -04:00
John Colvin
c30459115e
Post accounts-map on the bus
2022-04-19 11:42:39 -04:00
John Colvin
7cdfcbf6dc
Support changes to icon in SparkMenuItem
2022-04-19 11:42:39 -04:00
John Colvin
acf140e670
Add ObservableValue to spark_core
2022-04-19 11:42:39 -04:00
John Colvin
df4a18e887
refactor: Clean up ComparerBuilder
...
* Implement IList<IComparer<T>>
* Use new lang feats
* Run formatter
2022-04-19 11:42:39 -04:00
John Colvin
dc3836065a
refactor: Move pbuf clone exception handling into 'try_clone'
2022-04-19 11:42:39 -04:00
John Colvin
3df7ab194c
refactor: Clean up ProtobufSerializationHelper
...
* Use new lang feats
* Rename clone_protobuf -> clone
* Run formatter
2022-04-19 11:42:39 -04:00
John Colvin
c0af8460a2
refactor: Move ProtobufSerializationHelper into spark_core
2022-04-19 11:42:39 -04:00
John Colvin
85d94a84a8
Add Chevron icons (right and down)
2022-04-19 11:42:39 -04:00
John Colvin
6ad6a361f9
Execute async command in try/catch
...
Purpose: treat both completed and canceled tasks as "finished."
Previously, the AsyncCommand waited endlessly for "canceled" tasks to finish.
As a result, if the command disallowed concurrent execution, the 'CanExecute'
flag would never be flipped back to true, and any buttons associated with that
command would be permanently disabled.
2022-04-19 11:42:39 -04:00
John Colvin
2a5dcab60f
refactor: Move UserSymbol into own file
2022-04-19 11:42:39 -04:00
John Colvin
02b97d594f
Add ReportExtensions
2022-04-19 11:42:38 -04:00
John Colvin
5e1cac251b
fix: Actually copy untracked files in git-save.py
2022-04-19 11:42:38 -04:00
John Colvin
3639638bf2
refactor: Clean up AnalyticsShellModule a bit
2022-04-19 11:42:38 -04:00
John Colvin
e255e054d4
refactor: Split analytics module/viewmodel into sep classes
2022-04-19 11:42:38 -04:00
John Colvin
8c9d8e7089
refactor: Move Commands dir into ViewModel
2022-04-19 11:42:38 -04:00
John Colvin
f0e069d348
Add IProtobuf
2022-04-19 11:42:38 -04:00
John Colvin
4f32c8469e
refactor: Clean up DateFormatter
...
* move DateFormat enum into sep file
* sort members
* use new lang feats
* run formatter
2022-04-19 11:42:38 -04:00
John Colvin
b2679ecb60
Clean up old (recently ported) slide/report code
2022-04-19 11:42:38 -04:00
John Colvin
e0537267a2
Add max_name_length field to EnumDescriptor
2022-04-19 11:42:38 -04:00
John Colvin
3440afd0d6
refactor: Split log-related classes into sep files
2022-04-19 11:42:38 -04:00
John Colvin
cab65a0aaf
refactor: Clean up TimeFilterVM
...
* Move ITimeFilterVM into separate file
* Use new lang feats
* Sort members
* Run formatter
2022-04-19 11:42:38 -04:00
John Colvin
910908b43e
Add some handy Array utils
2022-04-19 11:42:38 -04:00
John Colvin
cf1c1e6df1
refactor: Clean up ArrayUtils
2022-04-19 11:42:38 -04:00
John Colvin
ff9b4f5b2f
build: Upgrade dotnet core 5.0 -> 6.0
2022-04-19 11:42:38 -04:00
John Colvin
01899428e3
ui: Bind alignment props in ComboCheckBox template
2022-04-19 11:42:37 -04:00
John Colvin
ff75ade140
fix build (client): Change 'uint' -> 'uint32_t'
...
Apparently the includes don't define 'uint' on windows
2022-04-19 11:34:28 -04:00
taha afzal
25d5f36645
Exchange positions are periodically published by OrderServices
2022-04-19 10:33:45 -04:00
Taha Afzal
5c5f042cac
Logging in the Bus and threadedBlackboard classes adjusted
2022-04-18 13:16:16 -04:00
Taha Afzal
7da0b32838
SpreadSpec changes are handled rightaway (instead of being put on a timer)
2022-04-18 13:16:16 -04:00
Taha Afzal
389896be07
Retiring some SpreadBox superflous settings
2022-04-18 13:16:16 -04:00
Taha Afzal
f55323afca
SpreadBox settings cleaned up (partially)
2022-04-18 13:16:16 -04:00
Taha Afzal
0d5313d263
SpreadCalculationSynchronizer checks SpreadValue changes before posting them to the bus
2022-04-18 13:16:16 -04:00
Taha Afzal
bc676b9731
Cleaning up the SpreadBox calculation code
2022-04-18 13:16:16 -04:00
Taha Afzal
0313a90196
Cleaned up SpreadManager
2022-04-18 13:16:16 -04:00
Taha Afzal
fca1c62a55
Filtering expired contracts in the UI
2022-04-18 13:16:16 -04:00
Taha Afzal
2dcb0d6177
Fixed PriceControlGUI so that the price coule br overriden (locked) based on the consturctor arguments. For TC2 it does notallow overrides whereas for SpreadBoxes it does
2022-04-18 13:16:16 -04:00
Taha Afzal
e2eea4bca7
Deleting unused SpreadBox spread types
2022-04-18 13:16:15 -04:00
Taha Afzal
9218184ef1
SpeadBox theo default formatting set to 4 dec places
2022-04-18 13:16:15 -04:00
Taha Afzal
a9ec9e87be
SpreadBox added
2022-04-18 13:16:15 -04:00
John Colvin
258d4a3fc1
import compute_synthetic_book method from spartan
2020-12-08 23:00:18 -06:00
John Colvin
c53f6425cd
import IntPrice arithmetic operators from spartan
...
The compute_synthetic_book method (also to be imported
from spartan) depends on a couple of them.
2020-12-08 22:52:28 -06:00