Files
wickra/bindings/csharp/Wickra.Tests/GoldenAllTests.g.cs
T
kingchencandGitHub 4f708d410d test: golden-pin the four de-duplicated indicators across all bindings (#305)
* 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
2026-06-15 04:48:51 +02:00

6370 lines
186 KiB
C#

// <auto-generated>
// Generated by gen_golden_test.py. DO NOT EDIT.
//
// Value-parity for every one of the 514 C# indicators: the shared golden input
// is replayed through each one and checked bit-for-bit against the Rust
// reference fixtures testdata/golden/g_<Canonical>.csv. Multi-output, profile
// and bar shapes are flattened by reflection so one comparator covers all
// archetypes. Regenerate with: python bindings/csharp/gen_golden_test.py
// </auto-generated>
#nullable enable
using System;
using System.Collections.Generic;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Reflection;
using Xunit;
namespace Wickra.Tests;
public class GoldenAllTests
{
private const double Tol = 1e-6;
private static readonly double[][] Rows = LoadInput();
private static string GoldenDir([System.Runtime.CompilerServices.CallerFilePath] string file = "") =>
Path.GetFullPath(Path.Combine(Path.GetDirectoryName(file)!, "..", "..", "..", "testdata", "golden"));
private static double Cell(string s) =>
s == "nan" ? double.NaN
: s == "inf" ? double.PositiveInfinity
: s == "-inf" ? double.NegativeInfinity
: double.Parse(s, CultureInfo.InvariantCulture);
private static double[][] LoadInput()
{
var lines = File.ReadAllLines(Path.Combine(GoldenDir(), "input.csv"));
return lines.Skip(1).Where(l => l.Length > 0)
.Select(l => l.Split(',').Select(x => double.Parse(x, CultureInfo.InvariantCulture)).ToArray())
.ToArray();
}
// Keep blank lines (a candle on which no bar closed) so rows stay aligned.
private static double[]?[] ReadFixture(string name)
{
var lines = File.ReadAllLines(Path.Combine(GoldenDir(), "g_" + name + ".csv"));
return lines.Skip(1).Select(l => l.Length == 0 ? Array.Empty<double>() : l.Split(',').Select(Cell).ToArray()).ToArray();
}
private static double[] NanRow(int n)
{
var r = new double[n];
for (var i = 0; i < n; i++) r[i] = double.NaN;
return r;
}
private static double[] FlattenStruct(object o)
{
var props = o.GetType()
.GetProperties(BindingFlags.Public | BindingFlags.Instance)
.OrderBy(p => p.MetadataToken);
var list = new List<double>();
foreach (var p in props)
{
var v = p.GetValue(o);
switch (v)
{
case double d: list.Add(d); break;
case float f: list.Add(f); break;
case long l: list.Add(l); break;
case int n: list.Add(n); break;
case double[] arr: list.AddRange(arr); break;
}
}
return list.ToArray();
}
private static double[] FlattenNullable<T>(T? value, int width) where T : struct =>
value.HasValue ? FlattenStruct(value.Value) : NanRow(width);
private static double[] FlattenBars<T>(T[] bars)
{
var list = new List<double>();
foreach (var bar in bars) list.AddRange(FlattenStruct(bar!));
return list.ToArray();
}
private static double[] DerivFields(double[] r)
{
double o = r[0], h = r[1], l = r[2], c = r[3], v = r[4];
return new[]
{
(c - o) / c * 0.01, c, c - 0.5, c + 1.0, v * 10.0, v * 0.6, v * 0.4,
v * 0.55, v * 0.45, h - c, c - l,
};
}
private static (double[], double[], bool[], bool[], bool[], bool[]) CrossLists(double[] r)
{
double o = r[0], c = r[3], v = r[4];
var change = new double[5];
var volume = new double[5];
var nh = new bool[5];
var nl = new bool[5];
var am = new bool[5];
var ob = new bool[5];
for (var j = 0; j < 5; j++)
{
change[j] = (c - o) + j;
volume[j] = v + j * 10.0;
nh[j] = j % 2 == 0;
nl[j] = j % 3 == 0;
am[j] = j % 2 == 0;
ob[j] = j % 3 == 0;
}
return (change, volume, nh, nl, am, ob);
}
private static (double[], double[], double[], double[]) ObLists(double[] r)
{
double c = r[3], v = r[4];
var bp = new double[5];
var bs = new double[5];
var ap = new double[5];
var asz = new double[5];
for (var k = 0; k < 5; k++)
{
var kf = k + 1;
bp[k] = c - 0.1 * kf;
bs[k] = v / kf;
ap[k] = c + 0.1 * kf;
asz[k] = v * 0.9 / kf;
}
return (bp, bs, ap, asz);
}
private static void Compare(string name, List<double[]> got)
{
var exp = ReadFixture(name);
Assert.True(exp.Length == got.Count, $"{name}: {exp.Length} fixture rows vs {got.Count} computed");
for (var i = 0; i < exp.Length; i++)
{
var want = exp[i]!;
var g = got[i];
Assert.True(want.Length == g.Length, $"{name} row {i}: arity {g.Length} vs {want.Length}");
for (var k = 0; k < want.Length; k++)
{
var w = want[k];
if (double.IsNaN(w)) { Assert.True(double.IsNaN(g[k]), $"{name} row {i} col {k}: want NaN got {g[k]}"); continue; }
if (double.IsInfinity(w)) { Assert.True(double.IsInfinity(g[k]) && Math.Sign(g[k]) == Math.Sign(w), $"{name} row {i} col {k}: want {w} got {g[k]}"); continue; }
var tol = Tol * Math.Max(1.0, Math.Abs(w));
Assert.True(Math.Abs(g[k] - w) <= tol, $"{name} row {i} col {k}: got {g[k]} want {w}");
}
}
}
[Fact]
public void Golden_AbandonedBaby()
{
using var ind = new Wickra.AbandonedBaby();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("AbandonedBaby", got);
}
[Fact]
public void Golden_Abcd()
{
using var ind = new Wickra.Abcd();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("Abcd", got);
}
[Fact]
public void Golden_AbsoluteBreadthIndex()
{
using var ind = new Wickra.AbsoluteBreadthIndex();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
var (ch, vo, nh, nl, am, ob) = CrossLists(r);
got.Add(new[] { ind.Update(ch, vo, nh, nl, am, ob, i) });
}
Compare("AbsoluteBreadthIndex", got);
}
[Fact]
public void Golden_AccelerationBands()
{
using var ind = new Wickra.AccelerationBands(14, 2.0);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenNullable(ind.Update(r[0], r[1], r[2], r[3], r[4], i), 3));
}
Compare("AccelerationBands", got);
}
[Fact]
public void Golden_AcceleratorOscillator()
{
using var ind = new Wickra.AcceleratorOscillator(3, 7, 14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("AcceleratorOscillator", got);
}
[Fact]
public void Golden_AdOscillator()
{
using var ind = new Wickra.AdOscillator();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("AdOscillator", got);
}
[Fact]
public void Golden_AdVolumeLine()
{
using var ind = new Wickra.AdVolumeLine();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
var (ch, vo, nh, nl, am, ob) = CrossLists(r);
got.Add(new[] { ind.Update(ch, vo, nh, nl, am, ob, i) });
}
Compare("AdVolumeLine", got);
}
[Fact]
public void Golden_AdaptiveCci()
{
using var ind = new Wickra.AdaptiveCci(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("AdaptiveCci", got);
}
[Fact]
public void Golden_AdaptiveCycle()
{
using var ind = new Wickra.AdaptiveCycle();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("AdaptiveCycle", got);
}
[Fact]
public void Golden_AdaptiveLaguerreFilter()
{
using var ind = new Wickra.AdaptiveLaguerreFilter(20);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("AdaptiveLaguerreFilter", got);
}
[Fact]
public void Golden_AdaptiveRsi()
{
using var ind = new Wickra.AdaptiveRsi(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("AdaptiveRsi", got);
}
[Fact]
public void Golden_Adl()
{
using var ind = new Wickra.Adl();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("Adl", got);
}
[Fact]
public void Golden_AdvanceBlock()
{
using var ind = new Wickra.AdvanceBlock();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("AdvanceBlock", got);
}
[Fact]
public void Golden_AdvanceDecline()
{
using var ind = new Wickra.AdvanceDecline();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
var (ch, vo, nh, nl, am, ob) = CrossLists(r);
got.Add(new[] { ind.Update(ch, vo, nh, nl, am, ob, i) });
}
Compare("AdvanceDecline", got);
}
[Fact]
public void Golden_AdvanceDeclineRatio()
{
using var ind = new Wickra.AdvanceDeclineRatio();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
var (ch, vo, nh, nl, am, ob) = CrossLists(r);
got.Add(new[] { ind.Update(ch, vo, nh, nl, am, ob, i) });
}
Compare("AdvanceDeclineRatio", got);
}
[Fact]
public void Golden_Adx()
{
using var ind = new Wickra.Adx(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenNullable(ind.Update(r[0], r[1], r[2], r[3], r[4], i), 3));
}
Compare("Adx", got);
}
[Fact]
public void Golden_Adxr()
{
using var ind = new Wickra.Adxr(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("Adxr", got);
}
[Fact]
public void Golden_Alligator()
{
using var ind = new Wickra.Alligator(3, 7, 14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenNullable(ind.Update(r[0], r[1], r[2], r[3], r[4], i), 3));
}
Compare("Alligator", got);
}
[Fact]
public void Golden_Alma()
{
using var ind = new Wickra.Alma(9, 0.85, 6.0);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("Alma", got);
}
[Fact]
public void Golden_Alpha()
{
using var ind = new Wickra.Alpha(14, 2.0);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3], r[0]) });
}
Compare("Alpha", got);
}
[Fact]
public void Golden_AmihudIlliquidity()
{
using var ind = new Wickra.AmihudIlliquidity(20);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3], r[4], r[3] >= r[0], i) });
}
Compare("AmihudIlliquidity", got);
}
[Fact]
public void Golden_AnchoredRsi()
{
using var ind = new Wickra.AnchoredRsi();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("AnchoredRsi", got);
}
[Fact]
public void Golden_AnchoredVwap()
{
using var ind = new Wickra.AnchoredVwap();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("AnchoredVwap", got);
}
[Fact]
public void Golden_AndrewsPitchfork()
{
using var ind = new Wickra.AndrewsPitchfork(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenNullable(ind.Update(r[0], r[1], r[2], r[3], r[4], i), 3));
}
Compare("AndrewsPitchfork", got);
}
[Fact]
public void Golden_Apo()
{
using var ind = new Wickra.Apo(3, 7);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("Apo", got);
}
[Fact]
public void Golden_Aroon()
{
using var ind = new Wickra.Aroon(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenNullable(ind.Update(r[0], r[1], r[2], r[3], r[4], i), 2));
}
Compare("Aroon", got);
}
[Fact]
public void Golden_AroonOscillator()
{
using var ind = new Wickra.AroonOscillator(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("AroonOscillator", got);
}
[Fact]
public void Golden_Atr()
{
using var ind = new Wickra.Atr(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("Atr", got);
}
[Fact]
public void Golden_AtrBands()
{
using var ind = new Wickra.AtrBands(14, 2.0);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenNullable(ind.Update(r[0], r[1], r[2], r[3], r[4], i), 3));
}
Compare("AtrBands", got);
}
[Fact]
public void Golden_AtrRatchet()
{
using var ind = new Wickra.AtrRatchet(14, 2.0, 0.5);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenNullable(ind.Update(r[0], r[1], r[2], r[3], r[4], i), 2));
}
Compare("AtrRatchet", got);
}
[Fact]
public void Golden_AtrTrailingStop()
{
using var ind = new Wickra.AtrTrailingStop(14, 2.0);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("AtrTrailingStop", got);
}
[Fact]
public void Golden_AutoFib()
{
using var ind = new Wickra.AutoFib();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenNullable(ind.Update(r[0], r[1], r[2], r[3], r[4], i), 7));
}
Compare("AutoFib", got);
}
[Fact]
public void Golden_Autocorrelation()
{
using var ind = new Wickra.Autocorrelation(10, 1);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("Autocorrelation", got);
}
[Fact]
public void Golden_AutocorrelationPeriodogram()
{
using var ind = new Wickra.AutocorrelationPeriodogram(10, 48);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("AutocorrelationPeriodogram", got);
}
[Fact]
public void Golden_AverageDailyRange()
{
using var ind = new Wickra.AverageDailyRange(14, 0);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("AverageDailyRange", got);
}
[Fact]
public void Golden_AverageDrawdown()
{
using var ind = new Wickra.AverageDrawdown(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("AverageDrawdown", got);
}
[Fact]
public void Golden_AvgPrice()
{
using var ind = new Wickra.AvgPrice();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("AvgPrice", got);
}
[Fact]
public void Golden_AwesomeOscillator()
{
using var ind = new Wickra.AwesomeOscillator(3, 7);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("AwesomeOscillator", got);
}
[Fact]
public void Golden_AwesomeOscillatorHistogram()
{
using var ind = new Wickra.AwesomeOscillatorHistogram(3, 7, 14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("AwesomeOscillatorHistogram", got);
}
[Fact]
public void Golden_BalanceOfPower()
{
using var ind = new Wickra.BalanceOfPower();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("BalanceOfPower", got);
}
[Fact]
public void Golden_BandpassFilter()
{
using var ind = new Wickra.BandpassFilter(20, 0.3);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("BandpassFilter", got);
}
[Fact]
public void Golden_Bat()
{
using var ind = new Wickra.Bat();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("Bat", got);
}
[Fact]
public void Golden_BeltHold()
{
using var ind = new Wickra.BeltHold();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("BeltHold", got);
}
[Fact]
public void Golden_Beta()
{
using var ind = new Wickra.Beta(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3], r[0]) });
}
Compare("Beta", got);
}
[Fact]
public void Golden_BetaNeutralSpread()
{
using var ind = new Wickra.BetaNeutralSpread(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3], r[0]) });
}
Compare("BetaNeutralSpread", got);
}
[Fact]
public void Golden_BetterVolume()
{
using var ind = new Wickra.BetterVolume(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("BetterVolume", got);
}
[Fact]
public void Golden_BipowerVariation()
{
using var ind = new Wickra.BipowerVariation(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("BipowerVariation", got);
}
[Fact]
public void Golden_BodySizePct()
{
using var ind = new Wickra.BodySizePct();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("BodySizePct", got);
}
[Fact]
public void Golden_BollingerBands()
{
using var ind = new Wickra.BollingerBands(20, 2.0);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenNullable(ind.Update(r[3]), 4));
}
Compare("BollingerBands", got);
}
[Fact]
public void Golden_BollingerBandwidth()
{
using var ind = new Wickra.BollingerBandwidth(14, 2.0);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("BollingerBandwidth", got);
}
[Fact]
public void Golden_BomarBands()
{
using var ind = new Wickra.BomarBands(4, 0.85);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenNullable(ind.Update(r[3]), 3));
}
Compare("BomarBands", got);
}
[Fact]
public void Golden_BreadthThrust()
{
using var ind = new Wickra.BreadthThrust(10);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
var (ch, vo, nh, nl, am, ob) = CrossLists(r);
got.Add(new[] { ind.Update(ch, vo, nh, nl, am, ob, i) });
}
Compare("BreadthThrust", got);
}
[Fact]
public void Golden_Breakaway()
{
using var ind = new Wickra.Breakaway();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("Breakaway", got);
}
[Fact]
public void Golden_BullishPercentIndex()
{
using var ind = new Wickra.BullishPercentIndex();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
var (ch, vo, nh, nl, am, ob) = CrossLists(r);
got.Add(new[] { ind.Update(ch, vo, nh, nl, am, ob, i) });
}
Compare("BullishPercentIndex", got);
}
[Fact]
public void Golden_BurkeRatio()
{
using var ind = new Wickra.BurkeRatio(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("BurkeRatio", got);
}
[Fact]
public void Golden_Butterfly()
{
using var ind = new Wickra.Butterfly();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("Butterfly", got);
}
[Fact]
public void Golden_CalendarSpread()
{
using var ind = new Wickra.CalendarSpread();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
var d = DerivFields(r);
got.Add(new[] { ind.Update(d[0], d[1], d[2], d[3], d[4], d[5], d[6], d[7], d[8], d[9], d[10], i) });
}
Compare("CalendarSpread", got);
}
[Fact]
public void Golden_CalmarRatio()
{
using var ind = new Wickra.CalmarRatio(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("CalmarRatio", got);
}
[Fact]
public void Golden_Camarilla()
{
using var ind = new Wickra.Camarilla();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenNullable(ind.Update(r[0], r[1], r[2], r[3], r[4], i), 9));
}
Compare("Camarilla", got);
}
[Fact]
public void Golden_CandleVolume()
{
using var ind = new Wickra.CandleVolume(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenNullable(ind.Update(r[0], r[1], r[2], r[3], r[4], i), 2));
}
Compare("CandleVolume", got);
}
[Fact]
public void Golden_Cci()
{
using var ind = new Wickra.Cci(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("Cci", got);
}
[Fact]
public void Golden_CenterOfGravity()
{
using var ind = new Wickra.CenterOfGravity(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("CenterOfGravity", got);
}
[Fact]
public void Golden_CentralPivotRange()
{
using var ind = new Wickra.CentralPivotRange();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenNullable(ind.Update(r[0], r[1], r[2], r[3], r[4], i), 3));
}
Compare("CentralPivotRange", got);
}
[Fact]
public void Golden_Cfo()
{
using var ind = new Wickra.Cfo(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("Cfo", got);
}
[Fact]
public void Golden_ChaikinMoneyFlow()
{
using var ind = new Wickra.ChaikinMoneyFlow(20);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("ChaikinMoneyFlow", got);
}
[Fact]
public void Golden_ChaikinOscillator()
{
using var ind = new Wickra.ChaikinOscillator(3, 7);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("ChaikinOscillator", got);
}
[Fact]
public void Golden_ChaikinVolatility()
{
using var ind = new Wickra.ChaikinVolatility(3, 7);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("ChaikinVolatility", got);
}
[Fact]
public void Golden_ChandeKrollStop()
{
using var ind = new Wickra.ChandeKrollStop(3, 2.0, 7);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenNullable(ind.Update(r[0], r[1], r[2], r[3], r[4], i), 2));
}
Compare("ChandeKrollStop", got);
}
[Fact]
public void Golden_ChandelierExit()
{
using var ind = new Wickra.ChandelierExit(14, 2.0);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenNullable(ind.Update(r[0], r[1], r[2], r[3], r[4], i), 2));
}
Compare("ChandelierExit", got);
}
[Fact]
public void Golden_ChoppinessIndex()
{
using var ind = new Wickra.ChoppinessIndex(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("ChoppinessIndex", got);
}
[Fact]
public void Golden_ClassicPivots()
{
using var ind = new Wickra.ClassicPivots();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenNullable(ind.Update(r[0], r[1], r[2], r[3], r[4], i), 7));
}
Compare("ClassicPivots", got);
}
[Fact]
public void Golden_CloseVsOpen()
{
using var ind = new Wickra.CloseVsOpen();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("CloseVsOpen", got);
}
[Fact]
public void Golden_ClosingMarubozu()
{
using var ind = new Wickra.ClosingMarubozu();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("ClosingMarubozu", got);
}
[Fact]
public void Golden_Cmo()
{
using var ind = new Wickra.Cmo(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("Cmo", got);
}
[Fact]
public void Golden_CoefficientOfVariation()
{
using var ind = new Wickra.CoefficientOfVariation(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("CoefficientOfVariation", got);
}
[Fact]
public void Golden_Cointegration()
{
using var ind = new Wickra.Cointegration(40, 1);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenNullable(ind.Update(r[3], r[0]), 3));
}
Compare("Cointegration", got);
}
[Fact]
public void Golden_CommonSenseRatio()
{
using var ind = new Wickra.CommonSenseRatio(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("CommonSenseRatio", got);
}
[Fact]
public void Golden_CompositeProfile()
{
using var ind = new Wickra.CompositeProfile(20, 24, 0.7);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenNullable(ind.Update(r[0], r[1], r[2], r[3], r[4], i), 3));
}
Compare("CompositeProfile", got);
}
[Fact]
public void Golden_ConcealingBabySwallow()
{
using var ind = new Wickra.ConcealingBabySwallow();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("ConcealingBabySwallow", got);
}
[Fact]
public void Golden_ConditionalValueAtRisk()
{
using var ind = new Wickra.ConditionalValueAtRisk(20, 0.95);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("ConditionalValueAtRisk", got);
}
[Fact]
public void Golden_ConnorsRsi()
{
using var ind = new Wickra.ConnorsRsi(3, 7, 14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("ConnorsRsi", got);
}
[Fact]
public void Golden_Coppock()
{
using var ind = new Wickra.Coppock(3, 7, 14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("Coppock", got);
}
[Fact]
public void Golden_CorrelationTrendIndicator()
{
using var ind = new Wickra.CorrelationTrendIndicator(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("CorrelationTrendIndicator", got);
}
[Fact]
public void Golden_Counterattack()
{
using var ind = new Wickra.Counterattack();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("Counterattack", got);
}
[Fact]
public void Golden_Crab()
{
using var ind = new Wickra.Crab();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("Crab", got);
}
[Fact]
public void Golden_CumulativeVolumeDelta()
{
using var ind = new Wickra.CumulativeVolumeDelta();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3], r[4], r[3] >= r[0], i) });
}
Compare("CumulativeVolumeDelta", got);
}
[Fact]
public void Golden_CumulativeVolumeIndex()
{
using var ind = new Wickra.CumulativeVolumeIndex();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
var (ch, vo, nh, nl, am, ob) = CrossLists(r);
got.Add(new[] { ind.Update(ch, vo, nh, nl, am, ob, i) });
}
Compare("CumulativeVolumeIndex", got);
}
[Fact]
public void Golden_CupAndHandle()
{
using var ind = new Wickra.CupAndHandle();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("CupAndHandle", got);
}
[Fact]
public void Golden_CyberneticCycle()
{
using var ind = new Wickra.CyberneticCycle(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("CyberneticCycle", got);
}
[Fact]
public void Golden_Cypher()
{
using var ind = new Wickra.Cypher();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("Cypher", got);
}
[Fact]
public void Golden_DayOfWeekProfile()
{
using var ind = new Wickra.DayOfWeekProfile(0);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
var bins = ind.Update(r[0], r[1], r[2], r[3], r[4], i);
got.Add(bins ?? NanRow(7));
}
Compare("DayOfWeekProfile", got);
}
[Fact]
public void Golden_Decycler()
{
using var ind = new Wickra.Decycler(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("Decycler", got);
}
[Fact]
public void Golden_DecyclerOscillator()
{
using var ind = new Wickra.DecyclerOscillator(3, 7);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("DecyclerOscillator", got);
}
[Fact]
public void Golden_Dema()
{
using var ind = new Wickra.Dema(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("Dema", got);
}
[Fact]
public void Golden_DemandIndex()
{
using var ind = new Wickra.DemandIndex(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("DemandIndex", got);
}
[Fact]
public void Golden_DemarkPivots()
{
using var ind = new Wickra.DemarkPivots();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenNullable(ind.Update(r[0], r[1], r[2], r[3], r[4], i), 3));
}
Compare("DemarkPivots", got);
}
[Fact]
public void Golden_DepthSlope()
{
using var ind = new Wickra.DepthSlope();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
var (bp, bs, ap, asz) = ObLists(r);
got.Add(new[] { ind.Update(bp, bs, ap, asz) });
}
Compare("DepthSlope", got);
}
[Fact]
public void Golden_DerivativeOscillator()
{
using var ind = new Wickra.DerivativeOscillator(3, 7, 14, 28);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("DerivativeOscillator", got);
}
[Fact]
public void Golden_DetrendedStdDev()
{
using var ind = new Wickra.DetrendedStdDev(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("DetrendedStdDev", got);
}
[Fact]
public void Golden_DisparityIndex()
{
using var ind = new Wickra.DisparityIndex(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("DisparityIndex", got);
}
[Fact]
public void Golden_DistanceSsd()
{
using var ind = new Wickra.DistanceSsd(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3], r[0]) });
}
Compare("DistanceSsd", got);
}
[Fact]
public void Golden_Doji()
{
using var ind = new Wickra.Doji();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("Doji", got);
}
[Fact]
public void Golden_DojiStar()
{
using var ind = new Wickra.DojiStar();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("DojiStar", got);
}
[Fact]
public void Golden_DollarBars()
{
using var ind = new Wickra.DollarBars(50000.0);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenBars(ind.Update(r[0], r[1], r[2], r[3], r[4], 0)));
}
Compare("DollarBars", got);
}
[Fact]
public void Golden_Donchian()
{
using var ind = new Wickra.Donchian(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenNullable(ind.Update(r[0], r[1], r[2], r[3], r[4], i), 3));
}
Compare("Donchian", got);
}
[Fact]
public void Golden_DonchianStop()
{
using var ind = new Wickra.DonchianStop(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenNullable(ind.Update(r[0], r[1], r[2], r[3], r[4], i), 2));
}
Compare("DonchianStop", got);
}
[Fact]
public void Golden_DoubleBollinger()
{
using var ind = new Wickra.DoubleBollinger(20, 1.0, 2.0);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenNullable(ind.Update(r[3]), 5));
}
Compare("DoubleBollinger", got);
}
[Fact]
public void Golden_DoubleTopBottom()
{
using var ind = new Wickra.DoubleTopBottom();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("DoubleTopBottom", got);
}
[Fact]
public void Golden_DownsideGapThreeMethods()
{
using var ind = new Wickra.DownsideGapThreeMethods();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("DownsideGapThreeMethods", got);
}
[Fact]
public void Golden_Dpo()
{
using var ind = new Wickra.Dpo(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("Dpo", got);
}
[Fact]
public void Golden_DragonflyDoji()
{
using var ind = new Wickra.DragonflyDoji();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("DragonflyDoji", got);
}
[Fact]
public void Golden_DrawdownDuration()
{
using var ind = new Wickra.DrawdownDuration();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("DrawdownDuration", got);
}
[Fact]
public void Golden_DumplingTop()
{
using var ind = new Wickra.DumplingTop(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("DumplingTop", got);
}
[Fact]
public void Golden_Dx()
{
using var ind = new Wickra.Dx(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("Dx", got);
}
[Fact]
public void Golden_DynamicMomentumIndex()
{
using var ind = new Wickra.DynamicMomentumIndex(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("DynamicMomentumIndex", got);
}
[Fact]
public void Golden_EaseOfMovement()
{
using var ind = new Wickra.EaseOfMovement(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("EaseOfMovement", got);
}
[Fact]
public void Golden_EffectiveSpread()
{
using var ind = new Wickra.EffectiveSpread();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3], r[4], r[3] >= r[0], i, (r[1] + r[2]) / 2) });
}
Compare("EffectiveSpread", got);
}
[Fact]
public void Golden_EhlersStochastic()
{
using var ind = new Wickra.EhlersStochastic(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("EhlersStochastic", got);
}
[Fact]
public void Golden_Ehma()
{
using var ind = new Wickra.Ehma(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("Ehma", got);
}
[Fact]
public void Golden_ElderImpulse()
{
using var ind = new Wickra.ElderImpulse(3, 7, 14, 28);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("ElderImpulse", got);
}
[Fact]
public void Golden_ElderRay()
{
using var ind = new Wickra.ElderRay(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenNullable(ind.Update(r[0], r[1], r[2], r[3], r[4], i), 2));
}
Compare("ElderRay", got);
}
[Fact]
public void Golden_ElderSafeZone()
{
using var ind = new Wickra.ElderSafeZone(10, 2.0);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenNullable(ind.Update(r[0], r[1], r[2], r[3], r[4], i), 2));
}
Compare("ElderSafeZone", got);
}
[Fact]
public void Golden_Ema()
{
using var ind = new Wickra.Ema(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("Ema", got);
}
[Fact]
public void Golden_EmpiricalModeDecomposition()
{
using var ind = new Wickra.EmpiricalModeDecomposition(20, 0.1);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("EmpiricalModeDecomposition", got);
}
[Fact]
public void Golden_Engulfing()
{
using var ind = new Wickra.Engulfing();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("Engulfing", got);
}
[Fact]
public void Golden_Equivolume()
{
using var ind = new Wickra.Equivolume(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenNullable(ind.Update(r[0], r[1], r[2], r[3], r[4], i), 2));
}
Compare("Equivolume", got);
}
[Fact]
public void Golden_EstimatedLeverageRatio()
{
using var ind = new Wickra.EstimatedLeverageRatio();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
var d = DerivFields(r);
got.Add(new[] { ind.Update(d[0], d[1], d[2], d[3], d[4], d[5], d[6], d[7], d[8], d[9], d[10], i) });
}
Compare("EstimatedLeverageRatio", got);
}
[Fact]
public void Golden_EvenBetterSinewave()
{
using var ind = new Wickra.EvenBetterSinewave(40, 10);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("EvenBetterSinewave", got);
}
[Fact]
public void Golden_EveningDojiStar()
{
using var ind = new Wickra.EveningDojiStar();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("EveningDojiStar", got);
}
[Fact]
public void Golden_Evwma()
{
using var ind = new Wickra.Evwma(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("Evwma", got);
}
[Fact]
public void Golden_EwmaVolatility()
{
using var ind = new Wickra.EwmaVolatility(0.94);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("EwmaVolatility", got);
}
[Fact]
public void Golden_Expectancy()
{
using var ind = new Wickra.Expectancy(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("Expectancy", got);
}
[Fact]
public void Golden_FallingThreeMethods()
{
using var ind = new Wickra.FallingThreeMethods();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("FallingThreeMethods", got);
}
[Fact]
public void Golden_Fama()
{
using var ind = new Wickra.Fama(0.5, 0.05);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("Fama", got);
}
[Fact]
public void Golden_FibArcs()
{
using var ind = new Wickra.FibArcs();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenNullable(ind.Update(r[0], r[1], r[2], r[3], r[4], i), 3));
}
Compare("FibArcs", got);
}
[Fact]
public void Golden_FibChannel()
{
using var ind = new Wickra.FibChannel();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenNullable(ind.Update(r[0], r[1], r[2], r[3], r[4], i), 4));
}
Compare("FibChannel", got);
}
[Fact]
public void Golden_FibConfluence()
{
using var ind = new Wickra.FibConfluence();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenNullable(ind.Update(r[0], r[1], r[2], r[3], r[4], i), 2));
}
Compare("FibConfluence", got);
}
[Fact]
public void Golden_FibExtension()
{
using var ind = new Wickra.FibExtension();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenNullable(ind.Update(r[0], r[1], r[2], r[3], r[4], i), 5));
}
Compare("FibExtension", got);
}
[Fact]
public void Golden_FibFan()
{
using var ind = new Wickra.FibFan();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenNullable(ind.Update(r[0], r[1], r[2], r[3], r[4], i), 3));
}
Compare("FibFan", got);
}
[Fact]
public void Golden_FibProjection()
{
using var ind = new Wickra.FibProjection();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenNullable(ind.Update(r[0], r[1], r[2], r[3], r[4], i), 4));
}
Compare("FibProjection", got);
}
[Fact]
public void Golden_FibRetracement()
{
using var ind = new Wickra.FibRetracement();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenNullable(ind.Update(r[0], r[1], r[2], r[3], r[4], i), 7));
}
Compare("FibRetracement", got);
}
[Fact]
public void Golden_FibTimeZones()
{
using var ind = new Wickra.FibTimeZones();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenNullable(ind.Update(r[0], r[1], r[2], r[3], r[4], i), 2));
}
Compare("FibTimeZones", got);
}
[Fact]
public void Golden_FibonacciPivots()
{
using var ind = new Wickra.FibonacciPivots();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenNullable(ind.Update(r[0], r[1], r[2], r[3], r[4], i), 7));
}
Compare("FibonacciPivots", got);
}
[Fact]
public void Golden_FisherRsi()
{
using var ind = new Wickra.FisherRsi(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("FisherRsi", got);
}
[Fact]
public void Golden_FisherTransform()
{
using var ind = new Wickra.FisherTransform(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("FisherTransform", got);
}
[Fact]
public void Golden_FlagPennant()
{
using var ind = new Wickra.FlagPennant();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("FlagPennant", got);
}
[Fact]
public void Golden_Footprint()
{
using var ind = new Wickra.Footprint(1.0);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenBars(ind.Update(r[3], r[4], r[3] >= r[0], i)));
}
Compare("Footprint", got);
}
[Fact]
public void Golden_ForceIndex()
{
using var ind = new Wickra.ForceIndex(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("ForceIndex", got);
}
[Fact]
public void Golden_FractalChaosBands()
{
using var ind = new Wickra.FractalChaosBands(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenNullable(ind.Update(r[0], r[1], r[2], r[3], r[4], i), 2));
}
Compare("FractalChaosBands", got);
}
[Fact]
public void Golden_Frama()
{
using var ind = new Wickra.Frama(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("Frama", got);
}
[Fact]
public void Golden_FryPanBottom()
{
using var ind = new Wickra.FryPanBottom(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("FryPanBottom", got);
}
[Fact]
public void Golden_FundingBasis()
{
using var ind = new Wickra.FundingBasis();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
var d = DerivFields(r);
got.Add(new[] { ind.Update(d[0], d[1], d[2], d[3], d[4], d[5], d[6], d[7], d[8], d[9], d[10], i) });
}
Compare("FundingBasis", got);
}
[Fact]
public void Golden_FundingImpliedApr()
{
using var ind = new Wickra.FundingImpliedApr(1095.0);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
var d = DerivFields(r);
got.Add(new[] { ind.Update(d[0], d[1], d[2], d[3], d[4], d[5], d[6], d[7], d[8], d[9], d[10], i) });
}
Compare("FundingImpliedApr", got);
}
[Fact]
public void Golden_FundingRate()
{
using var ind = new Wickra.FundingRate();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
var d = DerivFields(r);
got.Add(new[] { ind.Update(d[0], d[1], d[2], d[3], d[4], d[5], d[6], d[7], d[8], d[9], d[10], i) });
}
Compare("FundingRate", got);
}
[Fact]
public void Golden_FundingRateMean()
{
using var ind = new Wickra.FundingRateMean(20);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
var d = DerivFields(r);
got.Add(new[] { ind.Update(d[0], d[1], d[2], d[3], d[4], d[5], d[6], d[7], d[8], d[9], d[10], i) });
}
Compare("FundingRateMean", got);
}
[Fact]
public void Golden_FundingRateZScore()
{
using var ind = new Wickra.FundingRateZScore(20);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
var d = DerivFields(r);
got.Add(new[] { ind.Update(d[0], d[1], d[2], d[3], d[4], d[5], d[6], d[7], d[8], d[9], d[10], i) });
}
Compare("FundingRateZScore", got);
}
[Fact]
public void Golden_GainLossRatio()
{
using var ind = new Wickra.GainLossRatio(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("GainLossRatio", got);
}
[Fact]
public void Golden_GainToPainRatio()
{
using var ind = new Wickra.GainToPainRatio(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("GainToPainRatio", got);
}
[Fact]
public void Golden_GapSideBySideWhite()
{
using var ind = new Wickra.GapSideBySideWhite();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("GapSideBySideWhite", got);
}
[Fact]
public void Golden_Garch11()
{
using var ind = new Wickra.Garch11(2e-06, 0.1, 0.88);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("Garch11", got);
}
[Fact]
public void Golden_GarmanKlassVolatility()
{
using var ind = new Wickra.GarmanKlassVolatility(20, 252);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("GarmanKlassVolatility", got);
}
[Fact]
public void Golden_Gartley()
{
using var ind = new Wickra.Gartley();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("Gartley", got);
}
[Fact]
public void Golden_GatorOscillator()
{
using var ind = new Wickra.GatorOscillator(3, 7, 14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenNullable(ind.Update(r[0], r[1], r[2], r[3], r[4], i), 2));
}
Compare("GatorOscillator", got);
}
[Fact]
public void Golden_GeneralizedDema()
{
using var ind = new Wickra.GeneralizedDema(5, 0.7);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("GeneralizedDema", got);
}
[Fact]
public void Golden_GeometricMa()
{
using var ind = new Wickra.GeometricMa(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("GeometricMa", got);
}
[Fact]
public void Golden_GoldenPocket()
{
using var ind = new Wickra.GoldenPocket();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenNullable(ind.Update(r[0], r[1], r[2], r[3], r[4], i), 3));
}
Compare("GoldenPocket", got);
}
[Fact]
public void Golden_GrangerCausality()
{
using var ind = new Wickra.GrangerCausality(60, 1);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3], r[0]) });
}
Compare("GrangerCausality", got);
}
[Fact]
public void Golden_GravestoneDoji()
{
using var ind = new Wickra.GravestoneDoji();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("GravestoneDoji", got);
}
[Fact]
public void Golden_Hammer()
{
using var ind = new Wickra.Hammer();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("Hammer", got);
}
[Fact]
public void Golden_HangingMan()
{
using var ind = new Wickra.HangingMan();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("HangingMan", got);
}
[Fact]
public void Golden_Harami()
{
using var ind = new Wickra.Harami();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("Harami", got);
}
[Fact]
public void Golden_HaramiCross()
{
using var ind = new Wickra.HaramiCross();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("HaramiCross", got);
}
[Fact]
public void Golden_HasbrouckInformationShare()
{
using var ind = new Wickra.HasbrouckInformationShare(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3], r[0]) });
}
Compare("HasbrouckInformationShare", got);
}
[Fact]
public void Golden_HeadAndShoulders()
{
using var ind = new Wickra.HeadAndShoulders();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("HeadAndShoulders", got);
}
[Fact]
public void Golden_HeikinAshi()
{
using var ind = new Wickra.HeikinAshi();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenNullable(ind.Update(r[0], r[1], r[2], r[3], r[4], i), 4));
}
Compare("HeikinAshi", got);
}
[Fact]
public void Golden_HeikinAshiOscillator()
{
using var ind = new Wickra.HeikinAshiOscillator(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("HeikinAshiOscillator", got);
}
[Fact]
public void Golden_HiLoActivator()
{
using var ind = new Wickra.HiLoActivator(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("HiLoActivator", got);
}
[Fact]
public void Golden_HighLowIndex()
{
using var ind = new Wickra.HighLowIndex(10);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
var (ch, vo, nh, nl, am, ob) = CrossLists(r);
got.Add(new[] { ind.Update(ch, vo, nh, nl, am, ob, i) });
}
Compare("HighLowIndex", got);
}
[Fact]
public void Golden_HighLowRange()
{
using var ind = new Wickra.HighLowRange();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("HighLowRange", got);
}
[Fact]
public void Golden_HighLowVolumeNodes()
{
using var ind = new Wickra.HighLowVolumeNodes(3, 7);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenNullable(ind.Update(r[0], r[1], r[2], r[3], r[4], i), 2));
}
Compare("HighLowVolumeNodes", got);
}
[Fact]
public void Golden_HighWave()
{
using var ind = new Wickra.HighWave();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("HighWave", got);
}
[Fact]
public void Golden_HighpassFilter()
{
using var ind = new Wickra.HighpassFilter(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("HighpassFilter", got);
}
[Fact]
public void Golden_Hikkake()
{
using var ind = new Wickra.Hikkake();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("Hikkake", got);
}
[Fact]
public void Golden_HikkakeModified()
{
using var ind = new Wickra.HikkakeModified();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("HikkakeModified", got);
}
[Fact]
public void Golden_HilbertDominantCycle()
{
using var ind = new Wickra.HilbertDominantCycle();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("HilbertDominantCycle", got);
}
[Fact]
public void Golden_HistoricalVolatility()
{
using var ind = new Wickra.HistoricalVolatility(3, 7);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("HistoricalVolatility", got);
}
[Fact]
public void Golden_Hma()
{
using var ind = new Wickra.Hma(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("Hma", got);
}
[Fact]
public void Golden_HoltWinters()
{
using var ind = new Wickra.HoltWinters(0.5, 0.1);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("HoltWinters", got);
}
[Fact]
public void Golden_HomingPigeon()
{
using var ind = new Wickra.HomingPigeon();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("HomingPigeon", got);
}
[Fact]
public void Golden_HtDcPhase()
{
using var ind = new Wickra.HtDcPhase();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("HtDcPhase", got);
}
[Fact]
public void Golden_HtPhasor()
{
using var ind = new Wickra.HtPhasor();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenNullable(ind.Update(r[3]), 2));
}
Compare("HtPhasor", got);
}
[Fact]
public void Golden_HtTrendMode()
{
using var ind = new Wickra.HtTrendMode();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("HtTrendMode", got);
}
[Fact]
public void Golden_HurstChannel()
{
using var ind = new Wickra.HurstChannel(14, 2.0);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenNullable(ind.Update(r[0], r[1], r[2], r[3], r[4], i), 3));
}
Compare("HurstChannel", got);
}
[Fact]
public void Golden_HurstExponent()
{
using var ind = new Wickra.HurstExponent(100, 4);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("HurstExponent", got);
}
[Fact]
public void Golden_Ichimoku()
{
using var ind = new Wickra.Ichimoku(9, 26, 52, 26);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenNullable(ind.Update(r[0], r[1], r[2], r[3], r[4], i), 5));
}
Compare("Ichimoku", got);
}
[Fact]
public void Golden_IdenticalThreeCrows()
{
using var ind = new Wickra.IdenticalThreeCrows();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("IdenticalThreeCrows", got);
}
[Fact]
public void Golden_ImbalanceBars()
{
using var ind = new Wickra.ImbalanceBars(5.0);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenBars(ind.Update(r[0], r[1], r[2], r[3], 1.0, 0)));
}
Compare("ImbalanceBars", got);
}
[Fact]
public void Golden_InNeck()
{
using var ind = new Wickra.InNeck();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("InNeck", got);
}
[Fact]
public void Golden_Inertia()
{
using var ind = new Wickra.Inertia(3, 7);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("Inertia", got);
}
[Fact]
public void Golden_InformationRatio()
{
using var ind = new Wickra.InformationRatio(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3], r[0]) });
}
Compare("InformationRatio", got);
}
[Fact]
public void Golden_InitialBalance()
{
using var ind = new Wickra.InitialBalance(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenNullable(ind.Update(r[0], r[1], r[2], r[3], r[4], i), 2));
}
Compare("InitialBalance", got);
}
[Fact]
public void Golden_InstantaneousTrendline()
{
using var ind = new Wickra.InstantaneousTrendline(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("InstantaneousTrendline", got);
}
[Fact]
public void Golden_IntradayIntensity()
{
using var ind = new Wickra.IntradayIntensity();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("IntradayIntensity", got);
}
[Fact]
public void Golden_IntradayMomentumIndex()
{
using var ind = new Wickra.IntradayMomentumIndex(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("IntradayMomentumIndex", got);
}
[Fact]
public void Golden_IntradayVolatilityProfile()
{
using var ind = new Wickra.IntradayVolatilityProfile(24, 0);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
var bins = ind.Update(r[0], r[1], r[2], r[3], r[4], i);
got.Add(bins ?? NanRow(24));
}
Compare("IntradayVolatilityProfile", got);
}
[Fact]
public void Golden_InverseFisherTransform()
{
using var ind = new Wickra.InverseFisherTransform(2.0);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("InverseFisherTransform", got);
}
[Fact]
public void Golden_InvertedHammer()
{
using var ind = new Wickra.InvertedHammer();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("InvertedHammer", got);
}
[Fact]
public void Golden_JarqueBera()
{
using var ind = new Wickra.JarqueBera(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("JarqueBera", got);
}
[Fact]
public void Golden_Jma()
{
using var ind = new Wickra.Jma(7, 0.0, 2u);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("Jma", got);
}
[Fact]
public void Golden_JumpIndicator()
{
using var ind = new Wickra.JumpIndicator(14, 2.0);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("JumpIndicator", got);
}
[Fact]
public void Golden_KRatio()
{
using var ind = new Wickra.KRatio(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("KRatio", got);
}
[Fact]
public void Golden_KagiBars()
{
using var ind = new Wickra.KagiBars(2.0);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenBars(ind.Update(r[3], r[3], r[3], r[3], 1.0, 0)));
}
Compare("KagiBars", got);
}
[Fact]
public void Golden_KalmanHedgeRatio()
{
using var ind = new Wickra.KalmanHedgeRatio(0.01, 0.001);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenNullable(ind.Update(r[3], r[0]), 3));
}
Compare("KalmanHedgeRatio", got);
}
[Fact]
public void Golden_Kama()
{
using var ind = new Wickra.Kama(3, 7, 14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("Kama", got);
}
[Fact]
public void Golden_KaseDevStop()
{
using var ind = new Wickra.KaseDevStop(14, 2.0);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenNullable(ind.Update(r[0], r[1], r[2], r[3], r[4], i), 2));
}
Compare("KaseDevStop", got);
}
[Fact]
public void Golden_KasePermissionStochastic()
{
using var ind = new Wickra.KasePermissionStochastic(3, 7);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenNullable(ind.Update(r[0], r[1], r[2], r[3], r[4], i), 2));
}
Compare("KasePermissionStochastic", got);
}
[Fact]
public void Golden_KellyCriterion()
{
using var ind = new Wickra.KellyCriterion(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("KellyCriterion", got);
}
[Fact]
public void Golden_Keltner()
{
using var ind = new Wickra.Keltner(3, 7, 2.0);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenNullable(ind.Update(r[0], r[1], r[2], r[3], r[4], i), 3));
}
Compare("Keltner", got);
}
[Fact]
public void Golden_KendallTau()
{
using var ind = new Wickra.KendallTau(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3], r[0]) });
}
Compare("KendallTau", got);
}
[Fact]
public void Golden_Kicking()
{
using var ind = new Wickra.Kicking();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("Kicking", got);
}
[Fact]
public void Golden_KickingByLength()
{
using var ind = new Wickra.KickingByLength();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("KickingByLength", got);
}
[Fact]
public void Golden_Kst()
{
using var ind = new Wickra.Kst(3, 7, 14, 28, 35, 42, 56, 63, 70);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenNullable(ind.Update(r[3]), 2));
}
Compare("Kst", got);
}
[Fact]
public void Golden_Kurtosis()
{
using var ind = new Wickra.Kurtosis(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("Kurtosis", got);
}
[Fact]
public void Golden_Kvo()
{
using var ind = new Wickra.Kvo(3, 7);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("Kvo", got);
}
[Fact]
public void Golden_KylesLambda()
{
using var ind = new Wickra.KylesLambda(20);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3], r[4], r[3] >= r[0], i, (r[1] + r[2]) / 2) });
}
Compare("KylesLambda", got);
}
[Fact]
public void Golden_LadderBottom()
{
using var ind = new Wickra.LadderBottom();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("LadderBottom", got);
}
[Fact]
public void Golden_LaguerreRsi()
{
using var ind = new Wickra.LaguerreRsi(0.5);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("LaguerreRsi", got);
}
[Fact]
public void Golden_LeadLagCrossCorrelation()
{
using var ind = new Wickra.LeadLagCrossCorrelation(20, 10);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenNullable(ind.Update(r[3], r[0]), 2));
}
Compare("LeadLagCrossCorrelation", got);
}
[Fact]
public void Golden_LinRegAngle()
{
using var ind = new Wickra.LinRegAngle(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("LinRegAngle", got);
}
[Fact]
public void Golden_LinRegChannel()
{
using var ind = new Wickra.LinRegChannel(14, 2.0);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenNullable(ind.Update(r[3]), 3));
}
Compare("LinRegChannel", got);
}
[Fact]
public void Golden_LinRegIntercept()
{
using var ind = new Wickra.LinRegIntercept(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("LinRegIntercept", got);
}
[Fact]
public void Golden_LinRegSlope()
{
using var ind = new Wickra.LinRegSlope(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("LinRegSlope", got);
}
[Fact]
public void Golden_LinearRegression()
{
using var ind = new Wickra.LinearRegression(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("LinearRegression", got);
}
[Fact]
public void Golden_LiquidationFeatures()
{
using var ind = new Wickra.LiquidationFeatures();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
var d = DerivFields(r);
got.Add(FlattenNullable(ind.Update(d[0], d[1], d[2], d[3], d[4], d[5], d[6], d[7], d[8], d[9], d[10], i), 5));
}
Compare("LiquidationFeatures", got);
}
[Fact]
public void Golden_LogReturn()
{
using var ind = new Wickra.LogReturn(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("LogReturn", got);
}
[Fact]
public void Golden_LongLeggedDoji()
{
using var ind = new Wickra.LongLeggedDoji();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("LongLeggedDoji", got);
}
[Fact]
public void Golden_LongLine()
{
using var ind = new Wickra.LongLine();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("LongLine", got);
}
[Fact]
public void Golden_LongShortRatio()
{
using var ind = new Wickra.LongShortRatio();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
var d = DerivFields(r);
got.Add(new[] { ind.Update(d[0], d[1], d[2], d[3], d[4], d[5], d[6], d[7], d[8], d[9], d[10], i) });
}
Compare("LongShortRatio", got);
}
[Fact]
public void Golden_M2Measure()
{
using var ind = new Wickra.M2Measure(14, 2.0, 0.5);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("M2Measure", got);
}
[Fact]
public void Golden_MaEnvelope()
{
using var ind = new Wickra.MaEnvelope(14, 2.0);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenNullable(ind.Update(r[3]), 3));
}
Compare("MaEnvelope", got);
}
[Fact]
public void Golden_MacdExt()
{
using var ind = new Wickra.MacdExt(12, (byte)0, 26, (byte)0, 9, (byte)0);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenNullable(ind.Update(r[3]), 3));
}
Compare("MacdExt", got);
}
[Fact]
public void Golden_MacdFix()
{
using var ind = new Wickra.MacdFix(9);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenNullable(ind.Update(r[3]), 3));
}
Compare("MacdFix", got);
}
[Fact]
public void Golden_MacdHistogram()
{
using var ind = new Wickra.MacdHistogram(3, 7, 14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("MacdHistogram", got);
}
[Fact]
public void Golden_MacdIndicator()
{
using var ind = new Wickra.MacdIndicator(12, 26, 9);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenNullable(ind.Update(r[3]), 3));
}
Compare("MacdIndicator", got);
}
[Fact]
public void Golden_Mama()
{
using var ind = new Wickra.Mama(0.5, 0.05);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenNullable(ind.Update(r[3]), 2));
}
Compare("Mama", got);
}
[Fact]
public void Golden_MarketFacilitationIndex()
{
using var ind = new Wickra.MarketFacilitationIndex();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("MarketFacilitationIndex", got);
}
[Fact]
public void Golden_MartinRatio()
{
using var ind = new Wickra.MartinRatio(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("MartinRatio", got);
}
[Fact]
public void Golden_Marubozu()
{
using var ind = new Wickra.Marubozu();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("Marubozu", got);
}
[Fact]
public void Golden_MassIndex()
{
using var ind = new Wickra.MassIndex(3, 7);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("MassIndex", got);
}
[Fact]
public void Golden_MatHold()
{
using var ind = new Wickra.MatHold();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("MatHold", got);
}
[Fact]
public void Golden_MatchingLow()
{
using var ind = new Wickra.MatchingLow();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("MatchingLow", got);
}
[Fact]
public void Golden_MaxDrawdown()
{
using var ind = new Wickra.MaxDrawdown(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("MaxDrawdown", got);
}
[Fact]
public void Golden_McClellanOscillator()
{
using var ind = new Wickra.McClellanOscillator();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
var (ch, vo, nh, nl, am, ob) = CrossLists(r);
got.Add(new[] { ind.Update(ch, vo, nh, nl, am, ob, i) });
}
Compare("McClellanOscillator", got);
}
[Fact]
public void Golden_McClellanSummationIndex()
{
using var ind = new Wickra.McClellanSummationIndex();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
var (ch, vo, nh, nl, am, ob) = CrossLists(r);
got.Add(new[] { ind.Update(ch, vo, nh, nl, am, ob, i) });
}
Compare("McClellanSummationIndex", got);
}
[Fact]
public void Golden_McGinleyDynamic()
{
using var ind = new Wickra.McGinleyDynamic(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("McGinleyDynamic", got);
}
[Fact]
public void Golden_MedianAbsoluteDeviation()
{
using var ind = new Wickra.MedianAbsoluteDeviation(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("MedianAbsoluteDeviation", got);
}
[Fact]
public void Golden_MedianChannel()
{
using var ind = new Wickra.MedianChannel(14, 2.0);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenNullable(ind.Update(r[3]), 3));
}
Compare("MedianChannel", got);
}
[Fact]
public void Golden_MedianMa()
{
using var ind = new Wickra.MedianMa(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("MedianMa", got);
}
[Fact]
public void Golden_MedianPrice()
{
using var ind = new Wickra.MedianPrice();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("MedianPrice", got);
}
[Fact]
public void Golden_Mfi()
{
using var ind = new Wickra.Mfi(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("Mfi", got);
}
[Fact]
public void Golden_Microprice()
{
using var ind = new Wickra.Microprice();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
var (bp, bs, ap, asz) = ObLists(r);
got.Add(new[] { ind.Update(bp, bs, ap, asz) });
}
Compare("Microprice", got);
}
[Fact]
public void Golden_MidPoint()
{
using var ind = new Wickra.MidPoint(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("MidPoint", got);
}
[Fact]
public void Golden_MidPrice()
{
using var ind = new Wickra.MidPrice(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("MidPrice", got);
}
[Fact]
public void Golden_MinusDi()
{
using var ind = new Wickra.MinusDi(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("MinusDi", got);
}
[Fact]
public void Golden_MinusDm()
{
using var ind = new Wickra.MinusDm(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("MinusDm", got);
}
[Fact]
public void Golden_ModifiedMaStop()
{
using var ind = new Wickra.ModifiedMaStop(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenNullable(ind.Update(r[0], r[1], r[2], r[3], r[4], i), 2));
}
Compare("ModifiedMaStop", got);
}
[Fact]
public void Golden_Mom()
{
using var ind = new Wickra.Mom(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("Mom", got);
}
[Fact]
public void Golden_MorningDojiStar()
{
using var ind = new Wickra.MorningDojiStar();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("MorningDojiStar", got);
}
[Fact]
public void Golden_MorningEveningStar()
{
using var ind = new Wickra.MorningEveningStar();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("MorningEveningStar", got);
}
[Fact]
public void Golden_MurreyMathLines()
{
using var ind = new Wickra.MurreyMathLines(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenNullable(ind.Update(r[0], r[1], r[2], r[3], r[4], i), 9));
}
Compare("MurreyMathLines", got);
}
[Fact]
public void Golden_NakedPoc()
{
using var ind = new Wickra.NakedPoc(3, 7);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("NakedPoc", got);
}
[Fact]
public void Golden_Natr()
{
using var ind = new Wickra.Natr(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("Natr", got);
}
[Fact]
public void Golden_NewHighsNewLows()
{
using var ind = new Wickra.NewHighsNewLows();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
var (ch, vo, nh, nl, am, ob) = CrossLists(r);
got.Add(new[] { ind.Update(ch, vo, nh, nl, am, ob, i) });
}
Compare("NewHighsNewLows", got);
}
[Fact]
public void Golden_NewPriceLines()
{
using var ind = new Wickra.NewPriceLines(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("NewPriceLines", got);
}
[Fact]
public void Golden_Nrtr()
{
using var ind = new Wickra.Nrtr(2.0);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenNullable(ind.Update(r[0], r[1], r[2], r[3], r[4], i), 2));
}
Compare("Nrtr", got);
}
[Fact]
public void Golden_Nvi()
{
using var ind = new Wickra.Nvi();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("Nvi", got);
}
[Fact]
public void Golden_OIPriceDivergence()
{
using var ind = new Wickra.OIPriceDivergence(20);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
var d = DerivFields(r);
got.Add(new[] { ind.Update(d[0], d[1], d[2], d[3], d[4], d[5], d[6], d[7], d[8], d[9], d[10], i) });
}
Compare("OIPriceDivergence", got);
}
[Fact]
public void Golden_OIWeighted()
{
using var ind = new Wickra.OIWeighted();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
var d = DerivFields(r);
got.Add(new[] { ind.Update(d[0], d[1], d[2], d[3], d[4], d[5], d[6], d[7], d[8], d[9], d[10], i) });
}
Compare("OIWeighted", got);
}
[Fact]
public void Golden_Obv()
{
using var ind = new Wickra.Obv();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("Obv", got);
}
[Fact]
public void Golden_OiToVolumeRatio()
{
using var ind = new Wickra.OiToVolumeRatio();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
var d = DerivFields(r);
got.Add(new[] { ind.Update(d[0], d[1], d[2], d[3], d[4], d[5], d[6], d[7], d[8], d[9], d[10], i) });
}
Compare("OiToVolumeRatio", got);
}
[Fact]
public void Golden_OmegaRatio()
{
using var ind = new Wickra.OmegaRatio(14, 2.0);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("OmegaRatio", got);
}
[Fact]
public void Golden_OnNeck()
{
using var ind = new Wickra.OnNeck();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("OnNeck", got);
}
[Fact]
public void Golden_OpenInterestDelta()
{
using var ind = new Wickra.OpenInterestDelta();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
var d = DerivFields(r);
got.Add(new[] { ind.Update(d[0], d[1], d[2], d[3], d[4], d[5], d[6], d[7], d[8], d[9], d[10], i) });
}
Compare("OpenInterestDelta", got);
}
[Fact]
public void Golden_OpenInterestMomentum()
{
using var ind = new Wickra.OpenInterestMomentum(10);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
var d = DerivFields(r);
got.Add(new[] { ind.Update(d[0], d[1], d[2], d[3], d[4], d[5], d[6], d[7], d[8], d[9], d[10], i) });
}
Compare("OpenInterestMomentum", got);
}
[Fact]
public void Golden_OpeningMarubozu()
{
using var ind = new Wickra.OpeningMarubozu();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("OpeningMarubozu", got);
}
[Fact]
public void Golden_OpeningRange()
{
using var ind = new Wickra.OpeningRange(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenNullable(ind.Update(r[0], r[1], r[2], r[3], r[4], i), 3));
}
Compare("OpeningRange", got);
}
[Fact]
public void Golden_OrderBookImbalanceFull()
{
using var ind = new Wickra.OrderBookImbalanceFull();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
var (bp, bs, ap, asz) = ObLists(r);
got.Add(new[] { ind.Update(bp, bs, ap, asz) });
}
Compare("OrderBookImbalanceFull", got);
}
[Fact]
public void Golden_OrderBookImbalanceTop1()
{
using var ind = new Wickra.OrderBookImbalanceTop1();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
var (bp, bs, ap, asz) = ObLists(r);
got.Add(new[] { ind.Update(bp, bs, ap, asz) });
}
Compare("OrderBookImbalanceTop1", got);
}
[Fact]
public void Golden_OrderBookImbalanceTopN()
{
using var ind = new Wickra.OrderBookImbalanceTopN(5);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
var (bp, bs, ap, asz) = ObLists(r);
got.Add(new[] { ind.Update(bp, bs, ap, asz) });
}
Compare("OrderBookImbalanceTopN", got);
}
[Fact]
public void Golden_OrderFlowImbalance()
{
using var ind = new Wickra.OrderFlowImbalance(20);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
var (bp, bs, ap, asz) = ObLists(r);
got.Add(new[] { ind.Update(bp, bs, ap, asz) });
}
Compare("OrderFlowImbalance", got);
}
[Fact]
public void Golden_OuHalfLife()
{
using var ind = new Wickra.OuHalfLife(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3], r[0]) });
}
Compare("OuHalfLife", got);
}
[Fact]
public void Golden_OvernightGap()
{
using var ind = new Wickra.OvernightGap(0);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("OvernightGap", got);
}
[Fact]
public void Golden_OvernightIntradayReturn()
{
using var ind = new Wickra.OvernightIntradayReturn(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenNullable(ind.Update(r[0], r[1], r[2], r[3], r[4], i), 2));
}
Compare("OvernightIntradayReturn", got);
}
[Fact]
public void Golden_PainIndex()
{
using var ind = new Wickra.PainIndex(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("PainIndex", got);
}
[Fact]
public void Golden_PairSpreadZScore()
{
using var ind = new Wickra.PairSpreadZScore(20, 20);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3], r[0]) });
}
Compare("PairSpreadZScore", got);
}
[Fact]
public void Golden_PairwiseBeta()
{
using var ind = new Wickra.PairwiseBeta(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3], r[0]) });
}
Compare("PairwiseBeta", got);
}
[Fact]
public void Golden_ParkinsonVolatility()
{
using var ind = new Wickra.ParkinsonVolatility(20, 252);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("ParkinsonVolatility", got);
}
[Fact]
public void Golden_PearsonCorrelation()
{
using var ind = new Wickra.PearsonCorrelation(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3], r[0]) });
}
Compare("PearsonCorrelation", got);
}
[Fact]
public void Golden_PercentAboveMa()
{
using var ind = new Wickra.PercentAboveMa();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
var (ch, vo, nh, nl, am, ob) = CrossLists(r);
got.Add(new[] { ind.Update(ch, vo, nh, nl, am, ob, i) });
}
Compare("PercentAboveMa", got);
}
[Fact]
public void Golden_PercentB()
{
using var ind = new Wickra.PercentB(14, 2.0);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("PercentB", got);
}
[Fact]
public void Golden_PercentageTrailingStop()
{
using var ind = new Wickra.PercentageTrailingStop(2.0);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("PercentageTrailingStop", got);
}
[Fact]
public void Golden_PerpetualPremiumIndex()
{
using var ind = new Wickra.PerpetualPremiumIndex();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
var d = DerivFields(r);
got.Add(new[] { ind.Update(d[0], d[1], d[2], d[3], d[4], d[5], d[6], d[7], d[8], d[9], d[10], i) });
}
Compare("PerpetualPremiumIndex", got);
}
[Fact]
public void Golden_Pgo()
{
using var ind = new Wickra.Pgo(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("Pgo", got);
}
[Fact]
public void Golden_PiercingDarkCloud()
{
using var ind = new Wickra.PiercingDarkCloud();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("PiercingDarkCloud", got);
}
[Fact]
public void Golden_Pin()
{
using var ind = new Wickra.Pin(20);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3], r[4], r[3] >= r[0], i) });
}
Compare("Pin", got);
}
[Fact]
public void Golden_PivotReversal()
{
using var ind = new Wickra.PivotReversal(3, 7);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("PivotReversal", got);
}
[Fact]
public void Golden_PlusDi()
{
using var ind = new Wickra.PlusDi(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("PlusDi", got);
}
[Fact]
public void Golden_PlusDm()
{
using var ind = new Wickra.PlusDm(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("PlusDm", got);
}
[Fact]
public void Golden_Pmo()
{
using var ind = new Wickra.Pmo(3, 7);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("Pmo", got);
}
[Fact]
public void Golden_PointAndFigureBars()
{
using var ind = new Wickra.PointAndFigureBars(2.0, 3);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenBars(ind.Update(r[3], r[3], r[3], r[3], 1.0, 0)));
}
Compare("PointAndFigureBars", got);
}
[Fact]
public void Golden_PolarizedFractalEfficiency()
{
using var ind = new Wickra.PolarizedFractalEfficiency(10, 5);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("PolarizedFractalEfficiency", got);
}
[Fact]
public void Golden_Ppo()
{
using var ind = new Wickra.Ppo(3, 7);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("Ppo", got);
}
[Fact]
public void Golden_PpoHistogram()
{
using var ind = new Wickra.PpoHistogram(3, 7, 14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("PpoHistogram", got);
}
[Fact]
public void Golden_ProfileShape()
{
using var ind = new Wickra.ProfileShape(3, 7);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("ProfileShape", got);
}
[Fact]
public void Golden_ProfitFactor()
{
using var ind = new Wickra.ProfitFactor(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("ProfitFactor", got);
}
[Fact]
public void Golden_ProjectionBands()
{
using var ind = new Wickra.ProjectionBands(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenNullable(ind.Update(r[0], r[1], r[2], r[3], r[4], i), 3));
}
Compare("ProjectionBands", got);
}
[Fact]
public void Golden_ProjectionOscillator()
{
using var ind = new Wickra.ProjectionOscillator(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("ProjectionOscillator", got);
}
[Fact]
public void Golden_Psar()
{
using var ind = new Wickra.Psar(0.02, 0.02, 0.2);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("Psar", got);
}
[Fact]
public void Golden_Pvi()
{
using var ind = new Wickra.Pvi();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("Pvi", got);
}
[Fact]
public void Golden_Qqe()
{
using var ind = new Wickra.Qqe(3, 7, 2.0);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenNullable(ind.Update(r[3]), 2));
}
Compare("Qqe", got);
}
[Fact]
public void Golden_Qstick()
{
using var ind = new Wickra.Qstick(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("Qstick", got);
}
[Fact]
public void Golden_QuartileBands()
{
using var ind = new Wickra.QuartileBands(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenNullable(ind.Update(r[3]), 3));
}
Compare("QuartileBands", got);
}
[Fact]
public void Golden_QuotedSpread()
{
using var ind = new Wickra.QuotedSpread();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
var (bp, bs, ap, asz) = ObLists(r);
got.Add(new[] { ind.Update(bp, bs, ap, asz) });
}
Compare("QuotedSpread", got);
}
[Fact]
public void Golden_RSquared()
{
using var ind = new Wickra.RSquared(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("RSquared", got);
}
[Fact]
public void Golden_RangeBars()
{
using var ind = new Wickra.RangeBars(2.0);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenBars(ind.Update(r[3], r[3], r[3], r[3], 1.0, 0)));
}
Compare("RangeBars", got);
}
[Fact]
public void Golden_RealizedSpread()
{
using var ind = new Wickra.RealizedSpread(20);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3], r[4], r[3] >= r[0], i, (r[1] + r[2]) / 2) });
}
Compare("RealizedSpread", got);
}
[Fact]
public void Golden_RealizedVolatility()
{
using var ind = new Wickra.RealizedVolatility(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("RealizedVolatility", got);
}
[Fact]
public void Golden_RecoveryFactor()
{
using var ind = new Wickra.RecoveryFactor();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("RecoveryFactor", got);
}
[Fact]
public void Golden_RectangleRange()
{
using var ind = new Wickra.RectangleRange();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("RectangleRange", got);
}
[Fact]
public void Golden_Reflex()
{
using var ind = new Wickra.Reflex(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("Reflex", got);
}
[Fact]
public void Golden_RegimeLabel()
{
using var ind = new Wickra.RegimeLabel(3, 7);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("RegimeLabel", got);
}
[Fact]
public void Golden_RelativeStrengthAB()
{
using var ind = new Wickra.RelativeStrengthAB(14, 14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenNullable(ind.Update(r[3], r[0]), 3));
}
Compare("RelativeStrengthAB", got);
}
[Fact]
public void Golden_RenkoBars()
{
using var ind = new Wickra.RenkoBars(2.0);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenBars(ind.Update(r[3], r[3], r[3], r[3], 1.0, 0)));
}
Compare("RenkoBars", got);
}
[Fact]
public void Golden_RenkoTrailingStop()
{
using var ind = new Wickra.RenkoTrailingStop(2.0);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("RenkoTrailingStop", got);
}
[Fact]
public void Golden_RickshawMan()
{
using var ind = new Wickra.RickshawMan();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("RickshawMan", got);
}
[Fact]
public void Golden_RisingThreeMethods()
{
using var ind = new Wickra.RisingThreeMethods();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("RisingThreeMethods", got);
}
[Fact]
public void Golden_Rmi()
{
using var ind = new Wickra.Rmi(3, 7);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("Rmi", got);
}
[Fact]
public void Golden_Roc()
{
using var ind = new Wickra.Roc(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("Roc", got);
}
[Fact]
public void Golden_Rocp()
{
using var ind = new Wickra.Rocp(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("Rocp", got);
}
[Fact]
public void Golden_Rocr()
{
using var ind = new Wickra.Rocr(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("Rocr", got);
}
[Fact]
public void Golden_Rocr100()
{
using var ind = new Wickra.Rocr100(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("Rocr100", got);
}
[Fact]
public void Golden_RogersSatchellVolatility()
{
using var ind = new Wickra.RogersSatchellVolatility(20, 252);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("RogersSatchellVolatility", got);
}
[Fact]
public void Golden_RollMeasure()
{
using var ind = new Wickra.RollMeasure(20);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3], r[4], r[3] >= r[0], i) });
}
Compare("RollMeasure", got);
}
[Fact]
public void Golden_RollingCorrelation()
{
using var ind = new Wickra.RollingCorrelation(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3], r[0]) });
}
Compare("RollingCorrelation", got);
}
[Fact]
public void Golden_RollingCovariance()
{
using var ind = new Wickra.RollingCovariance(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3], r[0]) });
}
Compare("RollingCovariance", got);
}
[Fact]
public void Golden_RollingIqr()
{
using var ind = new Wickra.RollingIqr(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("RollingIqr", got);
}
[Fact]
public void Golden_RollingMinMaxScaler()
{
using var ind = new Wickra.RollingMinMaxScaler(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("RollingMinMaxScaler", got);
}
[Fact]
public void Golden_RollingPercentileRank()
{
using var ind = new Wickra.RollingPercentileRank(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("RollingPercentileRank", got);
}
[Fact]
public void Golden_RollingQuantile()
{
using var ind = new Wickra.RollingQuantile(20, 0.5);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("RollingQuantile", got);
}
[Fact]
public void Golden_RollingVwap()
{
using var ind = new Wickra.RollingVwap(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("RollingVwap", got);
}
[Fact]
public void Golden_RoofingFilter()
{
using var ind = new Wickra.RoofingFilter(3, 7);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("RoofingFilter", got);
}
[Fact]
public void Golden_Rsi()
{
using var ind = new Wickra.Rsi(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("Rsi", got);
}
[Fact]
public void Golden_Rsx()
{
using var ind = new Wickra.Rsx(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("Rsx", got);
}
[Fact]
public void Golden_RunBars()
{
using var ind = new Wickra.RunBars(3);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenBars(ind.Update(r[0], r[1], r[2], r[3], 1.0, 0)));
}
Compare("RunBars", got);
}
[Fact]
public void Golden_Rvi()
{
using var ind = new Wickra.Rvi(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("Rvi", got);
}
[Fact]
public void Golden_RviVolatility()
{
using var ind = new Wickra.RviVolatility(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("RviVolatility", got);
}
[Fact]
public void Golden_Rwi()
{
using var ind = new Wickra.Rwi(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenNullable(ind.Update(r[0], r[1], r[2], r[3], r[4], i), 2));
}
Compare("Rwi", got);
}
[Fact]
public void Golden_SampleEntropy()
{
using var ind = new Wickra.SampleEntropy(20, 2, 0.2);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("SampleEntropy", got);
}
[Fact]
public void Golden_SarExt()
{
using var ind = new Wickra.SarExt(2.0, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("SarExt", got);
}
[Fact]
public void Golden_SeasonalZScore()
{
using var ind = new Wickra.SeasonalZScore(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("SeasonalZScore", got);
}
[Fact]
public void Golden_SeparatingLines()
{
using var ind = new Wickra.SeparatingLines();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("SeparatingLines", got);
}
[Fact]
public void Golden_SessionHighLow()
{
using var ind = new Wickra.SessionHighLow(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenNullable(ind.Update(r[0], r[1], r[2], r[3], r[4], i), 2));
}
Compare("SessionHighLow", got);
}
[Fact]
public void Golden_SessionRange()
{
using var ind = new Wickra.SessionRange(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenNullable(ind.Update(r[0], r[1], r[2], r[3], r[4], i), 3));
}
Compare("SessionRange", got);
}
[Fact]
public void Golden_SessionVwap()
{
using var ind = new Wickra.SessionVwap(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("SessionVwap", got);
}
[Fact]
public void Golden_ShannonEntropy()
{
using var ind = new Wickra.ShannonEntropy(3, 7);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("ShannonEntropy", got);
}
[Fact]
public void Golden_Shark()
{
using var ind = new Wickra.Shark();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("Shark", got);
}
[Fact]
public void Golden_SharpeRatio()
{
using var ind = new Wickra.SharpeRatio(14, 2.0);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("SharpeRatio", got);
}
[Fact]
public void Golden_ShootingStar()
{
using var ind = new Wickra.ShootingStar();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("ShootingStar", got);
}
[Fact]
public void Golden_ShortLine()
{
using var ind = new Wickra.ShortLine();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("ShortLine", got);
}
[Fact]
public void Golden_SignedVolume()
{
using var ind = new Wickra.SignedVolume();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3], r[4], r[3] >= r[0], i) });
}
Compare("SignedVolume", got);
}
[Fact]
public void Golden_SineWave()
{
using var ind = new Wickra.SineWave();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("SineWave", got);
}
[Fact]
public void Golden_SineWeightedMa()
{
using var ind = new Wickra.SineWeightedMa(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("SineWeightedMa", got);
}
[Fact]
public void Golden_SinglePrints()
{
using var ind = new Wickra.SinglePrints(3, 7);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("SinglePrints", got);
}
[Fact]
public void Golden_Skewness()
{
using var ind = new Wickra.Skewness(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("Skewness", got);
}
[Fact]
public void Golden_Sma()
{
using var ind = new Wickra.Sma(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("Sma", got);
}
[Fact]
public void Golden_Smi()
{
using var ind = new Wickra.Smi(3, 7, 14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("Smi", got);
}
[Fact]
public void Golden_Smma()
{
using var ind = new Wickra.Smma(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("Smma", got);
}
[Fact]
public void Golden_SmoothedHeikinAshi()
{
using var ind = new Wickra.SmoothedHeikinAshi(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenNullable(ind.Update(r[0], r[1], r[2], r[3], r[4], i), 4));
}
Compare("SmoothedHeikinAshi", got);
}
[Fact]
public void Golden_SortinoRatio()
{
using var ind = new Wickra.SortinoRatio(14, 2.0);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("SortinoRatio", got);
}
[Fact]
public void Golden_SpearmanCorrelation()
{
using var ind = new Wickra.SpearmanCorrelation(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3], r[0]) });
}
Compare("SpearmanCorrelation", got);
}
[Fact]
public void Golden_SpinningTop()
{
using var ind = new Wickra.SpinningTop();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("SpinningTop", got);
}
[Fact]
public void Golden_SpreadAr1Coefficient()
{
using var ind = new Wickra.SpreadAr1Coefficient(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3], r[0]) });
}
Compare("SpreadAr1Coefficient", got);
}
[Fact]
public void Golden_SpreadBollingerBands()
{
using var ind = new Wickra.SpreadBollingerBands(14, 2.0);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenNullable(ind.Update(r[3], r[0]), 4));
}
Compare("SpreadBollingerBands", got);
}
[Fact]
public void Golden_SpreadHurst()
{
using var ind = new Wickra.SpreadHurst(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3], r[0]) });
}
Compare("SpreadHurst", got);
}
[Fact]
public void Golden_StalledPattern()
{
using var ind = new Wickra.StalledPattern();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("StalledPattern", got);
}
[Fact]
public void Golden_StandardError()
{
using var ind = new Wickra.StandardError(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("StandardError", got);
}
[Fact]
public void Golden_StandardErrorBands()
{
using var ind = new Wickra.StandardErrorBands(14, 2.0);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenNullable(ind.Update(r[3]), 3));
}
Compare("StandardErrorBands", got);
}
[Fact]
public void Golden_StarcBands()
{
using var ind = new Wickra.StarcBands(3, 7, 2.0);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenNullable(ind.Update(r[0], r[1], r[2], r[3], r[4], i), 3));
}
Compare("StarcBands", got);
}
[Fact]
public void Golden_Stc()
{
using var ind = new Wickra.Stc(10, 23, 10, 0.5);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("Stc", got);
}
[Fact]
public void Golden_StdDev()
{
using var ind = new Wickra.StdDev(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("StdDev", got);
}
[Fact]
public void Golden_StepTrailingStop()
{
using var ind = new Wickra.StepTrailingStop(2.0);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("StepTrailingStop", got);
}
[Fact]
public void Golden_SterlingRatio()
{
using var ind = new Wickra.SterlingRatio(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("SterlingRatio", got);
}
[Fact]
public void Golden_StickSandwich()
{
using var ind = new Wickra.StickSandwich();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("StickSandwich", got);
}
[Fact]
public void Golden_StochRsi()
{
using var ind = new Wickra.StochRsi(3, 7);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("StochRsi", got);
}
[Fact]
public void Golden_Stochastic()
{
using var ind = new Wickra.Stochastic(3, 7);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenNullable(ind.Update(r[0], r[1], r[2], r[3], r[4], i), 2));
}
Compare("Stochastic", got);
}
[Fact]
public void Golden_StochasticCci()
{
using var ind = new Wickra.StochasticCci(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("StochasticCci", got);
}
[Fact]
public void Golden_SuperSmoother()
{
using var ind = new Wickra.SuperSmoother(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("SuperSmoother", got);
}
[Fact]
public void Golden_SuperTrend()
{
using var ind = new Wickra.SuperTrend(14, 2.0);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenNullable(ind.Update(r[0], r[1], r[2], r[3], r[4], i), 2));
}
Compare("SuperTrend", got);
}
[Fact]
public void Golden_T3()
{
using var ind = new Wickra.T3(5, 0.7);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("T3", got);
}
[Fact]
public void Golden_TailRatio()
{
using var ind = new Wickra.TailRatio(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("TailRatio", got);
}
[Fact]
public void Golden_TakerBuySellRatio()
{
using var ind = new Wickra.TakerBuySellRatio();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
var d = DerivFields(r);
got.Add(new[] { ind.Update(d[0], d[1], d[2], d[3], d[4], d[5], d[6], d[7], d[8], d[9], d[10], i) });
}
Compare("TakerBuySellRatio", got);
}
[Fact]
public void Golden_Takuri()
{
using var ind = new Wickra.Takuri();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("Takuri", got);
}
[Fact]
public void Golden_TasukiGap()
{
using var ind = new Wickra.TasukiGap();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("TasukiGap", got);
}
[Fact]
public void Golden_TdCamouflage()
{
using var ind = new Wickra.TdCamouflage();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("TdCamouflage", got);
}
[Fact]
public void Golden_TdClop()
{
using var ind = new Wickra.TdClop();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("TdClop", got);
}
[Fact]
public void Golden_TdClopwin()
{
using var ind = new Wickra.TdClopwin();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("TdClopwin", got);
}
[Fact]
public void Golden_TdCombo()
{
using var ind = new Wickra.TdCombo(3, 7, 14, 28);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("TdCombo", got);
}
[Fact]
public void Golden_TdCountdown()
{
using var ind = new Wickra.TdCountdown(3, 7, 14, 28);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("TdCountdown", got);
}
[Fact]
public void Golden_TdDWave()
{
using var ind = new Wickra.TdDWave(2);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("TdDWave", got);
}
[Fact]
public void Golden_TdDeMarker()
{
using var ind = new Wickra.TdDeMarker(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("TdDeMarker", got);
}
[Fact]
public void Golden_TdDifferential()
{
using var ind = new Wickra.TdDifferential();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("TdDifferential", got);
}
[Fact]
public void Golden_TdLines()
{
using var ind = new Wickra.TdLines(3, 7);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenNullable(ind.Update(r[0], r[1], r[2], r[3], r[4], i), 2));
}
Compare("TdLines", got);
}
[Fact]
public void Golden_TdMovingAverage()
{
using var ind = new Wickra.TdMovingAverage(3, 7);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenNullable(ind.Update(r[0], r[1], r[2], r[3], r[4], i), 2));
}
Compare("TdMovingAverage", got);
}
[Fact]
public void Golden_TdOpen()
{
using var ind = new Wickra.TdOpen();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("TdOpen", got);
}
[Fact]
public void Golden_TdPressure()
{
using var ind = new Wickra.TdPressure(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("TdPressure", got);
}
[Fact]
public void Golden_TdPropulsion()
{
using var ind = new Wickra.TdPropulsion();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("TdPropulsion", got);
}
[Fact]
public void Golden_TdRangeProjection()
{
using var ind = new Wickra.TdRangeProjection();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenNullable(ind.Update(r[0], r[1], r[2], r[3], r[4], i), 2));
}
Compare("TdRangeProjection", got);
}
[Fact]
public void Golden_TdRei()
{
using var ind = new Wickra.TdRei(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("TdRei", got);
}
[Fact]
public void Golden_TdRiskLevel()
{
using var ind = new Wickra.TdRiskLevel(3, 7);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenNullable(ind.Update(r[0], r[1], r[2], r[3], r[4], i), 2));
}
Compare("TdRiskLevel", got);
}
[Fact]
public void Golden_TdSequential()
{
using var ind = new Wickra.TdSequential(3, 7, 14, 28);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenNullable(ind.Update(r[0], r[1], r[2], r[3], r[4], i), 3));
}
Compare("TdSequential", got);
}
[Fact]
public void Golden_TdSetup()
{
using var ind = new Wickra.TdSetup(3, 7);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("TdSetup", got);
}
[Fact]
public void Golden_TdTrap()
{
using var ind = new Wickra.TdTrap();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("TdTrap", got);
}
[Fact]
public void Golden_Tema()
{
using var ind = new Wickra.Tema(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("Tema", got);
}
[Fact]
public void Golden_TermStructureBasis()
{
using var ind = new Wickra.TermStructureBasis();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
var d = DerivFields(r);
got.Add(new[] { ind.Update(d[0], d[1], d[2], d[3], d[4], d[5], d[6], d[7], d[8], d[9], d[10], i) });
}
Compare("TermStructureBasis", got);
}
[Fact]
public void Golden_ThreeDrives()
{
using var ind = new Wickra.ThreeDrives();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("ThreeDrives", got);
}
[Fact]
public void Golden_ThreeInside()
{
using var ind = new Wickra.ThreeInside();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("ThreeInside", got);
}
[Fact]
public void Golden_ThreeLineBreak()
{
using var ind = new Wickra.ThreeLineBreak(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("ThreeLineBreak", got);
}
[Fact]
public void Golden_ThreeLineBreakBars()
{
using var ind = new Wickra.ThreeLineBreakBars(3);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenBars(ind.Update(r[3], r[3], r[3], r[3], 1.0, 0)));
}
Compare("ThreeLineBreakBars", got);
}
[Fact]
public void Golden_ThreeLineStrike()
{
using var ind = new Wickra.ThreeLineStrike();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("ThreeLineStrike", got);
}
[Fact]
public void Golden_ThreeOutside()
{
using var ind = new Wickra.ThreeOutside();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("ThreeOutside", got);
}
[Fact]
public void Golden_ThreeSoldiersOrCrows()
{
using var ind = new Wickra.ThreeSoldiersOrCrows();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("ThreeSoldiersOrCrows", got);
}
[Fact]
public void Golden_ThreeStarsInSouth()
{
using var ind = new Wickra.ThreeStarsInSouth();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("ThreeStarsInSouth", got);
}
[Fact]
public void Golden_Thrusting()
{
using var ind = new Wickra.Thrusting();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("Thrusting", got);
}
[Fact]
public void Golden_TickBars()
{
using var ind = new Wickra.TickBars(2);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenBars(ind.Update(r[0], r[1], r[2], r[3], r[4], 0)));
}
Compare("TickBars", got);
}
[Fact]
public void Golden_TickIndex()
{
using var ind = new Wickra.TickIndex();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
var (ch, vo, nh, nl, am, ob) = CrossLists(r);
got.Add(new[] { ind.Update(ch, vo, nh, nl, am, ob, i) });
}
Compare("TickIndex", got);
}
[Fact]
public void Golden_Tii()
{
using var ind = new Wickra.Tii(3, 7);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("Tii", got);
}
[Fact]
public void Golden_TimeBasedStop()
{
using var ind = new Wickra.TimeBasedStop(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("TimeBasedStop", got);
}
[Fact]
public void Golden_TimeOfDayReturnProfile()
{
using var ind = new Wickra.TimeOfDayReturnProfile(24, 0);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
var bins = ind.Update(r[0], r[1], r[2], r[3], r[4], i);
got.Add(bins ?? NanRow(24));
}
Compare("TimeOfDayReturnProfile", got);
}
[Fact]
public void Golden_TowerTopBottom()
{
using var ind = new Wickra.TowerTopBottom();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("TowerTopBottom", got);
}
[Fact]
public void Golden_TpoProfile()
{
using var ind = new Wickra.TpoProfile(30, 50);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenNullable(ind.Update(r[0], r[1], r[2], r[3], r[4], i), 52));
}
Compare("TpoProfile", got);
}
[Fact]
public void Golden_TradeImbalance()
{
using var ind = new Wickra.TradeImbalance(20);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3], r[4], r[3] >= r[0], i) });
}
Compare("TradeImbalance", got);
}
[Fact]
public void Golden_TradeSignAutocorrelation()
{
using var ind = new Wickra.TradeSignAutocorrelation(20);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3], r[4], r[3] >= r[0], i) });
}
Compare("TradeSignAutocorrelation", got);
}
[Fact]
public void Golden_TradeVolumeIndex()
{
using var ind = new Wickra.TradeVolumeIndex(2.0);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("TradeVolumeIndex", got);
}
[Fact]
public void Golden_TrendLabel()
{
using var ind = new Wickra.TrendLabel(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("TrendLabel", got);
}
[Fact]
public void Golden_TrendStrengthIndex()
{
using var ind = new Wickra.TrendStrengthIndex(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("TrendStrengthIndex", got);
}
[Fact]
public void Golden_Trendflex()
{
using var ind = new Wickra.Trendflex(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("Trendflex", got);
}
[Fact]
public void Golden_TreynorRatio()
{
using var ind = new Wickra.TreynorRatio(14, 2.0);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3], r[0]) });
}
Compare("TreynorRatio", got);
}
[Fact]
public void Golden_Triangle()
{
using var ind = new Wickra.Triangle();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("Triangle", got);
}
[Fact]
public void Golden_Trima()
{
using var ind = new Wickra.Trima(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("Trima", got);
}
[Fact]
public void Golden_Trin()
{
using var ind = new Wickra.Trin();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
var (ch, vo, nh, nl, am, ob) = CrossLists(r);
got.Add(new[] { ind.Update(ch, vo, nh, nl, am, ob, i) });
}
Compare("Trin", got);
}
[Fact]
public void Golden_TripleTopBottom()
{
using var ind = new Wickra.TripleTopBottom();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("TripleTopBottom", got);
}
[Fact]
public void Golden_Tristar()
{
using var ind = new Wickra.Tristar();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("Tristar", got);
}
[Fact]
public void Golden_Trix()
{
using var ind = new Wickra.Trix(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("Trix", got);
}
[Fact]
public void Golden_TrueRange()
{
using var ind = new Wickra.TrueRange();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("TrueRange", got);
}
[Fact]
public void Golden_Tsf()
{
using var ind = new Wickra.Tsf(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("Tsf", got);
}
[Fact]
public void Golden_TsfOscillator()
{
using var ind = new Wickra.TsfOscillator(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("TsfOscillator", got);
}
[Fact]
public void Golden_Tsi()
{
using var ind = new Wickra.Tsi(3, 7);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("Tsi", got);
}
[Fact]
public void Golden_Tsv()
{
using var ind = new Wickra.Tsv(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("Tsv", got);
}
[Fact]
public void Golden_TtmSqueeze()
{
using var ind = new Wickra.TtmSqueeze(14, 2.0, 0.5);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenNullable(ind.Update(r[0], r[1], r[2], r[3], r[4], i), 2));
}
Compare("TtmSqueeze", got);
}
[Fact]
public void Golden_TtmTrend()
{
using var ind = new Wickra.TtmTrend(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("TtmTrend", got);
}
[Fact]
public void Golden_TurnOfMonth()
{
using var ind = new Wickra.TurnOfMonth(3u, 3u, 0);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("TurnOfMonth", got);
}
[Fact]
public void Golden_Tweezer()
{
using var ind = new Wickra.Tweezer();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("Tweezer", got);
}
[Fact]
public void Golden_TwiggsMoneyFlow()
{
using var ind = new Wickra.TwiggsMoneyFlow(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("TwiggsMoneyFlow", got);
}
[Fact]
public void Golden_TwoCrows()
{
using var ind = new Wickra.TwoCrows();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("TwoCrows", got);
}
[Fact]
public void Golden_TypicalPrice()
{
using var ind = new Wickra.TypicalPrice();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("TypicalPrice", got);
}
[Fact]
public void Golden_UlcerIndex()
{
using var ind = new Wickra.UlcerIndex(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("UlcerIndex", got);
}
[Fact]
public void Golden_UltimateOscillator()
{
using var ind = new Wickra.UltimateOscillator(3, 7, 14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("UltimateOscillator", got);
}
[Fact]
public void Golden_UniqueThreeRiver()
{
using var ind = new Wickra.UniqueThreeRiver();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("UniqueThreeRiver", got);
}
[Fact]
public void Golden_UniversalOscillator()
{
using var ind = new Wickra.UniversalOscillator(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("UniversalOscillator", got);
}
[Fact]
public void Golden_UpDownVolumeRatio()
{
using var ind = new Wickra.UpDownVolumeRatio();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
var (ch, vo, nh, nl, am, ob) = CrossLists(r);
got.Add(new[] { ind.Update(ch, vo, nh, nl, am, ob, i) });
}
Compare("UpDownVolumeRatio", got);
}
[Fact]
public void Golden_UpsideGapThreeMethods()
{
using var ind = new Wickra.UpsideGapThreeMethods();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("UpsideGapThreeMethods", got);
}
[Fact]
public void Golden_UpsideGapTwoCrows()
{
using var ind = new Wickra.UpsideGapTwoCrows();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("UpsideGapTwoCrows", got);
}
[Fact]
public void Golden_UpsidePotentialRatio()
{
using var ind = new Wickra.UpsidePotentialRatio(14, 2.0);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("UpsidePotentialRatio", got);
}
[Fact]
public void Golden_ValueArea()
{
using var ind = new Wickra.ValueArea(20, 50, 0.7);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenNullable(ind.Update(r[0], r[1], r[2], r[3], r[4], i), 3));
}
Compare("ValueArea", got);
}
[Fact]
public void Golden_ValueAtRisk()
{
using var ind = new Wickra.ValueAtRisk(20, 0.95);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("ValueAtRisk", got);
}
[Fact]
public void Golden_Variance()
{
using var ind = new Wickra.Variance(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("Variance", got);
}
[Fact]
public void Golden_VarianceRatio()
{
using var ind = new Wickra.VarianceRatio(60, 2);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3], r[0]) });
}
Compare("VarianceRatio", got);
}
[Fact]
public void Golden_VerticalHorizontalFilter()
{
using var ind = new Wickra.VerticalHorizontalFilter(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("VerticalHorizontalFilter", got);
}
[Fact]
public void Golden_Vidya()
{
using var ind = new Wickra.Vidya(3, 7);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("Vidya", got);
}
[Fact]
public void Golden_VolatilityCone()
{
using var ind = new Wickra.VolatilityCone(3, 7);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenNullable(ind.Update(r[0], r[1], r[2], r[3], r[4], i), 5));
}
Compare("VolatilityCone", got);
}
[Fact]
public void Golden_VolatilityOfVolatility()
{
using var ind = new Wickra.VolatilityOfVolatility(3, 7);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("VolatilityOfVolatility", got);
}
[Fact]
public void Golden_VolatilityRatio()
{
using var ind = new Wickra.VolatilityRatio(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("VolatilityRatio", got);
}
[Fact]
public void Golden_VoltyStop()
{
using var ind = new Wickra.VoltyStop(14, 2.0);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("VoltyStop", got);
}
[Fact]
public void Golden_VolumeBars()
{
using var ind = new Wickra.VolumeBars(500.0);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenBars(ind.Update(r[0], r[1], r[2], r[3], r[4], 0)));
}
Compare("VolumeBars", got);
}
[Fact]
public void Golden_VolumeByTimeProfile()
{
using var ind = new Wickra.VolumeByTimeProfile(24, 0);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
var bins = ind.Update(r[0], r[1], r[2], r[3], r[4], i);
got.Add(bins ?? NanRow(24));
}
Compare("VolumeByTimeProfile", got);
}
[Fact]
public void Golden_VolumeOscillator()
{
using var ind = new Wickra.VolumeOscillator(3, 7);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("VolumeOscillator", got);
}
[Fact]
public void Golden_VolumePriceTrend()
{
using var ind = new Wickra.VolumePriceTrend();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("VolumePriceTrend", got);
}
[Fact]
public void Golden_VolumeProfile()
{
using var ind = new Wickra.VolumeProfile(20, 50);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenNullable(ind.Update(r[0], r[1], r[2], r[3], r[4], i), 52));
}
Compare("VolumeProfile", got);
}
[Fact]
public void Golden_VolumeRsi()
{
using var ind = new Wickra.VolumeRsi(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("VolumeRsi", got);
}
[Fact]
public void Golden_VolumeWeightedMacd()
{
using var ind = new Wickra.VolumeWeightedMacd(3, 7, 14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenNullable(ind.Update(r[0], r[1], r[2], r[3], r[4], i), 3));
}
Compare("VolumeWeightedMacd", got);
}
[Fact]
public void Golden_VolumeWeightedSr()
{
using var ind = new Wickra.VolumeWeightedSr(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenNullable(ind.Update(r[0], r[1], r[2], r[3], r[4], i), 2));
}
Compare("VolumeWeightedSr", got);
}
[Fact]
public void Golden_Vortex()
{
using var ind = new Wickra.Vortex(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenNullable(ind.Update(r[0], r[1], r[2], r[3], r[4], i), 2));
}
Compare("Vortex", got);
}
[Fact]
public void Golden_Vpin()
{
using var ind = new Wickra.Vpin(5000.0, 10);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3], r[4], r[3] >= r[0], i) });
}
Compare("Vpin", got);
}
[Fact]
public void Golden_Vwap()
{
using var ind = new Wickra.Vwap();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("Vwap", got);
}
[Fact]
public void Golden_VwapStdDevBands()
{
using var ind = new Wickra.VwapStdDevBands(2.0);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenNullable(ind.Update(r[0], r[1], r[2], r[3], r[4], i), 4));
}
Compare("VwapStdDevBands", got);
}
[Fact]
public void Golden_Vwma()
{
using var ind = new Wickra.Vwma(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("Vwma", got);
}
[Fact]
public void Golden_Vzo()
{
using var ind = new Wickra.Vzo(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("Vzo", got);
}
[Fact]
public void Golden_Wad()
{
using var ind = new Wickra.Wad();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("Wad", got);
}
[Fact]
public void Golden_WavePm()
{
using var ind = new Wickra.WavePm(3, 7);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("WavePm", got);
}
[Fact]
public void Golden_WaveTrend()
{
using var ind = new Wickra.WaveTrend(3, 7, 14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenNullable(ind.Update(r[0], r[1], r[2], r[3], r[4], i), 2));
}
Compare("WaveTrend", got);
}
[Fact]
public void Golden_Wedge()
{
using var ind = new Wickra.Wedge();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("Wedge", got);
}
[Fact]
public void Golden_WeightedClose()
{
using var ind = new Wickra.WeightedClose();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("WeightedClose", got);
}
[Fact]
public void Golden_WickRatio()
{
using var ind = new Wickra.WickRatio();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("WickRatio", got);
}
[Fact]
public void Golden_WilliamsFractals()
{
using var ind = new Wickra.WilliamsFractals();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenNullable(ind.Update(r[0], r[1], r[2], r[3], r[4], i), 2));
}
Compare("WilliamsFractals", got);
}
[Fact]
public void Golden_WilliamsR()
{
using var ind = new Wickra.WilliamsR(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("WilliamsR", got);
}
[Fact]
public void Golden_WinRate()
{
using var ind = new Wickra.WinRate(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("WinRate", got);
}
[Fact]
public void Golden_Wma()
{
using var ind = new Wickra.Wma(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("Wma", got);
}
[Fact]
public void Golden_WoodiePivots()
{
using var ind = new Wickra.WoodiePivots();
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenNullable(ind.Update(r[0], r[1], r[2], r[3], r[4], i), 5));
}
Compare("WoodiePivots", got);
}
[Fact]
public void Golden_YangZhangVolatility()
{
using var ind = new Wickra.YangZhangVolatility(20, 252);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("YangZhangVolatility", got);
}
[Fact]
public void Golden_YoyoExit()
{
using var ind = new Wickra.YoyoExit(14, 2.0);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[0], r[1], r[2], r[3], r[4], i) });
}
Compare("YoyoExit", got);
}
[Fact]
public void Golden_ZScore()
{
using var ind = new Wickra.ZScore(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("ZScore", got);
}
[Fact]
public void Golden_ZeroLagMacd()
{
using var ind = new Wickra.ZeroLagMacd(3, 7, 14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenNullable(ind.Update(r[3]), 3));
}
Compare("ZeroLagMacd", got);
}
[Fact]
public void Golden_ZigZag()
{
using var ind = new Wickra.ZigZag(0.02);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(FlattenNullable(ind.Update(r[0], r[1], r[2], r[3], r[4], i), 2));
}
Compare("ZigZag", got);
}
[Fact]
public void Golden_Zlema()
{
using var ind = new Wickra.Zlema(14);
var got = new List<double[]>();
for (var i = 0; i < Rows.Length; i++)
{
var r = Rows[i];
got.Add(new[] { ind.Update(r[3]) });
}
Compare("Zlema", got);
}
}