public double Update(double x, double y) { xData.Insert(x); yData.Insert(y); return(Value); }
public void CircularBuffer_InsertNotAtBack_IsRejected() { CircularBuffer <int> q = new CircularBuffer <int>(5) { 1, 2, 3, 4, 5 }; q.Insert(0, 13); }
public int Repeat(int times, int step) { for (var i = 1; i <= times; i++) { _buffer.StepForward(step); _buffer.Insert(i); } return(_buffer.ValueAt(_buffer.CurrentPosition + 1)); }
public void CircularBuffer_InsertAtBack_OverwritesOldElements() { CircularBuffer <int> q = new CircularBuffer <int>(5) { 1, 2, 3, 4, 5 }; q.Insert(5, 13); Assert.AreEqual(5, q.Count, "CircularBuffer should remember its items"); Assert.IsTrue(q.SequenceEqual(new[] { 2, 3, 4, 5, 13 }), "CircularBuffer should remember its items"); }
public void CircularBuffer_InsertAtBack_MaintainsOrder() { CircularBuffer <int> q = new CircularBuffer <int>(8) { 1, 2, 3, 4, 5 }; q.Insert(5, 13); Assert.AreEqual(6, q.Count, "CircularBuffer should remember its items"); Assert.IsTrue(q.SequenceEqual(new[] { 1, 2, 3, 4, 5, 13 }), "CircularBuffer should remember its items"); }
public static double[] GetSharpe(double[] prices, int numDaysReturns, bool useBPReturns, int SharpeWindow, int annualisationFactor, bool returnZScore, int ZWindow, bool exponentialSharpe) { double[] ret = CalculateReturns(prices, numDaysReturns, useBPReturns); int nRet = prices.Length; CircularBuffer <double> returns = new CircularBuffer <double>(SharpeWindow); CircularBuffer <double> sharpes = new CircularBuffer <double>(ZWindow); double decayFactor = 1 - 2.0 / (SharpeWindow + 1); EMA r_ema = new EMA(decayFactor); EWVol v_ema = new EWVol(decayFactor); for (int i = 0; i < nRet; ++i) { returns.Insert(ret[i]); if (returns.Full) { double sharpe = 0; if (!exponentialSharpe) { double r_t = (prices[i] - prices[i - SharpeWindow + 1]) / prices[i - SharpeWindow + 1] / SharpeWindow; sharpe = r_t / returns.SD() * Math.Sqrt(annualisationFactor); } else { r_ema.Update(ret[i]); v_ema.Update(ret[i]); sharpe = r_ema.Value / v_ema.Value * Math.Sqrt(annualisationFactor); } sharpes.Insert(sharpe); } } double[] r = new double[2]; r[0] = sharpes.Last(); r[1] = sharpes.Last() / sharpes.SD(); return(r); }
public void UpdateData(ReadOnlySpan <byte> data, uint ts) { DataLength = (uint)data.Length; data.CopyTo(this.data); Delta = ts - TimeStamp; DeltaBuffer.Insert(Delta); TimeStamp = ts; RaisePropertyChanged(nameof(TimeStamp)); RaisePropertyChanged(nameof(Data)); RaisePropertyChanged(nameof(DataLength)); RaisePropertyChanged(nameof(Delta)); uint elapsed = ts - lastPrintTime; if (elapsed >= TimeSpan.FromMilliseconds(500).TotalMilliseconds * 1000) { RaisePropertyChanged(nameof(SmoothDelta)); lastPrintTime = ts; } }
public void insert(int index, object item) { _buffer.Insert(index, item); }
public void Update(double r) { R_t.Insert(r); }
public void UsageExample() { // Create a buffer with a capacity of 5 items. var buffer = new CircularBuffer <long>(5); // Add three. foreach (var i in Enumerable.Range(1, 3)) { buffer.Enqueue(i); } Debug.WriteLine(buffer); // Capacity=5, Count=3, Buffer=[1,2,3] // Add three more. foreach (var i in Enumerable.Range(4, 3)) { buffer.Enqueue(i); } Debug.WriteLine(buffer); // Capacity=5, Count=5, Buffer=[2,3,4,5,6] // Remove the third. var value = buffer[3]; buffer.RemoveAt(3); Debug.WriteLine(buffer); // Capacity=5, Count=4, Buffer=[2,3,4,6] // Re-insert it. buffer.Insert(3, value); Debug.WriteLine(buffer); // Capacity=5, Count=5, Buffer=[2,3,4,5,6] // Dequeue. Debug.Print("Value = {0}", buffer.Dequeue()); // Value = 2 Debug.WriteLine(buffer); // Capacity=5, Count=4, Buffer=[3,4,5,6] // Increase the capacity. buffer.Capacity = 6; Debug.WriteLine(buffer); // Capacity=6, Count=4, Buffer=[3,4,5,6] // Add three more. foreach (var i in Enumerable.Range(7, 3)) { buffer.Enqueue(i); } Debug.WriteLine(buffer); // Capacity=6, Count=6, Buffer=[4,5,6,7,8,9] // Reduce the capacity. buffer.Capacity = 4; Debug.WriteLine(buffer); // Capacity=4, Count=4, Buffer=[4,5,6,7] // Clear the buffer. buffer.Clear(); Debug.WriteLine(buffer); // Capacity=4, Count=0, Buffer=[] }
public void UsageExample() { // Create a buffer with a capacity of 5 items. var buffer = new CircularBuffer<long>(5); // Add three. foreach (var i in Enumerable.Range(1, 3)) buffer.Enqueue(i); Debug.WriteLine(buffer); // Capacity=5, Count=3, Buffer=[1,2,3] // Add three more. foreach (var i in Enumerable.Range(4, 3)) buffer.Enqueue(i); Debug.WriteLine(buffer); // Capacity=5, Count=5, Buffer=[2,3,4,5,6] // Remove the third. var value = buffer[3]; buffer.RemoveAt(3); Debug.WriteLine(buffer); // Capacity=5, Count=4, Buffer=[2,3,4,6] // Re-insert it. buffer.Insert(3, value); Debug.WriteLine(buffer); // Capacity=5, Count=5, Buffer=[2,3,4,5,6] // Dequeue. Debug.Print("Value = {0}", buffer.Dequeue()); // Value = 2 Debug.WriteLine(buffer); // Capacity=5, Count=4, Buffer=[3,4,5,6] // Increase the capacity. buffer.Capacity = 6; Debug.WriteLine(buffer); // Capacity=6, Count=4, Buffer=[3,4,5,6] // Add three more. foreach (var i in Enumerable.Range(7, 3)) buffer.Enqueue(i); Debug.WriteLine(buffer); // Capacity=6, Count=6, Buffer=[4,5,6,7,8,9] // Reduce the capacity. buffer.Capacity = 4; Debug.WriteLine(buffer); // Capacity=4, Count=4, Buffer=[4,5,6,7] // Clear the buffer. buffer.Clear(); Debug.WriteLine(buffer); // Capacity=4, Count=0, Buffer=[] }