Ejemplo n.º 1
1
  @Test
  public void testAddTradeOrder() {

    try {
      String side = this.tradestrategy.getSide();
      String action = Action.BUY;
      if (Side.SLD.equals(side)) {
        action = Action.SELL;
      }

      double risk = this.tradestrategy.getRiskAmount().doubleValue();

      double stop = 0.20;
      BigDecimal price = new BigDecimal(20);
      int quantity = (int) ((int) risk / stop);
      ZonedDateTime createDate = this.tradestrategy.getTradingday().getOpen().plusMinutes(5);

      TradeOrder tradeOrder =
          new TradeOrder(
              this.tradestrategy,
              action,
              OrderType.STPLMT,
              quantity,
              price,
              price.add(new BigDecimal(0.004)),
              TradingCalendar.getDateTimeNowMarketTimeZone());
      tradeOrder.setOrderKey((new BigDecimal((Math.random() * 1000000))).intValue());
      tradeOrder.setClientId(clientId);
      tradeOrder.setTransmit(true);
      tradeOrder.setStatus("SUBMITTED");
      tradeOrder.validate();
      tradeOrder = tradeOrderHome.persist(tradeOrder);
      assertNotNull("1", tradeOrder);
      _log.info("IdOrder: " + tradeOrder.getIdTradeOrder());

      TradeOrder tradeOrder1 =
          new TradeOrder(
              this.tradestrategy,
              Action.SELL,
              OrderType.STP,
              quantity,
              price.subtract(new BigDecimal(1)),
              null,
              createDate);

      tradeOrder1.setAuxPrice(price.subtract(new BigDecimal(1)));
      tradeOrder1.setOrderKey((new BigDecimal((Math.random() * 1000000))).intValue());
      tradeOrder1.setClientId(clientId);
      tradeOrder1.setTransmit(true);
      tradeOrder1.setStatus("SUBMITTED");
      tradeOrder1.validate();
      tradeOrder1 = tradeOrderHome.persist(tradeOrder1);
      assertNotNull("2", tradeOrder1);
    } catch (Exception | AssertionError ex) {
      String msg = "Error running " + name.getMethodName() + " msg: " + ex.getMessage();
      _log.error(msg);
      fail(msg);
    }
  }
Ejemplo n.º 2
1
  @Test
  public void testAddOpenStopTargetTradeOrder() {

    try {
      String side = this.tradestrategy.getSide();
      String action = Action.BUY;
      if (Side.SLD.equals(side)) {
        action = Action.SELL;
      }

      double risk = this.tradestrategy.getRiskAmount().doubleValue();

      double stop = 0.20;
      BigDecimal price = new BigDecimal(20);
      int quantity = (int) ((int) risk / stop);
      ZonedDateTime createDate = this.tradestrategy.getTradingday().getOpen().plusMinutes(5);

      TradeOrder tradeOrder1 =
          new TradeOrder(
              this.tradestrategy, action, OrderType.STPLMT, quantity, price, price, createDate);
      tradeOrder1.setOrderKey((new BigDecimal((Math.random() * 1000000))).intValue());
      tradeOrder1.setClientId(clientId);
      tradeOrder1.setOcaGroupName("");
      tradeOrder1.setTransmit(true);
      tradeOrder1.setStatus("SUBMITTED");
      tradeOrder1.validate();
      tradeOrder1 = tradeOrderHome.persist(tradeOrder1);
      int buySellMultiplier = 1;
      if (action.equals(Action.BUY)) {
        action = Action.SELL;

      } else {
        action = Action.BUY;
        buySellMultiplier = -1;
      }

      TradeOrder tradeOrder2 =
          new TradeOrder(
              this.tradestrategy,
              action,
              OrderType.LMT,
              quantity / 2,
              null,
              price.add(new BigDecimal((stop * 3) * buySellMultiplier)),
              createDate);

      tradeOrder2.setClientId(clientId);
      tradeOrder2.setOrderKey((new BigDecimal((Math.random() * 1000000))).intValue());
      tradeOrder2.setOcaType(2);
      tradeOrder2.setOcaGroupName(this.tradestrategy.getIdTradeStrategy() + "q1w2e3");
      tradeOrder2.setTransmit(true);
      tradeOrder2.setStatus("SUBMITTED");
      tradeOrder2.validate();
      tradeOrder2 = tradeOrderHome.persist(tradeOrder2);

      TradeOrder tradeOrder3 =
          new TradeOrder(
              this.tradestrategy,
              action,
              OrderType.LMT,
              quantity / 2,
              null,
              price.add(new BigDecimal((stop * 4) * buySellMultiplier)),
              createDate);

      tradeOrder3.setClientId(clientId);
      tradeOrder3.setOrderKey((new BigDecimal((Math.random() * 1000000))).intValue());
      tradeOrder3.setOcaType(2);
      tradeOrder3.setOcaGroupName(this.tradestrategy.getIdTradeStrategy() + "q1w2e3");
      tradeOrder3.setTransmit(true);
      tradeOrder3.setStatus("SUBMITTED");
      tradeOrder3.validate();
      tradeOrder3 = tradeOrderHome.persist(tradeOrder3);

      TradeOrder tradeOrder4 =
          new TradeOrder(
              this.tradestrategy,
              action,
              OrderType.STP,
              quantity,
              price.add(new BigDecimal(stop * buySellMultiplier * -1)),
              null,
              createDate);
      tradeOrder4.setLimitPrice(new BigDecimal(0));
      tradeOrder4.setAuxPrice(price.add(new BigDecimal(stop * buySellMultiplier * -1)));
      tradeOrder4.setClientId(clientId);
      tradeOrder4.setOrderKey((new BigDecimal((Math.random() * 1000000))).intValue());
      tradeOrder4.setOcaType(2);
      tradeOrder4.setOcaGroupName(this.tradestrategy.getIdTradeStrategy() + "q1w2e3");
      tradeOrder4.setTransmit(true);
      tradeOrder4.setStatus("SUBMITTED");
      tradeOrder4.validate();
      tradeOrder4 = tradeOrderHome.persist(tradeOrder4);

      _log.info("IdOrder: " + tradeOrder1.getIdTradeOrder());
    } catch (Exception | AssertionError ex) {
      String msg = "Error running " + name.getMethodName() + " msg: " + ex.getMessage();
      _log.error(msg);
      fail(msg);
    }
  }