예제 #1
0
        [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);
        }
예제 #2
0
        [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);
        }
예제 #3
0
파일: STOClient.cs 프로젝트: TzarIvan/ratel
            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);
            }
예제 #4
0
 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();
     }
 }
예제 #5
0
파일: STOServer.cs 프로젝트: TzarIvan/ratel
        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);
        }