Exemplo n.º 1
0
        protected void checkEnterOrderCompleted(Series <DateTime, MarketDataElement> series)
        {
            if (!execution.isPositionEmptySignalOnClose())
            {
                return;
            }
            lastExecutePrice = execution.getFilledPrice();
            lastSignalPrice  = execution.getSignalPriceForExecution();
            log.Info("[Strategy] : Enter Strategy Executed!!!");
            log.Info("[Strategy] : Exit Strategy Executed!!!");
            int index = execution.getIndexClosedAppOrder();

            if (index == 1)
            {
                log.Info("Executed Rule = " + execution.PendingOrder1.TriggerRule);
                log.Info("Executed Rule Remark = " + execution.PendingOrder1.Remark);
            }
            else
            {
                log.Info("Executed Rule = " + execution.PendingOrder2.TriggerRule);
                log.Info("Executed Rule Remark = " + execution.PendingOrder2.Remark);
            }
            log.Info("******************************************************************");
            String dir = execution.getCompleteSignalSide();

            execution.completePendingSignal();
            execution.flushCompletSignal();
            immediateOrderEnter = true;
        }
Exemplo n.º 2
0
        private void checkOpenOrderCompleted(Series <DateTime, MarketDataElement> series)
        {
            if (!execution.isPositionEmptySignalOnClose())
            {
                return;
            }

            log.Info("[Strategy] : Enter Strategy Executed!!!");
            log.Info("******************************************************************");
            lastExecutePrice = execution.getFilledPrice();
            lastSignalPrice  = execution.getSignalPriceForExecution();
            execution.completePendingSignal();
            execution.flushCompletSignal();
        }
        public void test_IsPositionEmptySignalOnClose_Negative()
        {
            ISignalContext context = new SignalContext();

            context.CurrentMarketPosition = 0;
            context.setPendingSignal1(AppConstant.BUY_SIGNAL, 20000, createOrder_Buy1Contract_0Complete(), "Buy Order");
            Assert.AreEqual(false, context.isPositionEmptySignalOnClose());

            context = new SignalContext();
            context.CurrentMarketPosition = 0;
            context.setPendingSignal1(AppConstant.BUY_SIGNAL, 20000, createOrder_Buy1Contract_0Complete(), "Buy Order");
            context.setPendingSignal2(AppConstant.SELL_SIGNAL, 22000, createOrder_Sell1Contract_0Complete(), "Sell Order");
            Assert.AreEqual(false, context.isPositionEmptySignalOnClose());

            context = new SignalContext();
            context.CurrentMarketPosition = 1;
            context.setPendingSignal1(AppConstant.BUY_SIGNAL, 20000, createOrder_Buy1Contract_0Complete(), "Buy Order");
            context.setPendingSignal2(AppConstant.SELL_SIGNAL, 22000, createOrder_Sell1Contract_1Complete(), "Sell Order");
            Assert.AreEqual(false, context.isPositionEmptySignalOnClose());

            context = new SignalContext();
            context.CurrentMarketPosition = 0;
            context.setPendingSignal1(AppConstant.BUY_SIGNAL, 20000, createOrder_10Contract_5Complete(), "Buy Order");
            Assert.AreEqual(false, context.isPositionEmptySignalOnClose());

            context = new SignalContext();
            context.CurrentMarketPosition = 0;
            context.setPendingSignal1(AppConstant.SELL_SIGNAL, 22000, createOrder_Sell1Contract_0Complete(), "Sell Order");
            Assert.AreEqual(false, context.isPositionEmptySignalOnClose());

            context = new SignalContext();
            context.CurrentMarketPosition = 0;
            context.setPendingSignal1(AppConstant.BUY_SIGNAL, 20000, createOrder_10Contract_5Complete(), "Buy Order");
            context.setPendingSignal2(AppConstant.SELL_SIGNAL, 22000, createOrder_Sell1Contract_0Complete(), "Sell Order");
            Assert.AreEqual(false, context.isPositionEmptySignalOnClose());

            context = new SignalContext();
            context.CurrentMarketPosition = 0;
            context.setPendingSignal1(AppConstant.BUY_SIGNAL, 20000, createOrder_Buy1Contract_0Complete(), "Buy Order");
            context.setPendingSignal2(AppConstant.SELL_SIGNAL, 22000, createOrder_Sell10Contract_5Complete(), "Sell Order");
            Assert.AreEqual(false, context.isPositionEmptySignalOnClose());
        }