John Colvin
baae080402
Add PUT method to http client
2024-12-04 20:22:38 +00:00
John Colvin
1c7965b590
fix ws client
2024-12-04 20:22:13 +00:00
John Colvin
44f9618c48
refactor: Move OrderServiceServer to sparkd
...
Where it belongs
2024-11-30 17:30:10 +00:00
John Colvin
ad54c47f0e
Add WebsocketClient (cpp)
2024-11-29 15:05:54 +00:00
John Colvin
d50fd65e22
Add scaffolding for PandasExpressions
2024-11-29 15:05:54 +00:00
John Colvin
edf1ba53c9
Reduce log noise in SingleTagData
2024-11-29 15:05:54 +00:00
John Colvin
26fe3c0e20
Reduce log noise in AsyncTCPConnection_AsyncWrapper
2024-11-29 15:05:54 +00:00
John Colvin
f2341a689c
TEMP changes to appsettings.json (at least i should review them before making permanent)
2024-11-29 15:05:54 +00:00
John Colvin
7e6530c69d
Add ColumnIndex class to resolve column names to indices
...
Improves performance compared to accessing columns by name
2024-11-29 15:05:54 +00:00
John Colvin
2795044712
Serialize TimeSpan w/ microsecond precision in DataPacket json
2024-11-29 15:05:54 +00:00
John Colvin
2fb67bdb55
Make 'name' default to CallerArgumentExpression for convenience
2024-11-29 15:05:54 +00:00
John Colvin
66dc76b9ff
Rewrite much of compose.yaml
2024-11-29 15:05:54 +00:00
John Colvin
f68674924b
Add GetValue fn to Variant, PrimitiveVariant
2024-11-29 15:05:54 +00:00
John Colvin
fbc6806a9a
Add BlueColumnTable for pandas integration
...
This will make it easier/more natural to support pandas column expressions
2024-11-29 15:05:54 +00:00
John Colvin
c9740b22cd
refactor: Rename snake_case fns PascalCase
2024-11-29 15:05:54 +00:00
John Colvin
c6d039d899
Format DateTimes w/ microsecond precision in DataPacketJsonConverter
2024-11-29 15:05:54 +00:00
John Colvin
611d21d112
Generate some more row types with new t4 templates
2024-11-29 15:05:54 +00:00
John Colvin
d28e70cd37
fix: Import all IDataStreamFactory instances in publisher service
2024-11-29 15:05:54 +00:00
John Colvin
7f22bb5f3b
fix: Add Ipv6 urls to Kestrel config
...
The vite dev proxy server was routing requests to ipv6
loopback, ::1, instead of ipv4, 127.0.0.1
2024-11-29 15:05:54 +00:00
John Colvin
437b7b1e69
cleanup: Add key attributes to jsx code
...
They were causing warnings in console log
2024-11-29 15:05:54 +00:00
John Colvin
68d5b8fda2
cleanup: Add semi-colons to js code
2024-11-29 15:05:54 +00:00
John Colvin
73297e63ab
Add logs for vite dev proxy server
2024-11-29 15:05:54 +00:00
John Colvin
44f9400499
Incorporate env files into docker compose
...
In order to support local (ephemeral) config. For example, to run sparkd
with replay md to troubleshoot an issue.
2024-11-29 15:05:54 +00:00
John Colvin
c8d40fd157
fix: Run MDReplayer on background thread (don't block)
...
This was preventing other services from starting up
2024-11-29 15:05:53 +00:00
John Colvin
26b0377fa4
Add BlueRowColumnMask to hide columns w/ minimal overhead
...
Less overhead than ProjectStream
2024-11-29 15:05:53 +00:00
John Colvin
b169bedbb2
fix build: Update protobuf namespaces in c#
2024-11-29 15:05:53 +00:00
John Colvin
103892e65a
fix build: Fix win cpp build after lots of datastream work on linux
...
* Fix protoc path
* Disable tests (the catch2 build from vcpkg uses incorrect RuntimeIdentifier).
TODO: Need to look into this.
* Update cmake target name from 'libspark' -> 'spark' in vs_filters.cmake
* Disable concurrencpp (async coroutines) in HttpClient
* Update paths in GetWindowsClientSources.cmake
* Update libs in GetWindowsClientLinkLibraries.cmake
* Handful of other trivial changes
2024-11-29 15:05:53 +00:00
John Colvin
86d90fdb0a
fix build: Move SecurityTests.cpp into "tests" dir
...
We build outside of the main lib (libspark in this case), and instead
build them in a separate exe.
2024-11-29 15:05:53 +00:00
John Colvin
6674b2ff3b
vscode: Fix prelaunchTask in datastream webapp debug cfg (launch.json)
2024-11-29 15:05:53 +00:00
John Colvin
ad5692b552
Update datastream webapp appsettings.json (config)
2024-11-29 15:05:53 +00:00
John Colvin
8a313f9b99
build: Add 'compose-file' arg to deploy script
2024-11-29 15:05:53 +00:00
John Colvin
f893f2d9b5
Generate a few row types with new t4 templates
2024-11-29 15:05:53 +00:00
John Colvin
b17a3c9441
Add async SQLiteEnumerator to read sqlite tables as IBlueRowCollection
2024-11-29 15:05:53 +00:00
John Colvin
63e70650fb
build: Generate c# code for RowTypes
...
Produces structs that implement IBlueRow with strongly typed
properties for each column.
2024-11-29 15:05:53 +00:00
John Colvin
d6d919afe4
Add some nifty DataPacket/TableUpdate IObservable utils
2024-11-29 15:05:53 +00:00
John Colvin
d242c79079
fix: Remove query from literal error stream
...
The parser can't handle colons in the expression (it throws/crashes)
2024-11-29 15:05:53 +00:00
John Colvin
144456e83a
Tweak new streams database config
2024-11-29 15:05:53 +00:00
John Colvin
832f8c74b3
fix build: Disable some includes on windows
2024-11-29 15:05:53 +00:00
John Colvin
64d015d1ed
build: Move lib_spark tests into separate exe
...
So we don't have to run them through sparkd
2024-11-29 15:05:53 +00:00
John Colvin
7d4367d50c
refactor: Move catch_test_runner from spark (lib) to sparkd (app)
...
This source file provides the entry point for catch2
2024-11-29 15:05:53 +00:00
John Colvin
3aa4fdc359
Add gen purpose blue row/table utils for data streams
...
* Add BlueRowReflection<T> so ViewStream implementations can use
strong row types without needing to implement IBlueRow
* Add default implementations for IDictionary members in IBlueRow to make
implementing IBlueRow less tedious
2024-11-29 15:05:53 +00:00
John Colvin
53ac678b58
Extend dsl to support explicit param names
2024-11-29 15:05:53 +00:00
John Colvin
1674e37506
Remove erroneous "DSL: " prefix in ai prompt stream
...
This causes parse errors since we extended the dsl syntax to support named
params in the form of "name: arg".
2024-11-29 15:05:53 +00:00
John Colvin
8629ab7053
Configure directory browser endpt for vite dev server
2024-11-29 15:05:53 +00:00
John Colvin
a399d315c3
Load IDataStremFactory impls with dependency injection
...
So we can create ViewStreams that depend on other services, config, etc.
Previously, the PrimitiveManager relied purely on static construction of types
through reflection.
2024-11-29 15:05:53 +00:00
John Colvin
ffb8943afa
refactor: Use generic collections in PrimitiveManager
...
The class that instantiates ViewStreams via reflection
2024-11-29 15:05:53 +00:00
John Colvin
1f41b0ff9f
Fix typo in NLStream's namespace
2024-11-29 15:05:53 +00:00
John Colvin
274c9835a5
Fix LiteralStream syntax in md publisher appsettings.json
2024-11-29 15:05:53 +00:00
John Colvin
617bf296e5
vscode: Set ASPNETCORE_ENVIRONMENT=Development in api server debug cfg
2024-11-29 15:05:53 +00:00
John Colvin
4ba92b212d
build: Change publish_spark.py default verbosity to 2
...
This equates to STATUS and normal in cmake and dotnet, respectively
2024-11-29 15:05:53 +00:00
John Colvin
20bb42c8b0
Add c# Variant class, modeled after std::variant in c++
2024-11-29 15:05:53 +00:00
John Colvin
e534449638
Add generic ViewStream, BlueRow types/interfaces
2024-11-29 15:05:53 +00:00
John Colvin
eeba50b10a
Add scripts to deploy apps via docker compose
2024-11-29 15:05:53 +00:00
John Colvin
b6e388e380
Clean up build scripts
2024-11-29 15:05:53 +00:00
John Colvin
d71e0e3ba1
fix: Add null check
2024-11-29 15:05:12 +00:00
John Colvin
297a956f25
vscode: Add debug cfg for api server on linux
2024-11-29 15:05:12 +00:00
John Colvin
73cfea44ee
fix: Update source paths for api server docker
2024-11-29 15:05:12 +00:00
John Colvin
04f5271957
fix build: Update proto path in csproj file
2024-11-29 15:05:12 +00:00
John Colvin
b582b1462f
fix build: Install actual dir instead of symlink
2024-11-29 15:05:12 +00:00
John Colvin
346203d2d8
fix build (c#): Update source file paths, namespaces, etc.
...
The c# builds have been broken ever since we reorganized the c++ projects with
stuttering dirs.
2024-11-29 15:05:12 +00:00
John Colvin
a174bbc4db
fix: Load logging config at runtime
...
Don't use hardcoded default
2024-11-29 15:05:12 +00:00
John Colvin
0adff5e042
refactor: Replace BoolName w/ FormattedBool
2024-11-29 15:05:12 +00:00
John Colvin
de5061064e
Init hb timestamp to avoid false drops
...
Mainly when debugging.
2024-11-29 15:05:12 +00:00
John Colvin
1ecaaf4cbe
fix: Run heartbeat timer in MarketDataGateway
...
This is why we were getting those heartbeat asserts. Previously,
only ExchangeSimApplication would start this timer. Since
MarketDataGateway doesn't share its MDProducer with
ExchangeSimApplication, it must start one itself.
2024-11-29 15:05:12 +00:00
John Colvin
8886054416
Make utils::TimeStamp formattable for logs, etc.
2024-11-29 15:05:12 +00:00
John Colvin
1725e1122d
fix build: Link Onixs dep libACE with --no-as-needed
...
libACE is an Onixs dep that isn't called directly by our code. For some
reason, gcc builds fail to resolve this dep at runtime unless this flag
is used. This isn't a problem with clang builds.
2024-11-29 15:05:12 +00:00
John Colvin
9b00f247e6
build: Replace global include/link dirs w/ target-specific calls
...
In other words, migrate "include_directories" and "link_directories" calls in the
root CMakeLists.txt to "target_include_directories" and "target_link_directories"
calls in InitLibrary.cmake
2024-11-29 15:05:12 +00:00
John Colvin
818caf8af0
fix build: Remove unused refs
...
Sparkd release builds were failing with warnings-as-errors about unused refs
2024-11-29 15:05:12 +00:00
John Colvin
69a60e992d
Fix eslint config and use modern flat style
...
https://eslint.org/docs/latest/use/configure/configuration-files#configuration-file
2024-11-29 15:05:12 +00:00
John Colvin
c40ae32c69
cleanup: Move global var into function scope in vite cfg
2024-11-29 15:05:12 +00:00
John Colvin
12b41a211c
Update node pkgs in datastream webapp
2024-11-29 15:05:12 +00:00
John Colvin
8e12d67d1f
cleanup (build): Remove unused cmake cache var
2024-11-29 15:05:12 +00:00
John Colvin
ccc71c5a65
Put cme config url in GlbxMarketDataConfig proto
...
Instead of using magic strings
2024-11-29 15:05:12 +00:00
John Colvin
5604eabde4
refactor: Change raw IDGenerator ptr to shared_ptr
2024-11-29 15:05:12 +00:00
John Colvin
869f629d3f
fix: Actually use include/exclude params in SymbolLoader
2024-11-29 15:05:12 +00:00
John Colvin
83879425e3
fix build: Remove unnecessary link lib ssl
2024-11-29 15:05:12 +00:00
John Colvin
718524b519
refactor: Replace ConfigDownloader w/ lib_http fns
...
Essentially all it did was fetch config files via http GET. I ported some http
fns over from the cme-websocket-connector repo, which uses curlpp instead of
curl, and also supports async requests (coroutines) via the 'concurrencpp'
https://github.com/David-Haim/concurrencpp
2024-11-29 15:05:12 +00:00
John Colvin
5bc5515b78
cleanup: Get rid of another Security type aliases
2024-11-29 15:05:12 +00:00
John Colvin
298290550e
cleanup: Remove unused code in Security.h/cpp
2024-11-29 15:05:12 +00:00
John Colvin
ef62430011
Fix typo in 'Quantity' FMT_IMPL
...
I didn't realize the "value()" function rounded out the decimal,
so I replaced it with a call to "full_value()".
2024-11-29 15:05:12 +00:00
John Colvin
d618387837
diag: Log when an MDProducer is created
2024-11-29 15:05:12 +00:00
John Colvin
7c11d7e57a
diag: Add logs around synthetic security discovery in MDConsumer
2024-11-29 15:05:12 +00:00
John Colvin
85819b93fa
refactor: Break shared mem md code up into smaller files
...
For easier reading/navigation
2024-11-29 15:05:12 +00:00
John Colvin
f9161949a8
refactor: Break md relay/query server code up into smaller files
...
To make code navigation easier. This was a difficulty which I recently
confronted, while investigating a bug that prevented synthetics from
showing up the ui.
2024-11-29 15:05:12 +00:00
John Colvin
4be5fe7ee2
refactor: Get rid of 'TimeStamp' typedef in MDStructure.h
...
Before this commit, we had 4 different TimeStamp types/identifiers, which is
confusing enough as it is:
* bts::core::TimeStamp
- in system/time_stamp.h
* bts::utils::TimeStamp
- in spark/utils/TimeStamp.h
* bts::TimeStamp
- in system/bts_chrono.h
- alias for std::chrono::system_clock::time_point
* bts::md::TimeStamp
- in spark/md/Shm/MDStructure.h
- alias for bts::utils::TimeStamp
- removed in this commit
Additional aliases for these TimeStamps only adds to the confusion (esp
when the alias comes from a nested include).
2024-11-29 15:05:12 +00:00
John Colvin
9699ee50a3
refactor: Change refs/raw ptrs to smart ptrs in md gateway
2024-11-29 15:05:12 +00:00
John Colvin
68e474bbdd
Fix typo in market_data.conf
2024-11-29 15:05:12 +00:00
John Colvin
7639553aca
Add BTC and ETH to VENUE_SIM in symbols.conf
2024-11-29 15:05:12 +00:00
John Colvin
7cc2a1ec3e
fix: Resolve main logging dir in new SparkDataDirectory class
2024-11-29 15:05:12 +00:00
John Colvin
7c0d51411a
refactor: Replace if/else with switch cases
2024-11-29 15:05:12 +00:00
John Colvin
1faef232aa
fix: Resolve onixs log & data dirs relative to app data root
...
When our logging code moved to lib_system, it lost access to the config
system. As a result, the "log_path" function, which was used by ICEMain
and MDP3Main, broke. I added a new class, SparkDataDirectory, to be the
central/common authority on paths to local storage.
2024-11-29 15:05:12 +00:00
John Colvin
4e41721e33
cleanup: Remove over-engineered subcommands
...
We don't need explicit subcommands to 'run onixs' md (just use config).
2024-11-29 15:05:12 +00:00
John Colvin
258ace9043
fix: Ensure IDGenerator instance is created before deref
2024-11-29 15:05:11 +00:00
John Colvin
d0f48ae0d9
fix: Expand undefined vars to empty string
...
Bugs (fixed):
* Md shared memory file names have unexpanded variable: '${BTS_SHARED_MEMORY_PREFIX}'
2024-11-29 15:05:11 +00:00
John Colvin
00a9d74221
fix: Emplace MDConsumerHandle instead of copy assign
2024-11-29 15:05:11 +00:00
John Colvin
a42017e592
Generate c++ protos w/ relative paths
...
We shouldn't be generating protos defined outside of the current CMakeLists.txt dir.
2024-11-29 15:05:11 +00:00
John Colvin
49ebe56e31
fix build: Make venue conversion constexpr
2024-11-29 15:05:11 +00:00
John Colvin
376906b756
build: Use new/robust init_library fn in lib_domain
2024-11-29 15:05:11 +00:00
John Colvin
c99954e173
refactor: Move config services to lib_system
...
The proto files are still in lib_spark, w/ the exception of
system_config.proto, since that is a dep of ConfigurationState.
2024-11-29 15:05:11 +00:00
John Colvin
5dc09d3399
refactor: Move logging into lib_system
...
This is a fundamental part of our application suite, so system seems
like a sensible home.
Also moved a few logging deps (to lib_system):
* bts_chrono.h
* bts_no_copy.h
* defer.h
* dispatcher.h/cpp
* file_utils.h/cpp
* type_name.h
2024-11-29 15:05:11 +00:00
John Colvin
cbf362ed0a
build: Move http code into its own lib
2024-11-29 15:05:11 +00:00
John Colvin
5656b33d26
refactor: Move thread_manager to lib_system
2024-11-29 15:05:11 +00:00
John Colvin
5d7f8a0052
build (linux): Migrate catch2 dep to vcpkg (from externals)
2024-11-29 15:05:11 +00:00
John Colvin
a74e80bdfb
build (linux): Migrate fmt dep to vcpkg (from externals)
...
Now both linux and windows use vcpkg's fmt
2024-11-29 15:05:11 +00:00
John Colvin
5040dd5e0c
cleanup: Remove unnecessary includes
2024-11-29 15:05:11 +00:00
John Colvin
9a9e3311f2
refactor: Move threads.proto to lib_system
2024-11-29 15:05:11 +00:00
John Colvin
c786afdd4c
refactor: Move warn_ctrl.h into lib_system
...
This is another logging dep
2024-11-29 15:05:11 +00:00
John Colvin
c1146e814a
build: Link boost_filesystem in lib_system
2024-11-29 15:05:11 +00:00
John Colvin
fd5d9ab7d3
refactor: Move os.h/cpp and deps to lib_system
...
This is a prerequisite for the next objective: move logging into its own lib.
As logging is a core dependency for so much of our system, this will enable
us to move more complex services (like md providers) into smaller libs.
2024-11-29 15:05:11 +00:00
John Colvin
0b34f87f86
cleanup: Remove unused code
2024-11-29 15:05:11 +00:00
John Colvin
f0ea3719cc
cleanup: Remove more unnecessary includes
2024-11-29 15:05:11 +00:00
John Colvin
56f171724c
refactor: Move SecurityMarketDataStatistics to lib_domain
2024-11-29 15:05:11 +00:00
John Colvin
9b705ec5e7
cleanup: Remove unnecessary code
2024-11-29 15:05:11 +00:00
John Colvin
342d1e8c6b
cleanup: Remove empty header FTXSecurity.h
2024-11-29 15:05:11 +00:00
John Colvin
e351e196ea
cleanup: Remove temporary redirect headers
...
These were used to make code migration smoother (to the new lib_system and lib_domain)
* spark/algorithm/TryCatch.h -> system/algorithm/try_catch.h
* spark/core/BoolName.h -> system/bool_name.h
* spark/core/EnumMacros.h -> system/enum_macros.h
* spark/core/FMT.h -> system/FMT.h
* spark/core/FMT_IMPL.h -> system/FMT_IMPL.h
* spark/core/TimeSpan.h -> system/time_span.h
* spark/core/TimeStamp.h -> system/time_stamp.h
* spark/domain/Price.h -> domain/price.h
* spark/io/JsonReader.h -> system/json/json_reader.h
* spark/io/JsonDumper.h -> system/json/json_dumper.h
2024-11-29 15:05:11 +00:00
John Colvin
6bf89ef76f
refactor: Move RFQ to lib_domain
2024-11-29 15:05:11 +00:00
John Colvin
fae0e3af16
refactor: Move AggressorSide proto to lib_domain
...
Get rid of non-proto AggressorSide enum while we're at it (consolidate to 1 type)
2024-11-29 15:05:11 +00:00
John Colvin
d47ccc9a9f
cleanup: Remove more unused code
2024-11-29 15:05:11 +00:00
John Colvin
df134aad68
refactor: Move a few Order types to lib_domain
2024-11-29 15:05:11 +00:00
John Colvin
372c54f089
refactor: Move TimeInForce to lib_domain
2024-11-29 15:05:11 +00:00
John Colvin
71863c2991
cleanup: Remove unused code
2024-11-29 15:05:11 +00:00
John Colvin
47cc33afc7
refactor: Move TradeRecord into lib_domain
2024-11-29 15:05:11 +00:00
John Colvin
ffb1d9fd47
refactor: Move TradingStatus enum to lib_domain
2024-11-29 15:05:11 +00:00
John Colvin
340e91f164
build: Update webpack-cli in admin webapp
2024-11-29 15:05:11 +00:00
John Colvin
3fb0b420db
build: Configure admin webapp build entirely in CMakeLists
...
Get rid of build_admin_web_app.py
2024-11-29 15:05:11 +00:00
John Colvin
7cc938d85e
refactor: Move domain types into new lib_domain
...
Also rename files in snake_case (standard naming convention for protos)
https://protobuf.dev/programming-guides/style/
2024-11-29 15:05:11 +00:00
John Colvin
f20e013e4e
refactor: Move collections into lib_system
2024-11-29 15:05:11 +00:00
John Colvin
bf9a6c3431
refactor: Move a handful of types/utils to lib_system
2024-11-29 15:05:11 +00:00
John Colvin
f052c591eb
build: Add preset to build with 6 jobs (-j 6)
...
Otherwise the devcontainer may hog too much cpu and cause the container to freeze
2024-11-29 15:05:11 +00:00
John Colvin
583cf0bb16
cleanup: Remove unused includes
...
Mostly collection macro headers
2024-11-29 15:05:11 +00:00
John Colvin
bb72e1b8ad
cleanup (build): Move protobuf service generation cmake into lib_spark
...
Because lib_spark owns all the services
2024-11-29 15:05:11 +00:00
John Colvin
5466058ef2
refactor: Rename protobuf out dir "include" -> "protobufs"
...
This is a more accurate and precise name. The dir contains c++ code generated
from .proto files - both sources (.cc) and headers (.pb.h).
2024-11-29 15:05:11 +00:00
John Colvin
e98bb730e4
refactor: Move ValueWrapper into lib_system
...
So other projects can use it
2024-11-29 15:05:10 +00:00
John Colvin
1f9a67f912
Include bts_assert.h in bts_fatal.h
...
We shouldn't have to include bts_assert.h when we're already including bts_fatal.h
2024-11-29 15:05:10 +00:00
John Colvin
ec0712b0cc
refactor: Split MarketDataGateway up into providers/sources
...
MarketDataGateway still exists, but is greatly simplified. It creates
several `IMarketDataProvider`s, each of which generates a list of
`IMarketDataSource`s. The market data sources provide market data to an
`IMarketDataListener`.
* EmumbaMarketDataProvider
* CCApiMarketDataProvider
* PyMarketDataProvider
* OnixsMarketDataProvider
* ReplayMarketDataProvider
As a side effect, individual py market data sources are now explicitly
limited to a single venue (it probably should have been this way all
along, since the shared memory writers do not expect updates to involve
multiple venues).
2024-11-29 15:05:10 +00:00
John Colvin
6ea7774e5f
cleanup: Remove superfluous code
2024-11-29 15:05:10 +00:00
John Colvin
f2f2024562
improvement: Set SHARED_MEMORY_PREFIX to an environment variable
...
So we can effectively define it at runtime. We don't want to have to
produce different builds just to change the shared mem prefix.
2024-11-29 15:05:10 +00:00
John Colvin
25ea9fac1d
fix: Always prepend proc name to shared mem prefix
...
Our shared memory model isn't really designed to be shared across processes.
Maybe some day it will.
2024-11-29 15:05:10 +00:00
John Colvin
98a6a357bd
cleanup: Remove redundant macro def
2024-11-29 15:05:10 +00:00
John Colvin
62a4073748
Skip md recording thread loop if no recorders configured to run
2024-11-29 15:05:10 +00:00
John Colvin
bad698a4ff
Handle signal interrupts explicitly in sparkd
...
Otherwise the python interpretter, which is instantiated when we load
python md plugins, prevents the application from exiting.
2024-11-29 15:05:10 +00:00
John Colvin
7ed2019006
feat: Add support for python md plugins
2024-11-29 15:05:10 +00:00
John Colvin
fd2fdf7d39
fix build: Ensure py scripts use unix line endings
...
I'm not sure why, but my sparkd build (linux) suddenly began failing to
generate cpp headers for protos. The error message indicated it was due
to an unexpected carriage return (\r) in plugin.py:
/usr/bin/env: ‘python\r’: No such file or directory
2024-11-29 15:05:10 +00:00
John Colvin
55349b2791
refactor: Add lib_system proj for common utils
...
Migrates the following:
* Delegate.h
* bts_array_size.h
* string_utils.h
Note: File names in the new lib are snake_case (this seems to be the
standard naming convention for c++).
2024-11-29 15:05:10 +00:00
John Colvin
5d7aa63869
cleanup: Trivial whitespace cleanup in sparkd CMakeLists
2024-11-29 15:05:10 +00:00
John Colvin
81057cfe77
build: Add cmake fns to symlink and install local libs
...
The code needed to do this (inline) is ugly and verbose
2024-11-29 15:05:10 +00:00
John Colvin
54bd95e8b2
cleanup: Use conventional UPPER_CASE var names in sparkd CMakeLists
2024-11-29 15:05:10 +00:00
John Colvin
841d1be1dd
cleanup: Trivial whitespace cleanup in Protobuf.cmake
2024-11-29 15:05:10 +00:00
John Colvin
d54d5b31ad
build: Clean up data_files cmake proj (support --target clean)
2024-11-29 15:05:10 +00:00
John Colvin
457e619261
refactor: Organize libspark proj w/ stuttering include
...
This new structure provides several benefits:
* Allows us to install multiple CMake projects in the same destination
dir (without include path conflicts).
- This makes shipping the trading algo sdk a trivial excercise. Simply
copy the lib and include dirs from the install dest. That's it!
* Puts us in a position to break up the monolithic libspark into smaller
modules, which are easier to manage.
2024-11-29 15:05:10 +00:00
John Colvin
fcace19a5a
vscode: Add debug cfg to skip sparkd build
2024-11-29 15:00:58 +00:00
John Colvin
e815362b50
fix build: Add ShmSegmentName.cpp to windows client sources
2024-11-29 15:00:58 +00:00
John Colvin
1c3238b86d
Make a few timestamp fns const
...
They should have been const in the first place
2024-11-29 15:00:58 +00:00
John Colvin
092a29d28b
Add config profiles to libspark
...
This is part of a larger effort to unify the libspark build, and eliminate
compile time differences between the builds used by our various services
2024-11-29 15:00:58 +00:00
John Colvin
6202ba52b4
Add api server to docker compose
2024-11-29 15:00:58 +00:00
John Colvin
8afac9e4ac
Rename pingtest "sparkd-ping-test", make it depend on sparkd
...
Add it to a "ping-test" profile, as we may add similar tests for other services
2024-11-29 14:58:54 +00:00
John Colvin
5602c6c642
cleanup: Remove unnecessary env vars from webapp docker compose
2024-11-29 14:58:54 +00:00
John Colvin
be77b630dd
vscode: Fix sparkd debug config
2024-11-29 14:58:54 +00:00
John Colvin
b20c38bd1a
build: Resolve app data dir and shared mem prefix at runtime
...
We really can't define them at compile time anymore as we build multiple
exes that depend on libspark in the same dir (e.g., spark api server,
pubsub, ds-publisher, webapp, etc.). That means one libspark.so (or dll)
must serve all exes. We should compile a consistent libspark to mitigate
the risk of running an exe with the wrong version (of libspark). For
example, running pubsub with a libspark configured for spark api server,
leftover from an earlier build.
2024-11-29 14:58:54 +00:00
John Colvin
932918f473
Don't log "initializing spark config" if it has already been initialized
2024-11-29 14:58:54 +00:00
John Colvin
24cbfd9062
vscode: Add debug cfg for spark api server
2024-11-29 14:58:54 +00:00
John Colvin
e39de508f7
Use dependency injection in spark api server
2024-11-29 14:58:54 +00:00
John Colvin
a9542b3dd1
Add SparkLoggerAdapter for Msft ILogger
2024-11-29 14:57:44 +00:00
John Colvin
badb5e4c2d
Display exception stack trace w/ 1 call per line in ds webapp
2024-11-29 14:57:44 +00:00
John Colvin
7d870d925b
Remove unused ErrorView from ds webapp
2024-11-29 14:57:44 +00:00
John Colvin
a47fc311b3
Propagate ViewStream errors to webapp frontend
2024-11-29 14:57:44 +00:00
John Colvin
4e63428540
Add ErrorChanged event to propagate DataStream exceptions
2024-11-29 14:57:44 +00:00
John Colvin
29b305635d
Set columns to empty array rather than null in ds webapp
...
If no data has been received. Since the 'columns' property was marked
'required', this eliminates a warning that was being logged to console.
2024-11-29 14:57:44 +00:00
John Colvin
ef10ae6075
Improve alignment/spacing in ds webapp
2024-11-29 14:57:44 +00:00
John Colvin
7e8ee6a22c
Configure datastream deployment with docker-compose
...
To deploy to aws, connect to our aws vpn then run:
tools/deploy-docker-compose.sh
The deploy script does the following:
* builds sparkd
* builds datastream apps (pubsub, md-publisher, and webapp)
* uploads the build to aws
* bounces all services (sparkd, pubsub, md-publisher, and webapp)
Note: the name 'md-publisher' refers to DataStreamPublisher w/ MarketData
configuration
2024-11-29 14:57:44 +00:00
John Colvin
95d3f643d5
Remove "BTS Cloud Streams" title from webapp
...
Space is precious when viewing on phone (tbh, it didn't look that good
anyways).
2024-11-29 14:57:44 +00:00
John Colvin
5819bfdd87
fix: Ensure md-publisher waits for pubsub and sparkd
...
Bugs (fixed):
* md-publisher silently fails if it tries to connect before those services are "ready".
The Docker compose "depends_on" property ensures sparkd and pubsub
containers are up, but doesn't prevent startup race bugs (e.g., if
md-publisher and pubsub start around the same time, and md-publisher
tries to connect before pubsub has started accepting connections). To
address these race conditions, we use a nifty tool called "dockerize"
References:
* https://github.com/jwilder/dockerize
2024-11-29 14:57:44 +00:00
John Colvin
61427533d3
Replace ErrorView component w/ robust QueryStatusView
2024-11-29 14:57:44 +00:00
John Colvin
a84af452af
Fix typos in query button theme
2024-11-29 14:57:44 +00:00
John Colvin
c1bdd09d80
fix: Don't assert on exception in BooleanExpression.evaluate
...
Bugs (fixed):
* DataStream WebApp Server sometimes crashes when the user enters a
bad query.
2024-11-29 14:57:44 +00:00
John Colvin
9de72db6fd
Change VITE_DATASTREAM_WEBSOCKET_URL to localhost
2024-11-29 14:57:44 +00:00
John Colvin
dd0e46b6f8
Assert that local ip address is successfully obtained
2024-11-29 14:57:44 +00:00
John Colvin
1b5a4aad61
improvement: Resolve hostnames when comparing ip addrs
...
So we can to configure pubsub routes by hostname or ipv4 (ipv6 hasn't been
tested yet...so we should assume it doesn't work).
2024-11-29 14:57:44 +00:00
John Colvin
1bd8765f39
Assert TcpConnection endpoint matches expected
2024-11-29 14:57:44 +00:00
John Colvin
493f7229f3
Fix typo in log msg (was missing interpolation '$')
2024-11-29 14:57:44 +00:00
John Colvin
0ad996a959
Catch exceptions on AsyncTCPConnector_AsyncWrapper background thread
...
Since it spawns a new thread on each attempt, uncaught exceptions were previously undetected,
and caused silent failures down the pipe. This should make it easier to track such bugs down.
2024-11-29 14:57:44 +00:00
John Colvin
4c5a3fa229
fix: Format PubSubRoute as json in log msgs
...
It was previously using the default ToString, which simply returns the type name
2024-11-29 14:57:44 +00:00
John Colvin
565b004ea5
build: Upgrade packages (deps) in DataStreamTests
2024-11-29 14:57:44 +00:00
John Colvin
92952eb9e9
cleanup: Remove unused ViewStreamDatabase config
2024-11-29 14:57:44 +00:00
John Colvin
e89911b6e8
vscode: Add PubSubServer debug cfg to skip build
2024-11-29 14:57:44 +00:00
John Colvin
00c110beb2
Configure apps as a distributed system via Docker compose
2024-11-29 14:57:44 +00:00
John Colvin
86448372cb
Remove reference to spark protobuf Config in ViewStream
...
We can't read spark protobuf Config until it has been initialized,
and since ViewStream doesn't have the configServer param handy it
isn't able to initialize config if necessary. In that case, it would simply
block until config was initialized by someone else. Such a risk doesn't
seem justified for this particular configuration dependency
(DataStreamConfig.UseUncopiedNewRowsInFire). For now, its hardcoded to false.
2024-11-29 14:57:44 +00:00
John Colvin
525bb61140
refactor: Run RemoteQueryManager as an IHostedService
...
This paradigm more accurately represents the RemoteQueryManager as a
Service that can be started/stopped.
2024-11-29 14:57:44 +00:00
John Colvin
b49e392915
Remove inappropriate "Unable to dispose subscription" log msg
2024-11-29 14:57:44 +00:00
John Colvin
d4a39e3d1c
fix: Ensure spark config init and login are only performed once
...
As a static function that could be called from anywhere in the code
(directly or indirectly), 'Configuration.Initialize' was vulnerable to
race bugs. The "Configuration.get<T>()" method, whose calls are
ubiquitous in our code, would initialize config if it hadn't been done
so already. Without a reference to the configServer param, this param
would effectively be ignored/overridden with null.
It's important that login only be performed once, for obvious reasons
(our exes that connect to sparkd are generally designed to process data
for a single user). Furthermore, not every routine that requires a
successful login has a reference to the credentials needed to do it. To
address this, we now pass the ISparkdLoginService singleton to these
routines so they can wait until the singular login task has completed
before they begin.
2024-11-29 14:57:44 +00:00
John Colvin
2241da9f9e
Move misplaced log abt initializing query text to appropriate place
2024-11-29 14:57:44 +00:00
John Colvin
659e387841
Assert ViewStreamDatabase.instance is only created once
...
The instance must be initialized via ViewStreamDatabase.SetGlobalInstance
2024-11-29 14:57:44 +00:00
John Colvin
1a408fe86d
cleanup: Remove unused code from ViewStreamDatabase
2024-11-29 14:57:44 +00:00
John Colvin
5b9302a3f0
Include subscription id in ds websocket updates
2024-11-29 14:57:44 +00:00
John Colvin
dc5a5c858f
fix: Define BoooleanConstant before StringConstant
...
Otherwise the former masks the latter and prevents it from matching
2024-11-29 14:57:44 +00:00
John Colvin
3dec8153f6
Log event data in websocket open, close, error callbacks
2024-11-29 14:57:44 +00:00
John Colvin
2b47263453
refactor: Bring back Material DataGrid
...
Fix the column resize bugs that made it previously unusable
2024-11-29 14:57:44 +00:00
John Colvin
4539113b70
refactor: Improve react webapp state management
...
* Add queryTextResetTime as part of the CannedQuery state
(the QueryControl compares the canned query click time with the time of the
last user input, and applies the text from the most recent change)
* Replace 'isRunning' (bool) with a 'queryState' (string) to reflect the subscription status
value received from the server. Less indirection this way.
* Replace inappropriate useMemo call w/ useEffect
2024-11-29 14:57:44 +00:00
John Colvin
f6bac8750b
cleanup: Get rid of magic const (subscriptionId) in webapp App.jsx
2024-11-29 14:57:44 +00:00
John Colvin
bcbcdfcfa5
build: Copy configuration profiles to publish dir
2024-11-29 14:57:44 +00:00
John Colvin
8933523731
cleanup: Remove unnecessary deps from csprojs
2024-11-29 14:57:44 +00:00
John Colvin
96f8eef3af
build: Change publish_data_stream.py to publish the sln
...
We were publishing individual projects as a workaround for the
dependency issue (bug) that caused some projects to incorrectly target
net8.0. The fact that publishing individual projects "just worked" was
probably dumb luck. Now that the underlying issue has been addressed, we
can resume publishing the sln as a whole.
2024-11-29 14:57:44 +00:00
John Colvin
ae4abfb5e6
dev: Install docker in devcontainer
...
So we can start various services like sparkd, pubsub, ds publishers, ds
webapp, etc. from inside the devcontainer.
2024-11-29 14:57:44 +00:00
John Colvin
a1e15c90c8
dev: Remove dotnet8 from devcontainer
...
We'll upgrade to dotnet8 eventually, but now isn't the time (too much
more important work to be done).
2024-11-29 14:57:44 +00:00
John Colvin
bd30ba1dab
dev: Run devcontainer on host network
...
So we don't need to worry about publishing the right ports (and don't
need to rebuild the container everytime the list of ports changes).
2024-11-29 14:57:44 +00:00
John Colvin
563ef13420
fix: Downgrade Microsoft.Extensions.Hosting to 7.0.1
...
A handful of csprojs were referencing version 8.0.0. Since that version
targets net8.0, I have no idea why it didn't cause the build to fail.
Instead, this framework mismatch led to a mysterious runtime crash with
the following error, despite the dll in question being present in the
build dir:
Unhandled exception. System.IO.FileNotFoundException: Could not load file or assembly 'System.Diagnostics.DiagnosticSource, Version=8.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'.
The system cannot find the file specified.
It is worth noting that this crash would only happen for exes published
as part of the DataStreamSuite.sln with the "--self-contained" flag. For
example, the Bts.DataStreamSuite.Server exe would always fail if
published via:
dotnet publish --configuration Release --sc --framework net7.0 --runtime linux-x64 <DataStreamSuite.sln>
2024-11-29 14:57:44 +00:00
John Colvin
ffd07b96e3
Add HttpsRedirection middleware first in the webapp pipeline
...
Middleware handlers are invoked in the order in which they are added. Any middleware
that is added before HttpsRedirection may can prevent the request from being redirected.
As of now, only development-specific middleware is added ahead of HttpsRedircetion.
2024-11-29 14:57:44 +00:00
John Colvin
435bad013f
build: Copy configuration profiles to build dir
...
So they are readily available to publish/deploy scripts.
2024-11-29 14:57:44 +00:00
John Colvin
99a67cde7d
Fix benign typo in Scanner/Parser msbuild targets
...
The output path referenced a non-existant msbuild metadata prop "RelativeOutputDir"
(the actual prop is called "RelativeDir"). Also, the OutputFile path is relative to the
project dir (the 'MSBuildProjectDir' prop), not the file being included.
2024-11-29 14:57:44 +00:00
John Colvin
8326abdf10
fix: Catch exception when creating TcpClient
2024-11-29 14:57:44 +00:00
John Colvin
66697830a0
fix: Catch WebSocketException in DataStreamSubscription
2024-11-29 14:57:44 +00:00
John Colvin
35d2016670
fix: Add null check to NonIncGroupByStream
2024-11-29 14:57:44 +00:00
John Colvin
be18e269a3
fix: Add null check to TableAccumulator2
2024-11-29 14:57:44 +00:00
John Colvin
a040729cab
fix: Add self-signed certificate to Dockerfile for ds webapp
2024-11-29 14:57:44 +00:00
John Colvin
6865485d55
fix: Make SystemSubscriptionMapPublisher threadsafe
...
The PubSubState.onTagMapChanged event may not be invoked on
the same thread as doWork.
2024-11-29 14:57:44 +00:00
John Colvin
a6b7ddbe38
fix: Add null check in TimeBasedFilter.cs
2024-11-29 14:57:44 +00:00
John Colvin
4ebb02810f
Reduce task wait/timeout code in AsyncTCPConnector
2024-11-29 14:57:43 +00:00
John Colvin
0ffc8cb9b6
Add a few canned queries to AwsProd.json for ds webapp
2024-11-29 14:57:43 +00:00
John Colvin
da14a2b4ae
fix: Copy canned queries to clipboard on click
...
Instead of trying to update the text directly, which causes the front end
to overwrite the user's changes everytime the data updates from then on.
2024-11-29 14:57:43 +00:00
John Colvin
6fd6a0dd55
fix: Convert invalid doubles to nan in ds webapp serializer
2024-11-29 14:57:43 +00:00
John Colvin
b9a5e91cad
Increase datagrid maxheight in ds webapp to 1000px
2024-11-29 14:57:43 +00:00
John Colvin
2770e01726
Improve error display in ds webapp
2024-11-29 14:57:43 +00:00
John Colvin
0777e3f160
fix: Dispose existing sub on subscribe req in ds webapp
...
Even if new sub has parse error. This fixes a bug where the previous
subscription would continue firing and updating the frontend, when it
should just display the error info to the user and cease updates.
2024-11-29 14:57:43 +00:00
John Colvin
1eb3075569
fix: Get rid of "UseSpa" calls in webapp Production environment
...
This was leftover from a misguided attempt to fix a bug that turned out
to be due to an omitted environment var:
ASPNETCORE_HOSTINGSTARTUPASSEMBLIES=Microsoft.AspNetCore.SpaProxy
2024-11-29 14:57:43 +00:00
John Colvin
8b12600209
Define webapp specific env vars in generic datastream app deploy script
...
For now, this makes things easier, as I don't need to write a special script just for the webapp
2024-11-29 14:57:43 +00:00
John Colvin
2d359e0e70
Add config profile and Dockerfile args to deploy script
2024-11-29 14:57:43 +00:00
John Colvin
1e2ae74de2
Copy DataStream WebApp 'dist' to 'wwwroot' in deploy script
2024-11-29 14:57:43 +00:00
John Colvin
729e9f35ae
Tweak DataGrid style in DataStream WebApp
2024-11-29 14:57:43 +00:00
John Colvin
316f49227d
Add AwsProd config for DataStream WebApp
2024-11-29 14:57:43 +00:00
John Colvin
c59345dc0a
fix: Add VITE_ prefix to imported env vars
...
For the DataStream WebApp client
2024-11-29 14:57:43 +00:00
John Colvin
2e0c9c8d54
Fix urls for DataStreamPublisher AwsProd.json
2024-11-29 14:57:43 +00:00
John Colvin
e3ad222015
Add benzinga news streams to AwsProd.json
...
This is a config profile for DataStreamPublisher, designed to be deployed
to aws (on public internet).
2024-11-29 14:57:43 +00:00
John Colvin
b18facfa87
fix build warnings: Make props nullable strings in SharedStreamConfig
2024-11-29 14:57:43 +00:00
John Colvin
397f6156dc
whitespace: Format PubSubServer.json (indentation issues)
2024-11-29 14:57:43 +00:00
John Colvin
98717e378f
Add a few tasks to run DataStream WebApp
2024-11-29 14:57:43 +00:00
John Colvin
d277495610
fix: Import websocket url from environment var
2024-11-29 14:57:43 +00:00
John Colvin
250f34e3de
Add scripts to deploy data stream apps
2024-11-29 14:57:43 +00:00
John Colvin
00c06429b1
Add SpaServer to Production environment
...
For Bts.DataStreamWebApp.Server
2024-11-29 14:57:43 +00:00
John Colvin
254e3d38af
Change DirectoryBrowser requestPath to "/browse"
...
So we can view a psuedo file explorer for the webapp by requesting the "/browse" path
(only activated in Development environment).
2024-11-29 14:57:43 +00:00
John Colvin
4156c6b733
Publish Bts.DataStreamWebApp.Server along with PubSub & DataStream
2024-11-29 14:57:43 +00:00
John Colvin
fc40ea412f
cleanup: Remove unused code in Bts.DataStreamWebApp.Client
2024-11-29 14:57:43 +00:00
John Colvin
e03b7d5991
Capture OperationCanceledException (instead of TaskCanceledException)
...
The former is the base class for the latter, so this will widen the umbrella to catch a few corner cases
that would otherwise been handled by the generic "Exception" catch block. One corner case I know
of is when an op is canceled via "CancellationToken.ThrowIfCancellationRequested". In that case,
an OperationCanceledException is thrown (not a TaskCanceledException).
https://stackoverflow.com/questions/34359129/operationcanceledexception-vs-taskcanceledexception-when-task-is-canceled
2024-11-29 14:57:43 +00:00
John Colvin
0e198e0ebf
Hardcode webSocketUrl to aws server in DataStreamWebApp client
2024-11-29 14:57:43 +00:00
John Colvin
27a9bf66bb
Assert that System publishers 'doWork' is always called on same thread
2024-11-29 14:57:43 +00:00
John Colvin
2a390c7c2e
fix: Make InternalPublisherQueue thread safe
2024-11-29 14:57:43 +00:00
John Colvin
ee0d444ae6
Improve error reporting in DataStreamWebSocketServer
2024-11-29 14:57:43 +00:00
John Colvin
b058cde0ca
data stream web app client check pt
2024-11-29 14:57:43 +00:00
John Colvin
39bb411bda
fix build: Fix Spark build after making config init async
2024-11-29 14:57:43 +00:00
John Colvin
7423721c72
refactor: Tweak SparkCoreServices to synchronize Configuration.init globally
2024-11-29 14:57:43 +00:00
John Colvin
ffbf7b5e8d
refactor: Change Configuration.initialize to be async
2024-11-29 14:57:43 +00:00
John Colvin
eb5aa9c3c7
vscode: Add 'isSparkApiEnabled' input to launch.json
2024-11-29 14:57:43 +00:00
John Colvin
b90730fd11
SparkApiService check pt
2024-11-29 14:57:43 +00:00
John Colvin
142d530999
datastreamwebapp server checkpt
2024-11-29 14:57:43 +00:00
John Colvin
a5670d2aaa
datastream webapp client check pt
2024-11-29 14:57:43 +00:00
John Colvin
3179e9add3
Remove unused PubSubConfig props
2024-11-29 14:57:43 +00:00
John Colvin
8dae6e37e6
Fix dsqa config json
2024-11-29 14:57:43 +00:00
John Colvin
eb0086d2c6
fix: Always call 'handle_internal_pubs' in PubSubMessageReactor main loop
2024-11-29 14:57:43 +00:00
John Colvin
0f680b1947
improvement: Accept CancellationToken, catch exceptions when running ds websocket server
2024-11-29 14:57:43 +00:00
John Colvin
e4745a587f
Fix mismatched types in PubSubServerTagStatsStream schema
2024-11-29 14:57:43 +00:00
John Colvin
adfc0b5235
Add DataStreamPublisher service modules designed for Dependency Injection
...
* Change DataStreamPublisher json fields to match cs class property names verbatim
* Rename Publishers -> PublisherNodes in DataStreamPublisherConfig
2024-11-29 14:57:43 +00:00
John Colvin
30cf7ac5f9
refactor: Decouple ViewPublisher from IPubTableBroker impl
2024-11-29 14:57:43 +00:00
John Colvin
31b065c854
Add PubSub service modules designed for Dependency Injection
...
* Get rid of JsonPropertyName attributes in PubSubConfig
- The Dependency Injection framework (based around dotnet ApplicationBuilder)
does not support this attribute, and maps property names verbatim to json fields.
* Change PubSubServer json fields to match cs class property names verbatim
2024-11-29 14:57:43 +00:00
John Colvin
04a0cf9144
refactor: Decouple RemoteQueryManager from IManagedSubscriber, IPubTableBroker impl
2024-11-29 14:57:43 +00:00
John Colvin
37d6ffa27a
refactor: Decouple ManagedSubscriber from ISubscriberCore impl
2024-11-29 14:57:43 +00:00
John Colvin
2760867093
refactor: Only support 1 tag type in IPubSubServerTagHandler
2024-11-29 14:57:43 +00:00
John Colvin
191de2ae46
refactor: Decouple PubTableBroker from IPublisherCore impl
...
Reference interface rather than the PublisherCore impl.
2024-11-29 14:57:43 +00:00
John Colvin
0b444d5f2f
improvement: Accept CancellationToken in JsonRpcRequestObservable
2024-11-29 14:57:43 +00:00
John Colvin
702eac44d3
fix: Dispose market data sub in various md streams
2024-11-29 14:57:43 +00:00
John Colvin
30b23d36fa
cleanup: Remove unused pubsub tag handler code
...
* Removed 'IPubSubServerTagHandler.register'
- All implementations of this function were empty
* Removed 'IPubSubServerTagHandler.supportedTagTypes'
- This property wasn't referenced anywhere
* Remove IWorker inheritance from IPubSubServerTagHandler
- No reason these interfaces have to be tied together
2024-11-29 14:57:43 +00:00
John Colvin
202a9f6206
refactor: Rename CloudStreamManager.cs -> RemoteQueryManager.cs
...
This matches the file name
2024-11-29 14:57:43 +00:00
John Colvin
0d1966e752
Change pub sub schema prefix 'bluto://' -> 'bts-cloud://'
...
In config json files (not actual code change)
2024-11-29 14:57:43 +00:00
John Colvin
a25905d55d
fix build: Fix prop names after refactoring PubSubRoute
...
* Change 'server_address' -> 'ServerAddress'
* Change 'tag_reg_exp' -> 'TagRegExp'
2024-11-29 14:57:43 +00:00
John Colvin
dddf14e356
build: Add scripts to publish data stream apps
2024-11-29 14:57:42 +00:00
John Colvin
962fd8712a
Fix typo in log msg
2024-11-29 14:57:13 +00:00
John Colvin
7685b1f628
Fix build scripts so they propagate the exit code back to the shell
...
I noticed this was broken because launch.json configurations would still start the debugger
even when the preLaunchTask (build) failed!
2024-11-29 14:57:13 +00:00
John Colvin
ef94ecf6a6
vscode: Add DataStreamPublisher debug cfg to skip build
2024-11-29 14:57:13 +00:00
John Colvin
26f9a76fc8
build: Use separate cmd to build DataStreamSuite/QueryAnalyzer.sln
...
The DataStreamSuite.sln builds the new webapp now, which will
(eventually) replace DSQA. We'll keep it around for now, but with a
clean separation from the main build.
2024-11-29 14:57:13 +00:00
John Colvin
806c204f08
feat: Add DataStream WebApp
...
Included in DataStreamSuite.sln, but not DataStreamQueryAnalyzer.sln
2024-11-29 14:57:13 +00:00
John Colvin
4aa3c67e87
Add spark service modules designed for Dependency Injection
2024-11-29 14:57:13 +00:00
John Colvin
614adac241
build: Copy libspark to all dotnet dirs in single cmake target
...
This is cleaner than the previous impl, which used separate build
targets to copy libspark to "net7.0", and "net7.0-windows" (dirs).
2024-11-29 14:57:13 +00:00
John Colvin
63ece377de
fix: Parse ServerAddress as normal string
...
The "JsonValueOrArrayConverter<T>" doesn't work the way I thought it
would. When it is associated with a property via the JsonConverter
attribute, dotnet json parsing code throws an exception if "T" isn't
assignable to the property type.
2024-11-29 14:57:13 +00:00
John Colvin
e49efc2bbf
fix build (api server): Change namespace to bts.websocket_core
2024-11-29 14:57:13 +00:00
John Colvin
e431c309ed
Remove docker submodules again
2024-11-29 14:57:13 +00:00
John Colvin
3c5769b3da
Change externals url from ssh to https style
...
So we don't need ssh keys to clone it (the builtin credential manager
makes https authentication safe/easy)
2024-11-29 14:57:13 +00:00
John Colvin
efe09eb1b7
cleanup: Fix benign typos in build scripts
...
Change BUILD_SPARK_PY var name to BUILD_PY (because these scripts to actually build 'spark')
2024-11-29 14:57:13 +00:00
John Colvin
ca0cc90a24
fix build (warn): Only use Registry on windows
2024-11-29 14:57:13 +00:00
John Colvin
ce2c3d930a
cleanup: Fix numerous build warnings in DataStreamSuite
...
Nearly all warnings were due to nullability issues, since the concept of
nullable reference types did not exist when the DataStream code was
originally written.
* PubSubClientMessage
- Normalize indentation/whitespace
- Fix some typos
- Address nullability issues to fix build warnings
- Modernize code
* Compression related files
- ZipEntry
- ZipFile
- ZipInputStream
- TarHeader
* RemoteMessage
- make 'message' nullable to resolve warnings elsewhere (in calling code)
* PubSubSingleTagStateEvent.cs
* PubSubMessageReactor
* PubSubState
* SystemHeartbeatPublisher
* SystemStatsPublisher
* SingleTagData
* ManagedTCPMessageHub
* PubsubDeserializationController
* PublisherCore
* InflaterHuffmanTree
* AsyncTCPConnection_APM
* ThreadSafeQueue
* ManagedSubscriber
* SubscriberCore
* PubSubServerManagedTCPConnection
* AsyncTCPConnection_APM
* SuperMapStream
* MapStream
* TradeBarsStream
2024-11-29 14:57:13 +00:00
John Colvin
e7725233e4
cleanup: Disable nullability warnings
...
* BZip2InputStream
* TarInputStream
* Inflater
* InflaterDynHeader
* BZip2OutputStream
* DeflaterHuffman
* ParallelJoinTest
2024-11-29 14:57:13 +00:00
John Colvin
6ed6b65027
cleanup: Modernize PubSubRoute code, json parsing
2024-11-29 14:57:13 +00:00
John Colvin
899e57cfef
cleanup: Remove unused DateTime grammar from exp parser
2024-11-29 14:57:13 +00:00
John Colvin
2fae6f6312
Add JsonRpcRequestObservable, AsyncEnumerable
2024-11-29 14:57:13 +00:00
John Colvin
030f1adaed
Add json facilities for DataStream websocket api
2024-11-29 14:57:13 +00:00
John Colvin
1ce7912b8c
refactor: Add handy WebsocketExtensions
...
* IsSocketStateOpen
* IsClosedProperly
2024-11-29 14:57:13 +00:00
John Colvin
3f73b811db
feat: Add JsonRpc types for websocket paradigm
2024-11-29 14:57:13 +00:00
John Colvin
fee48eab80
cleanup: Remove empty file (clearly added by accident)
2024-11-29 14:57:13 +00:00
John Colvin
ac6dde22f4
fix: Fix improper 'OfType' linq cast
...
Previously, animations were expressed through polymorphism (derived from the
base class CellAnimation), but the new impl uses composition. This 'OfType' call
was leftover from the polymorphism implementation, an attempt to linq cast
elements of base class (CellAnimation) to BackgroundAnimation.
2024-11-29 14:57:13 +00:00
John Colvin
83c1498e75
editorconfig: Use standard c# capitalization rules
...
* Use 'PascalCase' for public members (instead of 'snake_case')
* Use 'camelCase' for private members (instead of '_snake_case')
2024-11-29 14:57:13 +00:00
John Colvin
3a04775a4d
refactor: Add WebsocketClient class
...
Basically an ISubject (I/O) wrapper for IWebsocketConnectionGateway
2024-11-29 14:57:12 +00:00
John Colvin
b68daf48c8
refactor: Change WebsocketServerConfig.port to uint32
...
It should always be a number between 1-65535
2024-11-29 14:57:12 +00:00
John Colvin
efcf4f66a1
refactor: Rename WebsocketServerConfig proto pkg 'bts.websocket_core'
...
This matches the namespace used in spark_websocket csproj. Eventually,
I'd like to use conventional capitalization (TitleCase namespaces/types,
etc.), but let's shelf that until we have enough time/energy to do a
more comprehensive refactoring.
2024-11-29 14:57:12 +00:00
John Colvin
39002b0829
refactor: Remove nullability constraint in GetValueOrDefault
2024-11-29 14:57:12 +00:00
John Colvin
71803ddcd6
refactor: Use events to avoid circular deps for ws sync/gateway
2024-11-29 14:57:12 +00:00
John Colvin
8cde8ee6e1
build: Add script to publish the api server
...
This will build the app as a self-contained executable here:
build/Release/bin/net7.0/linux-x64/publish
2024-11-28 16:35:21 +00:00
John Colvin
4f8fad444e
fix build: Add missing csproj deps to Spark.Api.Server.sln
2024-11-28 16:35:20 +00:00
John Colvin
832c645a30
build: Map cmake install dir to associated preset
...
Cpp bins are now installed to "install/<cmake_preset>/bin". For example,
"install/sparkd-release-gcc/bin", "install/spark-api-server-linux/bin", etc.
2024-11-28 16:35:20 +00:00
John Colvin
691343d9b6
feat: Add datastreams to spark api server
2024-11-28 06:14:00 +00:00
Taha
461cbad338
Adding FakeBBO stream
2024-11-27 13:36:14 -05:00
Taha
fecbcbb6b6
Merge branch 'development' of bitbucket.org:bluetradesys/spark into development
2024-11-26 22:33:31 -05:00
Taha
aab8e83543
Some rewrite of streams that fetch bars, and making the other business streams thin wrapper over stream primitives
2024-11-26 22:33:26 -05:00
Mohammad Arham
0e893b9b5d
Fix: Multiple Exchange data sources work without timee
2024-11-20 23:48:50 +00:00
Mohammad Arham
0593ae0320
Fix: Logging path was incorrect
2024-11-20 23:48:24 +00:00
Mohammad Arham
960149b9c5
Fix: Stupid bug on sleep time
2024-11-20 22:49:22 +00:00
Mohammad Arham
b5f5f2f3d5
Merge branch 'development' of bitbucket.org:bluetradesys/spark into development
2024-11-20 17:21:45 -05:00
John Colvin
bd8c97244a
refactor: Return row id in IStore::retrieve_one
...
This is a prerequisite to synchronizing security ids stored via IDGenerator
(the "new" way to store ids, added when we implemented Deribit), and
SecurityDB (the original way from spark days). The problem was that these
2 implementations were using separate databases. We need to unify the
interfaces between these storage services to avoid breaking existing code.
2024-11-20 22:17:08 +00:00
John Colvin
cb187e6997
Interpret db strng param as name or path in SqliteStore ctr
2024-11-20 22:17:08 +00:00
John Colvin
4004ed2267
refactor: Normalize sec key indexing for old md sources
...
Now both old and new (domain) md sources index securities by
the same string format.
2024-11-20 22:17:08 +00:00
John Colvin
a00347ac3f
Add ostream operator for Venue
2024-11-20 22:17:08 +00:00
John Colvin
c4d08840bd
Add ostream operator for SecurityType
2024-11-20 22:17:08 +00:00
John Colvin
84c0684b63
refactor: Normalize sec key indexing for new (domain) md sources
...
This is part of a larger effort to unify the way we index securities in order
to generate unique ids. Older md sources (e.g., MDP3Listener) use
SecurityIDRecorder to generate ids, which uses a different database and
different key-string formatting than the IDGenerator used by the newer md
sources (e.g., GeneralMarketDataListener and various ccapi-based sources).
2024-11-20 22:17:08 +00:00
Mohammad Arham
bca8df6d99
Fix: Release Crash fixed still has timer
2024-11-20 22:14:48 +00:00
Mohammad Arham
98f8e58f3f
Add optional tags to config
2024-11-20 22:12:06 +00:00
Mohammad Arham
76f18f3443
Fix: typo in fixed securities
2024-11-20 20:17:29 +00:00
Mohammad Arham
b67d748ba1
removed: moved onix glbx to main controler thread
2024-11-20 06:58:14 +00:00
Mohammad Arham
0113721355
Add: Config for marex reconnect attemps
2024-11-20 06:29:41 +00:00
Mohammad Arham
715f7f7c70
Fix: Race condition causes crash not sure if fixed
2024-11-20 06:17:28 +00:00
Mohammad Arham
89955597c1
Add: Onix/Marex fix adapter, listener, and state handler
2024-11-20 06:16:58 +00:00
Mohammad Arham
96d9aae048
Add: IFIXGenericAdapter
2024-11-20 04:45:36 +00:00
Mohammad Arham
f28d32946f
Add: General Execution Gateway (between system and IFIXAdapter )
2024-11-20 04:39:43 +00:00
Mohammad Arham
924efb2c3f
Add: Added proto for marex fix config
2024-11-20 04:26:39 +00:00
Mohammad Arham
50abb1d784
Fix: Refactored to Switch Statement instead of if and aadded cboe
2024-11-20 04:24:51 +00:00
Mohammad Arham
b5ef39ee4b
Fix: Change default tick_config for taifed
2024-11-20 04:18:58 +00:00
Mohammad Arham
5b61b4fe69
Add: Accounts for CBOE Execution, subaccounts dont work
2024-11-20 03:22:18 +00:00
Mohammad Arham
2d8523ae67
FIX: Order cancel now working in emnative order
2024-11-20 03:18:31 +00:00
Mohammad Arham
f0eef447d3
Add: Exchange parameter added to EMNAtive Order
2024-11-20 03:18:04 +00:00
Mohammad Arham
8604d5672c
ADD: Comments for CME execution for later
2024-11-20 03:11:54 +00:00
Mohammad Arham
30822fb1f1
Fix: move start glbx onix to seperate thread
2024-11-20 03:09:07 +00:00
Mohammad Arham
826bbf76a9
Add: load_reference_data config for databento
2024-11-20 02:53:19 +00:00
John Colvin
eb8c97a1b7
fix: Detect integer ticks of all sizes (not just 1)
...
Also don't divide by zero!
Bugs (fixed):
* Spark crashes when opening a ladder with integer tick size of 5.
This was first observed with TAIFEX futures.
Cause: The ladder throws a DivideByZero exception when calculating
the number of ticks per dollar. It isn't caught until it bubbles up
to the scope in which 'Dispatcher.Run' was called. The catch handler
then deliberately assert crashes.
2024-11-12 16:15:47 -05:00
John Colvin
5517c58724
fix (ui): Display trade time w/ microsecond precision
...
Was only showing milliseconds before
2024-11-12 11:42:23 -05:00
John Colvin
e9bcdd0c65
fix build: Update Newtonsoft.Json to 13.0.3 in Spark.csproj
2024-11-12 10:35:51 -05:00
Taha
83b37c6661
Merge branch 'development' of bitbucket.org:bluetradesys/spark into development
2024-10-30 13:36:33 -04:00
Taha
6163887cd3
Bunch of CME queries are now working
2024-10-30 13:36:23 -04:00
Mohammad Arham
214641aa1e
Add: cpp tp sec_common
2024-10-25 07:02:46 +00:00
Mohammad Arham
06bc7af232
FIx: Taifex md working
2024-10-25 06:59:52 +00:00
Mohammad Arham
36b6168dec
Taifex State working
2024-10-18 21:13:56 +00:00
Taha
f9aa9dd982
Merge branch 'development' of bitbucket.org:bluetradesys/spark into development
2024-10-15 23:48:34 -04:00
Taha
22f1ab44f9
Basic set of streams that can talks ot the LLM and get DSL back from few-shot prompt
2024-10-15 23:38:49 -04:00
John Colvin
e4c87c267d
Fix DateTimeConstant token regex for DataStreams
...
The previous regex was overly ambitious (and needlessly complex as a
result). The new regex is simpler, and doesn't impose bounds on month
and day ints, aside from requiring 1-2 digits.
Bugs (fixed):
* The DataStreamExpressionInterpretter fails to parse certain date
constants, such as "8/30/2024"
2024-10-15 11:46:58 -04:00
Mohammad Arham
86899a6ff0
FIX: TAifex state working
2024-10-14 17:19:03 +00:00
Adeel Khan
2324fd3ad2
CHANGE: Taifex State Mgmt
2024-10-14 20:59:34 +05:00
Taha
288b7712db
Added and modified more streams to address teh CME NL queries
2024-10-09 13:59:01 -04:00
Mohammad Arham
8850bf4903
Remove: Assert in taifex code
2024-10-09 14:53:20 +00:00
Mohammad Arham
11112b41d1
Add: Missing config entry databento
2024-10-09 02:36:35 +00:00
Adeel Khan
2a98889b67
UPDATE: TaifexDataGateway
2024-10-09 02:18:28 +00:00
Adeel Khan
8060518a28
FIX: Removed Taifex Bugs
2024-10-08 21:29:44 +00:00
Mohammad Arham
68440d3df3
ADD: Config for one year security filter
2024-10-08 13:50:38 +00:00
Mohammad Arham
7d775afc4c
Add: Taifex after hours ip change config
2024-10-08 13:49:36 +00:00
Mohammad Arham
50c7764ef7
Add: Databento security filter
2024-10-07 20:33:38 +00:00
Mohammad Arham
fb8b2d28f3
Fix: DATABENTO live working
2024-10-07 20:05:38 +00:00
Mohammad Arham
bcc2c4a514
CHANGE: Taifex Refactored
2024-10-07 16:26:12 +00:00
Mohammad Arham
9352298be0
Add: Taifex statehandler
2024-10-07 08:51:55 +00:00
Mohammad Arham
180bd11740
FIX: Taifex replay types of files handled
2024-10-06 21:31:34 +00:00
Mohammad Arham
57ea841381
ADD: i084 taifex
2024-10-06 20:31:07 +00:00
Mohammad Arham
7d9d176fa2
Change: Rename taifex files
2024-10-06 18:38:36 +00:00
Mohammad Arham
a8f4ec07c8
Change: moved file paths to config for taifex file replay
2024-10-06 08:29:27 +00:00
Mohammad Arham
58c5be268f
Add: Refactored taifex code to break it down
2024-10-06 08:01:22 +00:00
Mohammad Arham
bf4859a2a9
Change: Refactored read binary file taifex
2024-10-06 07:28:12 +00:00
Adeel Khan
db1cf93994
Add: Incremental Books
2024-10-04 23:23:54 +05:00
Adeel Khan
ecb1c4fea0
Add: Taifex Trades
2024-10-04 23:23:41 +05:00
Mohammad Arham
a513933044
Add: Exceptions handling for databento
2024-10-04 13:06:56 +00:00
Mohammad Arham
764d65b595
Remove: code to remove secuties
2024-10-03 12:06:55 +00:00
Mohammad Arham
bc0d606252
Add: code to connect to Live databento
2024-10-03 12:03:48 +00:00
Mohammad Arham
ceb8a68902
Add: databento repllay filename to cofig
2024-09-27 03:20:20 +00:00
Mohammad Arham
0b3183fd30
Add: added onix fix to lib to build dir
2024-09-26 16:23:19 +00:00
Mohammad Arham
b6dbe37818
Add: entry for onix fix
2024-09-24 13:41:45 +00:00
Mohammad Arham
c78b8bc8e1
Add databento to external
2024-09-24 13:37:57 +00:00
Taha Afzal
314f3e3715
Adding comments
2024-09-23 18:40:06 +00:00
Taha Afzal
26a1d5fc03
Creating scaffolding for incremental book updates in GeneralMarketDataListener
2024-09-23 18:39:12 +00:00
John Colvin
37e5003cf9
Merge remote-tracking branch 'origin/development.ps_linux' into development
2024-09-19 05:40:59 +00:00
John Colvin
07f3868ffc
Add CBOE to spark admin webapp
2024-09-18 19:03:43 +00:00
John Colvin
46f0b17138
Add TAIFEX to spark admin webapp
2024-09-18 19:03:43 +00:00
Taha
33a8e06a3a
Fixing implied vols for SPX (market data was getting divide dby the fwd)
2024-09-17 22:17:31 -04:00
John Colvin
74afdde8de
fix build: Add ".list" to SymbolLists config
...
For new exchanges, TAIFEX and CBOE
2024-09-17 13:01:05 +00:00
John Colvin
0a92ad2eb1
fix (build): Add break statement to new venue switch cases
...
Namely, TAIFEX and CBOE
2024-09-17 13:00:14 +00:00
John Colvin
56d207c3f1
fix: Preserve vs exp sec type (Option) when computing implied vol
...
Because the exp keys in the data map have sec type Option.
2024-09-16 13:46:53 -04:00
John Colvin
9172e752e3
ui: Highlight launcher buttons when selected
...
Namely, the expandable menu buttons in Analytics shell module
2024-09-16 13:46:53 -04:00
John Colvin
adc9f2acfc
Replace trivial refs to ThreadedBlackboard w/ IBus
2024-09-15 23:45:15 -04:00
John Colvin
41d17e67d2
fix: Move accounts subscription to dispatcher thread
...
We update a collection that is bound to the view in the callback (mutation
ops throw if performed on a different thread).
2024-09-15 23:45:15 -04:00
John Colvin
5cacff073b
fix: Check 'HasTimestamp' before accessing prop in man fill row
...
Pending adds (i.e., unpersisted new rows) don't have timestamps.
In such cases, the 'Timestamp' getter throws an exception.
2024-09-15 23:45:15 -04:00
John Colvin
c8da92c250
Cache/index options for faster lookups in SystemContractData
2024-09-15 23:45:15 -04:00
John Colvin
c4e76076e3
fix: Include venue w/ symbol when publishing interp greeks
2024-09-15 23:45:14 -04:00
John Colvin
6a715b9a68
Fix typo in comment
2024-09-15 23:45:11 -04:00
John Colvin
1f28940c95
fix: SelectorList.RemoveAt doesn't need 'convert_back' delegate
...
So don't throw an exception if it is null.
2024-09-15 23:45:11 -04:00
John Colvin
ebff40b88f
fix: Don't assume venue is in spread def string
...
Pass it as an argument to the parse fn. This should be fine for now, but
obviously a singular venue param won't work for cross exchange spreads.
2024-09-15 23:45:11 -04:00
John Colvin
a6d14a3ac3
improvement: Move system contracts sub off of dispatcher thread
...
Also add 200ms throttle. Contracts shouldn't change that often, so we don't need
lightening speed here. Furthermore, such changes may trigger expensive cpu ops.
Note: this change also replaces refs to ThreadedBlackboard w/ IBus (the
former is somewhat tethered to the dispatcher thread, particularly by
its timer_callback).
2024-09-15 23:45:11 -04:00
John Colvin
af96bcb9e3
fix: Pass symbol/venue from vs usage cfg to AnalyticsService proto
2024-09-15 23:28:59 -04:00
John Colvin
619702cb04
cleanup: Remove unused code
2024-09-15 23:28:59 -04:00
John Colvin
5baec19aff
refactor: Index vol and theos data by symbol/venue tuple
...
Rather than just symbol, to avoid conflicts when the same symbol exists
at multiple exchanges
2024-09-13 10:50:23 -04:00
John Colvin
39ef30c1e3
cleanup: Remove redundant type VolSurfaceSymbolStructure
...
There is an identical type (in terms of prop types and corresponding proto indices)
called VolSurfaceSymbolRelationship that is used in more places.
2024-09-13 10:50:23 -04:00
John Colvin
c2f2d28914
Move nested vm classes into own files
...
VolSurfaceSettingsEditor has too much code (still). It is hard to
navigate.
2024-09-13 10:50:23 -04:00
John Colvin
e06bc3bdf5
Simplify driver symbol structure in vs settings vm
...
The code was confusing and difficult to follow.
2024-09-13 10:50:23 -04:00
John Colvin
e19c19c013
fix: Raise prop changed event when is_selected changes
2024-09-13 10:50:23 -04:00
John Colvin
8f324bc507
Add venue to vs calc fns
2024-09-13 10:50:23 -04:00
John Colvin
12107c42ce
fix: Provide venue param w/ symbol when computing fut slide
2024-09-13 10:50:23 -04:00
John Colvin
91c6fb4e52
diag: Log added/removed exps when syncing vs input w/ system exps
...
This shouldn't happen often, but if it does, we should know about it.
PS: We recently fixed a bug caused by inequalities between
VolSurfaceExpirations in vs input, and in SystemContractData. User
inputs to the vs grid would be immediately reverted, as the exps
associated with the inputs were not found in the SystemContractData.
This bug would have been easier to track down with this logging in
place.
2024-09-13 10:50:23 -04:00
John Colvin
7044355547
Add venue to VolSurface(DisplayGrid)Expiration
...
So we can handle symbol/exp date conflicts for securities that differ
only by venue (exchange)
2024-09-13 10:50:23 -04:00
John Colvin
583ae65fb2
Clean up VolSurfaceExpiration
...
* Enable nullable lang feat
* Use file-scoped namespace
* Sort members
* Include sec type in Compare impl
2024-09-13 10:50:22 -04:00
John Colvin
552fec0edc
Add null check in SelectorList ctr
2024-09-13 10:50:22 -04:00
John Colvin
fcf6927fbf
cleanup: Remove unused code
2024-09-13 10:50:22 -04:00
John Colvin
23f6d827d5
refactor: Replace ThreadedBlackboard w/ IBus
...
In SingleVolSurfaceCommittedOutputRetriever
2024-09-13 10:50:22 -04:00
John Colvin
f083d0abab
Clean up VolSurfaceTimeParameters
...
* Enable nullable lang feat
* Use file-scoped namespace
* Implement ICloneable
2024-09-13 10:50:22 -04:00
John Colvin
a895e36922
cleanup: Remove unnecessary ternary op
2024-09-13 10:50:22 -04:00
John Colvin
59d7a72288
fix: Actually use (sec) type arg in to_security_expiration
2024-09-13 10:50:22 -04:00
John Colvin
7731f2f4d1
fix: Check security_type in vs exp Equals impl
2024-09-13 10:50:22 -04:00
John Colvin
41ae5897c0
fix: Maintain sec type when converting SecurityExpiration to vs exp
...
Avoids data loss
2024-09-13 10:50:22 -04:00
John Colvin
c7949ccfba
refactor: Get rid of sec type 'Option' default (magic const)
...
Better to be explict
2024-09-13 10:50:22 -04:00
John Colvin
567af79c7f
Fix selection binding issues in vs settings editor
...
This specifically addresses issues in the driver symbol grids.
Unfortunately, we can't bind directly to ComboCheckBox.SelectedItems
because the view is contained in TabControl. When the selected tab
changes, the previously selected tab clears its ItemsSource (and
consequently the SelectedItems) as a side effect of being unloaded.
2024-09-13 10:50:22 -04:00
John Colvin
6bb4a7b25c
refactor: Enable nullable (ref types) in ImmutableListExtensions
2024-09-13 10:50:22 -04:00
John Colvin
bc7cef4c34
Fix typo in namespace bts.collection -> bts.collections
2024-09-13 10:50:22 -04:00
John Colvin
ab9dc361d6
fix: Use ComboCheckBoxItem.IsSelectedProperty
...
Instead of Selector.IsSelectedProperty. Unlike ComboBoxItem, ComboCheckItem's
IsSelectedProperty isn't linked to Selector.IsSelectedProperty.
2024-09-13 10:50:21 -04:00
John Colvin
39da0a4dde
Add currency column to mview
2024-09-13 10:50:21 -04:00
John Colvin
44e864d697
fix: Use SetCurrentValue instead of SetValue
...
So we propagate values to/from the binding data source,
rather than overwrite the data source itself.
2024-09-13 10:50:21 -04:00
John Colvin
0a02da3aba
Add venue, sec type dropdown filters to exp params ui
2024-09-13 10:50:21 -04:00
John Colvin
836771a7f0
fix: Add null check in ComboCheckBox.SelectedItemsCollectionChanged
2024-09-13 10:50:21 -04:00
John Colvin
f386badcfb
fix: Disconnect old INotifyCollectionChanged source when dp changes
2024-09-13 10:50:21 -04:00
John Colvin
1d43a484db
fix: Index opt/fut exps by venue in vs analytics
2024-09-13 10:50:21 -04:00
John Colvin
91042cb41e
fix: Support multiple exchanges in exp params view/vm
2024-09-13 10:50:21 -04:00
John Colvin
10c0e4247d
cleanup: Remove unused 'option_symbol' param from compute_atm_data
2024-09-13 10:50:21 -04:00
John Colvin
8e34264e6d
fix: Filter by exch when getting atm data for sheets
...
This is necessary now that we support exchanges with overlapping securities
2024-09-13 10:50:21 -04:00
John Colvin
0a840d256b
fix: Remove sec id prop from SecurityExpiration
...
This class isn't designed to represent a particular contract; it's
basically a key to get option theos.
2024-09-13 10:50:21 -04:00
John Colvin
8a69c51cac
refactor: Add 'onDispatcher' param to 'ThreadedBlackboard.subscribe'
...
This will allow us to gradually move subscriptions off of the dispatcher
(render) thread. When the render thread is pegged, the ui is laggy and
unresponsive. The new param defaults to true, so it won't change
anything until we explicitly set it to false in 'subscribe' calls.
2024-09-13 10:50:21 -04:00
John Colvin
0262fd40bc
fix: Remove redundant SparkTimer threads
...
This addresses some slowness on the front end. Prior to this commit,
each ThreadedBlackboard would start its own timer thread. Since multiple
ThreadedBlackboard run concurrently, this multiplied the frequency of
the SparkTimer callbacks by the number of active ThreadedBlackboards.
The fix is to start this thread in an IShellDaemon rather than the
ThreadedBlackboard. This avoids duplicate threads because the former is
guarenteed to be instantiated only once, via dependency injection.
2024-09-13 10:50:21 -04:00
John Colvin
859dfe3544
refactor: Simplify FakeMDDaemon code that delays post
...
Use Task.Delay/ContinueWith instead of subscribing to the SparkTimer tag.
2024-09-13 10:50:21 -04:00
John Colvin
9c624a2f79
refactor: Use IBus instead of ThreadedBlackboard
...
This should address some slowness/mouse lag in the front end (recently
reported by Brandon at Immutable Cap)
2024-09-13 10:50:20 -04:00
John Colvin
dec1061b40
fix: Detect and log ccapi depth msg parse errors
...
This fixes a crash that would happen if a depth item's price or quantity
were an empty string (now we log an error and keep going).
2024-09-13 10:50:20 -04:00
John Colvin
be4895faa6
fix: Actually store currency in shared mem
...
This field has always been in the Security proto, though it until now it
had been omitted from the shared memory representation (FixedSecurity).
2024-09-13 10:50:20 -04:00
Mohammad Arham
3c9755f0dd
ADD: Added delay to databento file reader
2024-09-12 15:10:34 +00:00
Mohammad Arham
61ed847d7d
Add: Replay speed added to mdreplayer
2024-09-11 06:50:37 +00:00
Mohammad Arham
fc9094fea8
Added: CBOE working on databento
2024-09-11 06:17:26 +00:00
Mohammad Arham
e36c0efc4b
Added: GLBX working on databento
2024-09-11 06:16:42 +00:00
Mohammad Arham
4158a14cff
Added: option to send timestamp in onbook IMDListener
2024-09-11 06:15:40 +00:00
Mohammad Arham
201a45cba0
taifex deo
2024-09-05 00:59:00 +00:00
Mohammad Arham
ab31b9b253
Add: Multiple files working taifex
2024-09-03 15:15:55 +00:00
Adeel Khan
780ddc79a7
Add: Taifex I083 Message
2024-09-03 20:06:48 +05:00
Mohammad Arham
d5a2adaed6
fix: removed errernous code
2024-09-03 13:09:54 +00:00
Mohammad Arham
008ab3f068
Merge branch 'development.new_exchanges' of bitbucket.org:bluetradesys/spark into development.new_exchanges
2024-09-02 16:31:14 -04:00
Mohammad Arham
7d926f588d
FIX: typo, changed date to day
2024-09-02 16:31:10 -04:00
Mohammad Arham
707cd07876
Add: CBOE L1 books and contracts working
2024-08-28 16:22:51 +00:00
Mohammad Arham
f7ecb9090c
add: code to start working on cboe
2024-08-27 12:33:23 +00:00
Mohammad Arham
a19e8a7315
change: changes to make taifex work
2024-08-27 07:45:59 -04:00
John Colvin
cf189ecf81
refactor: Start cboe and taifex md 'start_databento'
...
Similar to how we start all ccapi implemented exchanges in "_start_cc"
(in MarketDataGateway)
2024-08-26 19:13:59 +00:00
John Colvin
4405b7adcb
refactor: Rename cc_md_listeners -> venue_listeners
...
They are general purpose, not specific to ccapi.
2024-08-26 19:09:57 +00:00
John Colvin
e51ee7b7b9
refactor: Wrap IDGenerator and IMarketDataListeners in shared_ptrs
...
Our various market data providers (ccapi, emumba, replay, onixs)
dereference pointers to common instances of these types concurrently on
different threads. Although we've correctly managed memory ownership
thus far, we really should be using smart pointers (this is why they
were made).
2024-08-26 19:03:29 +00:00
John Colvin
dfaa74f426
build: Add databento dep via FetchContent
...
Now we actually build libdatabento in the devcontainer along with our
code (as we do with the vcpkg deps, though this is not part of vcpkg)
2024-08-26 17:13:51 +00:00
Mohammad Arham
1d2ce59009
add: added taifex entries
2024-08-22 23:13:05 +00:00
Adeel Khan
3602cc05bb
added: TaifexDataHandler, temp
2024-08-23 02:06:47 +05:00
Adeel Khan
ac88a81ac6
Security Extensions
2024-08-23 01:42:24 +05:00
Adeel Khan
01fa8e0c63
added: files for Taifex, Cboe
2024-08-23 00:57:40 +05:00
Taha
322c06bfbe
Fixing build relted to BCG vs bts namespace
2024-08-21 16:24:22 -04:00
Taha
b68fceb362
Cleaning up FileStreams
2024-08-21 16:11:57 -04:00
John Colvin
59547e0f37
fix build: Lock fmt version to 10.2.1 in vcpkg
...
This fixes the front-end (Windows) libspark build
2024-08-21 13:45:43 -04:00
John Colvin
3ce100a9cf
build: Add databento to sparkd
...
* Install databento deps in docker
- libzstd-dev
* Add databento cmake module to externals
2024-08-21 13:49:53 +00:00
John Colvin
6513fb0cd5
cleanup: Remove unused include 'date.h' from MDSource
...
This was an external header, and may interfere with a dependency in the
databento lib (which we are about to add).
2024-08-21 13:49:24 +00:00
Taha Afzal
fd0fb1f760
Adding incremental book updates to IMarketDataListener
2024-08-12 22:49:27 -04:00
Taha Afzal
5db586c4d3
spaces, newlines?
2024-08-12 21:27:43 -04:00
Taha
31df1a3827
Added benzinga streamd to MDPub's test config
2024-07-17 14:32:57 -04:00
Taha
7e219aec7c
Merging
2024-07-17 02:06:17 -04:00
Taha
37f8b98df9
Icomplete SharedStreamsConfig was breaking build, fixing
2024-07-17 02:03:43 -04:00
Taha
f06beff22f
Added new benzinga streams
2024-07-17 02:02:01 -04:00
Taha Afzal
6aa39a716a
PubSubSingleTagState is not needed any more
2024-07-16 01:15:51 +00:00
Taha Afzal
5088b5ebe0
Fixing problems where PSS's client socket's IP was different than what the client was sending in PubSubClientSubscription
2024-07-08 23:09:53 +00:00
Taha Afzal
010dd3a26f
Fixing PubsubEchoTestStream
2024-07-07 06:13:22 +00:00
Taha Afzal
1a18755176
Added pss_echo()
2024-07-06 06:53:35 +00:00
Taha Afzal
233e2576af
Merging
2024-07-05 21:21:27 +00:00
Taha Afzal
543c655bca
src/DataStreamSuite/PubSub/ManagedTCP/AsyncTCPConnection_AsyncWrapper.cs
2024-07-05 21:13:36 +00:00
Taha
050e21e22b
Adding TableMetaDataStream
2024-07-04 23:39:04 -04:00
Taha Afzal
672ad6d237
Cleaning Config 1.0 (not completely done)
2024-06-30 23:17:20 -04:00
Taha
0a8f6e866f
Added pubsub routes to the Title of DSQA
2024-06-27 14:04:07 -04:00
Taha
b177ffef04
Fixing the bug where messages were being sent by the pubsubserver out of order
2024-06-27 00:17:22 -04:00
Taha
393f304be4
some buf gixes + cleanup
2024-06-26 00:23:19 -04:00
Taha
151816bf5e
PubSuMessageReactor empties the message queue (instead oif one elem ata a time) in the main loop
2024-06-24 02:29:28 -04:00
Taha
5cf7eacd82
Fixing the extra .0 in the default pubsub server routeplusfixing acorner cae issue of gettign a fast streaming data cakback after an unsubscribe
2024-06-24 00:28:07 -04:00
Taha
87b6a2044c
PubSubServer's linux issues fixed
2024-06-23 21:13:37 -04:00
John Colvin
087d8ab8c9
Set text=auto in gitattributes
...
Otherwise git can cause files to show as "permanently modified" when you
apply changes from the index (e.g., by running 'git rebase', or 'git
stash pop')
2024-06-11 17:39:12 +00:00
John Colvin
b69b7b3350
vscode: Use '\' dir separator in show_last_run.cmd
...
This script only runs on Windows
2024-06-08 15:08:25 -05:00
John Colvin
5620f33524
vscode: Add task to view logs for last PubSubServer run
2024-06-08 14:42:13 +00:00
John Colvin
f3e33fa390
vscode: Add task to run PubSubServer without building
2024-06-07 16:41:42 +00:00
John Colvin
3b631e0d5f
Fix a couple more typos in logs
2024-06-07 16:35:06 +00:00
John Colvin
f93d28ee76
vscode: Add task to view logs for last DSQA run
2024-06-07 11:34:36 -05:00
John Colvin
23d7d3775d
cleanup: Delete unused files
2024-06-07 10:40:34 -05:00
John Colvin
4940771166
fix: Don't login to sparkd from DSQA
2024-06-07 10:02:42 -05:00
John Colvin
c1967a8f6a
vscode: Add tasks to edit Spark, DataStream config
2024-06-06 11:12:56 -05:00
John Colvin
8c797ee76b
Fix typo in log msg
2024-06-06 09:21:01 -05:00
John Colvin
ce80957d07
DSQA shouldn't connect to sparkd by default
2024-06-06 09:21:01 -05:00
John Colvin
c60018b59e
DataStreamPublisher shouldn't connect to sparkd by default
...
It only needs to connect to sparkd if it's publishing market data
2024-06-06 09:21:01 -05:00
John Colvin
3a27af87d1
PubSubServer shouldn't download config from sparkd by default
...
As far as I know, it only needs spark/protobuf config to initialize the
c++ logging system. Eventually, we should get rid of that dependency and
use builtin Microsoft Logging facilities for c# instead. In the
meantime, PubSubServer will load config from local files by default
(i.e., spark.conf).
2024-06-06 09:21:01 -05:00
John Colvin
068c1c6973
cleanup: Remove erroneous comment
2024-06-06 09:21:01 -05:00
John Colvin
645a58c97d
vscode: Add launch.json
2024-06-06 09:21:01 -05:00
John Colvin
b7f455b29a
vscode: Remove launch/tasks.json from gitignore
2024-06-06 09:21:00 -05:00
John Colvin
4a2735839e
Change line endings to crlf in a few cs files
2024-06-06 09:21:00 -05:00
John Colvin
d2e9fe8237
Change line endings to crlf in a few cs files
2024-06-06 09:21:00 -05:00
John Colvin
cfc60766d8
Change line endings to crlf in a few cs files
2024-06-06 09:21:00 -05:00
John Colvin
b03fec7f79
Change line endings to crlf in a few cs files
2024-06-06 09:20:59 -05:00
John Colvin
fb8e7c5b81
Ensure crlf line endings for cs files
2024-06-06 09:20:05 -05:00
John Colvin
e44601d1b1
fix merge: Bring back few fns that SchemaGuesserStream needs
...
* BlueDataUtility.get_typed_schema
* BlueDataUtility.get_typed_table
2024-06-06 09:20:05 -05:00
Taha
07bade53c0
Fixing AsyncTCPCOnnection_APM's double partial messages for messages > 100 MB
2024-06-06 09:20:05 -05:00
Taha
fac0a9c25b
RemoteQueryStream
2024-06-06 09:20:05 -05:00
John Colvin
1d1de3dd18
Ensure proper line endings for sh, cmd scripts
...
Via new gitattributes file
2024-06-06 09:20:05 -05:00
John Colvin
cfcbf004ba
vscode: Use consistent naming conventions in tasks.json
2024-06-06 09:20:05 -05:00
John Colvin
78c7dadbbe
vscode: Add parameterless task variants
...
This allows us to build as a 'preLaunchTask' when debugging (without
requiring users to redundantly specify 'Debug' as the build type).
2024-06-06 09:20:01 -05:00
John Colvin
7b5a6031af
build: Use consistent naming conventions in CMake presets
...
We'll use similar naming conventions for our (vscode) tasks
2024-06-06 09:15:17 -05:00
John Colvin
c13a7782c8
build: Name sparkd binary dirs after cmake preset
...
All other builds follow this pattern. Given the fact that we have so
many different builds now (spark, sparkd, data-streams, api-server,
etc.), it behooves us to adopt consistent naming conventions.
2024-06-06 09:15:17 -05:00
John Colvin
45f02391d1
cleanup: Remove sparkd login creds from PubSubServerConfig
...
It only needs a Sparkd url to download logging config. TBH, we can probably
get rid of that too, and simply read the local spark.conf.
2024-06-06 09:15:17 -05:00
John Colvin
a3ca06addc
Reduce 'internal_publish' log level to Diag
...
It was a bit noisy for the Info level
2024-06-06 09:15:17 -05:00
John Colvin
32869e54ec
fix: Fix typos in c# Logs
...
Prefix a few msgs with '$' so vars in curly braces are expanded via
interpolation
2024-06-06 09:15:17 -05:00
John Colvin
ca73220a2e
Add new PubSub cfg to DSQA
...
At least the server address (port) needs to be exposed
2024-06-06 09:15:17 -05:00
John Colvin
9fc3c2618e
cleanup: Remove unnecessary reference to SharedStreams
...
From DataStreamPublisher
2024-06-06 09:15:17 -05:00
John Colvin
e72e0c0a30
fix: Make PubSubServer actually use sparkd url in config
2024-06-06 09:15:17 -05:00
John Colvin
a5bfc75278
cleanup: Fix a few nullability warnings in DSQA
2024-06-06 09:15:17 -05:00
John Colvin
261a184d25
refactor: Replace legacy Crono type w/ dotnet Stopwatch
2024-06-06 09:15:16 -05:00
John Colvin
54e96a06cb
build: Build DSQA on Windows in build_data_stream.py
...
It was only building DataStreamSuite.sln before, which is crossplatform
now so it no longer includes DSQA.
2024-06-06 09:15:16 -05:00
John Colvin
17e60df32b
cleanup: Remove unused file PubSub3Config.cs
2024-06-06 09:15:16 -05:00
John Colvin
c99d5fe24c
Add support for core PubSub config via json
2024-06-06 09:15:16 -05:00
John Colvin
6049826e90
build: Make build_data_stream.py cross platform
...
Previously it only worked on Windows
2024-06-06 09:15:16 -05:00
John Colvin
672149dd89
Add more descriptive logs (via stdout) during initialization
...
The C++ configure/initialize routines were particularly opaque
2024-06-06 09:15:16 -05:00
John Colvin
8c99147f04
build: Build cmake presets in distinct binary dirs
...
It may use more disk space, but we really don't have a choice. CMake
projects with different parameters, preprocessors, source files, etc.
are not designed to share binary dirs. For example, the libspark.so file
that the Spark front-end is supposed to use is not necessarily the same
as the libspark.so file the Api Server is supposed use.
2024-06-06 09:15:16 -05:00
John Colvin
4d4b0b7ae3
build: Give api server distinct shm prefix
2024-06-06 09:15:16 -05:00
John Colvin
1a7955c1b1
build: Remove unnecessary cache var/macro for api server
...
* BUILD_API_SERVER (cmake cache var)
* SPARK_ENABLE_API_SERVER (preprocessor defined conditionally w/ BUILD_API_SERVER)
They were originally added to control whether or not MD Consumer extern
fns were built. They have been made redundant by the more appropriately
named EXPORT_MD_CONSUMER cache var/macro (both have same name now).
2024-06-06 09:15:16 -05:00
John Colvin
f8fc2a1d96
cleanup: Remove static service Locator class
...
It relied on a static singleton 'ServiceContext'. Replace references
with a properly scoped (i.e., non-static) ServiceContext
2024-06-06 09:15:16 -05:00
John Colvin
9a7b3cb77c
refactor: Reduce code (simplify) in BTS.init
...
Remove the 'args' parameter, since the cmd line can be obtained from
Environment.GetCommandLine anyways
2024-06-06 09:15:16 -05:00
John Colvin
8a3e4edb4d
Dispose connections in SimpleTCPServer.Dispose
2024-06-06 09:15:15 -05:00
John Colvin
e59183bb1e
improvement: Allow app data dir to be overriden w/ env var
...
Historically, this has been hardcoded to ~/sparkdata on Linux, and
%APPDATA%/bts on Windows.
2024-06-06 09:15:15 -05:00
John Colvin
dd4d4e8dc6
fix: Expand path vars in cmake presets at runtime
...
The binaries should be portable to other machines (paths shouldn't
be fixed to the user's home dir at compile time).
2024-06-06 09:15:15 -05:00
John Colvin
f1744450ca
build: Add script to build api server
2024-06-06 09:15:15 -05:00
John Colvin
3a7827a75b
build: Automatically load vs dev prompt for win builds
2024-06-06 09:15:15 -05:00
John Colvin
8d22e91c0d
fix build: Remove references to HighPerformanceTimer
...
An old custom timer class from Edge that we no longer need. We're
replacing it w/ a dotnet builtin timer class called 'Stopwatch'.
2024-06-06 09:15:15 -05:00
John Colvin
c425145fc9
Remove mongo stream from MarketDataPublisher.json
...
It doesn't work unless you have mongodb running (a bit of a burden when you
just want to publish market data)
2024-06-06 09:15:15 -05:00
John Colvin
4855935ae0
improvement: Get PubSubRoutes from config (json)
...
Previously, we were using hardcoded default routes.
2024-06-06 09:15:15 -05:00
John Colvin
65f412ec9f
fix: Fix myLoadAllTypes impl
...
* Fix lowercase typo in hardcoded assemblies (case matters now that we
run on Linux)
* Fix resolution to full path (previous impl used deprecated functions,
and incorrectly appended relative paths)
2024-06-06 09:15:15 -05:00
John Colvin
40681c6093
Add MaybeNullWhen(false) attribute to TryGetFirst result
...
So callers can assume non-null when it returns true (for IEnumerables of
non-null ref types)
2024-06-06 09:15:15 -05:00
John Colvin
ab2d36e523
vscode: Add tasks.json
...
This provides a good base of operations to build/launch our now numerous
projects
2024-06-06 09:15:09 -05:00
John Colvin
b1ab3a66d2
build: Fix old build_sparkd.py script
...
Things have become a lot simpler since it was originally written.
2024-06-05 15:44:36 +00:00
John Colvin
5e7e7e8ef4
test: Add FilterStreamTests
2024-06-05 15:44:35 +00:00
John Colvin
9291d30ae9
build: Add cmake opt to export MDConsumerInterop fns
...
Now that we have all these different builds (sparkd, spark, api server,
data streams) - many of which are cross platform - we need a proper
toggle for this (relying on 'IF WIN32' preprocessors doesn't cut it)
2024-06-05 15:44:35 +00:00
John Colvin
549708fcc2
fix: Use ".dll" file ext when loading assemblies by path
2024-06-05 15:44:35 +00:00
John Colvin
1d5551f301
build: Add cmake preset to build data streams on linux
2024-06-05 15:44:35 +00:00
John Colvin
283db0f9ea
build: Define shm prefix and app data dir in CMakePresets
...
It's more organized this way, with the input variables for each
configuration defined in one place.
2024-06-05 15:44:35 +00:00
John Colvin
9fb04b2db9
cleanup: Remove unused cmake preset 'spark-api-server-base'
...
This was a hidden preset designed for common Linux/Windows config.
Neither Linux nor Windows configs were inheriting it.
2024-06-05 15:44:35 +00:00
John Colvin
ceca96e10a
Add build_data_stream.sh script for Linux
2024-06-05 15:44:35 +00:00
John Colvin
fc48cc64af
fix build (webapp): Add --include=dev arg to npm install
...
The apt repo finally updated npm from 8.X.X to 10.8.0. This broke the
Spark.Admin.WebApp build because the new version doesn't install dev
dependencies by default.
2024-06-05 15:44:35 +00:00
John Colvin
015d846941
feat: Add Pandas(Script)Stream
2024-06-05 15:44:35 +00:00
John Colvin
e39108bbda
fix build (sparkd): Fix typo
...
'git' was appended to a type name. I suspect a keyboard focus conflict
between vs code editor/terminal panes.
2024-06-03 13:46:51 +00:00
John Colvin
6240d89a08
Map PubSubServerConfig json to historic PubSub3Config
2024-06-03 13:46:51 +00:00
John Colvin
c76700e5e5
cleanup: Remove unused PubSubRoute array from DSQA
2024-06-03 13:46:51 +00:00
John Colvin
a8a0e8dea0
cleanup: Remove unused PubSubConfigureForm
2024-06-03 13:46:51 +00:00
John Colvin
d65a2d6ed6
test: Add DataPacketBuilderTests
...
This tests somes facilities used in the new MongoCollectionStream
2024-06-03 13:46:51 +00:00
John Colvin
1824d5f9a4
feat: Add [incremental] MongoCollectionStream
2024-06-03 13:46:51 +00:00
John Colvin
d3eb29087b
refactor: Impl IDictionary<int, IBlueRow> in BlueTable
2024-06-03 13:46:51 +00:00
John Colvin
d6fae238f9
Add IObservable ViewStream wrapper
2024-06-03 13:46:51 +00:00
John Colvin
44b46033e3
cleanup: Remove HighPerformanceTimer
2024-06-03 13:46:51 +00:00
John Colvin
5741ec9ab2
cleanup: Remove unnecessary usings (namespaces)
2024-06-03 13:46:51 +00:00
John Colvin
596975b309
style: Apply modern formatting to Crono
2024-06-03 13:46:51 +00:00
John Colvin
9050318ceb
refactor: Replace HighPerformanceTimer w/ Stopwatch
...
This is needed to build DataStreamSuite on Linux.
'Stopwatch' is a platform independent timer class included with the
System.Runtime library in modern dotnet. 'HighPerformanceTimer' is a BTS
class that predates Stopwatch, and is NOT platform independent as it
relies on Windows kernel32.dll QueryPerformanceCounter/Frequency fns.
2024-06-03 13:46:51 +00:00
John Colvin
7ee6933789
refactor: Add formal config classes for prepublish streams
...
They can be passed to command line via --config <json_file>
2024-06-03 13:46:51 +00:00
John Colvin
306c572b53
improvement: Polish clis in DataStreamSuite
...
Specifically PubSubServer, DataStreamPublisher and DSQA
* Use CommandLineParser (nuget pkg)
* Clean up csproj files a bit while we're at it
2024-06-03 13:46:51 +00:00
John Colvin
63306173b1
refactor: Reorganize NumericComparer, support all types
...
Get rid of redundant UniversalNumericComparer while we're at it
2024-05-25 15:37:33 +00:00
John Colvin
df1b45ca3e
cleanup: Remove leftover legacy files
2024-05-25 15:37:33 +00:00
John Colvin
c31a1f1bf3
cleanup: Switch assert statements to 'constraint model'
...
This gets rid of a few more build warnings in DataStreamSuite
2024-05-25 15:37:33 +00:00
John Colvin
e95997ea17
cleanup: Chip away a few nullability warnings in DataStreamSuite
...
This is a start, but there're still > 700 of them!
2024-05-25 15:37:33 +00:00
John Colvin
12a070fd8d
build: Remove DSQA from DataStreamSuite.sln to its own sln
...
So we can build DataStreamSuite.sln on Linux (DSQA depends on WinForms)
2024-05-25 15:37:33 +00:00
John Colvin
e0459c54fd
build: Fix 'pubsub' -> 'PubSub' typo in csproj ProjectReferences
...
Now all DataStream projects build on Linux (except DSQA, which is a winforms app)
2024-05-25 15:37:33 +00:00
John Colvin
15262a5a95
build: Move winform deps from BlueRegistry.csproj to DSQA
...
So we can build all DataStream projects (except DSQA) on Linux
2024-05-25 15:37:33 +00:00
Taha Afzal
90ec64d25c
deleting old serializers
2024-05-25 15:37:33 +00:00
Taha Afzal
061481419e
Streams can be published and subscribed now
2024-05-25 15:37:33 +00:00
Taha Afzal
8035255868
Cleaned up the cashe held by PublisherCore
2024-05-25 15:37:33 +00:00
Taha Afzal
7feaf869dc
Stream serialization revamp, all tests pass (TestsStream.s)
2024-05-25 15:37:33 +00:00
Taha Afzal
7104e90fc9
Adding tests for stream serialization
2024-05-25 15:37:33 +00:00
Taha Afzal
52c1e500e6
Re-fixing PubSubserver exception caused by null server in internal tags
2024-05-25 15:37:33 +00:00
Taha Afzal
07274f897a
Pubsub stats
2024-05-25 15:37:33 +00:00
Taha Afzal
f626e53415
CPublisherCore, SubscriberCore, PubsubMessageReactor claned
2024-05-25 15:37:33 +00:00
Taha Afzal
5a7b2965be
PubUBState cleaned up and modernized
2024-05-25 15:37:33 +00:00
Taha Afzal
0aab1628bc
removing old handlers from PubsubMessageReactor
2024-05-25 15:37:33 +00:00
Taha Afzal
b9649e1d8e
Clearing up PubSubMessageReactor
2024-05-25 15:37:33 +00:00
Taha Afzal
3bc9bf2207
Starting the server cleanup work
2024-05-25 15:37:33 +00:00
Taha Afzal
888c06262b
PublisherCore cleaned up
2024-05-25 15:37:33 +00:00
Taha Afzal
03e80dabcb
CHanging member names from old style
2024-05-25 15:37:33 +00:00
Taha Afzal
54184d0875
Cleaning up ISubscriberCore to use ne PubSubClientMssage class
2024-05-25 15:37:33 +00:00
Taha Afzal
90bcf5a455
Adding testss for PubSubMessages
2024-05-25 15:37:33 +00:00
Taha Afzal
d32d5ef40c
Cleaning up PubSubMessages, as types messages instead of PubSubMetaData untypes dictionary
2024-05-25 15:37:33 +00:00
Taha Afzal
2e0e0658c6
Fixing merging
2024-05-23 10:34:40 -04:00
Taha Afzal
bbdb50a41e
FIX bridge for Trafix
2024-05-23 10:34:40 -04:00
John Colvin
90705cac83
Integrate theos into Algo Testing Framework
...
(For Laguna)
2024-05-13 14:28:16 +00:00
John Colvin
b91cdd6d91
Expose get/set test secs fn for Algo Testing Framework
...
Laguna needs this. Historically, the test securities were extracted from
coconut md replay files. Eventually, we'll extract them from the new
replay file format, but until then, this gives Laguna a way to manually
set securities for algo tests (I hardcoded 1 ES sec for convenience by
default).
2024-05-13 14:23:31 +00:00
Mohammad Arham
64f2bd7a88
removed quoting algo so can be loaded dynamically
2024-04-04 20:38:15 -04:00
Mohammad Arham
3e32f684e3
removed redundant code
2024-04-03 16:56:31 -04:00
Mohammad Arham
ff73756a55
removed assert if delete order that is completed
2024-04-03 16:55:29 -04:00
Mohammad Arham
1e64811d93
changed error code
2024-04-03 16:54:51 -04:00
John Colvin
2488597cf2
fix build (linux api server): Remove srcs that moved to sparkd
2024-04-02 16:25:13 +00:00
John Colvin
2d8047ba80
build: Tidy up build/publish_spark scripts
...
In preparation for the first deployment of the "development" branch.
2024-04-02 01:47:47 -05:00
John Colvin
3cb602b77e
dev: Remove irrelevant comment from devcontainer.json
...
It was added by accident
2024-04-02 06:10:25 +00:00
John Colvin
51e1005e79
dev: Fix compile-commands-dir in devcontainer.json
...
It should be '${workspaceFolder}/build/clang/debug'
2024-04-02 06:01:14 +00:00
John Colvin
ef7ea64973
dev: Add -y to 'apt install libpcap' in Dockerfile
...
Fixes the docker build
2024-04-02 05:57:03 +00:00
Mohammad Arham
0267c16e5a
Merge branch 'development' of bitbucket.org:bluetradesys/spark into development
2024-04-01 19:02:32 -04:00
Mohammad Arham
ca40e278ff
quoting crash fix and comments
2024-04-01 19:01:27 -04:00
John Colvin
1c5da7ad48
cleanup: Tidy up hdrs included in cpp algo sdk
2024-04-01 10:09:35 -04:00
John Colvin
9bb3d5c569
refactor: Move ChildOrder defs to cpp file
...
So deps can be omitted in header
2024-04-01 10:09:35 -04:00
John Colvin
92ba43bfad
refactor: Move ccapi logger into its own file
2024-04-01 10:09:35 -04:00
John Colvin
ddeb5e59f0
fix: Add missing exchs to risk webapp
2024-04-01 10:09:35 -04:00
John Colvin
6b0b3e31cc
cleanup: Move nested Trade class into its own file
...
Cut down on dep clutter
2024-04-01 10:09:35 -04:00
John Colvin
3f6c904ccc
cleanup: Get rid of redundant SecurityKey def
...
Make bts::Security an alias for bts::md::Security instead
2024-04-01 10:09:35 -04:00
John Colvin
d433919f1b
refactor: Move OrderBuilder defs to cpp file
...
So impl deps don't leak into the sdk through headers
2024-04-01 10:09:35 -04:00
John Colvin
75da9af39d
improvement: Add fmt impl for SecurityKey
2024-04-01 10:09:34 -04:00
John Colvin
22eff44926
cleanup: Tidy up Book.h
2024-04-01 10:09:34 -04:00
John Colvin
cd6a052d0c
cleanup: Tidy up IAlgoOrder, add fmt impl for ChildState
...
Part of a larger effort to polish the sdk for laguna
2024-04-01 10:09:34 -04:00
John Colvin
3b6cf0b187
cleanup: Remove unnecessary includes
2024-04-01 10:09:34 -04:00
John Colvin
c170dd7a9e
refactor: Include ostream in EnumMacros.h
...
So it doesn't need to be explicitly included to support ENUM_CLASS_DEF
2024-04-01 10:09:34 -04:00
John Colvin
154775bc70
refactor: Move misplaced code from libspark to sparkd
...
This will reduce the dependency load on libspark and the c++ algo sdk.
This has been on the backburner for a while; we're doing it now so we
can deliver a clean sdk to Laguna.
Migrating the following code:
* general server-side md utils (MarketDataGateway, etc.)
* emumba dependent code, including md impl for:
- deribit
* ccapi dependent code, including md impl for
- binance
- binance_us
- binance_usds_futures
- ftx
- coinbase
- okx
- deribit
* md recording
Note: I first began this migration to eliminate the c++ algo sdk's
wependency on emumba. There seemed to be a conflict related to ssl
versions (the build in the sdk docker would fail with unresolved
external symbols for OPENSSL macros)
2024-04-01 10:09:34 -04:00
John Colvin
7f936f3ba9
fix: Inline defs in hdr file
2024-04-01 10:09:24 -04:00
John Colvin
9b30a947a8
fix build: Add a few includes, suppress some werrors
...
Not sure how this slipped through the cracks, but I'm guessing the build
broke when we upgraded the cpp compilers (to clang 17 and gcc 13).
* Include <cstdint> in a few places
* Suppress -Wstringop-overflow in sparkd-gcc-release build
* Change const char * param to explicit std::string for proper type
deduction in call to 'std::make_tuple'. For some reason, the gcc build
was failing with an array-bounds werror (changing the arg fixed it).
2024-04-01 10:09:24 -04:00
John Colvin
2ee58d8f99
dev: Add devcontainer.json (for linux)
2024-04-01 10:09:24 -04:00
John Colvin
0537b3e9c7
cleanup: Remove mongodb.js file that was added by accident
2024-04-01 10:09:24 -04:00
John Colvin
8ae940bcbc
fix: Change "init" call to "initAsync" in spark_api_server main
...
WebsocketDataSync.init was refactored to initAsync
2024-04-01 10:09:23 -04:00
Mohammad Arham
966ccb5f2c
fixed order entry
2024-04-01 07:48:36 -04:00
Mohammad Arham
fae9c3e59e
quantity connected, fills reported, limit set as default
2024-04-01 07:46:36 -04:00
Mohammad Arham
cb1dfb257d
updated defaults to have max_order_msgs_per_window
2024-03-29 16:00:36 -04:00
Mohammad Arham
76c3fe86c2
quote algo quantity hooked
2024-03-29 14:42:15 -04:00
Mohammad Arham
7e3b1de70f
bug fix
2024-03-29 00:38:33 -04:00
Mohammad Arham
2a07e3cf3c
custom orders working on api
2024-03-29 00:37:04 -04:00
Mohammad Arham
6d0249825d
quotingalgo working
2024-03-29 00:35:49 -04:00
Mohammad Arham
63810e3966
build fix
2024-03-26 18:07:48 -04:00
Mohammad Arham
4c013a8886
reorganise code
2024-03-26 18:07:01 -04:00
Mohammad Arham
9509818978
set theos
2024-03-26 18:06:07 -04:00
Mohammad Arham
4fdf3b8b60
just cleaner code
2024-03-26 02:10:06 -04:00
Mohammad Arham
ee9a58486d
cleaner code same logic
2024-03-25 02:52:51 -04:00
Mohammad Arham
75d6939c8b
added new rules for onix decode ticks
2024-03-25 01:48:22 -04:00
Mohammad Arham
fb1697b571
spelling fix
2024-03-24 23:17:02 -04:00
Mohammad Arham
4080d606d8
fixed get trades
2024-03-24 23:16:38 -04:00
Mohammad Arham
7655fd47dd
fixed spelling
2024-03-24 23:14:11 -04:00
Taha Afzal
d029b0fce7
SimExecution works with GLBX now
2024-03-18 23:54:19 -04:00
John Colvin
60df5b2a68
refactor: Move OrderDataHelper to spark_api.csproj
...
So it can be called from the websocket api server to parse
CustomOrderDefinitions
2024-03-13 12:45:17 -05:00
Taha Afzal
bada5dc961
Fixing SimExecution for CME
2024-03-06 14:11:02 -05:00
Taha Afzal
4510e120ab
enabling some streams like max, that were dependent on AddCOlumns (thta John fixed in the last commit)
2024-02-12 13:21:28 -05:00
Taha Afzal
da2af06ee6
Merging
2024-02-08 15:48:51 -05:00
John Colvin
9212c6d097
Line ending changes in yacc/lex generated code
...
I recently upgrade the YaccLexTools nuget to 1.2.2, perhaps these new
line endings are related to that.
2024-02-08 14:28:36 -06:00
John Colvin
8660dea85a
build: Downgrade new DataStream code from net8 -> net7
...
The AddColumnsStream, SortStream, and requisite yacc/lex grammar were
originally added to a new branch, off of development, which is on net8.
I forgot to change it to net7 when I cherry-picked the commits for the
regular development branch.
It's wasn't quite as simple as flipping net8 -> net7 in csproj files,
because I was eager to use new language features only available in net8!
Namely, primary constructors and collection expressions.
2024-02-08 14:24:31 -06:00
Taha Afzal
8c1342230b
RowDiff added
2024-02-08 14:11:10 -05:00
John Colvin
d0ddc1d57b
Resurrect SortStream
...
Add ColumnSortExpressions grammar (lex/yacc)
2024-02-08 10:04:53 -06:00
John Colvin
fe1e953030
Resurrect AddColumnStream
...
Add ColumnExpressions grammar (lex/yacc)
2024-02-08 10:04:53 -06:00
John Colvin
dab17af5a9
build: Upgrade YaccLexTools to 1.2.2
2024-02-08 00:51:16 -06:00
Taha Afzal
8dd2775092
Added volatility to trade bars
2024-02-04 23:22:52 -05:00
John Colvin
7fb7b1e4af
Fix PriceStatsStream
...
* Store subscription IDisposable in class (we need to control the life of the subscription)
* Flip typo '_dirty = false' -> '_dirty = true'
2024-02-04 22:14:00 -06:00
Taha Afzal
8966b73ac9
Merge branch 'development' of bitbucket.org:bluetradesys/spark into development
2024-02-04 18:04:06 -05:00
Taha Afzal
ddb2a91763
Adding TradBar stream
2024-02-04 18:03:51 -05:00
John Colvin
bc5bcbf11e
fix: Bootstrap MarketDataClient.price_ticker/stats w/ init state
...
Bugs (fixed):
* MarketDataClient.price_ticker, and price_stats streams don't fire update
with initial state (they only tick as subsequent changes are observed)
2024-02-04 15:33:20 -06:00
Taha Afzal
287ee291cc
Adding a stream that send a TCP packet to the echo server and monitors the n_sends and n_recvs
2024-01-25 13:37:41 -05:00
Taha Afzal
2bceda01ae
Added code in BlueDataUtility to create schema from data
2024-01-22 16:28:23 -05:00
John Colvin
c39a270115
fix: Support all exchs in QueryServer::get_names
2024-01-17 11:15:01 -05:00
Taha Afzal
6e3f9f99c0
Merge branch 'development' of bitbucket.org:bluetradesys/spark into development
2024-01-17 10:08:17 -05:00
John Colvin
b53d9d7d4c
refactor: Remove 'Platform' (md source) config
...
Good riddance. Improper 'PlatformMap' config was often the reason market
data mysteriously wouldn't show up in the client. Especially with new
exchanges. We should keep all md source/connection configuration in one
place (one proto message), to avoid any confusion.
2024-01-17 01:42:57 -05:00
Taha Afzal
cc3e289345
KeyValueToRelationalStream added
2024-01-16 19:08:40 -05:00
John Colvin
60a8b4f8c7
Gitignore all .tmp dirs (at any level)
2024-01-15 13:34:35 -05:00
John Colvin
c5e0a93869
Gitignore all .venv* dirs (at any level)
2024-01-15 13:33:05 -05:00
John Colvin
3a3216421b
Remove unnecessary file temp.cpp
2024-01-15 13:33:05 -05:00
Taha Afzal
8cbbbc6da3
Merging
2024-01-13 23:45:51 -05:00
John Colvin
25117c5bb7
Append application name to "logging" dir
...
So we can run datastream procs alongside sparkd on the same machine without
log file conflicts
2024-01-12 14:22:02 -05:00
John Colvin
8c95b43524
devcontainer: Name mount dir w/ 'devcontainerId'
...
To ensure it is unique on the main host (i.e., outside the container). Get rid
of devcontainer_initialize.sh, all it did was run "mkdir". Something this
trivial can be inlined in the devcontainer.json (less indirection this way).
2024-01-12 11:41:40 -05:00
John Colvin
1324e2aad1
Gitignore the '.devcontainer' dir (not the json file)
...
We actually do track a 'devcontainer.json' file (to keep as a template). We
just don't keep it in the '.devcontainer' dir, for the same reason we don't
track the '.vscode' dir: so devs can tailor it to their specific needs.
2024-01-12 11:41:40 -05:00
John Colvin
6fad8b754b
docker: Install kitware-archive-keyring to keep key in sync (for cmake)
2024-01-12 11:41:40 -05:00
Taha Afzal
f872fe9d56
AsyncTCPConnection_APM.cs now send onData with Disconnection if it detects teh other side has ShutDown
2024-01-11 17:02:41 -05:00
Taha Afzal
d50e8cda50
Adding AsyncTCPConnectionAcceptor_APM and AsyncTCPConnector_APM to create ITCPConnection
2024-01-11 16:10:51 -05:00
Taha Afzal
694f8b8d11
AsyncTCPConnection_APM works now
2024-01-09 14:34:15 -05:00
Taha Afzal
047267ad1b
AsyncTCPConnection_APM completed (not hooked yet)
2024-01-06 11:34:46 -05:00
Taha Afzal
5b4b41d4eb
Adding MongoDB astream integration
2024-01-02 00:44:52 -05:00
Taha
3e25b4918f
Adding 3 AsyncTCPCOnnections for APM, TAP, and SocketAsyncEventArgs
2024-01-02 00:43:40 -05:00
Taha Afzal
1ceea4af5a
Changing TCPUtils to use SocketAsyncEventArgs instead of TAP functions, simple client<->server works with echoing messages
2023-12-20 11:32:53 -05:00
Taha Afzal
cdc7da8c59
Adding sec_name col to bbo
2023-12-18 12:57:04 -05:00
Taha Afzal
f1e26b984a
Merge branch 'development' of bitbucket.org:bluetradesys/spark into development
2023-12-18 12:42:35 -05:00
Taha Afzal
a7189628b1
Adding EMA, SMA and RenkoStreams
2023-12-18 12:42:14 -05:00
John Colvin
32433577ec
fix build (client): Move a few includes inside 'if' ppd
2023-12-14 11:31:31 -05:00
John Colvin
ed5ef1b7c4
fix build: Remove a few RequiresPreviewFeatures attrs
...
Features which are now standard in .Net
2023-12-14 11:16:19 -05:00
Mohammad Arham
ac7c38d0e2
Merge branch 'development' of bitbucket.org:bluetradesys/spark into development
2023-12-13 21:06:41 -08:00
Mohammad Arham
b887f90b99
added book levels to mdrecorder
2023-12-13 21:06:19 -08:00
John Colvin
9a0ef90700
fix build (windows): Update fmt to v10.1.1
...
Manage this dep with vcpkg now (instead of externals)
2023-12-13 13:27:29 -05:00
John Colvin
5086e81578
build: Add vcpkg as submodule
2023-12-13 12:34:14 -05:00
Mohammad Arham
2230f8d748
emty string can also be default linfopath
2023-12-11 06:49:34 -08:00
Mohammad Arham
1fa66f4815
defaults updated to make glbx work on onix
2023-12-11 06:47:49 -08:00
Mohammad Arham
e5d19ceb8d
assert if channerls per thread < 1
2023-12-11 06:47:03 -08:00
Mohammad Arham
edda571509
added glbx config just to enable glbx
2023-12-11 06:45:36 -08:00
Mohammad Arham
55f20e5a09
Added entry for cme/onix in mdgateway
2023-12-11 06:43:05 -08:00
Taha Afzal
619b49ee6c
Changing the stream subscription structure
2023-11-15 12:30:43 +00:00
Taha Afzal
ab32055416
Adding C++ stream tables (and tests)
2023-11-14 21:53:54 +00:00
Taha Afzal
2ae3ded65e
src/DataStreamSuite/DataStream/Primitives/FileStreams/PlaybackStream.cs
2023-11-14 18:15:53 +00:00
Taha Afzal
4acb1e268a
Merging
2023-11-14 18:14:18 +00:00
Mohammad Arham
d45c79c44b
Merge branch 'development' of bitbucket.org:bluetradesys/spark into development
2023-11-02 07:46:49 -07:00
John Colvin
cba32be99d
fix build: Use relative path in csproj references
...
The build was broken because Spark.csproj was looking for SharedStreams
at some hardcoded path on taha's comp
2023-10-26 14:37:56 -04:00
John Colvin
292fa54dda
fix: Get rid of hardcoded path to dll
...
Use Assembly.Location instead
Bugs (fixed):
* PubSubServer throws an exception on startup because it can't find
dll at hardcoded path
2023-10-26 14:31:20 -04:00
John Colvin
3b059ebdfa
fix: Format arguments properly in DataStream code gen
...
Previously, all arguments were formatted as "Bts.DataStream.Argument"
(from the default ToString)
2023-10-26 14:24:32 -04:00
John Colvin
d0d3c9de4e
feat: Allow line-comments in DataStream parser
...
Supports c#/c++ style line comments (i.e., that begin with '//')
TODO: block comments
2023-10-26 12:59:44 -04:00
John Colvin
633163518a
fix: Fix divide token typo (should be fwd slash)
2023-10-26 12:59:44 -04:00
John Colvin
0a466052e0
cleanup: Remove old submodules (again)
...
* docker/linux
* docker/windows
2023-10-26 10:52:15 -04:00
John Colvin
7e139ddf0a
cleanup: Remove old submodule docker\linux (again)
2023-10-26 10:48:47 -04:00
John Colvin
dcac260efe
fix (hack): Pass lines as array to cloud stream
...
Rather than a single multi-line string. This hack will have to do
until we implement multi-line strings in the parser.
2023-10-25 17:42:59 -04:00
Taha
81ea106ce3
Fixing the DSQA query box font color
2023-10-23 15:18:44 -04:00
Taha
88bf04e5f1
TimeSeries and TimeBucketStreams, Stream offloading etc
2023-10-23 14:18:31 -04:00
Taha
33030b1212
Market data streams work now
2023-10-16 00:01:29 -04:00
Taha
140c0c4152
MDStream uses MarketDataClient instead of MDConsumer now
2023-10-03 18:35:23 -04:00
Taha
7d63718602
MDStream uses MarketDataClient instead of MDConsumer now
2023-10-03 18:35:23 -04:00
John Colvin
9cb94fabdb
fix: Add cross-type NumericComparer for BooleanExpressions
...
Bugs (fixed):
* FilterStream throws exception when comparing numeric arguments
2023-10-02 22:02:35 -04:00
John Colvin
e37a39f9fc
chore: Add SharedStreams to default loaded assemblies cfg
2023-10-02 21:03:54 -04:00
John Colvin
7e307504cb
chore: Remove redundant reference from csproj
2023-10-02 20:53:26 -04:00
John Colvin
d01809e49c
refactor: Move ProtoHelper to spark_api
...
So it can be used by other csprojs (was previously stuck in Spark)
2023-10-02 20:45:32 -04:00
John Colvin
292ed2dc0e
refactor: Convert WebsocketServerParams to proto
2023-10-02 20:45:32 -04:00
John Colvin
623fce6e8f
build: Enable nullable in proto generated cs
2023-10-02 20:45:32 -04:00
John Colvin
7d6d4c03b0
build: Update IronPython to v3.4.1
2023-10-02 20:45:32 -04:00
John Colvin
4962556a6c
build: Update protobuf-net to v3.2.26
...
Also update System.Collections.Immutable to v7.0.0 to new deps
2023-10-02 20:45:32 -04:00
John Colvin
5ad9d9a0e6
build: Update System.Reactive to v6.0.0
2023-10-02 20:45:12 -04:00
John Colvin
a091a95f50
build: Add .cmd wrapper script for build_data_stream.py
2023-10-02 19:38:38 -04:00
John Colvin
0bd06da929
build: Upgrade Google.Protobuf to 3.24.3
...
Now all csprojs are on the same Google.Protobuf version. Previously,
DataStreamSuite projs were on this (newer) version, while Spark projs
were on 3.21.12
2023-10-02 19:38:38 -04:00
Taha
af9dd0c1fe
PubSub Streams to get list of tags etc
2023-10-02 19:38:38 -04:00
John Colvin
fd9eaa65ed
build: Add script to build DataStreamSuite and cpp deps
2023-09-30 13:54:58 -04:00
John Colvin
1c744329e5
chore: Add SharedStreams.csproj bones
2023-09-30 13:08:03 -04:00
Taha
f8c9148609
Adding tests
2023-09-30 12:59:02 -04:00
Taha
fa4da63c24
Streams can be published across PubSub now
2023-09-30 12:59:02 -04:00
Taha
7bb7f1a5e2
PubSub is working now
2023-09-30 12:53:51 -04:00
Taha
3fa37397d9
AsyncTCPCOnnection2 done
2023-09-30 12:52:37 -04:00
Taha
d75f97ba1f
Both SImpleTCPClient and SimpleTCPServer use non async calls now
2023-09-30 12:52:37 -04:00
Taha
404698152e
Merging, and adding test project
2023-09-30 12:52:37 -04:00
John Colvin
9311c27f47
feat: Resurrect DataStream primitives
...
They were originally commented out because the expression parsing utils
weren't ready (now they are).
2023-09-29 13:10:50 -04:00
John Colvin
1dfc028554
fix (temp): Comment out TestPublisher in Program.Main
2023-09-29 13:10:50 -04:00
John Colvin
931c681174
fix build (DataStreamSuite): Change path sep to '\' in Build.targets
...
Csharp protobuf generation was failing, albeit inconsistently, with a
mysterious error message about normalizing relative/absolute paths.
2023-09-29 13:10:50 -04:00
John Colvin
f4568c3bb7
docker: Fix typo in README
2023-09-29 13:10:50 -04:00
John Colvin
126e3571df
docker: Restructure/clean up Dockerfile
...
Break up large RUN steps (where many apt pkgs are installed at once) to
smaller incremental ones. If 'docker build' fails on a particular RUN
step, it can be re-run from the last successful step, so smaller steps
better preserve progress.
2023-09-29 13:10:49 -04:00
John Colvin
6759ce3a2d
docker: Install latest cmake & node
...
The versions in the default apt repo are too old (need cmake >= 3.23,
node >= 16.0.0)
2023-09-29 13:10:49 -04:00
John Colvin
300a9b4eff
docker: Use ubuntu:latest instead of transient 22.10
...
'latest' guarentees we're on an LTS release
2023-09-29 13:10:49 -04:00
John Colvin
52bb54252d
gitignore: Add *.Generated.cs, *.lst
...
The Yacc code generator emits these files
2023-09-29 13:10:49 -04:00
John Colvin
b416209ca7
refactor: Add DataStream cfg protos
...
Translated from Edge config
2023-09-29 13:10:49 -04:00
John Colvin
bcd8aa3d80
refactor: Return fake data from myGetAllTagsStream
...
Until we port the actual impl from Edge
2023-09-29 13:10:49 -04:00
John Colvin
ed0be9162b
refactor: Move PrimitiveManager to DataStreamCore
...
So DSQA can reference it
2023-09-29 13:10:49 -04:00
John Colvin
54a6dca401
chore: Clean up leftover DataStreamGrammar dir
2023-09-29 13:10:49 -04:00
John Colvin
248e37577f
feat: Add DataStreamExpressions
...
All lex/yacc scanners/parsers are now generated with a proper dotnet
nuget pkg, YaccLexTools.
* Implements BooleanExpressionFilter with the new Parser.
2023-09-29 13:10:49 -04:00
John Colvin
ac1ede5986
refactor: Move a few low-level DataStream types to DataStreamCore
...
So the lex/yacc generators can reference them
2023-09-29 13:10:49 -04:00
John Colvin
d1f5ae86fd
chore: Get rid of BooleanExpressionsInterpreter csproj
2023-09-29 13:10:49 -04:00
John Colvin
094ea67e43
feat: Impl BooleanExpressions
2023-09-29 13:10:49 -04:00
John Colvin
ca95ab7a24
feat: Add ArithmeticExpressions csproj
2023-09-29 12:54:14 -04:00
John Colvin
e4f276be2a
refactor: Consolidate redundant HighPerformanceTimer classes
...
Move the one in Spark csproj to spark_core, and reference spark_core
in all the DataStreamSuite csprojs that need it.
2023-09-21 23:48:57 -04:00
John Colvin
a18521674e
fix: Only init static DataStreamLoadFileConfig once
2023-09-21 23:48:57 -04:00
John Colvin
d366ccc9c9
fix: Add simple null check
2023-09-21 23:48:57 -04:00
John Colvin
92e4b0a793
feat: Open gui when DSQA runs
2023-09-21 23:48:57 -04:00
John Colvin
56f7518186
chore: Uncomment DataStream Primitives code
...
It builds now that all the deps are in place
2023-09-21 23:48:57 -04:00
John Colvin
99ff8ac8dd
chore: Comment out refs to PublishedTagsStream
...
For the DataStream port
TODO: Port PublishedTagsStream from edge
2023-09-21 23:48:57 -04:00
John Colvin
0754b48d44
chore: Comment out refs to SitesCfg
...
For the DataStream port
TODO: Translate SitesCfg to protobuf to integrate w/ modern config
2023-09-21 23:48:57 -04:00
John Colvin
081e96bca6
build: Add GuiUtilities csproj
...
For the DataStream port (DSQA depends on this proj)
2023-09-21 23:48:57 -04:00
John Colvin
8665bfc2d2
fix build (wip): Disambiguate HighPerformanceTimer ref
2023-09-21 23:48:57 -04:00
John Colvin
725471a238
fix build: Add using System.Runtime to fix TimeSpan ref
...
This Windows type must have moved namespaces since the Edge days
2023-09-21 23:48:57 -04:00
John Colvin
d09c6ba543
refactor: Replace outdated DataGrid refs w/ DataGridView
...
Windows replaced the former with the latter in dotnet core 3.1
2023-09-21 23:48:57 -04:00
John Colvin
80c4542942
refactor: Replace old BlueEventLog w/ (Spark) Log
2023-09-21 23:48:57 -04:00
John Colvin
4446eb0412
chore: Get rid of redundant DataPacket.cs
2023-09-21 23:48:57 -04:00
John Colvin
71f642aef5
chore: Progress twds building DSQA
2023-09-21 23:48:57 -04:00
John Colvin
700bc45998
chore: Add DSQA (work-in-progress)
2023-09-21 23:48:57 -04:00
John Colvin
7cc7dd652f
chore: Add missing DataStreamExpression.parser(.cs)
2023-09-21 23:48:57 -04:00
John Colvin
9fdffdc648
chore: Remove redundant init calls
2023-09-21 23:48:57 -04:00
John Colvin
a3406279f9
fix build: Don't inherit build props/targets in WebApp build
...
The Directory.Build.props/targets files were recently moved up to the
'src' dir (from 'src/client') for the new DataStreamSuite sln. Evidently
this broke the WebApp build.
2023-09-18 05:03:11 +00:00
John Colvin
3ccda24e20
fix: Add missing venue cases in AdminWebApp
...
Coinbase and OKX
2023-09-18 05:02:12 +00:00
John Colvin
10085a4976
fix build: Don't copy 'sparkd.lic' in cmake install tgt
...
This was a license file for the emumba-deribit lib. We don't need it now
that the license check has been disabled.
2023-09-17 21:20:50 +00:00
John Colvin
78f41127fe
chore: Remove artifact from old web build (added by accident)
2023-09-17 20:09:59 +00:00
John Colvin
8c35d63ab8
chore: Remove empty dirs (added by accident)
2023-09-06 18:24:04 +00:00
Taha
797816be7e
Merging changes
2023-09-04 16:25:40 -04:00
John Colvin
c4216d2272
build: Configure DataStreamSuite cpp to only build on Windows
2023-09-03 14:16:33 -04:00
John Colvin
431dad7551
fix: Init logging/config in DataStreamPublisher entry pt
2023-09-03 14:16:33 -04:00
John Colvin
7a5025d9d9
build: Add spark_core and spark_api to DataStreamSuite sln
...
Although outside of the DataStreamSuite dir, they should be included
because some csprojs in the sln depend on them.
2023-09-03 13:53:07 -04:00
John Colvin
cc2959249e
build: Add lexer/parser.cs files to src ctrl
...
Move all lexer/parser files into a single dir, DataStreamGrammar, for
organizational purposes and to avoid dependency conflicts when
generating code. Note that we'll only need to regen cs if we modify the
parser/lexer files, which seems unlikely.
2023-09-03 13:53:07 -04:00
John Colvin
86a1695286
Add update-synth-strategy fn to SyntheticSecurityClient
2023-09-01 23:24:35 -04:00
John Colvin
4c1cbbe8fe
build: Remove unnecessary WorkingDirectory attrs
...
From the GenerateLexer/Parser targets
2023-09-01 12:48:18 -04:00
John Colvin
5081153db9
fix build: Don't explicitly include generated parser/lexer cs files
...
Since the files are generated in the source dir (not the build dir),
they are automatically included in the build. This removes a few
warnings abt duplicate symbols.
2023-09-01 12:46:21 -04:00
John Colvin
846ed05f76
chore: Remove redundant props in nested Directory.Build.props
2023-09-01 12:40:08 -04:00
John Colvin
3e9afea40a
refactor: Rename DataStream ExpressionSyntax/Parser -> Boolean
...
The DataStream name was causing confusion. The lexer/parser are both
part of BooleanExpressions csproj, so the Boolean name is appropriate.
2023-09-01 12:38:27 -04:00
John Colvin
cfa35fb5ce
fix build: Add dummy classes for DataStreamSuite
2023-09-01 01:39:15 -04:00
John Colvin
9e221cabc3
build: Add BooleanExpressionsInterpreter csproj
...
For the DataStream port
* Add Lexer/Parser build targets
* Update externals w/ lexer/parser generator deps
2023-09-01 01:28:40 -04:00
John Colvin
23c83c0fb6
fix: Skip 1st arg (exe-path) when parsing cmd line
...
This only applies to Spark.exe, where the args are obtained via
Environment.GetCommandLineArgs, rather than directly from a 'main' fn.
The former prepends the [Spark] exe path to the argv array from 'main',
which the CommandLine parser does not expect.
2023-08-29 00:31:02 -04:00
John Colvin
5368f25ed8
feat: Generate rich version w/ GitVersion.MsBuild pkg
...
Run one of our dotnet exes w/ '--version' to print info to console
2023-08-29 00:21:54 -04:00
John Colvin
bee76289ca
chore: Format csproj & fsproj files
2023-08-28 12:25:47 -04:00
John Colvin
1fcfc2886c
chore: Add displayName, description to cmake preset
2023-08-24 14:40:54 +00:00
John Colvin
83c35f55a3
build: Make DataStreamSuite build cross-platform
2023-08-24 14:40:15 +00:00
John Colvin
2f9f0108ef
build: Rename cmake scripts by platform client/server spec
...
Now that we've added another cmake preset (data-stream-suite) some
scripts (GetLinuxClient*.cmake) are shared by multiple presets.
2023-08-24 14:32:44 +00:00
John Colvin
75a1165923
build: Remove dotnet build tgt from CMakeLists
...
Calling 'dotnet build' from CMakeLists doesn't feel natural; it's
simpler to just run it from the cmd line, or in a script.
2023-08-24 04:22:40 +00:00
John Colvin
2d394b77f4
chore: Remove redundant flags from CMakeLists
...
They're already defined in CMakePresets
2023-08-24 04:22:40 +00:00
John Colvin
59e5727f71
fix build (api serv linux): Use cmake shared lib suffix var
...
This Makes code platform independent. The build was broken because it
was trying to copy a ".dll" file on Linux.
2023-08-24 04:22:40 +00:00
John Colvin
f5d2e98d4f
fix build (api serv linux): Fix cfg in CMakePresets
...
The api server linux config shouldn't inherit the spark (windows)
config; no reason to tether them together.
2023-08-24 04:11:47 +00:00
John Colvin
481f33c462
fix build (api serv linux): Fix link lib typo 'fmt' -> 'fmtd'
2023-08-24 04:04:39 +00:00
John Colvin
513bbeeaae
fix build (api serv linux): Revert primary ctr syntax
...
This is a new feat in cs lang version 12, which is only in preview mode.
Reverting the syntax change bc I couldn't get it to build on Linux.
2023-08-24 04:04:39 +00:00
John Colvin
0cade21f1d
build: Remove libspark from spark_client.sln
...
Libspark's inclusion in the sln file has become redundant now that
its bins are copied to the dotnet build dir as part of the CMake build
process. Unlike msbuild, dotnet doesn't integrate nicely with c++. It
seems better to keep c++ projects out of the sln.
2023-08-23 02:41:35 -04:00
John Colvin
7b284b40f7
fix build: Remove problematic generator expression
...
Just copy libspark.dll over to the dotnet build dir for now.
TODO: additionally copy pdb file for debug builds
2023-08-23 02:39:43 -04:00
John Colvin
e1b6971667
build: Greatly simplify build_spark.py
...
Make it a thin wrapper around dotnet/cmake clis
2023-08-23 00:46:21 -04:00
John Colvin
ecbae62d07
feat: Add bones for DataStreamSuite
...
TODO (Taha): Migrate source files from edge
2023-08-22 15:04:08 -04:00
John Colvin
8182b4b289
dev: Simplify sparkd build instructions
...
Restructure in style similar to Spark and Api Server build instructions
2023-08-22 14:38:39 -04:00
John Colvin
a644174601
dev: Add instructions to build spark in README
2023-08-22 14:38:39 -04:00
John Colvin
cf34c13f03
build: Replace build_api_server.py w/ cmake/dotnet clis
...
Add instructions to build the Api Server in README
2023-08-22 14:38:39 -04:00
John Colvin
126e84e4e8
build: Remove 'jobs' arg from CMake build presets
...
Modern CMake uses an appropriate number of jobs by default (I believe
the number of cores on the cpu)
2023-08-22 14:38:39 -04:00
John Colvin
5ffc83a237
build: Init SPARK_ENABLE_API_SERVER reguardless of platform
2023-08-22 14:38:39 -04:00
John Colvin
3082f5c8d9
build: Only build Admin Web App on Linux
2023-08-22 14:38:39 -04:00
John Colvin
f1cde451d8
build: Copy libspark to dotnet bin dirs in CMakeLists
2023-08-22 14:38:39 -04:00
John Colvin
6f0e0e5172
build: Add Spark.Api.Server to CMakePresets
2023-08-22 01:29:45 -04:00
John Colvin
b2d5ab5e03
chore: Add SyntheticSecurityClient to WebsocketDataSync
...
TODO (Arham): Integrate SyntheticSecurityClient w/ the websocket api
2023-08-21 15:35:03 -04:00
John Colvin
c3e098e27d
feat: Add SyntheticSecurityClient (for websocket api)
2023-08-21 15:05:37 -04:00
John Colvin
a930d2165a
refactor: Move SyntheticTuple to spark_api proj
...
Also clean struct up a bit and rename 'SyntheticSecurityTuple'
2023-08-21 15:05:37 -04:00
John Colvin
05cdfce9ce
fix: Add null checks to account for bad analytics exp params
...
The Spark client was throwing null ref exs after merging prod to
developement, likely because the param protos stored in db were invalid.
2023-08-11 11:42:29 -04:00
John Colvin
61c9d6b2d6
fix build: Sand rough edges after merge
2023-08-05 00:09:16 -04:00
John Colvin
7545d3fd5c
Merge remote-tracking branch 'origin/spark_crypto.prod' into development
2023-08-04 13:40:04 -04:00
John Colvin
04e0297e86
refactor: Simplify 'render_piq' by using common code
...
No need to re-invent the 'render_cells' wheel
2023-07-31 14:50:44 -04:00
John Colvin
562706b968
fix: Don't assume ladder row-data is sorted by price
...
Bugs (fixed):
* Ladder assert-crashes when rendering volume-at-price
Cause: The render routine expected items to be sorted by price, and
asserted as much (indirectly). In hindsight, this expectation placed
an unnecessary burden on the caller.
2023-07-31 14:20:08 -04:00
John Colvin
4195207a71
fix: Replace non-existent StaticResource w/ BTSColor
...
Bugs (fixed):
* The Activity Log window crashes immediately opened.
Cause: WPF throws an Exception because it fails to resolve the
StaticResources 'TextBox.BackgroundBrush', and
'TextBox.ForegroundBrush', as they are defined in Colors.xaml, which
is not imported by LogViewer.xaml.
I replaced the StaticResources w/ BTSColor extension (rather than
include Colors.xaml), because it is less error prone, and allows us
to keep colors organized in 1 place: BTSColors.cs.
I'm not sure how long the bug was around. It likely slipped through
the cracks because the ActivityLog window isn't used often.
2023-07-28 14:16:46 -04:00
John Colvin
71eb89b6a1
fix: Check 'HasQuantityDisplay' before accessing prop
...
Bugs (fixed):
* The PNL Summary window throws a null ref ex when the first row is
populated.
Cause: The SecurityMetadataImmutable's internal QuantityDisplay is
null. In other words, the mutable SecurityMetadata obj around which
it wraps has a null QuantityDisplay, which is not allowed since
Immutable protos (such as 'QuantityDisplayImmutable') must be
constructed w/ a non-null instance of their mutable counterpart.
* Implement same fix (pre-emptively) in ManualFillRow, and
OrderCompletedEventPredicate.
2023-07-28 14:01:57 -04:00
John Colvin
94e4a0b725
fix: Change bus data type to nullable immutable
...
Bugs (fixed):
* The InterpTheosServerPublisher throws a null ref during startup when it
accesses 'UsageList' from the VolSurfaceUsageTag data.
Cause: Immutable protos instantiated w/ the default ctr have an
invalid state, because the mutable (reference type) instance around
which they wrap is null. Since an immutable type's props are trivial
wrappers for this mutable instance, they throw a null ref if the
mutable instance is null.
2023-07-28 12:02:50 -04:00
John Colvin
40d1fe20e3
diag: Add detailed error logs to notification serv order handler
...
Maintain a circular buffer of the last N updates. Then if/when an
exception occurs, log the update sequence that led up to it.
2023-07-26 15:30:55 -04:00
John Colvin
2ed23159ca
style: Clean up jenkins build script
...
* Get rid of double backslashes in quoted paths to improve readability
* Call 'activate.bat' instead of 'activate' (official python docs say to
use the former)
* Add docs
2023-07-26 15:26:30 -04:00
John Colvin
faa8438adf
build: Make jenkins build script independent of working dir
...
This alleviates an unneccessary burden on callers (previously, it had to
be run from the repo root dir).
2023-07-26 11:59:03 -04:00
John Colvin
0b35c2ccde
fix: Add lock, try/catch in notification serv order handler
...
Brandon has been experiencing a crash on startup. The stack trace shows
this handler is throwing a duplicate-key ex on 'dictionary.Add' (unclear
why).
2023-07-26 00:55:50 -04:00
John Colvin
98eea0ef09
chore: Remove unused iface member
2023-07-26 00:13:22 -04:00
John Colvin
4bf237aebe
fix (pre-emptive): Guard against null/empty prices in LadderRender
2023-07-25 14:27:13 -04:00
John Colvin
da927adef4
fix: Check price is within ladder's range before rendering
...
Bugs (fixed):
The render routine was indirectly asserting that each item's price was
>= the ladder's min price. That seems like an inappropriate burden to
put on the caller. Now we filter these items out in the routine.
2023-07-25 14:24:16 -04:00
John Colvin
cf587e26d5
fix: Remove bad assert abt tickdiff in LadderRender
...
* The test condition was wrong in the first place
* Instead of assert/crashing, log a warning
2023-07-25 14:22:15 -04:00
John Colvin
9e4354fb55
fix buid: Don't goto ERROR just bc venv already exists
...
This seems like a typo
2023-07-18 23:40:18 -04:00
John Colvin
e6bb4c73a8
fix build (jenkins): Upgrade pip via 'python -m pip'
...
For some reason 'pip install --upgrade pip' works on my laptop, but fails on
the Jenkins box.
2023-07-18 22:53:32 -04:00
John Colvin
e43a2a4818
build: Add build script for new Jenkins (on aws)
2023-07-18 22:25:56 -04:00
John Colvin
cde0f44b7d
build: Default to Release cfg for 'publish' target
2023-07-18 22:25:06 -04:00
Taha
b07a1e2c74
Fixing the issues, where the theos are only published out by the vol surface owner
2023-07-18 20:40:59 -04:00
Taha Afzal
8376fce5fe
Merge branch 'spark_crypto.prod.vol_order' into spark_crypto.prod
2023-07-14 17:01:29 +00:00
Taha Afzal
d9e5c846c2
Adding more logs to VolAlgo
2023-07-14 16:57:55 +00:00
Taha Afzal
65736c13ef
VolAlgo completed
2023-07-14 03:54:14 +00:00
Taha Afzal
071c28e925
VolAlgo reflects its state correctly now
2023-07-10 03:20:05 +00:00
Taha Afzal
8355e3e1be
VolAlgo code complete - need to test
2023-07-09 04:21:42 +00:00
John Colvin
f9a6e0963c
chore: Remove Spark.Admin.WebApp
...
These files were added by accident (leftover from switching branches
from development -> spark_crypto.prod)
2023-07-06 14:52:57 +00:00
John Colvin
b2879837c6
chore: Remove devcontainer.json
2023-07-06 12:26:48 +00:00
John Colvin
0d03ddb009
Merge remote-tracking branch 'origin/spark_crypto.prod' into spark_crypto.tick_hotfix
2023-07-06 12:26:28 +00:00
John Colvin
a6dfa4ae80
fix: Don't show decimal BTC Futs/Spd qtys
...
They tick in multiples of 10, so decimal precision isn't needed
2023-07-05 18:20:53 -04:00
John Colvin
e66ec82ba8
hotfix: Setup default cfg for new Deribit price ticks
2023-07-05 18:19:49 -04:00
John Colvin
9ce5e971c6
fix: Fix typos in BTSColor paths in xaml
2023-07-05 18:11:40 -04:00
John Colvin
3e7cc49ebb
hotfix: Format text w/ RegionalTickFactors in PriceEntryControl
2023-07-05 18:11:40 -04:00
John Colvin
d07e68b6e2
hotfix: Use 1st leg's min price tick rule for Deribit combos
2023-07-05 18:11:40 -04:00
John Colvin
619ece2313
refactor: Consolidate impl for 'round_to_tick' overloads
...
Also add a 'decimal' overload for RegionalTickFactors. This is more work
for Deribit tick hotfix.
2023-07-05 18:11:40 -04:00
John Colvin
1dda9566f3
hotfix: Use '.' separator if tick unit is multiple of base
2023-07-05 18:11:06 -04:00
Taha
3704d1ed16
InterptheosServerPublisher is now opulated the newly added vol field in the PrecomputedTheoPoint proto
2023-07-05 14:41:31 -04:00
John Colvin
a524ca02a5
refactor: Change tick arithmetic to use int64
...
The tick count is "price / tick_size" and tick_size is usually < 1, so
the extra bits may be needed to avoid arithmetic overflow
2023-07-05 12:02:28 -04:00
John Colvin
3c97f2552b
fix build: Don't use libfmt or ranges in win cpp
...
I can't deal with this anymore. My build is suddenly broken on Windows
(for spark_crypto.prod branch). I assume they updated the compiler
in a way that isn't backwards compatible. Thanks Windows.
2023-07-05 11:58:14 -04:00
John Colvin
15b1d55ef1
fix build: Disable Binance md code on win
2023-07-05 11:58:14 -04:00
John Colvin
4e42c9f01b
test: Refactor tick tests for RegionalTickFactors
...
Gives us some peace of mind about the dynamic ticks hotfix for Deribit
2023-07-05 11:58:14 -04:00
John Colvin
76775f821a
hotfix: Support dynamic ticks in order ticket
2023-07-05 11:58:14 -04:00
John Colvin
e7088f6b1c
hotfix: Support dynamic ticks in ladder
...
Deribit now provides dynamic price ticks (a list of ticks per range).
https://www.deribit.com/kb/4-july-2023
https://www.deribit.com/kb/deribit-on-screen-options-tick-size-reduction
2023-07-05 11:58:14 -04:00
Taha Afzal
f2c3ff4be6
Adding vol to PrecomputedTheoPoint
2023-07-05 15:16:45 +00:00
Taha
1fb42ade59
Adding perf logs on the front end
2023-07-05 10:50:13 -04:00
Taha
129650e9d4
Only the skew owner publishes theos to the server
2023-07-05 10:50:13 -04:00
John Colvin
170a44ac04
fix: Check sign to tick in correct direction
...
Don't assume it's positive and blindly tickup
2023-07-03 22:34:46 -05:00
Taha Afzal
7e04f02327
Merge branch 'spark_crypto.prod.autofit' into spark_crypto.prod
2023-07-04 03:21:28 +00:00
Taha Afzal
abda2dbf97
VolSurfaces and achived theo history size is not mantained at runtime
2023-07-04 03:13:46 +00:00
Taha Afzal
ad1a45cf49
ArchivedTheos are truncated on a server start
2023-07-04 03:13:46 +00:00
John Colvin
e9abdd0ff2
chore: Remove unused fn 'gen_prices'
2023-07-03 12:30:03 -05:00
John Colvin
9254002318
fix: Check HasPrice/QuantityDisplay before accessing prop
2023-07-03 12:24:20 -05:00
John Colvin
596780b7f4
chore: Remove unused 'unit_quantity' prop
2023-07-03 12:22:37 -05:00
John Colvin
7ba061ac20
hotfix: Add cfg to account for new deribit tick format
2023-07-02 16:58:53 -05:00
John Colvin
f8e6b73714
fix: Add missing venues to switch statement
2023-06-26 17:34:52 +00:00
John Colvin
c01593d119
fix (ui colors): Cherry-pick synth editor dark theme from dev
2023-06-26 12:26:38 -04:00
John Colvin
dd53c149c0
fix: Fix typo in default cfg 'SPOT' -> 'SECURITY_TYPE_SPOT'
2023-06-26 15:39:47 +00:00
John Colvin
04b4efe1e1
Update externals
...
Addresses more trivial build errors after upgrading to C++ 20
2023-06-26 15:24:46 +00:00
John Colvin
81bafbe68d
fix build: Address trivial werrors after upgrading to C++ 20
...
All werrors were about implicit 'this' captures in lambdas
2023-06-26 15:24:46 +00:00
John Colvin
7ee95c55ab
build: Upgrade CLI11 to v2.3.2
2023-06-23 15:35:06 +00:00
John Colvin
87d67feff4
build: Upgrade (Linux) c++ to stdlib 20
2023-06-23 15:33:40 +00:00
John Colvin
d21ceddbb6
build: Upgrade (Windows) c++ to stdlib 20
2023-06-23 15:33:40 +00:00
John Colvin
4434df3d09
fix: Account for duplicate sec keys in 'normalize_drivers'
2023-06-23 15:33:40 +00:00
John Colvin
35916881c8
fix: Invalidate 'My Windows' module content on open (hover)
...
Bugs (fixed):
* My Windows module popup is always empty
Cause: The list of favorite windows is only evaluated on startup
(before the list has been properly initialized). Furthermore, even
if the list was initialized, it must be re-evaluated to account for
newly added/removed windows.
2023-06-23 15:33:40 +00:00
John Colvin
5230d6bab5
build: Clean up build_spark.py
2023-06-23 15:33:40 +00:00
John Colvin
68c3418c04
build (refactor): Upgrade libfmt from ~8.0.1 to 10.0.0
2023-06-23 15:33:40 +00:00
John Colvin
7bce9f8a7f
fix: Fix typo 'groups' -> 'currencies'
2023-06-21 11:07:47 -04:00
John Colvin
a5b988738f
chore: Add 'requests' module to py venv
...
This module is used to download files. It is required for the new
'install_fmt.py' script in externals.
2023-06-21 11:07:47 -04:00
John Colvin
53a4b61884
chore: Remove unused cmake var
2023-06-21 11:07:47 -04:00
John Colvin
7be111dc36
refactor: Use upper case http method name in ccapi params
2023-06-21 11:07:47 -04:00
John Colvin
0c5bd66cca
refactor: Improve logging sec parsing logs (binance futs)
2023-06-21 11:07:47 -04:00
John Colvin
b699c5a310
refactor: Simplify json impl w/ macros
2023-06-21 11:07:46 -04:00
John Colvin
af8850f4c0
fix: Gracefully handle REQUEST_STATUS msgs (from ccapi)
2023-06-21 11:07:46 -04:00
John Colvin
10e359d6b5
refactor: Remove unnecessary template param
2023-06-21 11:07:46 -04:00
John Colvin
b360881b8b
chore: Impl 'descriptor' switch case for all exchs
2023-06-21 11:07:46 -04:00
John Colvin
b250dc31d3
chore: Subscribe to BTC/USDC currencies in deribit md cfg
2023-06-21 11:07:46 -04:00
John Colvin
995df189ae
chore: Add OKX to symbols.conf
2023-06-21 11:07:46 -04:00
John Colvin
93739e7010
improvement: Show Venue/SecType names in logs (not numeric val)
2023-06-21 11:07:46 -04:00
John Colvin
bc42498d61
fix build: Disable ccapi/ftx
...
It appears that ccapi's ftx execution management code is broken (not that
it really matters, bc it's ftx). We prob should have already disabled this
disgraced exchange anyways.
2023-06-21 11:07:46 -04:00
John Colvin
2b95507c49
build: Better organize CMakeLists per-platform/project
2023-06-21 11:07:46 -04:00
John Colvin
ca8c3a18d7
build: Generate only necessary cs files for protos
...
Prior to this commit, proto files were added to csprojs via the Proto3
target. This target generated 4 files per proto:
.cs, .immutable.cs, .client.pb.cs, and server.pb.cs
For the (many) proto files that don't define services (just normal messages),
the .client/server.pb.cs files were unnecessary.
This commit splits proto-generation into 2 targets:
* ProtoService - same as the old 'Proto3' target (generates 4 files per
proto as described above).
* Proto - a new target that generates only .cs, and .immutable.cs files
2023-06-21 11:07:46 -04:00
John Colvin
e49066ffa7
fix build: Fix cacheVariables in CMakePresets
2023-06-21 11:07:45 -04:00
John Colvin
e3cd910acd
build: Use CMakePresets in build_spark.py
2023-06-21 11:07:45 -04:00
John Colvin
cb47177b8e
build: Remove unused 'link_build_dir' arg
2023-06-21 11:07:45 -04:00
John Colvin
fba00c9d51
fix build: Remove unused fn 'notnulld'
...
This fn broke the Spark release build due to an '#if DEBUG' ppd
2023-06-21 11:07:45 -04:00
John Colvin
af0b7d9146
fix build: Set cmake policy CMP0076 before target_sources
...
* Removes warning when configuring build on Windows
* Moves 'vs_filters.cmake' to 'cmake' dir (w/ other cmake scripts)
2023-06-21 11:07:45 -04:00
John Colvin
e0a8c476f6
build: Increase sparkd parallel jobs to 8
2023-06-21 11:07:45 -04:00
John Colvin
5acb8100de
devcontainer: Define env var 'XDG_CONFIG_HOME'
2023-06-21 11:07:45 -04:00
John Colvin
1c133e87e7
Update externals to get ccapi v5.45.2
2023-06-21 11:07:45 -04:00
John Colvin
8a8419576d
build: Add 'Debug (ccapi diag)' configuration preset
...
Simply a clang debug build w/ ccapi log level set to 'Trace' (instead of
'Debug')
2023-06-21 11:07:45 -04:00
John Colvin
4a28723adb
chore: Organize ccapi compile defs in CMakeLists
2023-06-21 11:07:45 -04:00
John Colvin
e482408f29
fix: Add 'notional' filter class to model binance md json
2023-06-21 11:07:45 -04:00
John Colvin
4dcc98ab1f
improvement: Check for empty str when parsing numbers (json)
2023-06-21 11:07:45 -04:00
John Colvin
ace0fc35a2
refactor: Don't log error in Price::from_json
...
These logs get noisy fast
2023-06-21 11:07:45 -04:00
John Colvin
c7d1eb00dc
refactor: Add TimeSpan, TimeStamp arithmetic
2023-06-21 11:07:45 -04:00
John Colvin
949c8e0a32
build: Enable boost-beast for ccapi
2023-06-21 11:07:45 -04:00
John Colvin
c2419b491a
fix: Ensure ccapi log filenames aren't deallocated
...
Logs are committed asynchronously, and since ccapi log filenames are
passed by value, we must store them somewhere
2023-06-21 11:07:45 -04:00
John Colvin
786322f397
feat: Add Okx md (ccapi)
2023-06-21 11:07:45 -04:00
Taha
09e2a1764f
Only the user with control over the volsurface can save it
2023-06-15 11:44:34 -04:00
John Colvin
a780668bce
fix: Ensure tick up/down values are within min/max bounds
2023-06-15 11:43:58 -04:00
John Colvin
5b79aeaa14
ui: Enforce min auto-fit period (30 secs)
2023-06-15 11:37:18 -04:00
John Colvin
049c006b5f
ui: Disable driver/atm pts moved auto-fit ui
2023-06-15 11:37:18 -04:00
John Colvin
6fdc344472
feat: Add 'acquire ownership' button to vs context menu
2023-06-15 11:37:18 -04:00
John Colvin
cb09b93553
chore: Rename ns bts.reactive -> Spark.Core.Reactive
2023-06-15 11:37:18 -04:00
John Colvin
21447d32e5
fix (vs ui): Only log 'is_dirty' changes for editable cols
2023-06-15 11:37:18 -04:00
Taha
28b03e1cd2
Only the user with control over the volsurface can save it
2023-06-14 22:23:45 -04:00
Taha
a7acb89c15
Fixing merge conflict
2023-06-14 15:57:42 -04:00
John Colvin
35289710ba
fix: Ensure tick up/down values are within min/max bounds
2023-06-14 14:20:47 -04:00
Taha
4677acfb39
Merge branch 'spark_crypto.prod.autofit' of bitbucket.org:bluetradesys/spark into spark_crypto.prod.autofit
2023-06-14 13:55:03 -04:00
Taha
ac05d0d69e
AutoFitter reads the settings from the settings now
2023-06-14 13:54:53 -04:00
John Colvin
25a9b6b433
fix: Ensure tick up/down values are within min/max bounds
2023-06-14 13:49:49 -04:00
John Colvin
b78713ad0d
ui: Enforce min auto-fit period (30 secs)
2023-06-14 12:59:40 -04:00
John Colvin
1f3d0e879c
ui: Disable driver/atm pts moved auto-fit ui
2023-06-14 12:59:39 -04:00
John Colvin
baad4dc68e
feat: Add 'acquire ownership' button to vs context menu
2023-06-14 12:22:57 -04:00
John Colvin
ef7c0c7a30
chore: Rename ns bts.reactive -> Spark.Core.Reactive
2023-06-14 11:39:06 -04:00
Taha
3b3c4a2a35
Merge branch 'spark_crypto.prod.autofit' of bitbucket.org:bluetradesys/spark into spark_crypto.prod.autofit
2023-06-14 10:21:55 -04:00
John Colvin
ef9fc66a31
fix (vs ui): Only log 'is_dirty' changes for editable cols
2023-06-14 09:44:42 -04:00
John Colvin
212d9c853b
fix: Init auto fit vals in vs settings editor
2023-06-14 09:09:34 -04:00
Taha
7815b18b6b
Merge branch 'spark_crypto.prod.autofit' of bitbucket.org:bluetradesys/spark into spark_crypto.prod.autofit
2023-06-13 22:34:12 -04:00
Taha
05126074d4
Enabling AutoFit
2023-06-13 22:34:07 -04:00
John Colvin
3611d2c1f3
fix: Enable tick up/down buttons for nullable uint32 ctrl
2023-06-13 15:43:33 -04:00
John Colvin
b5ad4b8104
feat: Add auto-fit ui for vs settings
2023-06-13 15:43:33 -04:00
Taha
43d7c0a2b5
Comments
2023-06-12 13:43:42 -04:00
Taha
12e361cec7
AutoFit based on a timer works now
2023-06-11 21:59:46 -04:00
John Colvin
a4b0f026f4
style: Don't use implicit ptr -> bool conversion
...
Check 'ptr == nullptr' instead.
2023-06-07 13:16:22 -04:00
John Colvin
59f65c32d8
refactor: Change if/else blocks to switch expression
2023-06-07 13:16:22 -04:00
John Colvin
ccec77f7d1
refactor: Fix typo 'uitilities' -> 'utilities'
2023-06-07 13:16:22 -04:00
John Colvin
1deeb85d22
improvement: Filter Deribit instrument reqs by regex cfg
2023-06-07 13:16:21 -04:00
John Colvin
648a32147a
refactor: Eliminate SecurityID dependency on JsonReader
...
It's a fundamental type, included by many source files. The fewer
dependencies the better.
2023-06-07 13:16:21 -04:00
John Colvin
806ddfc156
Update externals so ccapi Deribit sends heartbeats
2023-06-07 13:16:21 -04:00
John Colvin
05b5f22204
fix: Capture cfg by value in thread lambda
...
Bugs (fixed):
* A race crash occurs during startup, seems related to starting emumba
2023-06-07 13:16:21 -04:00
John Colvin
4f09d2cff1
refactor: Move Emumba deribit cfg to own proto
2023-06-07 13:16:21 -04:00
John Colvin
e1234fe583
fix: Fix typo in log helper script 'show_last_run.sh'
...
So it actually applies the 'num_lines' override arg
2023-06-07 13:16:21 -04:00
John Colvin
aa64dacd65
fix: Abort '_add_spread' if any leg secs missing
...
Bugs (fixed):
* Sparkd crashes occassionally during startup. The last logs suggest
it is related to adding Deribit spreads to shared mem.
2023-06-07 13:16:21 -04:00
John Colvin
10b062ebce
fix build: Fix typo in CMakePresets cfg profiles
2023-06-07 13:16:21 -04:00
John Colvin
e057057173
chore: Add replay/recording cfg to md_dev/prod profiles
2023-06-07 13:16:21 -04:00
John Colvin
82cec2672a
fix build: Fix typo in Venue enums in default confs
2023-06-07 13:16:21 -04:00
John Colvin
50184cd6ff
docker: Add hostRequirements, shm to devcontainer
...
The shm-size should be more than sufficient for general market data (the
default size of 64MB wasn't cutting it)
2023-06-07 13:16:21 -04:00
John Colvin
e64dc49a64
fix build: Respect cfg path order in gen'd defaults
...
The path order represents the value-inheritance hierarchy. This way,
values from files earlier in the path take precedence over those from
later files.
2023-06-07 13:16:21 -04:00
John Colvin
010bd53723
fix: Include 'id' member in equals impl
2023-06-07 13:16:20 -04:00
John Colvin
50ae7ca7f9
feat: Add Deribit md (ccapi)
2023-06-07 13:16:20 -04:00
John Colvin
995bbef878
refactor: Add currencies to SecurityCriteria proto
2023-06-07 13:16:20 -04:00
John Colvin
8c325e30be
improvement: Validate SecurityCriteriaClause proto
...
To ensure 'SecurityCriteriaClause::include' calls are reasonably cheap
2023-06-07 13:16:20 -04:00
John Colvin
6bb9b24210
feat: Add 'name_regexps' to SecurityCriteriaClause
...
This will allow us to filter out securities (instruments) at Deribit
(and likely other venues) BEFORE requesting their metadata. This
will be particularly useful when reacting to instrument state changes
(i.e., when a new instrument is added), which occur one instrument at
a time, and only provide the instrument's name.
2023-06-07 13:16:20 -04:00
John Colvin
df1c558c33
refactor: Shorten SecurityCriteriaClause var names
...
* Drop 'security_' prefix (considering the class name, it is redundant)
* Change 'descs' -> 'names'
2023-06-07 13:16:20 -04:00
John Colvin
357d245a4c
fix: Use JsonReader::read rather than nlohmann::get
...
The former is a more robust solution (logs exceptions, primitive string
conversion, etc.)
2023-06-07 13:16:20 -04:00
John Colvin
d43863ab59
refactor: Change BoolName cstrings to strings
2023-06-07 13:16:20 -04:00
John Colvin
89188acc7d
refactor: Define 'fmt' fns for a few md types
2023-06-07 13:16:20 -04:00
John Colvin
86a9fc0c83
chore: Add 'fmt' impl for domain::Security
...
This allows us to pass domain::Security to the LOG macro.
2023-06-07 13:16:20 -04:00
John Colvin
15579acd2a
fix build (web): Add missing Venue switch cases
2023-06-07 13:16:19 -04:00
John Colvin
411009c996
Update externals to get ccapi v5.45.1
2023-06-07 13:16:19 -04:00
John Colvin
17a4cce68b
refactor: Change 'Currency' from enum to string
...
It is an unnecessary burden to ensure the enum represents the union set
of currencies available at all suppported venues. The benefits of using
an enum are slim to none (it is practically unreferenced in code), so
the burden isn't justified.
2023-06-07 13:16:19 -04:00
John Colvin
adb36795a8
chore: Rename a few .conf files to snake case
2023-06-07 13:16:19 -04:00
John Colvin
691545b71a
refactor: Remove redundant sec type field
...
The Security class already has a 'type' fn that treats the type as a
function of the security variant. This is better than the 'type' field
in SecurityCommon, because it's naturally in sync with the variant.
2023-06-07 13:16:19 -04:00
John Colvin
31c7fa4f2c
fix (pre-emptive): Return 'UNSPECIFIED' if sec-type variant empty
2023-06-07 13:16:19 -04:00
John Colvin
86009c3cdb
refactor: Reduce Binance US dependency on Binance
...
There is some common code, but it seems like a good idea to keep
exchange-specific md impls modular/independent
2023-06-07 13:16:19 -04:00
Taha Afzal
c9392dd306
Adding multiple accounts to CCAPIExecutionGateway
2023-06-06 18:30:38 +00:00
Taha Afzal
ac8a6094fb
Cleaning up corrid generation
2023-06-06 18:30:38 +00:00
Taha Afzal
6dbe497013
Bug fixes
2023-06-06 18:30:38 +00:00
Taha Afzal
274aa9b17d
Error on order entry handled
2023-06-06 18:30:38 +00:00
Taha Afzal
d47e61ca57
CCAPISingleOrderManager state machine fixed
2023-06-06 18:30:38 +00:00
Taha Afzal
3078b918d2
CLeaning up
2023-06-06 18:30:38 +00:00
Taha Afzal
95e9a6e8aa
Sending RFQs now (combo creation not done)
2023-06-06 18:30:38 +00:00
Taha Afzal
1a3cf1dbea
OpenOrders are reported bck now
2023-06-06 18:30:38 +00:00
Taha Afzal
0d705eed1f
PositionRequest cleaning up and consolidating multiple messages (corresponding to different currencies) into one
2023-06-06 18:30:38 +00:00
Taha Afzal
1d28526792
Querying Positions and passing them to the client now
2023-06-06 18:30:38 +00:00
Taha Afzal
3ecf3dd048
OpenPositions and WorkingOrders queried from Deribit now
2023-06-06 18:30:38 +00:00
Taha Afzal
64ff79a38d
Passing config to connection config to CCAPIDeribitOrderMux
2023-06-06 18:30:38 +00:00
Taha Afzal
aba478f3dc
Adding meaningful correlation ids
2023-06-06 18:30:38 +00:00
Taha Afzal
1025881ec8
Stable CCAPI based Deribit execution using per instrument subscription - improvements needed
2023-06-06 18:30:38 +00:00
Taha Afzal
6d95a645e3
Deribit's option position request hooked up
2023-06-06 18:30:38 +00:00
Taha Afzal
4769f66eea
Adding some logs to SharedMemory and SharedList
2023-06-06 18:30:38 +00:00
John Colvin
82c126362d
fix build: Fix a few path errors in publish target
2023-05-31 22:13:52 -04:00
Taha Afzal
9093c72646
Merge branch 'temp_arham' into spark_crypto.websocket-api.ccapi
2023-05-09 03:56:35 +00:00
arhamGIT
3a220b8320
Merge branch 'temp_arham' of bitbucket.org:bluetradesys/spark into temp_arham
2023-05-08 23:40:44 -04:00
arhamGIT
ac20f7c9dd
front end changes to make coinbase work
2023-05-08 23:40:28 -04:00
Taha Afzal
578146905e
coinbase working
2023-05-09 03:31:20 +00:00
arhamGIT
7f07f5a69b
Merge branch 'temp_arham' of bitbucket.org:bluetradesys/spark into temp_arham
2023-04-26 12:33:50 -04:00
arhamGIT
3dd7d0999e
merge
2023-04-26 12:33:32 -04:00
Taha Afzal
5076770d15
coinbase sec names showing in shrd mem
2023-04-26 16:27:34 +00:00
Taha Afzal
791446c514
changed to merge proto updates
2023-04-25 15:38:37 +00:00
Taha Afzal
66370bd541
Merge branch 'spark_crypto.websocket-api.ccapi' of bitbucket.org:bluetradesys/spark into spark_crypto.websocket-api.ccapi
2023-04-24 23:24:25 +00:00
Taha Afzal
cce8973e87
temp changes to make binance work
2023-04-24 23:19:15 +00:00
John Colvin
37dcd32c6b
fix (cli): Fix config --query output indentation
...
There are 2 spaces per indent level
2023-04-20 00:46:23 -04:00
John Colvin
d772958272
diag: Show file/line in Config logs
2023-04-20 00:46:23 -04:00
John Colvin
c85e221e9f
build: Automatically run build_spark.py in venv
2023-04-20 00:46:23 -04:00
John Colvin
28e95df5c6
refactor: Rename 'STOCK' -> 'SPOT'
2023-04-20 00:46:23 -04:00
John Colvin
8d84355d57
chore: Add Binance BTC qty formatting to default conf
2023-04-20 00:46:23 -04:00
John Colvin
5c25f9a3e5
refactor: Rename Venue/SecType enums according to conventions
...
https://protobuf.dev/programming-guides/style/#enums
2023-04-20 00:46:23 -04:00
John Colvin
c0980809c5
chore: Format .conf files
...
* Indent with 2 spaces
2023-04-20 00:46:23 -04:00
John Colvin
e946c6427e
chore: Rename Ports.conf -> ports.conf
...
This is consistent with proto file naming conventions recommended by
Google (snake_case)
2023-04-20 00:46:23 -04:00
John Colvin
58ccbe2b19
chore: Consolidate default md conf into one file
2023-04-20 00:46:22 -04:00
John Colvin
7519c0b63a
build: Update dotnet fable to 4.0.6
2023-04-20 00:46:22 -04:00
John Colvin
947c071cee
build: Remove unused cmake def
2023-04-20 00:46:22 -04:00
John Colvin
54018fcce7
refactor: Clean up 'PlatformLoader'
...
* Rename 'SymbolLoader'
* Consolidate complicated filter logic into one 'load' overload
refactor: Get rid of unnecessary PlatformConfig
2023-04-20 00:46:22 -04:00
John Colvin
4b85eb33f8
chore: Remove redundant Symbols.conf file
2023-04-20 00:40:56 -04:00
John Colvin
592cf54e94
chore: Remove irrelevant test for config fallback url
...
The 'fallback url' was removed from config a few months ago (this test should
have been removed with it)
2023-04-20 00:40:56 -04:00
John Colvin
b8368bf9fa
chore: Remove unused args/code
...
* Removes several 'if' blocks whose predicates were effectively compile-time
constants (i.e., unnecessary).
2023-04-20 00:40:50 -04:00
John Colvin
7d19ea84ab
chore: Remove redundant fn 'get_thread_name'
2023-04-18 23:57:24 -04:00
John Colvin
14651341c4
fix: Fix 'Replace' fn so it ONLY replaces val if key exists
...
Bugs (fixed):
* Spark (client) crashes anytime an order is canceled. Other changes
to existing orders can cause the crash as well, but cancelling does
so every time.
* Cause: The IObservable<Update<T, TKey>> 'Naggle' ext fn was broken.
Specifically, the KeyedValueCollection.Replace fn that 'Naggle' uses
was broken. Instead of only replacing values with existing keys, it
would add new keys as well.
2023-04-18 10:36:46 -04:00
John Colvin
681fbc6915
fix: Add 'spot' to sec type filter for preset algos
2023-04-18 00:12:46 -04:00
John Colvin
37d7f51d19
fix: Fix color-name typo in xaml
2023-04-17 23:53:51 -04:00
John Colvin
48eb0a2c9b
fix: Use qty display settings in order ticket bbo header
2023-04-16 12:53:04 -04:00
John Colvin
6d2cd54deb
fix: Init config w/ (optional) server arg in cli
2023-04-16 00:29:31 -04:00
John Colvin
2ec956b430
fix: Normalize cfg url path sep to '/' on Windows
...
Bugs (fixed):
* All client config overrides are ignored (even the '-configserver'
cli arg). Config overrides on the server appear to work, but they
aren't forwaded to the client.
Cause: cURL doesn't like the Window's path separator '\'
2023-04-16 00:13:42 -04:00
John Colvin
4f22ae04fe
diag: Add verbose logs during config init
2023-04-16 00:13:42 -04:00
John Colvin
7da82d8444
cli (spark): Add 'sparkd' opt, integrate w/ CommandLineParser
...
This replaces the old '-configserver' arg, which will continue to be
supported for backwards compatabilty.
2023-04-14 15:16:32 -04:00
John Colvin
d8611536ee
fix build script: Fix venv path
2023-04-14 15:16:32 -04:00
John Colvin
c94ffd1a56
cli: Add spark.console.cmd (alias for Spark.Console.exe)
2023-04-14 15:16:32 -04:00
John Colvin
cddf081e19
fix (cli): Read %~dp0 before SHIFT
...
I just discovered that, when SHIFT is run (the first time), the value of
%~dp0 changes from the script's parent dir to the current working dir
2023-04-14 13:18:28 -04:00
John Colvin
94071b4889
refactor: Move Spark cmd opts to own file
2023-04-14 13:18:28 -04:00
John Colvin
d7518cffe1
fix: Don't round ccapi book qtys to int
2023-04-14 17:07:25 +00:00
John Colvin
fa26ecaf67
fix: Fix typo 'BINANCE' -> 'BINANCE_US'
2023-04-14 17:07:25 +00:00
John Colvin
c2eaf00aaa
improvement (cli): Add spot & option to sec type choices
2023-04-14 17:07:25 +00:00
John Colvin
74be3ec9b9
improvement (cli): Dump md json via nlohmann/json
...
This is much easier to read than previous json format, which we
generated ourselves, though a bit more verbose.
2023-04-14 16:55:29 +00:00
John Colvin
967e3100d2
fix (cli): Fix shared mem dump path
2023-04-14 16:55:29 +00:00
John Colvin
b1d1243eae
refactor: Change lib::domain::Book qty type to float
2023-04-14 16:55:29 +00:00
John Colvin
72edd99cb0
chore: Get rid of old/unused code from Spartan
2023-04-14 16:55:29 +00:00
John Colvin
a512460396
diag: Log when quickbus starts/stops
...
Something is broken wrt port config on sparkd, and possibly spark
(client) as well. This might help track down the bug.
2023-04-14 16:54:17 +00:00
John Colvin
48ff593c2e
chore: Remove unused fns
...
Also stop exporting PlatformLoader type since it isn't used outside of cpp
2023-04-13 13:59:14 +00:00
John Colvin
d8fc99bca4
chore: Remove CMakeDeps that were accidentally added back
2023-04-13 13:59:13 +00:00
Taha Afzal
6a04759fe8
Merge branch 'spark_crypto.websocket-api.ccapi' of bitbucket.org:bluetradesys/spark into spark_crypto.websocket-api.ccapi
2023-04-12 10:28:44 -05:00
Taha Afzal
2cc07b71bd
Added some documentation to order_flow.txt
2023-04-12 14:21:27 +00:00
Taha Afzal
40bf117f6c
Execution config fixed
2023-04-12 02:34:37 +00:00
Taha Afzal
20209ef429
Merge branch 'spark_crypto.websocket-api.ccapi' of bitbucket.org:bluetradesys/spark into spark_crypto.websocket-api.ccapi
2023-04-11 16:38:47 +00:00
Taha Afzal
c30a7a29fd
Merging sim_execution
2023-04-11 15:34:20 +00:00
Taha Afzal
c6ae2ea038
temp changes to make ws work
2023-04-11 14:16:40 +00:00
Taha Afzal
f95715beec
Merge branch 'spark_crypto.websocket-api.ccapi' of bitbucket.org:bluetradesys/spark into spark_crypto.websocket-api.ccapi
2023-04-10 15:57:38 +00:00
Taha Afzal
0e85f4b9d5
Merge branch for 'spark_crypto.websocket-api.linux' into spark_crypto.websocket-api.ccapi
2023-04-10 15:55:46 +00: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
arhamGIT
c0bb26e56f
Merge branch 'spark_crypto.websocket-api.linux' of bitbucket.org:bluetradesys/spark into spark_crypto.websocket-api.linux
2023-04-06 08:36:12 -04:00
arhamGIT
1e3e57b990
misc color changes
2023-04-06 08:35:46 -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
arhamGIT
0b50d5b5f0
dark theme in create synthetic
2023-04-05 13:52:45 -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
Taha Afzal
eaa6493ce1
Deribit production markets can work with SimExecution
2023-02-27 20:54:43 -05:00
Taha Afzal
9fd0df2a13
SimExecution can be turned on from config now
2023-02-27 15:44:58 -05:00
arhamGIT
fdbc64dfc5
basic order(lim/mark/ib) entry/deletion working
2023-02-27 13:45:45 -05:00
Taha Afzal
d272612c6c
Removed SimExecutionGateway's dependency on MDClient
2023-02-26 23:04:08 -05:00
Taha Afzal
77408c8c5e
Fixed Self matching
2023-02-26 22:29:10 -05:00
Taha Afzal
09958eb333
SimExecutionGateway can not reflect the trades permenantly in the books
2023-02-24 11:06:26 -05:00
Taha Afzal
fdb7bbdac2
SimExecutionGateway can now deal with books with 0 qty levels
2023-02-23 15:51:36 -05:00
Taha Afzal
a7f24e84e4
Fills are now generated for SimExecutionGateway
2023-02-23 14:21:07 -05:00
Taha Afzal
7e5c71f337
SimExecutionGateway almost working
2023-02-23 13:43:09 -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
Taha Afzal
bed6feae3f
Simplified SimExecutionGateway by combining order actions and matching into one
2023-02-19 00:49:30 -05:00
Taha Afzal
d508d34a3a
Completed books/order matching tests for SimExecutionGateway
2023-02-14 23:17:49 -05:00
Taha Afzal
5904bab03e
Fixing bug with order crossing market in SimExecutionGateway
2023-02-14 16:21:57 -05:00
Taha Afzal
fc9519cde3
Tests completed for working orders in the book (for SimExecution)
2023-02-14 10:06:53 -05:00
Taha Afzal
2dc823a6ac
Added all the stateless book/order matching functions, and a few test cases
2023-02-13 20:09:47 -05:00
arhamGIT
390d901463
hooked subscriptions up
2023-02-13 11:50:27 -05:00
Taha Afzal
ae9366f44a
Adding comments and cleaning SimExecutionGateway
2023-02-12 21:27:54 -05:00
Taha Afzal
db344656e5
Adding matching logic to SimExecutionGateway
2023-02-09 22:45:58 -05:00
Taha Afzal
ac31deed5b
Fixed Jetfix conf, and added some logs to SimExecutionGateway
2023-02-08 14:08:38 -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
Taha Afzal
60cde0712f
Streamlining MarketDataGateway further - all sources are started independently of each other now, with their own GeneralMarketDataListener
2023-02-07 11:59:11 -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
Taha Afzal
c20f017069
Simplified MarketDataGateway to deal with multiple market data producers as start-and-forget
2023-02-06 21:27:41 -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
Taha Afzal
5122038d21
Fixing windows side build
2023-02-06 15:21:51 -05:00
Taha Afzal
3039df56a0
Hooking up SimExecutionGateway to GeneralMarketDataListener
2023-02-06 14:04:57 -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
Taha Afzal
4dc675eb9c
Getting rid of Jetfix's platform, using Security.proto's exchange
2023-02-05 20:24:29 -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
Taha Afzal
cc8c181728
Establishign the connection bw listener and sim execution
2023-01-27 17:13:06 -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
dde8524ecb
Renaming some general classes and moving them out of cc
2023-01-26 23:22:36 -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
Taha Afzal
d641eba252
Removing some unused headers from includes
2023-01-22 18:38:31 -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
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
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
51c89fb8cc
Merge branch 'spark_crypto.prod' into spark_crypto.cme
2022-12-21 20:38:42 -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