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

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


Создание заявок осуществляю с помощью методов 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);

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


Теги:


Спасибо:


< 1 2 
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
Ответить


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

Спасибо:
< 1 2 

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

loading
clippy