public void addRow() {
    final Tradestrategy tradestrategy = getData();

    String side = tradestrategy.getSide();
    if (null == side) side = Side.BOT;
    String orderType = OrderType.STPLMT;
    String action = Action.BUY;
    if (Side.SLD.equals(side)) {
      action = Action.SELL;
    }
    double risk = tradestrategy.getRiskAmount().doubleValue();
    double stop = 1.0d;

    Money price =
        new Money(
            tradestrategy.getStrategyData().getBaseCandleSeries().getContract().getLastPrice());

    final Entrylimit entrylimit = DAOEntryLimit.newInstance().getValue(price);

    Money limitPrice =
        Action.BUY.equals(action)
            ? price.add(new Money(entrylimit.getLimitAmount().doubleValue()))
            : price.subtract(new Money(entrylimit.getLimitAmount().doubleValue()));

    int quantity = (int) ((int) risk / stop);
    if (tradestrategy.isThereOpenTradePosition()) {
      for (TradeOrder item : tradestrategy.getTradeOrders()) {
        if (item.hasTradePosition()) {
          TradePosition position = item.getTradePosition();
          if (position.isOpen()) {
            quantity = Math.abs(position.getOpenQuantity());
            side = position.getSide();
            action = Action.BUY;
            if (Side.BOT.equals(side)) {
              action = Action.SELL;
            }
            orderType = OrderType.LMT;
            limitPrice = price;
          }
        }
      }
    }

    final TradeOrder tradeOrder =
        new TradeOrder(
            tradestrategy,
            action,
            orderType,
            quantity,
            price.getBigDecimalValue(),
            limitPrice.getBigDecimalValue(),
            TradingCalendar.getDate());
    tradeOrder.setOcaGroupName("");
    tradeOrder.setTransmit(true);
    tradeOrder.setStatus(OrderStatus.UNSUBMIT);
    tradestrategy.addTradeOrder(tradeOrder);

    final Vector<Object> newRow = new Vector<Object>();
    getNewRow(newRow, tradeOrder);
    rows.add(newRow);

    // Tell the listeners a new table has arrived.

    fireTableChanged(new TableModelEvent(this));
  }
  /**
   * Method populateDAO.
   *
   * @param value Object
   * @param row int
   * @param column int
   */
  public void populateDAO(Object value, int row, int column) {

    TradeOrder element = null;

    int i = 0;
    for (final TradeOrder tradeOrder : getData().getTradeOrders()) {
      if (i == row) {
        element = tradeOrder;
        break;
      }
      i++;
    }
    switch (column) {
      case 0:
        {
          element.getTradestrategy().getContract().setSymbol((String) value);
          break;
        }
      case 1:
        {
          element.setOrderKey(((Quantity) value).getIntegerValue());
          break;
        }
      case 2:
        {
          element.setAction(((Action) value).getCode());
          break;
        }
      case 3:
        {
          element.setOrderType(((OrderType) value).getCode());
          break;
        }
      case 4:
        {
          element.setQuantity(((Quantity) value).getIntegerValue());
          break;
        }
      case 5:
        {
          element.setLimitPrice(((Money) value).getBigDecimalValue());
          break;
        }
      case 6:
        {
          element.setAuxPrice(((Money) value).getBigDecimalValue());
          break;
        }
      case 7:
        {
          element.setTransmit(new Boolean(((YesNo) value).getCode()));
          break;
        }
      case 8:
        {
          element.setStatus(((OrderStatus) value).getCode());
          break;
        }
      case 9:
        {
          element.setOcaGroupName((String) value);
          break;
        }
      case 10:
        {
          element.setAverageFilledPrice(((Decimal) value).getBigDecimalValue());
          break;
        }
      case 11:
        {
          element.setFilledDate(((Date) value).getDate());
          break;
        }
      case 12:
        {
          element.setFilledQuantity(((Quantity) value).getIntegerValue());
          break;
        }
      case 13:
        {
          element.setStopPrice(((Money) value).getBigDecimalValue());
          break;
        }
      case 14:
        {
          if (value instanceof TradeOrder) {
            element.setFAProfile(((TradeOrder) value).getFAProfile());
            element.setFAGroup(((TradeOrder) value).getFAGroup());
            element.setFAMethod(((TradeOrder) value).getFAMethod());
            element.setFAPercent(((TradeOrder) value).getFAPercent());
          } else {
            element.setFAProfile(null);
            element.setFAGroup(null);
            element.setFAMethod(null);
            element.setFAPercent(null);
          }
          break;
        }
      default:
        {
        }
    }
  }