IBKR API покупает дробные акции

#c# #trading #interactive-brokers

Вопрос:

Я использую Visual Studio для разработки программного обеспечения, которое использует API IBKR для покупки акций. Это нормально работает, если я покупаю целочисленные акции, но я не могу покупать дробные акции.

Я нашел порядок функций.Наличные, но это не работает.. это код, который я использую для покупки, и он работает, когда я пытаюсь купить целочисленные акции. У вас есть какие-нибудь предложения?

 public void send_order(string side)
{
    IBApi.Contract contract = new IBApi.Contract();
    contract.Symbol = Global_variable.stock_sel;
    contract.SecType = "STK";
    contract.Exchange = cbMarket.Text;
    contract.PrimaryExch = "ISLAND";
    contract.Currency = "USD";

    IBApi.Order order = new IBApi.Order();
    order.OrderId = order_id;
    order.Action = side;
    order.OrderType = cbOrderType.Text;

    //order.CashQty = 33.5; <-- maybe is this the way to buy fractionale share?
    order.TotalQuantity = 1;

    if (cbOrderType.Text == "STP")
    {
        order.AuxPrice = Convert.ToDouble(numPrice.Value);
    }

    order.DisplaySize = Convert.ToInt32(tbVisible.Text);
    order.OutsideRth = chkOutside.Checked;
    ibClient.ClientSocket.placeOrder(order_id, contract, order);

    order_id  ;
    tbValid_Id.Text = Convert.ToString(order_id);
}
 

Большое спасибо!

Комментарии:

1. Согласно этому обсуждению на форуме , похоже, что IB не планирует разрешать частичную торговлю через API.

Ответ №1:

этот код моей программы, я надеюсь, поможет вам:

 private void buyStock(string symbol)
    {
        // Create a new contract to specify the security we are searching for
        IBApi.Contract contract = new IBApi.Contract();

        // Set the underlying stock symbol from the cbSymbol combobox
        contract.Symbol = symbol.ToUpper();
        // Set the Security type to STK for a Stock
        contract.SecType = "STK";
        // Use "SMART" as the general exchange
        contract.Exchange = "SMART";
        // Set the primary exchange (sometimes called Listing exchange)
        // Use either NYSE or ISLAND
        contract.PrimaryExch = "ISLAND";
        // Set the currency to USD
        contract.Currency = "USD";

        IBApi.Order order = new IBApi.Order();
        // gets the next order id from the text box
        order.OrderId = order_id;
        // gets the side of the order (BUY, or SELL)
        order.Action = "BUY";
        // gets order type from combobox market or limit order(MKT, or LMT)
        order.OrderType = "MKT";
        // number of shares from Quantity
        order.TotalQuantity = 400;
        // Value from limit price
        //order.LmtPrice = Convert.ToDouble(numPrice.Text);
        //

        //Visible shares to the market
        //  order.DisplaySize = Convert.ToInt32(tbVisible.Text);
        //order.OutsideRth = cbOutsideRTH.Checked;
        //order.OutsideRth = chkOutside.Checked;


        // Place the order
        ibClient.ClientSocket.placeOrder(order_id, contract, order);

        // increase the order id value
        order_id  ;
    }
 

Комментарии:

1. У вас есть какой-нибудь ответ на order.CashQty часть вопроса? Как ваш код решает эту проблему ?