Placechangeequityorder приводит к существующей ошибке открытого ордера

Я успешно отправляю ордер на акции в E*Trade, используя https://etws.etrade.com/order/rest/placeequityorder:

<PlaceEquityOrder xmlns="http://order.etws.etrade.com">
  <EquityOrderRequest>
    <clientOrderId>1507910303000001</clientOrderId>
    <accountId>xxx</accountId>
    <quantity>1</quantity>
    <orderAction>BUY</orderAction>
    <priceType>LIMIT</priceType>
    <marketSession>REGULAR</marketSession>
    <orderTerm>GOOD_FOR_DAY</orderTerm>
    <symbol>TEUM</symbol>
    <limitPrice>0.6</limitPrice>
  </EquityOrderRequest>
</PlaceEquityOrder>

Заказ подтвержден E*Trade:

<PlaceEquityOrderResponse>
  <equityOrderResponse>
    <accountId>xxx</accountId>
    <allOrNone>false</allOrNone>
    <estimatedCommission>6.95</estimatedCommission>
    <estimatedTotalAmount>7.55</estimatedTotalAmount>
    <messageList>
      <message>
        <msgDesc>Your order was successfully entered during market hours.</msgDesc>
        <msgCode>1026</msgCode>
      </message>
    </messageList>
    <orderNum>10</orderNum>
    <orderTime>1507924703308</orderTime>
    <quantity>1</quantity>
    <reserveOrder>false</reserveOrder>
    <reserveQuantity>0</reserveQuantity>
    <orderTerm>GOOD_FOR_DAY</orderTerm>
    <limitPrice>0.6</limitPrice>
    <stopPrice>0</stopPrice>
    <symbolDesc>PARETEUM CORP COM NEW</symbolDesc>
    <symbol>TEUM</symbol>
    <orderAction>BUY</orderAction>
    <priceType>LIMIT</priceType>
  </equityOrderResponse>
</PlaceEquityOrderResponse>

Затем я пытаюсь обновить предельную цену с помощью https://etws.etrade.com/order/rest/placechangeequityorder:

<placeChangeEquityOrder xmlns="http://order.etws.etrade.com">
  <changeEquityOrderRequest>
    <orderNum>10</orderNum>
    <clientOrderId>1507910303000001</clientOrderId>
    <accountId>xxx</accountId>
    <quantity>1</quantity>
    <orderAction>BUY</orderAction>
    <priceType>LIMIT</priceType>
    <marketSession>REGULAR</marketSession>
    <orderTerm>GOOD_FOR_DAY</orderTerm>
    <symbol>TEUM</symbol>
    <limitPrice>0.61</limitPrice>
  </changeEquityOrderRequest>
</placeChangeEquityOrder>

Но изменение отклоняется с

> <Error><ErrorCode>1028</ErrorCode><ErrorMessage>You have an existing
> open order for this security on the same side of the market. If you
> did not intend to place a second order for this security, please click
> Cancel Order ; otherwise, click  Trade  to
> proceed.</ErrorMessage></Error> ---> System.Net.WebException: The
> remote server returned an error: (400) Bad Request.

Я пробовал включать и не включать clientOrderId, это не имело значения. Я схожу с ума, потому что один и тот же код работал нормально один раз в тот же день, а затем больше никогда не работал.

Если вы можете отправлять изменения в заказы с помощью ETrade API, сообщите мне об этом. EФорум Trade API, кажется, исчез :(


person Jimmy    schedule 14.10.2017    source источник


Ответы (1)


Нужно отправлять новый clientOrderId с каждым запросом на изменение. Я предполагал, что нужно было продолжать отправлять исходный clientOrderId (тот, который использовался при первой отправке заказа).

person Jimmy    schedule 17.10.2017