Exemplo n.º 1
0
        public void testJDateCanHandleDefaultCDate()
        {
            var defalt = new DateTime();

            AreEqual("1753/01/01", O.ymdHuman(new DateTime(1753, 1, 1)));
            AreEqual("0001/01/03", O.ymdHuman(defalt));
            AreEqual("0001/01/03", O.ymdHuman(O.jDate(defalt)));
            AreEqual("0001/01/03", O.ymdHuman(O.date(O.ymdHuman(defalt))));
        }
Exemplo n.º 2
0
 public void addFirstMonth()
 {
     addThreeDays();
     O.zeroTo(7, i => addThreeDays());
     close(47, 80, 30, 70, 16);
     AreEqual(O.jDate("2006-08-29"), system().barDate);
     AreEqual(O.jDate("2006-07-31"), system().refDate);
     AreEqual(O.jDate("2006-08-31"), system().evaluationDate);
     close(48, 79, 31, 71, 14);
     AreEqual(O.jDate("2006-08-30"), system().barDate);
     AreEqual(O.jDate("2006-07-31"), system().refDate);
     AreEqual(O.jDate("2006-08-31"), system().evaluationDate);
     AreEqual(5, system().basketSize);
 }
Exemplo n.º 3
0
        internal void close(double tri0, double tri1, double tri2, double tri3, double tri4)
        {
            if (lastBars != null)
            {
                processBar(lastBars);
            }
            var tris = O.array(tri0, tri1, tri2, tri3, tri4);

            lastBars = new Dictionary <Symbol, Bar>();
            O.zeroTo(5, i => lastBars.Add(symbols[i], bar(tris[i])));
            processClose(lastBars);
            var jTime = O.jDate(time);

            time = O.date(Dates.businessDaysAhead(1, jTime, "nyb"));
        }
Exemplo n.º 4
0
        public void testMarketPeriods()
        {
            var testSymbol = new Symbol("CDS.TEST.CAH.5Y.ACB20");

            IsTrue(testSymbol.isPeriodStart(O.date("2003-06-25")));
            IsTrue(testSymbol.isPeriodStart(O.date("2008-06-01")));
            IsTrue(testSymbol.isPeriodEnd(O.date("2007-10-10")));

            IsFalse(testSymbol.isPeriodStart(O.date("2003-06-26")));
            IsFalse(testSymbol.isPeriodEnd(O.date("2009-01-01")));

            IsTrue(testSymbol.isPeriodInactive(O.date("2007-10-11")));
            IsFalse(testSymbol.isPeriodInactive(O.date("2007-10-10")));

            MarketHistoryTable.MARKET_HISTORY.insert(
                new systemdb.metadata.Market(testSymbol.name), null, O.jDate("1980-06-30"));
            Symbol.clearPeriodsCache();
            IsFalse(testSymbol.isPeriodInactive(O.date("1980-06-29")));
            IsFalse(testSymbol.isPeriodInactive(O.date("2008-06-30")));
        }
Exemplo n.º 5
0
 public void testSystem()
 {
     addFirstMonth();
     noOrders();
     close(49, 82, 26, 75, 13); // Close of 8/31/2006
     hasOrders(symbols[0], symbols[0].buy("enter long", market(), 408, oneBar()));
     hasOrders(symbols[1], symbols[1].buy("enter long", market(), 244, oneBar()));
     hasOrders(symbols[2], symbols[2].sell("enter short", market(), 1154, oneBar()));
     hasOrders(symbols[3], symbols[3].buy("enter long", market(), 267, oneBar()));
     hasOrders(symbols[4], symbols[4].sell("enter short", market(), 2308, oneBar()));
     AreEqual(O.jDate("2006-08-31"), system().barDate);
     AreEqual(O.jDate("2006-07-31"), system().refDate);
     AreEqual(O.jDate("2006-08-31"), system().evaluationDate);
     AreEqual(O.jDate("2006-08-31"), system().rebalancingDate);
     AreEqual(O.jDate("2006-09-22"), system().tradeExitDate);
     O.zeroTo(5, i => fill(symbols[i], 0, 1));
     close(47, 80, 30, 70, 16); // Close of 9/01/2006
     AreEqual(O.jDate("2006-09-01"), system().barDate);
     AreEqual(O.jDate("2006-07-31"), system().refDate);
     AreEqual(O.jDate("2006-08-31"), system().evaluationDate);
     AreEqual(O.jDate("2006-08-31"), system().rebalancingDate);
     AreEqual(O.jDate("2006-09-22"), system().tradeExitDate);
     hasPosition(symbols[0], 408);
     hasPosition(symbols[1], 244);
     hasPosition(symbols[2], -1154);
     hasPosition(symbols[3], 267);
     hasPosition(symbols[4], -2308);
     close(48, 79, 31, 71, 14);
     close(49, 82, 26, 75, 13);
     addThreeDays();
     addThreeDays();
     addThreeDays();
     close(47, 80, 30, 70, 16);
     close(48, 79, 31, 71, 14);
     hasPosition(symbols[0], 408);
     hasPosition(symbols[1], 244);
     hasPosition(symbols[2], -1154);
     hasPosition(symbols[3], 267);
     hasPosition(symbols[4], -2308);
     AreEqual(O.jDate("2006-09-21"), system().barDate);
     close(49, 82, 26, 75, 13);
     AreEqual(O.jDate("2006-09-22"), system().barDate);
     hasOrders(symbols[0], symbols[0].sell("exit on days in trade", market(), 408, oneBar()));
     hasOrders(symbols[1], symbols[1].sell("exit on days in trade", market(), 244, oneBar()));
     hasOrders(symbols[2], symbols[2].buy("exit on days in trade", market(), 1154, oneBar()));
     hasOrders(symbols[3], symbols[3].sell("exit on days in trade", market(), 267, oneBar()));
     hasOrders(symbols[4], symbols[4].buy("exit on days in trade", market(), 2308, oneBar()));
     O.zeroTo(5, i => fill(symbols[i], 0, 1));
     close(47, 80, 30, 70, 16);
     AreEqual(O.jDate("2006-09-25"), system().barDate);
     AreEqual(O.jDate("2006-08-31"), system().refDate);
     AreEqual(O.jDate("2006-09-29"), system().evaluationDate);
     AreEqual(O.jDate("2006-09-29"), system().rebalancingDate);
     //AreEqual(O.jDate("2006-10-23"), system().tradeExitDate);
     noOrders();
     close(48, 79, 31, 71, 14);
     close(49, 82, 26, 75, 13);
     close(47, 80, 30, 70, 16);
     close(48, 79, 31, 71, 14);
     hasOrders(symbols[0], symbols[0].buy("enter long", market(), 417, oneBar()));
     hasOrders(symbols[1], symbols[1].sell("enter short", market(), 380, oneBar()));
     hasOrders(symbols[2], symbols[2].buy("enter long", market(), 645, oneBar()));
     hasOrders(symbols[3], symbols[3].sell("enter short", market(), 423, oneBar()));
     hasOrders(symbols[4], symbols[4].buy("enter long", market(), 1429, oneBar()));
 }