Products
Cegaware provides cross-platform devices for practicionners to run customized analysis on their structured product positions.
cw-gui
Interact with our advanced GUI desktop application to launch your requests, import and export your results and have a clear understanding of your positions.
cw-py
Automate your workflows with our python package for a more flexible and customisable solution. Calculations are left to the C binaries for more performance.
cw-net
Launch your own instance of our web service on your most own hardware and make it available for your teams to better share of your ressources.
cw-exe
Execute your API requests locally with our embedded executable.
cw-api
Connect your systems to our low level C dynamic library well documented by our API documentation page and have access to a library of functions callable from your code base.
cw-dsl
Cegaware uses the power of DSL for internal contract description: A simple and intuitive domain-specific language understandable by human and machine that provides full flexibility to integrate any customised payoffs. This efficient and generic aproach allows a faster delivery of new structures to book your derivatives. Our whole codebase is built upon this advanced algebraic contract description framework and makes our pricing engines generic for any kind of contracts.
Features
Book your contract, plug your market data providers and have access to a large ecosystem of advanced functionalities.
Contract
Cegaware offers multiple ways to book your contract:
Template: Choose among a large selection of templates that covers the best known structures commonly used in the industry. If you cannot find one that suits your need, we can make it available in just a couple of hours thanks to our generic contract description framework.
Language: cw-dsl is a static C++ library that implements our simple and intuitive algebra to design any contracts and export it to a file that contains the encoded contract information.
Console: A script that follows the grammar of our domain-specific language that can be directly inputted to your contract configuration.
Data
Once you have subscribed to our service, you will be received a username and a password that will let you input your data providers credentials into Cegaware. Cegaware will then be able to request your providers for the market data needed to perform the action you asked.
We take in charge the entire development of the API specific to your providers that will allow Cegaware to communicate with any of your third-party data feed.
If you have not subscribed to our service, you can always leave your data configuration empty to access our demo market data base and still use our whole set of features for free.
Model
Cegaware proposes a large selection of financial models to evaluate your contracts.
A close assistance can be provided based on expert considerations to help you to select the model that offers the best performance in terms of hedging costs, P&L explanation and computation efficiency regarding the contract you wish to analyse.
We are working consistently to improve the performance of our existing models in terms of speed, and accuracy and are keeping aware of new methodologies able to better handle market effects.
In particular Cegaware can adapt your own models if any and integrate it into the solution for your needs.
Pricer
"Three pricers to rule them all": Combined with variance reduction methods, barrier smoothing techniques and multihreading, our pricers produce accurate and reliable price and sensitivities:
A generic Monte Carlo engine that handles any complex contracts from vanillas to the most exotics.
For contracts with weak path dependency and low dimension, a pricer based on Finite Difference Method can be prefered to improve the accuracy.
Eventually, a Closed Form Method is proposed if the contract suits it well.
Services
Cegaware provides professional services to financial startups, brokers, asset managers, investment banks and all organizations that trades structured products
Pro
We are happy to discuss with you about what you need and how Cegaware can help you with your business.
A first meeting can be organized in order to understand your expectations and answer any further inquiries.
Upon agreement by both parties and after subscription, we may need to develop an API specific to your providers that will allow Cegaware to communicate with any of your third-party data feeds.
Once everything is set up correctly, you are received a username and password that let you input your external providers credentials into Cegaware. You are now ready to play.
But we do not leave you on your own ! We are by your side for a daily and immediate support in case of bugs, new features, any tutorials you might need and any bigger project you want us to carry on to enhance your experience with our technology.
-
Does Cegaware provide market data ?No, Cegaware does not provide market data. You first need to subscribe to any external market data providers and then we will be able to help you to plug your providers to your own package of Cegaware for a complete experience. Upon subscrition to our service, we take in charge without additional costs the developement of specific API to execute market data requests to your providers.
-
Does Cegaware trade for me ?No, Cegaware is not a trading platform but a software that produces advanced quantitative analytics to help you to understand your positions. At the end of the day, you are the one who make the trading decisions and are responsible for executing them.
-
Can Cegaware handle my payoff ?Yes. Let me explain further: 1 - The software defines any financial contract by a simple, intuitive and generic language that aims to cover all kind of contracts. 2 - The user can use this language to design and book any contracts. 3 - The user can also use pre-defined contract template (autocall, vanilla, swap, ...). 4 - If you can't find a template that suits your needs, we can add it very quickly thanks to the generic contract description language. Our whole code base is built around this efficient technology.
-
Does Cegaware store my market data or my external providers API keys ?No, we have not set any algorithms for this and we will never do. This is not the aim of the service we provide. Your credentials will only be used to connect to your providers and request the data. The data that is fetched by our API at runtime will only be used to perform your request and nothing else. At the end of each request, the connections to your providers are released.
Workstyle
Explore the backstage of our CI/CD workflow.
Cegaware deploys packages for multiple configurations.
Configurations | Win32-MinGW | Win32-MSVC | Linux | MacOS |
---|---|---|---|---|
OS | Windows 10 | Windows 10 | Ubuntu 22.04 | Sonoma 14.4 |
Provider | Private | Private | Hostinger | UltaHost |
RAM | 8.00 GB | 8.00 GB | 8.00 GB | 2.00 GB |
CMake | CMake-3.28.3 | CMake-3.28.3 | CMake-3.22.1 | CMake-3.28.3 |
CMake Generator | MinGW Makefiles | Visual Studio 17 2022 | Unix Makefiles | Unix Makefiles |
Compiler | GCC-13.2.0 | MSVC-19.30.30709.0 | GCC-11.4.0 | CLANG-1500.3.9.4 |
Build Type | Release & Debug | Release & Debug | Release & Debug | Release & Debug |
Build & Tests Status | Success | Success | Success | Success |
Integration & Delivery
Treatment: Once a bug is reported, a feature is requested or a payoff is needed, we add a new ticket to our backlog tagged with the corresponding flag (bug, feature, payoff, misc).
Developement: A branch is then created from the master branch of our codebase, located on a private GitHub repository which access is restricted to our developpers only. In order to ensure that the code change is not broken by any subsequent modifications, at the end of each dev session, a new non-regression test is submitted to our sanity tests suite together with a contract file that replicates the target behavior. Our build uses doxygen to automatically generate the API documentation available in the release packages.
Integration: Once the task is done, a pull request is submitted which triggers our custom GitHub actions to execute builds and tests on our Windows, Linux and MacOS self-hosted runners. In the end, the branch is merged with master if and only if all builds and tests passed on all tested configurations.
Delivery: Every business day, if at least one merge has not been released yet, a shell script writes a changelog and pushes a tag that follows semantic versioning principles. This push triggers a packaging for each configurations supported. A bug reported (resp. payoff requested) on the day D will have its corresponding fix (resp. template) available for all users on day D+3. For new features, an estimated time of arrival (ETA) is communicated depending on the complexity of the task required and in the meantime some meetings might be organized for you to follow up the progression of the project.