Desktop custom code uses the enforced custom handler project structure.
Select the requested expressions and frames here, then open the full workspace to implement
the handler in the allowed user-code files. Desktop submit builds the project in an
isolated Linux Docker environment so the generated .so
matches the runtime for dlopen.
Default path: submit code from the desktop workspace and build it in Docker with the pinned
Linux toolchain/runtime baseline.
Advanced path: you may also bring your own external project or prebuilt .so
if it matches the target architecture, glibc,
libstdc++, and dependent shared-library versions.
Desktop flow: compile locally in the isolated Docker build environment, inspect the build
logs and generated artifact, then load or use the resulting .so
directly on this machine.
Drag expressions from the left library or click to toggle them here.
Open Full Code Workspace
Use the separate IDE-style workspace for project files, header/source tabs,
generated metadata, compile output, and the shared-library build flow used by
GTS desktop and SaaS.
The workspace saves your project and builds the runtime library under
/home/avikad/dev/shared_gts/GTS/custom_code_projects/<user>/<project>/build/libCustomHandler.so.
The .so is the only supported runtime artifact. Extra uploaded
files are workspace inputs only and do not create a second runtime path.
API Reference — Callback Surface
| API
|
Type
|
Description |
onBarClose(const BarParams& inBar)
|
callback |
Main bar callback.
Use inBar.symbol,
inBar.frame, inBar.openBidPrice,
inBar.closeBidPrice,
inBar.barMaxPrice,
inBar.barMinPrice,
inBar.volume, and the
open/close date strings.
|
onExpressionValue(const std::string& name, float value, const std::string& date)
|
callback |
Receives every
requested expression update by exact key. Cache name and value in your user
class, then act in onBarClose(...).
|
onOpenPosition / onClosePosition
|
callback |
Optional string
callbacks for position lifecycle events passed through the wrapper. |
onObjectDetails / onObjectDoneDetails
|
callback |
Optional object
event strings forwarded by the wrapper if your handler needs them. |
handleTBT / handleChartValue
|
callback |
Optional
tick-by-tick and chart-value callbacks exposed by the wrapper/base
class. |
setOpenBid / setOpenAsk / setCloseBid / setCloseAsk
|
base-class setters |
Raise trade action
flags from your user code. The wrapper reads and clears these flags when
GTS asks for open/close actions.
|
generated/requested_expressions.json
|
generated input |
Builder-selected
expression keys routed into onExpressionValue(...).
|
Implementation rule:
Store incoming values in onExpressionValue(...),
evaluate in onBarClose(...), then raise action
flags through the base-class setters.