예제 #1
0
        void makeSystem(string parameter, double value, bool inputsValid)
        {
            var these = new Parameters {
                { "systemId", systemId },
                { "RunMode", (double)RunMode.RIGHTEDGE },
                { "TradeSize", 1 },
                { parameter, value }
            };
            var qre = new QREBridge <IndependentSymbolSystems <BuySellAndHold> >(arguments(these));
            var ss  = qre.system.systems_[symbol()];

            AreEqual(inputsValid, ss.inputsValid());
        }
예제 #2
0
        public override void setUp()
        {
            base.setUp();

            liveSystem = fakeLiveSystem(parameters(), runInNativeCurrency());
            systemId   = liveSystem.id();
            initializeSymbols();
            bridge_ = new QREBridge <S>(arguments());
            loader  = new FakeBarLoader(bridge_.arguments().symbols);
            loader.setSpudManager(bridge_.manager);
            barsLoadedThisBar = false;

            noOrders();
        }
예제 #3
0
        public void testDifferentDatesBehaviorIsConsistent()
        {
            insertSymbol(A.name);
            insertSymbol(B.name);
            var systemId = OneSystemTest <TestSystemWithEWMA> .fakeLiveSystem(new Parameters { { "LeadBars", 2.0 } }, false).id();

            var parameters = new Parameters {
                { "systemId", (double)systemId }, { "RunMode", (double)RunMode.LIVE }
            };

            combined = new SystemArguments(O.list(A, B), parameters).bridge <IndependentSymbolSystems <TestSystemWithEWMA> >();
            a        = new SystemArguments(O.list(A), parameters).bridge <IndependentSymbolSystems <TestSystemWithEWMA> >();
            b        = new SystemArguments(O.list(B), parameters).bridge <IndependentSymbolSystems <TestSystemWithEWMA> >();
            bar(1.0, null);
            bar(2.0, 1.0);
            bar(null, 2.0);
            bar(3.0, 3.0);
            AreEqual(ewma(a, A)[0], ewma(b, B)[0]);
        }
예제 #4
0
        void makeSystem(string parameter, double value, bool inputsValid)
        {
            var these = new Parameters {
                { "systemId", systemId },
                { "RunMode", (double)RunMode.RIGHTEDGE },
                { "exitLongLevel", EXIT_LONG },
                { "exitShortLevel", EXIT_SHORT },
                { "lengthZScore", leadBars() },
                { "longSize", 10 },
                { "lossStopLevel", 1000000 },
                { "shortSize", 100 },
                { "triggerLong", TRIGGER_LONG },
                { "triggerShort", TRIGGER_SHORT },
                { parameter, value }
            };
            var qre = new QREBridge <IndependentSymbolSystems <DTDRichCheap> >(arguments(these));
            var ss  = qre.system.systems_[symbol()];

            AreEqual(inputsValid, ss.dtd != null);
        }
예제 #5
0
        void makeSystem(string parameter, double value, bool inputsValid)
        {
            var these = new Parameters {
                { "systemId", systemId },
                { "RunMode", (double)RunMode.RIGHTEDGE },
                { "exitLongLevel", EXIT_LONG },
                { "exitShortLevel", EXIT_SHORT },
                { "lengthZScore", leadBars() },
                { "tradeSize", 200 },
                { "stopLoss", 500 },
                { "triggerLong", TRIGGER_LONG },
                { "triggerShort", TRIGGER_SHORT },
                { "timeStopBars", TIME_STOP_BARS },
                { "trailingStopFlag", 0 },
                { "minPrice", MIN_PRICE },
                { "ATRLen", 5 },
                { parameter, value }
            };
            var qre = new QREBridge <IndependentSymbolSystems <ReverseDTD> >(arguments(these));
            var ss  = qre.system.systems_[symbol()];

            AreEqual(inputsValid, ss.dtd != null);
        }
예제 #6
0
        void makeSystem(string parameter, double value, bool inputsValid)
        {
            var these = new Parameters {
                { "systemId", systemId },
                { "RunMode", (double)RunMode.RIGHTEDGE },
                { "exitLongLevel", EXIT_LONG },
                { "exitShortLevel", EXIT_SHORT },
                { "lengthZScore", leadBars() },
                { "longSize", 10 },
                { "lossStopLevel", 1000000 },
                { "shortSize", 100 },
                { "triggerLong", TRIGGER_LONG },
                { "triggerShort", TRIGGER_SHORT },
                { "timeStopBars", TIME_STOP_BARS },
                { "trailingStopFlag", 0 },
                { "maxSpread", MAX_SPREAD },
                { "profitObjectiveMultiple", PROFIT_OBJECTIVE_MULTIPLE },
                { parameter, value }
            };
            var qre = new QREBridge <IndependentSymbolSystems <DTDRichCheapV2> >(arguments(these));
            var ss  = qre.system.systems_[symbol()];

            AreEqual(inputsValid, ss.dtd != null);
        }
예제 #7
0
 static EWMA ewma(QREBridge <IndependentSymbolSystems <TestSystemWithEWMA> > bridge, Symbol symbol)
 {
     return(bridge.system.systems_[symbol].ewma);
 }