// создаем заявку
var order = new Order
{
Trader = _trader,
Portfolio = _portfolio,
Security = _instrument,
Direction = _direction,
Price = _instrument.GetMarketPrice(direction),
Volume = _volume
};
_trader.RegisterOrder(order);
Для Volume = 1 всё понятно: заявка или исполнится, или не исполнится. Но как быть, когда число контрактов равно, например, 10?
Допустим, надо исполнить 10 контрактов, в стакане по лучшей цене есть только 5. Меня устраивает, чтобы просто исполнилось 10 контрактов по доступным ценам(от лучшей к худшей). Надо для каждой цены писать код выполнения заявок на 5 контрактов (если по данной цене всего 5), потом ещё на 3 (если по следующей после лучшей цене всего 3), потом на 2 (если по следующей за предудущей цене всего 2) или есть уже готовое решение?
Комментарии (15)
Вход или Создать аккаунт, Войдите или зарегистрируйтесь, чтобы оставить комментарий
Какие данные вы бы указали для подобной заявки в терминале? Аналогичные данные надо указывать при выставлении заявки через S#.
Как указать терминалу, что надо сметать всё, что есть, пока число исполненных контрактов не дойдёт до 10?
Рынок какой?
Индекс РТС
Если используете квик, то добавьте экспорт данных по верхнему/нижнему лимиту цены и код из первого сообщения должен работать как вы хотите.
Да, я использую Quik. Не могли бы написать строчки кода, которые надо использовать? Я использую
Когда создаете QuikTrader добавьте```csharp _trader.SecuritiesTable.Columns.Add(DdeSecurityColumns.MinPrice); _trader.SecuritiesTable.Columns.Add(DdeSecurityColumns.MaxPrice);
Решение нашли, надо купить или продать по маркету! Написать Price = _instrument.MinPrice; или Price = _instrument.MaxPrice;
Спасибо за ответ, только не всё понял.
Price = _instrument.MinPrice; // это для продажи? Price = _instrument.MaxPrice; // а это для покупки?
А разве не выставится заявка где-то в конце стакана, чтобы свершиться при достижении рынком цены MinPrice или MaxPrice?
Ты меня конечно извини, но в этом вопросе программирование по моему ни причем. Ты хоть раз торговал ваще?
Если цена в данный момент 150000, а ты отправишь заявку на покупку по 160000, то почем у тя купится?
И ваще мне кажется прежде чем спрашивать, надо попробывать, если не получается спросил.
я лузер в программировании, и то пытаюсь разобраться, когда уже крыша съедет от безисходности спрашиваю на форуме, Потому что если бы я задавал все вопросы не пытаясь разобраться самому, тут форума бы не хватило, к тому же пытаясь понять одно узнаешь много чего другого.
Поставь Демо Quik и эксперементируй сколько влезет.
На Фортсе нет рыночных заявок, поэтому ее придется эмулировать, выставляя заявку по заранее худшей цене. В случае покупки - выставляется самый худший аск/оффер. Также полезно знать, что по правилу биржевого стакана, заявка с худшей ценой, как раз и не выставится "где-то в конце стакана", а будет последовательно собирать весь аск, от лучшего, к самому худшему, пока не наберется весь объем, заявленный в заявке.
Причём и в том, и в том случае сделки начнутся с самых лучших цен.
Может я не так понял вопрос, но мне показалось сей вопрос заключался не в знании методов/функций/классов/свойств/библиотек, а какую цену написать,чтоб купить/продать по рынку.
Для справки. Если после _instrument точку поставить, то там будет куча всего с понятным описанием. Советую каждую пролистать и прочитать что написано. Узнаешь много нового.
А лучше, если действительно хочешь чему то научится, не пожалей деньги и пройди курсы, потому что с такими знаниями ты не сможешь освоить S#, по себе знаю.
В заключение хотел бы спросить, где можно посмотреть код, с помощью которого можно скачивать историю цен инструмента за сегодняшний день? А лучше -- за целую неделю.
Пока что это всё, что меня интересует.
Не надо тебе сейчас никакого кода, пользуйся гидрой