Files
fidc-backtest-engine/data/demo/ai_generated_000001_open_cap_band.strategy_spec.json
2026-04-22 20:33:47 -07:00

34 lines
1.4 KiB
JSON

{
"strategyId": "ai_generated_000001_open_cap_band",
"version": "2",
"parser": "omniquant-engine-script-v2",
"market": "CN_A",
"signalSymbol": "000001.SH",
"benchmark": {
"instrumentId": "000852.SH",
"fallbackInstrumentId": "000852.SH"
},
"engineConfig": {
"market": "CN_A",
"signalSymbol": "000001.SH",
"benchmarkSymbol": "000852.SH",
"refreshRate": 15,
"rankLimit": 40
},
"runtimeExpressions": {
"prelude": "let refresh_rate = 15;\nlet stocknum = 40;\nlet xs = 0.008;\nlet base_index_level = 2000;\nlet lower_offset = 3;\nlet upper_offset = 28;\n\nfn cap_floor(current_price, base_index_level, xs, lower_offset) {\nround((current_price - base_index_level) * xs + lower_offset)\n}\n\nfn cap_ceiling(current_price, base_index_level, xs, upper_offset) {\nround((current_price - base_index_level) * xs + upper_offset)\n}",
"selection": {
"limitExpr": "stocknum",
"marketCapField": "market_cap",
"marketCapLowerExpr": "cap_floor(signal_open, base_index_level, xs, lower_offset)",
"marketCapUpperExpr": "cap_ceiling(signal_open, base_index_level, xs, upper_offset)",
"stockFilterExpr": "stock_ma5 > stock_ma10 && stock_ma10 > stock_ma30 && rolling_mean(\"volume\", 5) < rolling_mean(\"volume\", 60) && !ends_with(symbol, \".BJ\") && !at_upper_limit && !at_lower_limit"
},
"ordering": {
"rankBy": "market_cap",
"rankExpr": "",
"rankOrder": "asc"
}
}
}