diff --git a/roboquant-avro/src/test/kotlin/org/roboquant/samples/AvroSamples.kt b/roboquant-avro/src/test/kotlin/org/roboquant/samples/AvroSamples.kt index 4d897ed7..c6becf11 100644 --- a/roboquant-avro/src/test/kotlin/org/roboquant/samples/AvroSamples.kt +++ b/roboquant-avro/src/test/kotlin/org/roboquant/samples/AvroSamples.kt @@ -128,7 +128,6 @@ internal class AvroSamples { println(avgEquity) } - @Test @Ignore internal fun testingStrategies() { @@ -153,7 +152,6 @@ internal class AvroSamples { } - @Test @Ignore internal fun signalsOnly() { @@ -186,7 +184,6 @@ internal class AvroSamples { roboquant.run(feed, Timeframe.past(5.years)) } - @Test @Ignore internal fun simple() { @@ -197,7 +194,6 @@ internal class AvroSamples { println(roboquant.broker.account.fullSummary()) } - @Test @Ignore internal fun aggregator() { @@ -208,7 +204,6 @@ internal class AvroSamples { } } - @Test @Ignore internal fun forexRun() { @@ -230,7 +225,6 @@ internal class AvroSamples { } } - @Test @Ignore internal fun profileTest() { @@ -239,7 +233,6 @@ internal class AvroSamples { rq.run(feed) } - @Test @Ignore internal fun performanceTest() { @@ -259,7 +252,6 @@ internal class AvroSamples { } } - @Test @Ignore internal fun cfd() { @@ -303,7 +295,6 @@ internal class AvroSamples { println(account.trades.summary()) } - @Test @Ignore internal fun feedRecorder() { @@ -325,7 +316,6 @@ internal class AvroSamples { println(t2) } - @Test @Ignore internal fun generateDemoFeed() { diff --git a/roboquant-binance/src/test/kotlin/org/roboquant/samples/BinanceSamples.kt b/roboquant-binance/src/test/kotlin/org/roboquant/samples/BinanceSamples.kt index eb09dd99..ae50dc1a 100644 --- a/roboquant-binance/src/test/kotlin/org/roboquant/samples/BinanceSamples.kt +++ b/roboquant-binance/src/test/kotlin/org/roboquant/samples/BinanceSamples.kt @@ -119,8 +119,8 @@ internal class BinanceSamples { val result = json["result"].asJsonArray for (row in result) { val arr = row.asJsonArray - val time = Instant.ofEpochMilli(arr[6].asLong) // use the close time - val pb = PriceBar( + Instant.ofEpochMilli(arr[6].asLong) // use the close time + PriceBar( asset, arr[1].asDouble, arr[2].asDouble, diff --git a/roboquant-charts/src/main/kotlin/org/roboquant/charts/TimeSeriesChart.kt b/roboquant-charts/src/main/kotlin/org/roboquant/charts/TimeSeriesChart.kt index deea8a32..1e989bc3 100644 --- a/roboquant-charts/src/main/kotlin/org/roboquant/charts/TimeSeriesChart.kt +++ b/roboquant-charts/src/main/kotlin/org/roboquant/charts/TimeSeriesChart.kt @@ -56,7 +56,7 @@ class TimeSeriesChart( /** * Create a TimeSeriesChart chart for a number of [metrics] that can be found in the [logger]. - * Each metric will be indexed to 1.0 for its first value. + * Each metric will be normalized so they fit a similar scale. * If there is more than one run recorded by the logger, you need to specify the [run] you want to use. */ fun fromMetrics( @@ -68,7 +68,7 @@ class TimeSeriesChart( require(metrics.isNotEmpty()) { "Provide at least 1 metric"} require(run != null || logger.getRuns().size == 1) { "More than 1 run found, please specify a run"} val r = run ?: logger.getRuns().first() - val data = metrics.associateWith { it }.mapValues { logger.getMetric(it.key, r).index() } + val data = metrics.associateWith { it }.mapValues { logger.getMetric(it.key, r).normalize() } return TimeSeriesChart(data, fractionDigits = fractionDigits) } diff --git a/roboquant/src/main/kotlin/org/roboquant/common/TimeSeries.kt b/roboquant/src/main/kotlin/org/roboquant/common/TimeSeries.kt index 909aa298..dbc85552 100644 --- a/roboquant/src/main/kotlin/org/roboquant/common/TimeSeries.kt +++ b/roboquant/src/main/kotlin/org/roboquant/common/TimeSeries.kt @@ -137,6 +137,11 @@ class TimeSeries(val timeline: Timeline, val values: DoubleArray) : Iterable