Здравствуйте, выставляю заяки на покупку-продажи фьючерсов с помощью метода
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'. Документ 'позиции по дериватвам[]'. Таблица 'Позиции по дертвативам'. Произошла ошибка: Ошибка при передаче таблицы, вывод приостановлен. Неверные параметры"

Каким образом можно делать преобразования-вычисления на ценой выставляемой заявки?
Kommentare (4)
Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen
Если пишу напрямую (или вызову без параметров) - то де самое
то заявка проходит.
А если вместо 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 что-нибудь выдают?