protected void checkExitOrderCompleted(Series <DateTime, MarketDataElement> series) { if (!execution.isPositionOnSignalOnClose()) { return; } immediatePnLAfterPositionClose = 0; int index = execution.getIndexClosedAppOrder(); log.Info("[Strategy] : Exit Strategy Executed!!!"); 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("******************************************************************"); lastExecutePrice = execution.getFilledPrice(); lastSignalPrice = execution.getSignalPriceForExecution(); execution.completePendingSignal(); stgHelper.cancelPendingTrades(); execution.flushCompletSignal(); if (execution.CurrentMarketPosition == 0) { immediatePnLAfterPositionClose = execution.PnL; execution.PnL = 0; } immediateOrderExit = true; }
public void test_CompletePendingSignal() { ISignalContext context = new SignalContext(); context.CurrentMarketPosition = 1; context.setPendingSignal1(AppConstant.BUY_SIGNAL, 20000, createOrder_Buy1Contract_1Complete(), "Buy Order"); context.completePendingSignal(); Assert.AreEqual(2, context.CurrentMarketPosition); context = new SignalContext(); context.CurrentMarketPosition = 1; context.setPendingSignal1(AppConstant.SELL_SIGNAL, 22000, createOrder_Sell1Contract_1Complete(), "Sell Order"); context.completePendingSignal(); Assert.AreEqual(0, context.CurrentMarketPosition); context = new SignalContext(); context.CurrentMarketPosition = 1; context.setPendingSignal1(AppConstant.BUY_SIGNAL, 20000, createOrder_10Contract_10Complete(), "Buy Order"); context.completePendingSignal(); Assert.AreEqual(11, context.CurrentMarketPosition); context = new SignalContext(); context.CurrentMarketPosition = -1; context.setPendingSignal1(AppConstant.SELL_SIGNAL, 22000, createOrder_Sell10Contract_10Complete(), "Sell Order"); context.completePendingSignal(); Assert.AreEqual(-11, context.CurrentMarketPosition); context = new SignalContext(); context.CurrentMarketPosition = 1; context.setPendingSignal1(AppConstant.BUY_SIGNAL, 20000, createOrder_Buy1Contract_0Complete(), "Buy Order"); context.completePendingSignal(); Assert.AreEqual(1, context.CurrentMarketPosition); }
private void checkExitOrderCompleted(Series <DateTime, MarketDataElement> series) { if (!execution.isPositionOnSignalOnClose()) { return; } int index = execution.getIndexClosedAppOrder(); log.Info("[Strategy] : Exit Strategy Executed!!!"); if (index == 1) { log.Info("Take Profit Executed!!!"); } else { log.Info("Cutloss Executed!!!"); } log.Info("******************************************************************"); lastExecutePrice = execution.getFilledPrice(); lastSignalPrice = execution.getSignalPriceForExecution(); execution.completePendingSignal(); stgHelper.cancelPendingTrades(); execution.flushCompletSignal(); }