Здравствуйте, выставляю заяки на покупку-продажи фьючерсов с помощью метода
private void BuySell(decimal price, OrderDirections orderDirection, decimal volume )
{
var order = new Order
{
Trader=_trader,
Portfolio=_portfolio,
Security = _sec,
Volume = volume,
Price = price,
Direction = orderDirection
};
Trader.RegisterOrder(order);
}
Всё работает, kind of, когда я передаю цены, пришедшие в S# из КВИК, без каких-то вычислений выражений, например:
- BuySell(_sec.MinPrice, OrderDirections.Sell, 2); или
- BuySell(_sec.MaxPrice, OrderDirections.Buy, 3);
Но когда я пытаюсь подправить миним-ю/максимальную цену, для того чтобы гарантировать, что цена попадает в границы допустимых и в связи с округлением максимальной/минимальной возможной цены в Stock#, например, как:
BuySell(_sec.MaxPrice-1.0M, OrderDirections.Buy, 1);
или
BuySell(_sec.MinPrice+1.0M, OrderDirections.Sell, 5);
или
BuySell(_sec.MaxPrice-1, OrderDirections.Buy, 1);
или
BuySell(_sec.MinPrice+1, OrderDirections.Sell, 5);
то заявка не выставляется, при всех тех же одинаковых условиях, причём нет никаких предупреждений-сообщений со стороны Stock#, а в КВМК выдаётся предупреждение:
"DDE сервер 'STOCKSHARP'. Документ 'позиции по дериватвам[]'. Таблица 'Позиции по дертвативам'. Произошла ошибка: Ошибка при передаче таблицы, вывод приостановлен. Неверные параметры"

Каким образом можно делать преобразования-вычисления на ценой выставляемой заявки?
Комментарии (4)
Вход или Создать аккаунт, Войдите или зарегистрируйтесь, чтобы оставить комментарий
Если пишу напрямую (или вызову без параметров) - то де самое
то заявка проходит.
А если вместо Price = _sec.MaxPrice, напишу Price = _sec.MaxPrice-1, или Price = _sec.MaxPrice-1.0M, то заявк не выставляется... И, главное - в Ы№ никаких предупреждений или ошибок
Какой инструмент используется?
Вы уверены что шаг цены инструмента кратен 1?
Допустим для RIZ2 сейчас верхняя планка равна 147550. Получается вы пытаетесь отправить заявку с ценой 147549, хотя у ри шаг цены 10п.
Правильней писать так:
Тогда при смене инструмента не придется менять отступ.
SIZ2, RIZ2
Тем более, я не понимаю - зачем нужно проверять на кратность, если я, например, выставляю на покупку по 141, 200., а сделка, всё равно совершается по рыночной цене 139,930. Это защита от новичков?
Trader.ProcessDataError и Trader.OrdersRegisterFailed что-нибудь выдают?