← 戻る

Как правильно выставить маркет ордер

Выставляю маркет ордер следующим образом

   public void BuyMarket(Security security, int volume)
    {
        var order = new Order
        {
            Security = security,
            Type = OrderTypes.Market,
            Volume = volume,
            Direction = OrderDirections.Buy
        };
        NewOrder(order);
    }

           private void NewOrder(Order order)
            {
                    if (order == null)
                            throw new ArgumentNullException("order");

                   order.Account = Config.GetInstance().QuikAccount;
                    _quikTrader.RegisterOrder(order);
            }

В результате получаю ошибку о недопустимой цене - 0. Но ведь я и не хочу устанавливать цену. Это же маркет ордер. Как правильно сделать?

このトピックは参考になりましたか?

トピックを共有

コメント (6)

ログイン または アカウントを作成, コメントを残すにはログインまたは新規登録してください

ShestkoFF
ShestkoFF 著者

Если быть точным то ошибка такая:

не была зарегистрирована. Причина '[FORTS] Цена сделки вне лимита'.

ShestkoFF
ShestkoFF 著者

Заявка по транзакции 'ACCOUNT=SPBFUT00265; CLIENT_CODE=XXX; TYPE=M; TRANS_ID=1; CLASSCODE=SPBFUT; SECCODE=RIH0; ACTION=NEW_ORDER; OPERATION=B; QUANTITY=1; PRICE=0;' не была зарегистрирована. Причина '[FORTS] Цена сделки вне лимита'. Parameter name: transactionTxt

Mikhail Sukhov
Mikhail Sukhov

Order.Type = OrderTypes.Market. Но РТС, насколько я помню, не поддерживает в класическом представлении тиы заявки Рыночная. Для этой биржи нужно указывать наихуд цену, и заявка будет удовлетворяться до этой наихуд цены. Затем она снимется.

Mikhail Sukhov
Mikhail Sukhov

Забыл добавить, что именно для таких случаев я и реализовал котирование. В документации описан процесс работы с этим алгоритмом.

ShestkoFF
ShestkoFF 著者

Спасибо. Действительно при указании цены все проходит нормально. Т.е нужно указывать худшую цену чтобы стопроцентно купить или продать по маркету?

Mikhail Sukhov
Mikhail Sukhov

Получается что так. Это биржевые ограничения. Только я бы указывал не просто худшую, а наихудше допустимую. Чтобы был барьер ввиде стоп лосса.