Iceberg order "iceberg_quantity" is mandatory with python client but not on Kite trading app

Hi ,
I tried Iceberg order with kite web as well as android app where only # of legs need to be given, so in that case it decides "iceberg_quantity" automatically.
example if i place order of total 125 qty and say 2 legs then it take 63+62 and accepts the order.

But if i place it through python client then it does not accept only legs as input. it requires both "legs" and "iceberg_quantity" parameters need to be provided. So in case of non divisible order qty then it does not accept order.

I tried with order 125 , leg = 2 and iceberg_quantity = 63 then it worked fine.

But again my order qty is varying and want to slice order based on qty freeze so it is difficult to calculate both "legs" and "iceberg_quantity".

One more observation for first leg it only accept rounded up number as "iceberg_quantity"
Example 1) for 125 with 4 leg it accepts 32 as "iceberg_quantity"
2) for 125 with 3 leg it accepts 63 as "iceberg_quantity"
3) for 99 with 2 legs it accepts only 50 as first leg qty.

I am looking it as solution to qty freeze pl advise or make "iceberg_legs" as optional parameter with balance qty as last leg qty

Example if order qty is 6000 and "iceberg_quantity" is 1800 then 1800+1800+1800+600 ( 4 leg or not to specify leg itself.)

  • sujith
    The iceberg order backend is designed in such a way that it requires both values to be sent from the frontend.

    Onus is on the frontend/client apps to send the values.
    You can use this logic for iceberg_quantity calculation
    double slice = quantity / max(leg_count, 2);
    iceberg_quantity = (slice / lot_size).ceil() * lot_size;

    iceberg_legs = leg_count;
  • sujith
    In the first example you mentioned, backend will send first leg order with quantity 63 and remaining 62 is considered by backend only. End users don't have to do anything.
  • kishorsandage
    Hi Sujith Thanks for information and your reply.
    But pl help me to understand why both "iceberg_quantity" and "iceberg_legs" inputs are required.
    It can be achieved with only one input ie "iceberg_quantity"

    Example if iceberg order placed with 6000 qty and "iceberg_quantity" = 1800 then it can be sliced in 4 legs with inbuilt internal mathematic. 1800+1800+1800+600.

    I hope it will save additional logic building need..

    Request you to share you comment
  • kishorsandage
    Pl check the possibility of my suggestion or guide if anything am I missing?
  • sujith
    Kite Trade expects both the params to be there. The above logic needs to be added in the frontend apps.
    That is how the API is designed. In case of Kite web and app it is handled at the frontend.
    Few users might want to use legs to split and few might want to do it with quantity and there is a cap of 10 legs for an iceberg order. Because of the above reasons, we expect users to send both quantity and leg count while placing iceberg order.
  • kishorsandage
    Thanks Sujith for your reply , But still i feel it is unnecessary complications, Rest I leave it to your team
Sign In or Register to comment.