[Test] public void fullRun() { O.freezeNow("2009/01/15"); // so that params don't change out from under us var args = new SystemArguments( symbol(), new Parameters { { "systemId", 188387 }, { "RunMode", (double)RunMode.RIGHTEDGE }, { "maType", 2 }, { "maLength", 8 }, { "stDevLength", 10 }, { "regressionProjectionBars", 5 }, { "regressionBars", 8 }, { "ZEntry", 2 }, { "minPnLMultTC", 5 }, { "stopMultiple", 3 }, { "RiskDollars", 100000000 }, { "ZExit", 1 }, { "MaxBarsHeld", 999 }, { "LeadBars", leadBars() } }); BarLoader barLoader = new SystemDbBarLoader(Interval.DAILY, O.list(symbol()), date("2004/11/26")); var simulator = new Simulator.Simulator(args, barLoader, OrderTable.prefix); simulator.processBars(); // using slippage for RE.TEST.TY.1C: 0.015625 // Date range: 11/26/04 - 4/18/08 // Parameter set from the parameters() method below. AlmostEqual(-149665265.63, simulator.pnl(), 0.01); }
[Test] public void fullRun() { O.freezeNow("2009/01/15"); // so that params don't change out from under us var args = new SystemArguments( symbol(), new Parameters { { "systemId", 63234 }, { "RunMode", (double)RunMode.LIVE } }); var simulator = new Simulator.Simulator(args, OrderTable.prefix); simulator.processBars(300); // using slippage for RE.TEST.TY.1C: 0.015625 // Full run AlmostEqual(-1975093.75, simulator.pnl(), 0.01); AlmostEqual(-184296.88, simulator.pnl(), 0.01); }
void runOneLocal() { LogC.info("running run " + start + " local to populate S3 cache"); S3Cache.saveAllQueryResultsToS3(true); var s3Cache = runner.s3Cache(); s3Cache.createBucket(); S3Cache.setS3Cache(s3Cache); var runParameters = parameters(start); var symbolRanges = dictionary(symbols, symbol => MsivBacktestTable.BACKTEST.range(systemId, symbol.name)); var data = new SystemDbBarLoader(details.interval(), symbols, symbolRanges); var simulator = new Simulator.Simulator(new SystemArguments(symbols, portfolios, runParameters), data, "QUEDGE"); simulator.processBars(); simulator.shutdown(); S3Cache.saveAllQueryResultsToS3(false); }
void runSystem(Producer <SystemRunInfo> info, bool goLive) { try { gui.disableRunButton(); runInfo = info(); simulator = runInfo.newSimulator((symbol, definition) => plots.get(symbol).Add(definition)); each(simulator.symbols, symbol => simulator.addCollectible(symbol)); simulator.addNewTradeListener(addTrade); simulator.processBars(); } catch (Exception e) { gui.logAndAlert("failed during simulation run", e); return; } finally { runThread = null; gui.enableRunButton(); } gui.reportResults(this); if (goLive) { simulator.goLive(); } }
static int processNextMessage(EC2Runner runner, int lastRunTime, out STORequest request) { var message = runner.nextMessage(Math.Min(7200, 2 * lastRunTime)); var start = now(); request = new STORequest(message.@object()); info("received " + request); if (symbols == null || barData == null) { cacheSymbolData(request); } else { request.requireMatch(symbols); } var simulator = new Simulator.Simulator(new SystemArguments(symbols, request.portfolios, request.parameters), barData, "QUEDGE"); simulator.processBars(); simulator.shutdown(); lastRunTime = Math.Max((int)now().Subtract(start).TotalSeconds, 10); runner.responseQueue().send(request.response(EC2Runner.instanceId(), start, now(), processId())); message.delete(); return(lastRunTime); }