4f708d410d
* test: golden-pin the four de-duplicated indicators across all C-ABI bindings Extend gen_golden to emit reference fixtures for AdOscillator (ADOSC), IntradayIntensity, AwesomeOscillatorHistogram and AverageDrawdown, and replay them through the Go / C# / Java / R golden harnesses so their corrected definitions stay bit-identical to the Rust core in every binding. Go suite verified locally (gcc 13 + cgo): all 9 golden tests pass; C#/Java/R use the same fixtures and harness pattern (CI-verified). First step of extending the golden coverage beyond the seven archetype representatives. * test: golden-pin the scalar-output tranche (308 indicators) against Rust Extend gen_golden with a generated emit_scalar that writes reference fixtures for every single-f64-output indicator (scalar / candle / pairwise input) using valid constructor params, and add a manifest-driven generic Python golden replay that reconstructs each by its native name and checks it bit-for-bit against the Rust output. 308 indicators now value-tied to the Rust core in Python (pytest: 308/308). Takes golden coverage from the 7 archetype representatives to 308+ of the catalogue. 22 scalar indicators with non-default constructor constraints are skipped by gen_golden for now (logged), as are non-f64-output ones; multi-output, exotic inputs and the per-indicator arg arities of the C-ABI/Node replays follow. Generated + verified locally with the full toolchain. * test: golden-pin the multi-output tranche (70 indicators) in Python Add a generated emit_multi to gen_golden (per-indicator Output-field access, one CSV column per field) and a manifest-driven generic Python replay that checks every field of each multi-output indicator against the Rust reference. 70 multi-output indicators now value-tied to Rust in Python; combined with the scalar tranche, 378 indicators are golden-pinned. 8 multi with non-default param constraints and 5 with non-f64 Output fields (Option/Vec/i64) are deferred. pytest green. * test(golden): add 30 constraint-tuned indicators to scalar/multi golden suite Emit golden fixtures for 22 scalar-output and 8 multi-output indicators whose constructors need non-default parameters (Alma, Jma, Psar, T3, Mama, DoubleBollinger, ZigZag, ...). All 408 fixtures replay bit-for-bit through the Python binding. * test(golden): cover 36 missed scalar/multi indicators Add 26 single-output (LinearRegression family, HT cycle, Candle volatility estimators, DrawdownDuration) and 10 multi-output (BollingerBands, MACD/MACDEXT/MACDFIX, Camarilla, VWAP bands, ...) indicators to the golden suite. 444 fixtures replay bit-for-bit through the Python binding. * test(golden): cover 50 exotic-input indicators Add deterministic synthetic feeders for the DerivativesTick (17), CrossSection (15), Trade (8), TradeQuote (3) and OrderBook (7) families, derived from the shared OHLCV input series in both gen_golden and a new Python replay harness (test_golden_exotic). All 494 fixtures replay bit-for-bit through the Python binding. * test(golden): complete 514-indicator golden coverage Add the final tranches: 3 mixed multi-output indicators (Ichimoku, WilliamsFractals, LeadLagCrossCorrelation), 6 histogram profiles (time/volume seasonality + TPO/volume price profiles), 10 alt-chart bar builders and the footprint. Every one of the 514 distinct indicators now has a Rust-generated g_<Canonical>.csv fixture and a generic Python replay (scalar/multi/exotic/profile/bars), all passing bit-for-bit. * test(golden): add generic Node replay for all 514 indicators A manifest-driven node:test harness reconstructs every indicator by its native class, feeds the same synthetic stream derived from the shared golden input, and checks output bit-for-bit against the Rust reference fixtures (scalar/multi/exotic/profile/bars). node_manifest.json is generated from index.d.ts plus the Python-side manifests. 514/514 pass. * test(golden): add generated Go replay for all 514 indicators golden_all_test.go (generated by gen_golden_test.py) reconstructs every Go indicator, feeds the shared synthetic stream and checks output bit-for-bit against the Rust reference fixtures. A reflection-based comparator flattens multi-output structs, profiles and bar slices so one path covers all archetypes. This is the first C-ABI binding verified across the full catalogue. 514/514 pass. * test(golden): add generated C# replay for all 514 indicators GoldenAllTests.g.cs (generated by gen_golden_test.py) reconstructs every C# indicator, feeds the shared synthetic stream and checks output bit-for-bit against the Rust reference fixtures via a reflection-based flatten covering scalar/multi/profile/bar archetypes. 514/514 pass. Also add the '#nullable enable' directive the compiler requires to the generated Indicators.g.cs, clearing the four CS8669 warnings on the nullable double[] profile return types. * fix(java): marshal C ABI bool params correctly; add 514 golden replay The Java FFM binding marshalled the cross-section state flags (newHigh, newLow, aboveMa, onBuySignal) as JAVA_DOUBLE arrays, but the C ABI takes them as const bool* (one byte each), so the native side read the low byte of each 8-byte double and saw every flag as false. Add WickraNative. boolSegment and use it across the 15 cross-section indicators. Also pass the MacdExt MaType arguments as byte to match the uint8_t downcall descriptor (was int, throwing WrongMethodTypeException). Add GoldenAllTest.java (generated by gen_golden_test.py): a reflection runner replaying all 514 indicators against the Rust reference fixtures. The bugs above were found by this test; 514/514 now pass. * fix(r): marshal C ABI bool flags correctly; add 514 golden replay The R wrapper passed the cross-section state flags as (bool *)REAL(x), reinterpreting the 8-byte doubles as 1-byte bools so the native side read every flag as false. Add wk_bool_vec to convert each flag vector into a real C bool buffer and use it for all 15 cross-section update wrappers. Add test-golden-all.R + generated golden_specs.R: a reflective runner replaying all 514 indicators against the Rust reference fixtures. The bug above was found by this test; verified 514/514 pass locally. * test(golden): add WASM replay for all 514 indicators A manifest-driven node:test harness loads the nodejs-target wasm-pack build, reconstructs every indicator by its JS class, feeds the shared synthetic stream and checks output bit-for-bit against the Rust reference fixtures. wasm_manifest.json is generated from the wasm .d.ts plus the shared manifests; a recursive flattener covers scalar, multi (Reflect objects), profile and bar shapes. 514/514 pass locally (wasm-pack build --target nodejs, then node --test). * test(golden): add C and C++ replay for all 514 indicators golden_test.c (generated by gen_golden_test.py) drives every indicator through the C ABI (wickra.h) and checks output bit-for-bit against the Rust reference fixtures. golden_test.cpp #includes the same source so the identical runner is compiled and run under both gcc (C) and g++ (C++) via the CMake targets golden_test / golden_test_cpp — proving the extern "C" header is consumable from each language. Both 514/514 (verified via ctest). * test(golden): gofmt the generated Go golden replay * test(golden): make the Node fixture reader CRLF-safe and pin fixtures to LF
7.4 KiB
7.4 KiB
| 1 | long | short | net | total | imbalance |
|---|---|---|---|---|---|
| 2 | 1 | 2 | -1 | 3 | -0.3333333333333333 |
| 3 | 1.3221088436188495 | 2.1996914055092276 | -0.8775825618903781 | 3.521800249128077 | -0.24918578562417015 |
| 4 | 1.49272486499423 | 2.0330271708623684 | -0.5403023058681384 | 3.5257520358565984 | -0.1532445561608729 |
| 5 | 1.4316046833244371 | 1.5023418849921342 | -0.07073720166769704 | 2.9339465683165713 | -0.024109914758360565 |
| 6 | 1.5836409116250962 | 1.167494075077954 | 0.41614683654714213 | 2.7511349867030503 | 0.15126369246092533 |
| 7 | 1.976535229391743 | 1.175391613844809 | 0.801143615546934 | 3.151926843236552 | 0.25417582811797773 |
| 8 | 2.425780382807247 | 1.4357878862067963 | 0.9899924966004505 | 3.861568269014043 | 0.2563705799388135 |
| 9 | 2.4276829936029714 | 1.4912263063121713 | 0.9364566872908 | 3.9189092999151427 | 0.238958499833379 |
| 10 | 1.9692769397997836 | 1.3156333189361646 | 0.6536436208636189 | 3.284910258735948 | 0.19898370712725183 |
| 11 | 1.2192027496729594 | 1.0084069502421755 | 0.21079579943078386 | 2.227609699915135 | 0.09462869525070507 |
| 12 | 1.328493299359394 | 1.6121554848226225 | -0.2836621854632284 | 2.9406487841820166 | -0.09646244971146158 |
| 13 | 1.4940841169384953 | 2.2027538912297615 | -0.7086697742912662 | 3.696838008168257 | -0.191696193537678 |
| 14 | 1.427299454044146 | 2.387469740694513 | -0.9601702866503672 | 3.814769194738659 | -0.251698133657637 |
| 15 | 1.1595491811746825 | 2.1361368069027122 | -0.9765876257280297 | 3.2956859880773948 | -0.29632302023341184 |
| 16 | 1.1832395646259641 | 1.9371418189692662 | -0.753902254343302 | 3.1203813835952303 | -0.24160580444005647 |
| 17 | 1.4398478799858339 | 1.786483197820857 | -0.3466353178350232 | 3.226331077806691 | -0.1074394752043461 |
| 18 | 1.6350888983842822 | 1.4895888645756656 | 0.14550003380861654 | 3.124677762959948 | 0.04656481238909804 |
| 19 | 1.9110804588033403 | 1.3090685561185182 | 0.6020119026848221 | 3.2201490149218586 | 0.18695156649433217 |
| 20 | 1.9279417854952499 | 1.0168115236105706 | 0.9111302618846793 | 2.9447533091058204 | 0.30940801019469627 |
| 21 | 2.3319570372946856 | 1.334784881098301 | 0.9971721561963847 | 3.6667419183929866 | 0.2719504613058267 |
| 22 | 2.3343752069238803 | 1.4953036778474313 | 0.839071529076449 | 3.8296788847713117 | 0.21909709777835693 |
| 23 | 1.8984103435674626 | 1.4228734155714733 | 0.47553692799598934 | 3.321283759138936 | 0.14317865093203458 |
| 24 | 1.1515591783728496 | 1.155984876360904 | -0.004425697988054367 | 2.3075440547337536 | -0.0019179256746909683 |
| 25 | 1.191035708591997 | 1.6743404673450044 | -0.4833047587530075 | 2.8653761759370013 | -0.1686706139360438 |
| 26 | 1.4437835167907451 | 2.2876374755232405 | -0.8438539587324954 | 3.7314209923139856 | -0.2261481511924474 |
| 27 | 1.4878130027340717 | 2.485611281912668 | -0.9977982791785962 | 3.9734242846467396 | -0.2511179797823444 |
| 28 | 1.30241641120314 | 2.20986319265333 | -0.9074467814501901 | 3.51227960385647 | -0.2583640495061432 |
| 29 | 1.0252113439034076 | 1.6201320072133 | -0.5949206633098925 | 2.6453433511167077 | -0.22489355230909897 |
| 30 | 1.3409818100340658 | 1.4777190282418928 | -0.13673721820782703 | 2.8187008382759586 | -0.04851072393034144 |
| 31 | 1.8513074697066543 | 1.4963832029179542 | 0.35492426678870004 | 3.3476906726246085 | 0.10602062779905451 |
| 32 | 2.178015732126852 | 1.418327819268029 | 0.7596879128588228 | 3.596343551394881 | 0.21123897147261406 |
| 33 | 2.1219797884827614 | 1.1435263256638706 | 0.9784534628188908 | 3.265506114146632 | 0.29963302122758023 |
| 34 | 2.1564373218840984 | 1.1987778415607124 | 0.957659480323386 | 3.355215163444811 | 0.28542416318247493 |
| 35 | 2.1499907414125516 | 1.4475936839098438 | 0.7023970575027079 | 3.5975844253223954 | 0.19524129928924822 |
| 36 | 1.7610625609235342 | 1.4858992228719359 | 0.2751633380515983 | 3.24696178379547 | 0.08474486500729668 |
| 37 | 1.2956787649325605 | 1.5151187281440173 | -0.21943996321145676 | 2.810797493076578 | -0.07807035681224662 |
| 38 | 1.0336040362627443 | 1.6939207445068263 | -0.660316708244082 | 2.7275247807695706 | -0.242093752144673 |
| 39 | 1.3470823341261138 | 2.28660722787437 | -0.9395248937482563 | 3.633689562000484 | -0.2585594827839427 |
| 40 | 1.4973223869389187 | 2.4860270051255924 | -0.9887046181866737 | 3.983349392064511 | -0.24820936374708588 |
| 41 | 1.413663950297689 | 2.2094789201116356 | -0.7958149698139465 | 3.6231428704093247 | -0.21964769214967206 |
| 42 | 1.1354528941539286 | 1.543534955967317 | -0.40808206181338846 | 2.6789878501212456 | -0.15232695504569738 |
| 43 | 1.2860273418988157 | 1.2064637746202749 | 0.07956356727854086 | 2.4924911165190906 | 0.031921304253094404 |
| 44 | 1.9990065643293633 | 1.4512773041050906 | 0.5477292602242727 | 3.450283868434454 | 0.15874904242960208 |
| 45 | 2.3656397936082243 | 1.4838480660668978 | 0.8817917275413265 | 3.849487859675122 | 0.229067283671274 |
| 46 | 2.2888183486174967 | 1.2888575222228695 | 0.9999608263946271 | 3.577675870840366 | 0.2795001175329348 |
| 47 | 1.915291867939402 | 1.0419872278458797 | 0.8733046400935223 | 2.9572790957852817 | 0.2953068046022972 |
| 48 | 1.8859177489235606 | 1.3530847285901757 | 0.5328330203333849 | 3.2390024775137363 | 0.16450528334957878 |
| 49 | 1.5600262583718347 | 1.4981209643774207 | 0.061905293994414023 | 3.0581472227492554 | 0.020242744866534435 |
| 50 | 1.4088831272632092 | 1.8330621346001976 | -0.42417900733698843 | 3.241945261863407 | -0.13084089121639847 |
| 51 | 1.1273411664220134 | 1.9337506603342547 | -0.8064094939122413 | 3.061091826756268 | -0.2634385178724825 |
| 52 | 1.2140913347480762 | 2.20529414661155 | -0.9912028118634737 | 3.419385481359626 | -0.28987746987489366 |
| 53 | 1.45483333591676 | 2.388148447980683 | -0.9333151120639229 | 3.842981783897443 | -0.2428622264031086 |
| 54 | 1.4816601122368667 | 2.1285794345655233 | -0.6469193223286567 | 3.61023954680239 | -0.17919013792357263 |
| 55 | 1.2819546116251388 | 1.4840897320123219 | -0.20213512038718306 | 2.7660443436374607 | -0.07307732461055456 |
| 56 | 1.3424973572300871 | 1.0503585484962485 | 0.2921388087338386 | 2.3928559057263357 | 0.12208792348704414 |
| 57 | 2.073874265165486 | 1.3589872963858198 | 0.7148869687796662 | 3.432861561551306 | 0.20824812068932066 |
| 58 | 2.461384575767468 | 1.4987787094539016 | 0.9626058663135666 | 3.9601632852213697 | 0.24307226671835522 |
| 59 | 2.37863197755415 | 1.4039867018334888 | 0.9746452757206612 | 3.782618679387639 | 0.2576641629334006 |
| 60 | 1.867250965563457 | 1.1191934358744504 | 0.7480575296890066 | 2.9864444014379075 | 0.25048433157799066 |
| 61 | 1.5599775763962072 | 1.2216583654251565 | 0.33831921097105067 | 2.7816359418213636 | 0.1216259848690068 |
| 62 | 1.458260773957818 | 1.6125122238453997 | -0.15425144988758177 | 3.0707729978032177 | -0.050232123962901463 |
| 63 | 1.4793359799759997 | 2.0883919560823614 | -0.6090559761063616 | 3.567727936058361 | -0.17071256189429312 |
| 64 | 1.2749719847801657 | 2.1897143425847077 | -0.9147423578045419 | 3.4646863273648734 | -0.26401880902744373 |
| 65 | 1.0587156314135484 | 2.055183538970681 | -0.9964679075571325 | 3.1138991703842294 | -0.32000647838387675 |
| 66 | 1.3647883686964235 | 2.1990117292029367 | -0.8342233605065132 | 3.5638000978993603 | -0.2340825348195698 |
| 67 | 1.4992954362058981 | 1.967027276452967 | -0.46773184024706893 | 3.466322712658865 | -0.13493603424139705 |
| 68 | 1.4122528055843588 | 1.3989760583613133 | 0.013276747223045504 | 2.811228863945672 | 0.004722755729112378 |
| 69 | 1.602046730026757 | 1.11101200609653 | 0.49103472393022685 | 2.713058736123287 | 0.1809893451226458 |
| 70 | 2.0777330020304987 | 1.2291627272458925 | 0.8485702747846062 | 3.306895729276391 | 0.2566062991560634 |
| 71 | 2.4599048766469025 | 1.4615586491981674 | 0.9983462274487351 | 3.92146352584507 | 0.25458511111195226 |
| 72 | 2.380568531471255 | 1.4768763263797382 | 0.9036922050915166 | 3.857444857850993 | 0.23427222899952724 |
| 73 | 1.8556944294271318 | 1.2679116158667512 | 0.5877828135603806 | 3.123606045293883 | 0.18817443846542414 |
| 74 | 1.195019803450208 | 1.0670561138228152 | 0.1279636896273928 | 2.262075917273023 | 0.05656914016469241 |
| 75 | 1.3704863054008456 | 1.7336717138169035 | -0.36318540841605795 | 3.104158019217749 | -0.11699965213355376 |
| 76 | 1.4996709985406653 | 2.2650850504860216 | -0.7654140519453563 | 3.764756049026687 | -0.20331039833065437 |
| 77 | 1.3938526134920721 | 2.3740952543021763 | -0.9802426408101041 | 3.7679478677942484 | -0.2601529201580851 |
| 78 | 1.1027991902012957 | 2.057872834248599 | -0.9550736440473031 | 3.1606720244498945 | -0.3021742327768193 |
| 79 | 1.2366022985227687 | 1.9326716083866842 | -0.6960693098639155 | 3.169273906909453 | -0.21963053062292553 |
| 80 | 1.4647260292387045 | 1.7313689615986334 | -0.26664293235992886 | 3.196094990837338 | -0.08342772449640856 |
| 81 | 1.7023487813422662 | 1.4742818468591565 | 0.22806693448310966 | 3.1766306282014227 | 0.07179523248890883 |