Quickstart¶
TL;DR
Create a project, replace the scaffold with a bar-subscribing strategy, and run it. You’ll have a working C++23 application printing BTC/USDT one-minute bar closes in under five minutes.
Create the project¶
aurum create signal-watch
cd signal-watch
The scaffold contains CMakeLists.txt, main.cpp, and config.hpp.
Replace main.cpp with:
#include <aurum/sdk.hpp>
#include <aurum/venue/okx.hpp>
using namespace aurum;
class SignalWatch final : public sdk::Application {
public:
SignalWatch() : sdk::Application({.mode = sdk::RuntimeMode::LIVE}) {
bind<Datafeed>(venue::okx::Bar("BTCUSDT", "1m"));
on(TOPIC<"bar://okx/BTCUSDT@1m">,
[](const Tick<schema::BarRow>& tick) {
if (tick.payload.close_timestamp == 0) return;
log::info("BTCUSDT close={}", tick.payload.close.to_string());
});
}
};
AURUM_EXPORT(SignalWatch)
Run it¶
aurum run .
aurum run resolves the installed SDK, compiles the project when necessary,
and starts it in the foreground. Press Ctrl-C to stop.
Tip
If you don’t see bar output immediately, the current one-minute interval may
not have closed yet. Bars fire on every update (open, high, low, close) but
the close price is only confirmed when close_timestamp != 0. Wait up to
60 seconds for the first confirmed bar.
Check the project contract¶
The generated CMakeLists.txt declares a literal name and version through
aurum_project. Forge uses both values as deployment identity:
aurum_project(
NAME signal-watch
VERSION 0.0.1
)
Increment VERSION before pushing a replacement release. Forge rejects an
existing name@version instead of overwriting it.
Note
This is the same aurum_project declaration used in production
deployments. The project contract you create in the quickstart is the same
contract Forge reads when you push to a server. There is no “development
mode” with different rules.
Common first-time errors¶
- ``aurum`` command not found.
The CLI is not on your
PATH. Verify withcommand -v aurum. The default install prefix is~/.local, so add~/.local/binto yourPATHor use the full path.- CMake cannot find the Aurum package.
The SDK is not installed or
CMAKE_PREFIX_PATHdoes not point to the Aurum installation. Useaurum run .from the project directory — it resolves the SDK automatically.- No bar output after 60+ seconds.
Check that your network can reach the OKX WebSocket. Run with
--log debugto see connection diagnostics. If you are behind a proxy, configureAURUM_ENABLE_PROXYandAURUM_HTTP_PROXYinaurum.toml.
Next steps¶
Market Data explains topic keys and payloads in depth.
Simulation and Replay adds a paper account and replay mode.
Deploy a Project packages and pushes a version to Forge.
Platform Architecture explains how these pieces fit together.