public async Task CorrelationIdStaysTheSameAfterBloodyAsyncCalls() { var id = Correlation.GetId(); await Task.Delay(100); var id2 = Correlation.GetId(setIfNotThere: false); Assert.Equal(id, id2); }
public void TestCleanup() { ICallContext context = CallContextManagerInstance.CallContextOverride; ICallContext existingContext = context.ExistingCallContext(); Correlation.CorrelationEnd(); context.EndCallContext(); }
public void Correlation_constructor_test() { Correlation correlation = new Correlation(strategyHeader, date, value); Assert.AreEqual(strategyHeader, correlation.Strategy); Assert.AreEqual(strategyHeader.Id, correlation.StrategyId); Assert.AreEqual(date, correlation.DateTime); Assert.AreEqual(value, correlation.Value); }
public void SpearmanCorrelationTest() { var dataA = _data["lottery"].Data.Take(200); var dataB = _data["lew"].Data.Take(200); var corr = Correlation.Spearman(dataA, dataB); AssertHelpers.AlmostEqual(-0.0382856977898528, corr, 14); }
public void CorrelationStart_WithNullData_ShouldStartNewCorrelation() { Correlation = new Correlation(new MemoryCorrelationHandler(), CallContextManagerInstance, MachineInformation); Correlation.CorrelationStart(null); Assert.NotNull(Correlation.CurrentCorrelation); CallContextManagerInstance.CallContextOverride.EndCallContext(); }
/// <summary> /// End a request /// </summary> private void EndRequest() { ICallContext context = CallContextManagerInstance.CallContextOverride; ICallContext existingContext = context.ExistingCallContext(); Correlation.CorrelationEnd(); context.EndCallContext(); }
public void PearsonCorrelationTest() { var dataA = _data["lottery"].Data.Take(200); var dataB = _data["lew"].Data.Take(200); var corr = Correlation.Pearson(dataA, dataB); AssertHelpers.AlmostEqual(-0.029470861580726, corr, 14); }
// Executed when a new order has been created public PendingOrder RiskManagement(PendingOrder pendingOrder, AgentState state) { //Check if we have enough data if (!Agent.Bars[Agent.Security, (int)BarInterval.Day, -15].IsValid) { return(null); } //Check if we can calculate the correlation else if (!corr.ContainsKey(Agent.Security)) { return(null); } //Calculate correlation for each symbol var basevalues = new List <double>(); for (int i = 0; i < 15; i++) { basevalues.Add((double)Agent.Bars[Agent.Security, (int)BarInterval.Day, i].Close); } //Get all symbol data foreach (var symbol in corr.Keys.ToArray()) { var values = new List <double>(); for (int i = 0; i < 15; i++) { values.Add((double)Agent.Bars[symbol, (int)BarInterval.Day, i].Close); } //calculate correlation coeff corr[symbol] = Correlation.Pearson(basevalues.ToArray(), values.ToArray()); } //Get item with the highest corr var max = corr .Where(x => x.Key != pendingOrder.Order.Security) .Max(n => n.Value); var security = corr .Where(x => x.Value == max).FirstOrDefault().Key; //Remove old position if (lastsecurity != security && !Agent.Positions[security].IsFlat) { SubmitOrder(CreateOrder(lastsecurity.Name, Direction.Flat, Agent.Positions[security].FlatQuantity)); } //Return our current order lastsecurity = security; decimal quantity = pendingOrder.Order.Quantity * (arbitrage / 100M); quantity = quantity > 0.01M ? quantity : 0.01M; quantity += Math.Abs(Agent.Positions[security].FlatQuantity); return(CreateOrder(security.Name, pendingOrder.Order.Direction == Direction.Long ? Direction.Short : Direction.Long, quantity, 0, 0)); }
public void checkCorrelation(Evidence e2) { isCorrelating = false; if (e2 == null) { Debug.Log("Check Correlation WARNING: argument 'Evidence e2' is null!"); return; } Debug.Log("Concluding a correlation with " + e2.id); Evidence e1 = correlationPiece1; if (e1.id == e2.id) { GameObject.Find("DialogueName").GetComponent <Text>().text = "Correlation cancelled"; GameObject.Find("DialogueContent").GetComponent <Text>().text = ""; Debug.Log("Cancelling correlation"); return; } bool isValidCorrelation = false; // check if the static variable correlationPiece1 correlates with e2 // then repsond appropriately Correlation foundC = null; foreach (Correlation c in XMLRead.staticXMLR.validCorrelations) { if ((c.evidence0 == e1.id && c.evidence1 == e2.id) || (c.evidence0 == e2.id && c.evidence1 == e1.id)) { isValidCorrelation = true; foundC = c; break; } } Debug.Log("Valid correlation?" + (isValidCorrelation ? "Yes" : "No")); GameObject.Find("DialogueName").GetComponent <Text>().text = isValidCorrelation ? "Correlation successful" : "Incorrect correlation"; GameObject.Find("DialogueContent").GetComponent <Text>().text = ""; if (isValidCorrelation) { // uIManager.changeFactionValue("police", 10); // uIManager.changeFactionValue("mob", 10); uIManager.changeFactionValue("stress", 10); GameData.AddID(foundC.id); } else { // uIManager.changeFactionValue("police", -10); // uIManager.changeFactionValue("mob", -10) uIManager.changeFactionValue("stress", -25); } }
public void Correlate() { if (SelectedSignalCorrelate1 != null && SelectedSignalCorrelate1.HasData() && SelectedSignalCorrelate2 != null && SelectedSignalCorrelate2.HasData()) { SampledSignal signal = new SampledSignal(); signal.PointsY = Correlation.ComputeSignal(SelectedSignalCorrelate1.PointsY, SelectedSignalCorrelate2.PointsY); signal.Name = $"({SelectedSignalCorrelate1.Name})C({SelectedSignalCorrelate2.Name})"; SignalCreator.AddSignal(signal); } }
public void PearsonCorrelationConsistentWithCovariance() { var dataA = _data["lottery"].Data.Take(200).ToArray(); var dataB = _data["lew"].Data.Take(200).ToArray(); var direct = Correlation.Pearson(dataA, dataB); var covariance = dataA.Covariance(dataB) / (dataA.StandardDeviation() * dataB.StandardDeviation()); AssertHelpers.AlmostEqual(covariance, direct, 14); }
public static double GetCorrelationBetween(TimeSeries ts1, TimeSeries ts2) { DateTime[] commonDomain = ts1.GetCommonDates(ts2) .OrderBy(date => date) .ToArray(); IEnumerable <double> x = commonDomain.Select(date => ts1[date]); IEnumerable <double> y = commonDomain.Select(date => ts2[date]); return(Correlation.Pearson(x, y)); }
private static double LogReturnsCorrelation(ReadOnlySpan <double> priceSims1Start, ReadOnlySpan <double> priceSims1End, ReadOnlySpan <double> priceSims2Start, ReadOnlySpan <double> priceSims2End) { Vector <double> logChanges1 = LogChange(priceSims1Start, priceSims1End); Vector <double> logChanges2 = LogChange(priceSims2Start, priceSims2End); double correlation = Correlation.Pearson(logChanges1, logChanges2); return(correlation); }
/// <summary> /// Adds correlation header *unless* the passed value is null (allows for easier use when chaining methods calls) /// </summary> /// <param name="correlation"></param> /// <returns></returns> public WebRequestBuilder WithCorrelation(Correlation correlation, bool setIfNull = true) { if (correlation != null || setIfNull) { _webRequest.Headers[CorrelationKey] = JsonConvert.SerializeObject(correlation, new JsonSerializerSettings { ContractResolver = new CamelCasePropertyNamesContractResolver() }); } return(this); }
public async Task CorrelationIdStaysTheSameAfterBloodyAsyncCallsAndPublishEtw() { var id = Correlation.GetId(); await Task.Delay(100); InstrumentationEventSource.Instance.WriteInstrumentationEvent("blah", "ff", 12, "gfg", id.ToString()); var id2 = Correlation.GetId(setIfNotThere: false); Assert.Equal(id, id2); }
public void ConstantWeightedPearsonCorrelationTest() { var dataA = _data["lottery"].Data.Take(200); var dataB = _data["lew"].Data.Take(200); var weights = Generate.Repeat(200, 2.0); var corr = Correlation.Pearson(dataA, dataB); var corr2 = Correlation.WeightedPearson(dataA, dataB, weights); AssertHelpers.AlmostEqual(corr, corr2, 14); }
/// <summary>Create a best-fit monic for the given points</summary> public static Monic FromLinearRegression(IList <v2> points) { var corr = new Correlation(); foreach (var pt in points) { corr.Add(pt.x, pt.y); } return(corr.LinearRegression); }
public void validateObviousData() { var axisX = new double[] { 1, 2, 3, 4, 5 }; var axisY = new double[] { 2, 4, 9, 16, 25 }; var correlationByPearsman = Correlation.Pearson(axisX, axisY); var correlationBySpearsman = Correlation.Spearman(axisX, axisY); Assert.IsTrue(correlationByPearsman > 0.9, $"Shitty library: pearsman validation failed"); Assert.IsTrue(correlationBySpearsman > 0.9, $"Shitty library: spearsman validation failed"); Warn.If(correlationByPearsman <0.9 && correlationByPearsman> 0.8, $"Better, but shitty, pearsman correlation"); Warn.If(correlationBySpearsman <0.9 && correlationBySpearsman> 0.8, $"Better, but shitty, spearsman correlation"); }
/// <summary> /// Called on each bar update event (incoming tick) /// </summary> protected override void OnBarUpdate() { if (CurrentBarArray[0] > 0 && CurrentBarArray[1] > 0 && CurrentBarArray[2] > 0) { if (BarsInProgress == 0) { CloseOfOne.Set(Closes[1][0]); CloseOfTwo.Set(Closes[2][0]); double SumOfOne = 0; int x = 0; while (x < CorrelPeriod) { SumOfOne = SumOfOne + CloseOfOne[x]; x = x + 1; } double SumOfTwo = 0; int y = 0; while (y < CorrelPeriod) { SumOfTwo = SumOfTwo + CloseOfTwo[y]; y = y + 1; } double SumOfOneSq = 0; int a = 0; while (a < CorrelPeriod) { SumOfOneSq = SumOfOneSq + (CloseOfOne[a] * CloseOfOne[a]); a = a + 1; } double SumOfTwoSq = 0; int b = 0; while (b < CorrelPeriod) { SumOfTwoSq = SumOfTwoSq + (CloseOfTwo[b] * CloseOfTwo[b]); b = b + 1; } double Product = 0; int z = 0; while (z < CorrelPeriod) { Product = Product + (CloseOfOne[z] * CloseOfTwo[z]); z = z + 1; } Correlation.Set(((CorrelPeriod * Product) - (SumOfOne * SumOfTwo)) / Math.Sqrt((((CorrelPeriod * SumOfOneSq) - (SumOfOne * SumOfOne)) * ((CorrelPeriod * SumOfTwoSq) - (SumOfTwo * SumOfTwo))))); } } }
public void Correlation_ToString_test() { Correlation correlation = new Correlation(strategyHeader, date, value); CultureInfo ci = CultureInfo.InvariantCulture; string expect = String.Format("Correlation: {0}, {1}, {2}", correlation.StrategyId, correlation.DateTime.ToString(ci), correlation.Value.ToString("0.0000", ci)); Assert.AreEqual(expect, correlation.ToString()); }
private Correlation <Vector2>[] getFilteredCorrespondances(Heap assoc) { int cnew = ((int)(assoc.Count * 100 * F)) / 100; Correlation <Vector2>[] ret = new Correlation <Vector2> [cnew]; for (int i = 0; i < cnew; i++) { ret[i] = (Correlation <Vector2>)assoc[assoc.Count - i - 1]; } return(ret); }
private void CountCorreletionInSeries() { for (int i = 0; i < AmountOfElements / 2; i++) { var coef = CountCorreletion(i); Correlation.Add(coef); if (CheckCoefOfCorr(i, coef) == 0) { IsCoefCorrSignificant = false; } } }
public void SampleTest() { //Variances and Means double[] Sdv = new double[2]; double[] Mean = new double[2]; for (int i = 0; i < 2; i++) { Sdv[i] = RandomVar(); Mean[i] = 5 * rnd.NextDouble(); } //Cross Variance double rho = 1.0 - RandomVar(); DensityLn <double[]> pdfLn = new DensityLn <double[]>(x => LogDen(x, Sdv, Mean, rho)); HybridMC Hybrid = new HybridMC(new double[2] { 0, 0 }, pdfLn, 10, 0.1, 1000); Hybrid.BurnInterval = 0; int SampleSize = 10000; double[][] Sample = Hybrid.Sample(SampleSize); double[][] NewSamples = ArrangeSamples(SampleSize, Sample); double[] Convergence = new double[2]; double[] SampleMean = new double[2]; double[] SampleSdv = new double[2]; for (int i = 0; i < 2; i++) { Convergence[i] = 1 / Math.Sqrt(MCMCDiagnostics.EffectiveSize(Sample, x => x[i])); DescriptiveStatistics Stats = new DescriptiveStatistics(NewSamples[i]); SampleMean[i] = Stats.Mean; SampleSdv[i] = Stats.StandardDeviation; } double SampleRho = Correlation.Pearson(NewSamples[0], NewSamples[1]); for (int i = 0; i < 2; i++) { string index = i.ToString(); Assert.AreEqual(Mean[i], SampleMean[i], 10 * Convergence[i], index + "Mean"); Assert.AreEqual(SampleSdv[i] * SampleSdv[i], Sdv[i] * Sdv[i], 10 * Convergence[i], index + "Standard Deviation"); } double ConvergenceRho = 1 / Math.Sqrt(MCMCDiagnostics.EffectiveSize(Sample, x => (x[0] - SampleMean[0]) * (x[1] - SampleMean[1]))); Assert.AreEqual(SampleRho * SampleSdv[0] * SampleSdv[1], rho * Sdv[0] * Sdv[1], 10 * ConvergenceRho, "Rho"); }
static void Main() { double [] a = new double [5] { 1, 2, 3, 4, 5 }; double [] b = new double [5] { 10, 9, 7, 5, 2 }; double rho = Correlation.Spearman(a, b); Console.WriteLine("Spearman Rho is {0}", rho); }
public void CurrentCorrelation_WithNoActiveCorrelation_ShouldReturnNull() { Correlation = new Correlation(new MemoryCorrelationHandler(), CallContextManagerInstance, MachineInformation); Correlation.CorrelationStart(new CorrelationData()); while (CallContextManagerInstance.CallContextHandler(MachineInformation).ExistingCallContext() != null) { CallContextManagerInstance.CallContextHandler(MachineInformation).EndCallContext(); } Assert.Null(Correlation.CurrentCorrelation); }
private static WorkflowRun CreateWorkflowRun(WorkflowRunTrigger trigger) { var correlation = new Correlation(BogusGenerator.Random.String().OrNull(BogusGenerator)).OrNull(BogusGenerator); var workflowRun = new WorkflowRun( name: BogusGenerator.Internet.DomainWord(), startTime: BogusGenerator.Date.Recent(), status: GenerateStatus(), error: BogusGenerator.Random.Bytes(10).OrNull(BogusGenerator), correlation: correlation, trigger: trigger); return(workflowRun); }
private static double PearsonR(SparseVector Vector_a, SparseVector Vector_b) { double correlation = Correlation.Pearson(Vector_a, Vector_b); if (double.IsNaN(correlation)) { // This means one of the row has 0 standard divation, // it does not correlate to anyone // so I assign the correlatino to be 0. however, strictly speaking, it should be left NaN correlation = 0; } return(correlation); }
public static double[] Test2() { var frame3 = Generators.InpulseSignal(1024, 128, 10); var frame2 = Generators.Sin(1024, 4, 1); var frame = Generators.Sin(1024, 64, 1); //for (var i = 0; i < frame.Length; i++) //{ // frame[i] += frame2[i];// + frame3[i]; //} var func = Correlation.AutoCorrelation(TableFunction.TableToFunction(frame, 1, 0, 1024), 1, 0, 1024); return(func); }
internal static double MeasureCorrelation(double[] totals, double[] goods) { if (totals.Length <= 1 || goods.Length <= 1) { return(0); } var result = Math.Round(Correlation.Pearson(totals, goods), 3); if (double.IsNaN(result)) { return(0); } return(result); }
private string GetCorrelation(Session currentSession) { var frametimes = currentSession.FrameTimes.Where((x, i) => !_session.AppMissed[i]); var displayChangedTimes = currentSession.DisplayTimes.Where((x, i) => !_session.AppMissed[i]); if (frametimes.Count() != displayChangedTimes.Count()) { return("NaN"); } var correlation = Correlation.Pearson(frametimes, displayChangedTimes); return(Math.Round(correlation * 100, 0).ToString(CultureInfo.InvariantCulture) + "%"); }