Создание в стратегии заявок с объемом не равным Strategy.Volume
Atom Ответить
12.10.2011


Создание заявок осуществляю с помощью методов BuyAt и SellAt, но эти методы созждаеют заявки с объемом равным Strategy.Volume.
Попытался изменить объем и зарегистрировать заявку вот так:
Код
var order = directions == OrderDirections.Buy ? strategy.BuyAt(price) : strategy.SellAt(price);
order.Volume = volume;
RegisterOrder(order);

Заявки вообще не отправляются на биржу. причем ошибок не каких нет.
Если же сделать вот так:
Код
var order = directions == OrderDirections.Buy ? strategy.BuyAt(price) : strategy.SellAt(price);
RegisterOrder(order);

Все нормально...
Может подскажите как изменить объем у заявки?

Теги:


Спасибо:




19 Ответов
Alexander

Фотография
Дата: 12.10.2011
Ответить


а volume-то чему равен?
установите Volume у стратегии перед BuyAt
Спасибо:

frontman

Фотография
Дата: 12.10.2011
Ответить


Нет в том то и дело что Volume = 1. И если использовать
Код
var order = directions == OrderDirections.Buy ? strategy.BuyAt(price) : strategy.SellAt(price);
RegisterOrder(order); 

Заявки выставляются правильно с объемом 1.
Но в некоторых случаях мне надо выставлять заявки объемом не равным Strategy.Volume.
Вот поэтому я подумал что :
Код
var order = directions == OrderDirections.Buy ? strategy.BuyAt(price) : strategy.SellAt(price);
order.Volume = volume;
RegisterOrder(order);

Будет работать. Но почему то так они вообще не выст...
Автор топика
Спасибо:

frontman

Фотография
Дата: 12.10.2011
Ответить


Alexander Mukhanchikov Перейти
а volume-то чему равен?

Он разный. Но иногда бывает такой же как и у стратегии, т.е = 1 но и тогда заявки не выст
Автор топика
Спасибо:

frontman

Фотография
Дата: 12.10.2011
Ответить


Логи вывел даже спец:
15:38:06.734 | | Мое | Создал заявку с объемом поумолчанию: TransactionId=0, Id=0, Price=16121,00000, Balance=0, Security=GZZ1@RTS, State=None
15:38:06.797 | | Мое | Обработка Limit заявки 55808783 на Buy с номером 5404776964.
15:38:08.016 | | Мое | Обработка Limit заявки 0 на Buy с номером 5404777601.
15:38:16.344 | | Мое | Создал заявку с объемом поумолчанию: TransactionId=0, Id=0, Price=16172,00000, Balance=0, Security=GZZ1@RTS, State=None
15:38:16.469 | | Мое | Обработка Limit заявки 55808787 на Sell с номером 5404781919.
15:38:16.484 | | Мое | Новая Sell сделка 422124435 на 1 заявки 55808582.
15:38:16.516 | | Мое | Отмена заявки 55808771.
15:38:16.516 | | Мое | Отмена заявки 55808772.
15:38:16.578 | | Мое | Отмена заявки 55808787.
15:38:23.047 | | Мое | Создал заявку с заданным объемом: TransactionId=0, Id=0, Price=16141,00000, Balance=0, Security=GZZ1@RTS, State=None
15:38:23.109 | | Мое | Обработка Limit заявки 0 на Sell с номером 5404782009.
15:38:23.688 | | Мое | Создал заявку с заданным объемом: TransactionId=0, Id=0, Price=16145,00000, Balance=0, Security=GZZ1@RTS, State=None
15:38:23.797 | | Мое | Создал заявку с заданным объемом: TransactionId=0, Id=0, Price=16158,00000, Balance=0, Security=GZZ1@RTS, State=None

15:38:24.094 | | Мое | Обработка Limit заявки 0 на Sell с номером 5404783305.
15:38:24.266 | | Мое | Обработка Limit заявки 0 на Buy с номером 5404783549.
15:38:24.328 | | Мое | Обработка Limit заявки 0 на Sell с номером 5404783643.
15:38:24.625 | | Мое | Обработка Limit заявки 0 на Buy с номером 5404784277.
15:38:24.813 | | Мое | Обработка Limit заявки 0 на Sell с номером 5404784551.
15:38:25.031 | | Мое | Обработка Limit заявки 55809031 на Buy с номером 5404784991.
15:38:25.250 | | Мое | Создал заявку с заданным объемом: TransactionId=0, Id=0, Price=16142,00000, Balance=0, Security=GZZ1@RTS, State=None
15:38:25.359 | | Мое | Новая Buy сделка 422124586 на 1 заявки 55809031.
15:38:25.406 | | Мое | Создал заявку с объемом поумолчанию: TransactionId=0, Id=0, Price=16138,00000, Balance=0, Security=GZZ1@RTS, State=None



Логи вывожу так :
Код
var order = directions == OrderDirections.Buy ? strategy.BuyAt(price) : strategy.SellAt(price);
order.Volume = volume;
strategy.AddOrderInfoLog(order, "Создал заявку с заданным объемом");
RegisterOrder(order);


Код
var order = directions == OrderDirections.Buy ? strategy.BuyAt(price) : strategy.SellAt(price);
strategy.AddOrderInfoLog(order, "Создал заявку с объемом поумолчанию");
RegisterOrder(order);
Автор топика
Спасибо:

Alexander

Фотография
Дата: 12.10.2011
Ответить


А где volume выводится?
Что пишет ProcessDataError \ OrdersFailed?

Дубль 2: Strategy.Volume устанавливайте перед BuyAt. Так точно будет меняться
Спасибо:

frontman

Фотография
Дата: 12.10.2011
Ответить


Все заявки подкрашенные желтым не выставились...
Автор топика
Спасибо:

frontman

Фотография
Дата: 12.10.2011
Ответить


Alexander Mukhanchikov Перейти
А где volume выводится?
Дубль 2: Strategy.Volume устанавливайте перед BuyAt. Так точно будет меняться

Не подходит мне этот вариант. Программа много поточная!
Нельзя менять Strategy.Volume. В других методах объем может исп по умолчанию.
Автор топика
Спасибо:

frontman

Фотография
Дата: 12.10.2011
Ответить


Ну вообщем наверно проще будет создать новую заявку через new Order и прям присвоить всем свойствам значения...
Автор топика
Спасибо:

Alexander

Фотография
Дата: 12.10.2011
Ответить


Зачем задавать вопросы если игнорировать ответы на них?
Спасибо:

frontman

Фотография
Дата: 12.10.2011
Ответить


Александр я же объяснил почему "Strategy.Volume устанавливайте перед BuyAt" не подходит.
Т.к. значение по умолчанию используется параллельно еще много где в программе. Менять его нельзя.
Вот и все. Не игнорирую я ваш ответ. Я предлагаю свой просто. как думаете он сработает?
Автор топика
Спасибо:

Alexander

Фотография
Дата: 12.10.2011
Ответить


frontman Перейти
Александр я же объяснил почему "Strategy.Volume устанавливайте перед BuyAt" не подходит.
Т.к. значение по умолчанию используется параллельно еще много где в программе. Менять его нельзя.
Вот и все. Не игнорирую я ваш ответ. Я предлагаю свой просто. как думаете он сработает?


Дубль 2:
Что пишет ProcessDataError \ OrdersFailed?
Чему равен volume? Где он выводится? Может он у вас 0 или отрицательный. или дробный.
Спасибо:

frontman

Фотография
Дата: 12.10.2011
Ответить


Я просто не понимаю почему
Код
var order = directions == OrderDirections.Buy ? strategy.BuyAt(price) : strategy.SellAt(price);
order.Volume = volume;
RegisterOrder(order);

Не подходит. Ведь BuyAt и SellAt только создают объект Order. Я его перед тем как зарегистрировать изменяю. Что не так не пойму. Или BuyAt и SellAt не только создают Order исп параметры стратегии?
Автор топика
Спасибо:

frontman

Фотография
Дата: 12.10.2011
Ответить


Ага. Вот теперь понял вопрос.
"Может он у вас 0 или отрицательный. или дробный." - Возможно в этом и заключается ошибка.
Просто стратегия в логах ничего не записывала. Я думал она по умолчанию все ошибки в логи заносит. Сейчас проверю. Спасибо.
Автор топика
Спасибо:

Alexander

Фотография
Дата: 12.10.2011
Ответить


frontman Перейти
Я просто не понимаю почему
Код
var order = directions == OrderDirections.Buy ? strategy.BuyAt(price) : strategy.SellAt(price);
order.Volume = volume;
RegisterOrder(order);

Не подходит. Ведь BuyAt и SellAt только создают объект Order. Я его перед тем как зарегистрировать изменяю. Что не так не пойму. Или BuyAt и SellAt не только создают Order исп параметры стратегии?


BuyAt просто создаёт объект Order, ничего более
Спасибо:

Alexander

Фотография
Дата: 12.10.2011
Ответить


frontman Перейти
Ага. Вот теперь понял вопрос.
"Может он у вас 0 или отрицательный. или дробный." - Возможно в этом и заключается ошибка.
Просто стратегия в логах ничего не записывала. Я думал она по умолчанию все ошибки в логи заносит. Сейчас проверю. Спасибо.


Стратегия в логи ошибки не выводит. Она их выбрасывает и обрабатываются они в событии OrdersFailed.
Я потому и твержу об этом событии.
Спасибо:

frontman

Фотография
Дата: 12.10.2011
Ответить


Все. Понял. Извиняюсь что не сразу)
Я просто до этого видел как ошибки стратегия сама выводила. Может просто не все.
Автор топика
Спасибо:

frontman

Фотография
Дата: 13.10.2011
Ответить


Проверил объемы и вывожу в логи ProcessDataError \ OrdersFailed:

11:56:24.785 | | Мое | Создал заявку с заданным объемом: 1: TransactionId=0, Id=0, Price=16497, Balance=0, Security=GZZ1@RTS, State=None
11:56:26.925 | | Мое | Обработка Limit заявки 0 на Buy с номером 5416535881.
11:56:34.206 | | Мое | Обработка Limit заявки 0 на Sell с номером 5416540367.
11:56:34.628 | | Мое | Обработка Limit заявки 0 на Buy с номером 5416540655.
11:56:35.081 | | Мое | Обработка Limit заявки 0 на Sell с номером 5416540929.
11:56:35.316 | | Мое | Обработка Limit заявки 0 на Buy с номером 5416541109.
11:56:35.628 | | Мое | Обработка Limit заявки 0 на Sell с номером 5416541366.
11:56:36.425 | | Мое | Обработка Limit заявки 0 на Buy с номером 5416541595.
11:56:38.081 | | Мое | Обработка Limit заявки 0 на Sell с номером 5416542315.
11:56:43.550 | | Мое | Обработка Limit заявки 0 на Buy с номером 5416546603.
11:56:44.206 | | Мое | Обработка Limit заявки 0 на Sell с номером 5416547056.
11:56:45.144 | | Мое | Создал заявку с заданным объемом: 1: TransactionId=0, Id=0, Price=16496,00000, Balance=0, Security=GZZ1@RTS, State=None
11:56:45.300 | | Мое | Обработка Limit заявки 42370132 на Buy с номером 5416547885.
11:56:48.363 | | Мое | Обработка Limit заявки 0 на Buy с номером 5416549862.
11:56:52.722 | | Мое | Обработка Limit заявки 0 на Sell с номером 5416552751.
11:56:54.113 | | Мое | Создал заявку с заданным объемом: 1: TransactionId=0, Id=0, Price=16503,00000, Balance=0, Security=GZZ1@RTS, State=None
11:56:54.378 | | Мое | Обработка Limit заявки 42370135 на Buy с номером 5416553780.
11:56:54.706 | | Мое | Обработка Limit заявки 0 на Sell с номером 5416554010.
11:56:54.706 | | Мое | Обработка Limit заявки 0 на Buy с номером 5416554046.
11:56:57.785 | | Мое | Обработка Limit заявки 0 на Sell с номером 5416555948.
11:56:59.144 | | Мое | Создал заявку с заданным объемом: 1: TransactionId=0, Id=0, Price=16503,00000, Balance=0, Security=GZZ1@RTS, State=None
Автор топика
Спасибо:

frontman

Фотография
Дата: 13.10.2011
Ответить


Вот та что желтая не прошла. Те что после идут прошли.
Полтергейст блин... Как видите ProcessDataError \ OrdersFailed молчат...
Автор топика
Спасибо:

frontman

Фотография
Дата: 13.10.2011
Ответить


Причем как то странно в лог вывелась инф по этой заявке : обратите внимание на поле цены, у всех остальных заявок стоят еще нули после запятой... А тут нет...
Автор топика
Спасибо:


Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy