262 lines
5.8 KiB
JSON
262 lines
5.8 KiB
JSON
{
|
|
"schema_version": 1,
|
|
"command": "python benchmarks/bench_vs_talib.py",
|
|
"n_warmup": 1,
|
|
"n_runs": 7,
|
|
"sizes": [
|
|
10000,
|
|
100000
|
|
],
|
|
"talib_available": true,
|
|
"runtime": {
|
|
"generated_at_utc": "2026-03-23T20:26:40.738132+00:00",
|
|
"python_version": "3.13.5",
|
|
"platform": "macOS-26.3.1-arm64-arm-64bit-Mach-O",
|
|
"machine": "arm64"
|
|
},
|
|
"git": {
|
|
"commit": "9011250f992119170242cf17a67834c67b91bcdb",
|
|
"dirty": true
|
|
},
|
|
"summary": {
|
|
"total_rows": 24,
|
|
"by_size": [
|
|
{
|
|
"size": 10000,
|
|
"rows": 12,
|
|
"wins": 8,
|
|
"win_rate": 0.6666666666666666,
|
|
"median_speedup": 1.0546,
|
|
"min_speedup": 0.7174,
|
|
"max_speedup": 2.0135
|
|
},
|
|
{
|
|
"size": 100000,
|
|
"rows": 12,
|
|
"wins": 7,
|
|
"win_rate": 0.5833333333333334,
|
|
"median_speedup": 1.0896,
|
|
"min_speedup": 0.4965,
|
|
"max_speedup": 3.6029
|
|
}
|
|
]
|
|
},
|
|
"results": [
|
|
{
|
|
"indicator": "SMA",
|
|
"size": 10000,
|
|
"ferro_ta_ms": 0.0093,
|
|
"talib_ms": 0.0167,
|
|
"speedup": 1.7937,
|
|
"ferro_ta_m_bars_s": 1076.19,
|
|
"talib_m_bars_s": 599.99
|
|
},
|
|
{
|
|
"indicator": "SMA",
|
|
"size": 100000,
|
|
"ferro_ta_ms": 0.0765,
|
|
"talib_ms": 0.1346,
|
|
"speedup": 1.7589,
|
|
"ferro_ta_m_bars_s": 1306.49,
|
|
"talib_m_bars_s": 742.8
|
|
},
|
|
{
|
|
"indicator": "EMA",
|
|
"size": 10000,
|
|
"ferro_ta_ms": 0.02,
|
|
"talib_ms": 0.0214,
|
|
"speedup": 1.0687,
|
|
"ferro_ta_m_bars_s": 500.0,
|
|
"talib_m_bars_s": 467.84
|
|
},
|
|
{
|
|
"indicator": "EMA",
|
|
"size": 100000,
|
|
"ferro_ta_ms": 0.1998,
|
|
"talib_ms": 0.1883,
|
|
"speedup": 0.9425,
|
|
"ferro_ta_m_bars_s": 500.42,
|
|
"talib_m_bars_s": 530.97
|
|
},
|
|
{
|
|
"indicator": "RSI",
|
|
"size": 10000,
|
|
"ferro_ta_ms": 0.0475,
|
|
"talib_ms": 0.048,
|
|
"speedup": 1.0088,
|
|
"ferro_ta_m_bars_s": 210.34,
|
|
"talib_m_bars_s": 208.52
|
|
},
|
|
{
|
|
"indicator": "RSI",
|
|
"size": 100000,
|
|
"ferro_ta_ms": 0.4804,
|
|
"talib_ms": 0.4635,
|
|
"speedup": 0.9647,
|
|
"ferro_ta_m_bars_s": 208.15,
|
|
"talib_m_bars_s": 215.77
|
|
},
|
|
{
|
|
"indicator": "BBANDS",
|
|
"size": 10000,
|
|
"ferro_ta_ms": 0.0215,
|
|
"talib_ms": 0.0433,
|
|
"speedup": 2.0135,
|
|
"ferro_ta_m_bars_s": 465.12,
|
|
"talib_m_bars_s": 230.99
|
|
},
|
|
{
|
|
"indicator": "BBANDS",
|
|
"size": 100000,
|
|
"ferro_ta_ms": 0.1686,
|
|
"talib_ms": 0.4275,
|
|
"speedup": 2.535,
|
|
"ferro_ta_m_bars_s": 593.03,
|
|
"talib_m_bars_s": 233.94
|
|
},
|
|
{
|
|
"indicator": "MACD",
|
|
"size": 10000,
|
|
"ferro_ta_ms": 0.0495,
|
|
"talib_ms": 0.065,
|
|
"speedup": 1.3134,
|
|
"ferro_ta_m_bars_s": 202.19,
|
|
"talib_m_bars_s": 153.95
|
|
},
|
|
{
|
|
"indicator": "MACD",
|
|
"size": 100000,
|
|
"ferro_ta_ms": 0.4459,
|
|
"talib_ms": 0.6334,
|
|
"speedup": 1.4205,
|
|
"ferro_ta_m_bars_s": 224.28,
|
|
"talib_m_bars_s": 157.88
|
|
},
|
|
{
|
|
"indicator": "ATR",
|
|
"size": 10000,
|
|
"ferro_ta_ms": 0.0483,
|
|
"talib_ms": 0.0502,
|
|
"speedup": 1.0405,
|
|
"ferro_ta_m_bars_s": 207.07,
|
|
"talib_m_bars_s": 199.0
|
|
},
|
|
{
|
|
"indicator": "ATR",
|
|
"size": 100000,
|
|
"ferro_ta_ms": 0.4705,
|
|
"talib_ms": 0.4788,
|
|
"speedup": 1.0174,
|
|
"ferro_ta_m_bars_s": 212.52,
|
|
"talib_m_bars_s": 208.88
|
|
},
|
|
{
|
|
"indicator": "STOCH",
|
|
"size": 10000,
|
|
"ferro_ta_ms": 0.0915,
|
|
"talib_ms": 0.066,
|
|
"speedup": 0.721,
|
|
"ferro_ta_m_bars_s": 109.24,
|
|
"talib_m_bars_s": 151.52
|
|
},
|
|
{
|
|
"indicator": "STOCH",
|
|
"size": 100000,
|
|
"ferro_ta_ms": 1.5285,
|
|
"talib_ms": 0.7589,
|
|
"speedup": 0.4965,
|
|
"ferro_ta_m_bars_s": 65.42,
|
|
"talib_m_bars_s": 131.77
|
|
},
|
|
{
|
|
"indicator": "ADX",
|
|
"size": 10000,
|
|
"ferro_ta_ms": 0.0692,
|
|
"talib_ms": 0.0522,
|
|
"speedup": 0.7538,
|
|
"ferro_ta_m_bars_s": 144.49,
|
|
"talib_m_bars_s": 191.7
|
|
},
|
|
{
|
|
"indicator": "ADX",
|
|
"size": 100000,
|
|
"ferro_ta_ms": 0.6209,
|
|
"talib_ms": 0.5731,
|
|
"speedup": 0.923,
|
|
"ferro_ta_m_bars_s": 161.05,
|
|
"talib_m_bars_s": 174.49
|
|
},
|
|
{
|
|
"indicator": "CCI",
|
|
"size": 10000,
|
|
"ferro_ta_ms": 0.0731,
|
|
"talib_ms": 0.0829,
|
|
"speedup": 1.1333,
|
|
"ferro_ta_m_bars_s": 136.75,
|
|
"talib_m_bars_s": 120.66
|
|
},
|
|
{
|
|
"indicator": "CCI",
|
|
"size": 100000,
|
|
"ferro_ta_ms": 0.7028,
|
|
"talib_ms": 0.8164,
|
|
"speedup": 1.1617,
|
|
"ferro_ta_m_bars_s": 142.3,
|
|
"talib_m_bars_s": 122.49
|
|
},
|
|
{
|
|
"indicator": "OBV",
|
|
"size": 10000,
|
|
"ferro_ta_ms": 0.0156,
|
|
"talib_ms": 0.0112,
|
|
"speedup": 0.7174,
|
|
"ferro_ta_m_bars_s": 640.0,
|
|
"talib_m_bars_s": 892.14
|
|
},
|
|
{
|
|
"indicator": "OBV",
|
|
"size": 100000,
|
|
"ferro_ta_ms": 0.2953,
|
|
"talib_ms": 0.2808,
|
|
"speedup": 0.9509,
|
|
"ferro_ta_m_bars_s": 338.6,
|
|
"talib_m_bars_s": 356.08
|
|
},
|
|
{
|
|
"indicator": "MFI",
|
|
"size": 10000,
|
|
"ferro_ta_ms": 0.0239,
|
|
"talib_ms": 0.0203,
|
|
"speedup": 0.8516,
|
|
"ferro_ta_m_bars_s": 418.85,
|
|
"talib_m_bars_s": 491.81
|
|
},
|
|
{
|
|
"indicator": "MFI",
|
|
"size": 100000,
|
|
"ferro_ta_ms": 0.1721,
|
|
"talib_ms": 0.62,
|
|
"speedup": 3.6029,
|
|
"ferro_ta_m_bars_s": 581.11,
|
|
"talib_m_bars_s": 161.29
|
|
},
|
|
{
|
|
"indicator": "WMA",
|
|
"size": 10000,
|
|
"ferro_ta_ms": 0.0105,
|
|
"talib_ms": 0.0203,
|
|
"speedup": 1.9363,
|
|
"ferro_ta_m_bars_s": 956.21,
|
|
"talib_m_bars_s": 493.83
|
|
},
|
|
{
|
|
"indicator": "WMA",
|
|
"size": 100000,
|
|
"ferro_ta_ms": 0.0869,
|
|
"talib_ms": 0.1868,
|
|
"speedup": 2.1506,
|
|
"ferro_ta_m_bars_s": 1151.08,
|
|
"talib_m_bars_s": 535.24
|
|
}
|
|
]
|
|
} |