Ошибка: котирование порождает несколько выполненных заявок


Ошибка: котирование порождает несколько выполненных заявок
Atom
10.11.2011


Проблема проявляется даже стандартном примере SampleHistoryTesting. Для обнаружения в OnProcess достаточно добавить
Код
if (Math.Abs(PositionManager.Position) > Volume)
  throw new Exception("Неверное состояние - поза превышает рабочий объем.");

и после получения эксепшена посмотреть Trader.Orders - последние две заявки будут исполненными, а перед ними будет несколько отмененных с примерно тем же временем.

Ошибка плавающая, возникает иногда на первой же заявке, а иногда несколько первых заявок проходят нормально.

Теги:


Спасибо:


<< < 3 4 5 6  >
Mikhail Sukhov

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


Camill Перейти
Так что тормоза надо лечить отдельно.


Параллельным матчингом.
Спасибо:

Camill

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


Mikhail Sukhov Перейти
Параллельным матчингом.

Буду благодарен за пример кода.
Нашел в документации ParallelMarketEmulator, но не нашел, куда его надо вписать.
Спасибо:

Mikhail Sukhov

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


Camill Перейти
Mikhail Sukhov Перейти
Параллельным матчингом.

Буду благодарен за пример кода.
Нашел в документации ParallelMarketEmulator, но не нашел, куда его надо вписать.


Вы же мне пример присылали, где синхронный устанавливали.
Спасибо:

Camill

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


И правда.
Но подключение параллельного не помголо - те же 25 минут на тестовый пример.
Подключал так:
Код
_trader.MarketEmulator = new ParallelMarketEmulator(_trader);
Спасибо:

Mikhail Sukhov

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


Camill Перейти
И правда.
Но подключение параллельного не помголо - те же 25 минут на тестовый пример.
Подключал так:
Код
_trader.MarketEmulator = new ParallelMarketEmulator(_trader);


Значит это точно не матчинг заявок увеличил время. Свечки используете?
Спасибо:

Camill

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


Mikhail Sukhov Перейти
Значит это точно не матчинг заявок увеличил время. Свечки используете?

Конечно. Собственно, я к тестовому примеру со скользящими средними его и подключал.
Спасибо:

Mikhail Sukhov

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


Camill Перейти
Mikhail Sukhov Перейти
Значит это точно не матчинг заявок увеличил время. Свечки используете?

Конечно. Собственно, я к тестовому примеру со скользящими средними его и подключал.


Наверное, они тормозят. Раньше был один алгоритм компрессии, затем другой (опять же, с фиксами). Ничего не поделать, свечки сейчас (да и раньше тоже) самый тормозящий участок в тестировании. Я уже предлагал в Гидре сделать компрессию для ускорения. Не знаю, работает ли.
Спасибо:

Camill

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


Вроде что-то сделали, но непонятно, как это использовать - ни примера, ни мануала внятного я не видел.
Спасибо:

Mikhail Sukhov

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


Camill Перейти
Вроде что-то сделали, но непонятно, как это использовать - ни примера, ни мануала внятного я не видел.


Вот такая помощь. К таким помощникам еще парочка помощников нужна.
Спасибо:

russ

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


По поводу проблемы с неработающим котированием, описанной здесь http://stocksharp.com/fo...rabotaiet-kotirovaniie/
1. Взял с codeplex версию 4.0.6
2. К стратегии котирования прикрепил лог
Код

var strategy = new MarketQuotingStrategy(order, new Unit(5), new Unit(5));
var log = new FileLogListener("log" + (count++).ToString() + ".txt");
strategy.Log += new Action<LogMessage>(message => log.WriteMessage(message)); 


В итоге все нормально, но появилось очень много сообщение о том, что в стакан пустой:
Код

00:05:00.000 |            | MQS             | Стратегия запущена.
00:05:00.000 | Warning    | MQS             | Стакан пустой.
00:10:00.000 | Warning    | MQS             | Стакан пустой.
00:15:00.000 | Warning    | MQS             | Стакан пустой.
00:20:00.000 | Warning    | MQS             | Стакан пустой.
00:25:00.000 | Warning    | MQS             | Стакан пустой.
00:30:00.000 | Warning    | MQS             | Стакан пустой.
00:35:00.000 | Warning    | MQS             | Стакан пустой.
00:40:00.000 | Warning    | MQS             | Стакан пустой.
00:45:00.000 | Warning    | MQS             | Стакан пустой.

Лог обрезал т.к. очень длинный, т.е. каждые 5 минут выдается сообщение Стакан Пустой.

23:20:00.000 | Warning    | MQS             | Стакан пустой.
23:25:00.000 | Warning    | MQS             | Стакан пустой.
23:30:00.000 | Warning    | MQS             | Стакан пустой.
23:35:00.000 | Warning    | MQS             | Стакан пустой.
23:40:00.000 | Warning    | MQS             | Стакан пустой.
23:45:00.000 | Warning    | MQS             | Стакан пустой.
23:50:00.000 | Warning    | MQS             | Стакан пустой.
23:55:00.000 | Warning    | MQS             | Стакан пустой.
23:59:59.990 |            | MQS             | Регистрация новой заявки на Buy с ценой 155010 и объемом 1.
23:59:59.990 |            | MQS             | Заявка 52981109 на Buy отправлена с ценой 155010 объемом 1.
00:04:59.990 |            | MQS             | Цена текущей 155010 и лучшей 154965.
00:04:59.990 |            | MQS             | Лучший бид 154960 и лучший аск 155005.
00:04:59.990 |            | MQS             | Котирование заявки 52981109 на Buy с ценой 155010 объемом 1.
00:04:59.990 |            | MQS             | Отмена заявки 52981109.
00:04:59.990 |            | MQS             | Новая Buy сделка 1 по цене 155005 на 1 заявки 52981109.
00:04:59.990 |            | MQS             | Позиция изменилась на 1.
00:04:59.990 |            | MQS             | Заканчиваем котирование с неисполненным объемом равный 0.
00:04:59.990 |            | MQS             | Стратегия останавливается.
00:04:59.990 |            | MQS             | Заканчиваем котирование с неисполненным объемом равный 0.
00:04:59.990 |            | MQS             | Заканчиваем котирование с неисполненным объемом равный 0.
00:04:59.990 |            | MQS             | Заканчиваем котирование с неисполненным объемом равный 0.
00:04:59.990 |            | MQS             | Стратегия остановлена.


Непонятно почему стакан пустой, исходные данные формирую как в примере:

Код

var portfolio = new Portfolio { Name = "test account" };
                    var timeFrame = TimeSpan.FromMinutes(5);
                    var security = new Security
                    {
                        Id = "RIU9@RTS",
                        Code = "RIU9",
                        Name = "RTS-9.09",
                        MinStepSize = 5,
                        MinStepPrice = 2,
                        Decimals = 0,
                        Exchange = Exchange.Test,
                    };
                    
                    _trader = new EmulationTrader(
                    new[] { security },
                    new[] { portfolio })
                        {
                            MarketTimeChangedInterval = timeFrame
                        };

                        _trader.TradeGenerators[security] = new RandomWalkTradeGenerator(security, 155000);

                        _trader.DepthGenerators[security] = new TrendMarketDepthGenerator(security);
Спасибо:
<< < 3 4 5 6  >

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

loading
clippy