Пример #1
0
        private void trace(string traceString)
        {
            var trace = DateTime.Now.ToString("mm:ss.fffff ") + traceString;

            System.Diagnostics.Debug.WriteLine(trace);
            Traced?.Invoke(trace);
        }
        public void RunExample()
        {
            Console.WriteLine("Calculating the VWAP of a position from the trade history");
            Traced<IEnumerable<ITrade>> tracedTrades = new Traced<IEnumerable<ITrade>>(GetTradeHistory());
            var positionContributions = tracedTrades.Bind(new FIFOPositionContributionCalculation());

            //We should have predefined Sum operations for this stuff
            var totalPosition = positionContributions.Bind<long>(x => x.Sum(y => y.Contribution), "totalPosition");
            var totalValue = positionContributions.Bind<decimal>(x => x.Sum(y => y.Contribution * y.Price), "totalValue");

            //target syntax here is
            //var VWAP = totalValue / totalPrice;

            //initially we will make do with
            var VWAP = totalValue.Bind<long, decimal>((x, y) => x / y, totalPosition, "VWAP");

            //explain your working
            Console.WriteLine(VWAP.Explain());
        }
Пример #3
0
 public void CanRetrieveValueFromTracedOfInt()
 {
     Traced<int> OUT = new Traced<int>(12);
     Assert.AreEqual(12, OUT.Value);
 }
Пример #4
0
 public void CanCreateATracedOfInt()
 {
     Traced<int> OUT = new Traced<int>(5);
 }
Пример #5
0
 public void CanBeCreatedWithAName()
 {
     Traced<int> OUT = new Traced<int>(12, "Testvalue");
     Assert.AreEqual("Testvalue", OUT.Name);
 }
Пример #6
0
 public HtmlTag VisualizeTraced(Traced traced)
 {
     return(new CommentTag(traced.Text));
 }