The screen is JSON, not code
A scan is a serde ScanSpec โ a condition tree of indicator, price and constant expressions combined with all/any/not. Because it is data, the exact same screen crosses the C ABI and WASM unchanged.
Parallel multi-symbol screening over 514 streaming indicators. A screen is a JSON condition tree โ data, not code โ deterministic and byte-identical across ten languages.
A scan is a ScanSpec: a universe, a condition tree, and an optional rank and limit. Expressions are constants, price fields or indicators; conditions compare, cross or aggregate them.
{
"universe": ["AAA", "BBB", "CCC"],
"condition": {
"type": "all",
"conditions": [
{ "type": "cmp",
"left": { "kind": "indicator", "name": "Rsi", "params": [14] },
"op": "lt",
"right": { "kind": "const", "value": 30.0 } },
{ "type": "cmp",
"left": { "kind": "indicator", "name": "Ema", "params": [7] },
"op": "crosses_above",
"right": { "kind": "indicator", "name": "Ema", "params": [19] } }
]
},
"rank": { "by": { "kind": "indicator", "name": "Roc", "params": [10] }, "desc": true },
"limit": 25
}The same screen from every language โ native Rust, Python, Node.js and WASM, plus a C ABI for C, C++, C#, Go, Java and R.
pip install wickra-screenerConstruct a Screener from the JSON spec, then drive it with command(json) -> json. Every binding returns the same bytes.
import json
from wickra_screener import Screener
spec = json.dumps({
"universe": ["AAA", "BBB"],
"condition": {
"type": "cmp",
"left": {"kind": "indicator", "name": "Rsi", "params": [14]},
"op": "lt",
"right": {"kind": "const", "value": 30.0},
},
})
screener = Screener(spec)
response = screener.command(json.dumps({"cmd": "scan", "data": data}))
report = json.loads(response)
for match in report["matches"]:
print("matched:", match["symbol"])Wickra Screener is part of the Wickra ecosystem. Every condition draws on the 514 O(1) streaming indicators of wickra-core, so a screen sees exactly the same numbers a backtest or a live chart would.
Wickra Screener is a software library, not a trading system, and comes with no warranty โ use at your own risk.