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)))); }
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); }
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")); }
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"))); }
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())); }