Не регистрируется заявка в RealTimeEmulationTrader
Atom Ответить
20.09.2012


S# 4.1.4
Не регистрируется заявка в RealTimeEmulationTrader<QuikTrader>.
Что делал:
Я взял пример SampleSMA, поменял
Код
_trader = new QuikTrader(Path.Text);

на
Код
_trader = new RealTimeEmulationTrader<QuikTrader>(new QuikTrader(Path.Text));


Поменял инструмент на RIZ2.

Verifier говорит, что у Квика все хорошо.

Лог:

и далее количество заявок продолжает нарастать.

Я что-то делаю не так?
Если да, то что, куда смотреть ?



Спасибо:




59 Ответов
1 2 3  >
risty

Фотография
Программист
Дата: 21.09.2012
Ответить


Код
Код

protected override void OnStarted()
        {
            Trader.NewTrades += (trades) =>
                {
                    foreach (var trade in trades)
                    {
                        this.AddInfoLog("|  trade.Time = " + trade.Time);
                    }
                };
            Trader.NewMarketDepths += (depts) =>
                {
                    foreach (var dept in depts)
                    {
                        this.AddInfoLog("|  NewMarketDepths.LastChangeTime = " + dept.LastChangeTime); 
                    }
                };

            Trader.MarketDepthsChanged += (depts) =>
            {
                foreach (var dept in depts)
                {
                    this.AddInfoLog("|  MarketDepthsChanged.LastChangeTime = " + dept.LastChangeTime);
                }
            };

 base.OnStarted();

        }

работает. Сделки приходят, стакан создается и обновляется.

з.ы.
У меня такое ощущение, что я спросил что-то неприличное и поэтому все молчат )))
Скажите плз, что-то уже изменилось и документация не отражает действительность и даже в пример надо вносить какие-то ещё изменения ?
Или у меня кривые руки и смотреть мне нужно примерно куда?
Или это Баг RealTimeEmulationTrader или Котировщика ?
Автор топика
Спасибо:

esper

Фотография
Программист
Дата: 21.09.2012
Ответить


Это временная проблема RealTimeEmulationTrader, как вариант, лучше использовать тестер из более ранних версий.
Спасибо:

risty

Фотография
Программист
Дата: 21.09.2012
Ответить


esper Перейти
Это временная проблема RealTimeEmulationTrader, как вариант, лучше использовать тестер из более ранних версий.


Спасибо за ответ.
Пример из релиза 4.1.3 так же не работает

Вот у мужчин похожее исключение
Буду пробовать 4.1.2.
Если вы можете посоветовать сборку с рабочими примерами - не стесняйтесь !)
Автор топика
Спасибо:

pyhta4og

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


risty Перейти
S# 4.1.4
Не регистрируется заявка в RealTimeEmulationTrader<QuikTrader>.
Что делал:
Я взял пример SampleSMA, поменял
Код
_trader = new QuikTrader(Path.Text);

на
Код
_trader = new RealTimeEmulationTrader<QuikTrader>(new QuikTrader(Path.Text));


Поменял инструмент на RIZ2.

Verifier говорит, что у Квика все хорошо.

Лог:

и далее количество заявок продолжает нарастать.

Я что-то делаю не так?
Если да, то что, куда смотреть ?



Проверьте пожалуйста что в trader.ProcessDataError не передается ошибок. Еще полезно включить логирование шлюза в файл, там отражается лог заявок.
Спасибо:

risty

Фотография
Программист
Дата: 24.09.2012
Ответить


pyhta4og Перейти

Проверьте пожалуйста что в trader.ProcessDataError не передается ошибок. Еще полезно включить логирование шлюза в файл, там отражается лог заявок.


Код
Код

protected override void OnStarted()
		{

            Trader.ProcessDataError += error =>
            {
                this.AddInfoLog(error.StackTrace);
            };

			base.OnStarted();
		}

Ничего в лог не пишет.

А при добавлении логирования трэйдера:
Код
_logManager.Sources.Add(_trader);

где _trader все тот же
Код
_trader = new RealTimeEmulationTrader<QuikTrader>(new QuikTrader(Path.Text));

Пишет ошибку "Наиболее подходящий перегруженный метод имеет несколько недопустимых аргументов".

А для
Код
_trader = new QuikTrader(Path.Text);

такой ошибки не выдает.
Автор топика
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 25.09.2012
Ответить


risty Перейти

Или это Баг RealTimeEmulationTrader или Котировщика ?


Попробуйте на последней версии с кодеплекса. По сути проблемы мало что понятно, но были другие ошибки. Возможно, у вас починилось.
Спасибо:

risty

Фотография
Программист
Дата: 27.09.2012
Ответить


Mikhail Sukhov Перейти
risty Перейти

Или это Баг RealTimeEmulationTrader или Котировщика ?


Попробуйте на последней версии с кодеплекса. По сути проблемы мало что понятно, но были другие ошибки. Возможно, у вас починилось.


trunk 19527

Сообщения лога чутка поменялись:

но суть осталась так же =(

Так же сохраняется ошибка при добавлении трэйдера в источники логов.
Пишет ошибку "Наиболее подходящий перегруженный метод имеет несколько недопустимых аргументов".
Автор топика
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 27.09.2012
Ответить


risty Перейти

но суть осталась так же =(


На нашем примере это воспроизводится? Если нет, то нужен минимальный код, показывающий эту ситуацию.

risty Перейти

Так же сохраняется ошибка при добавлении трэйдера в источники логов.
Пишет ошибку "Наиболее подходящий перегруженный метод имеет несколько недопустимых аргументов".


Здесь ошибки нет, читайте про типизацию в C#.
Спасибо:

risty

Фотография
Программист
Дата: 27.09.2012
Ответить


Mikhail Sukhov Перейти

На нашем примере это воспроизводится? Если нет, то нужен минимальный код, показывающий эту ситуацию.

Да, я взял пример SampleSMA и чутка по правил в нем "MainWindow.xaml.cs" до состояния во вложении.
Mikhail Sukhov Перейти

Здесь ошибки нет, читайте про типизацию в C#.

Странно, делал по инструкции https://stocksharp.ru/do...1f-967e-4c15a5b0aa71.htm
Буду разбираться дальше.

MainWindow.xaml.cs 10,8KB (0)
Автор топика
Спасибо:

Moadip

Фотография
Автор статей Программист
Дата: 27.09.2012
Ответить


risty Перейти

Странно, делал по инструкции https://stocksharp.ru/do...1f-967e-4c15a5b0aa71.htm
Буду разбираться дальше.


Покажите кусок кода как добавляете шлюз в логгер.

В приведенном MainWindow.xaml.cs я этого не увидел.
Видно что создается логгер, видно что добавляется в каком формате будет лог выводится - txt.
А как добавляется шлюз - нет.


Спасибо:

risty

Фотография
Программист
Дата: 27.09.2012
Ответить


Moadip Перейти
risty Перейти

Странно, делал по инструкции https://stocksharp.ru/do...1f-967e-4c15a5b0aa71.htm
Буду разбираться дальше.


Покажите кусок кода как добавляете шлюз в логгер.

В приведенном MainWindow.xaml.cs я этого не увидел.
Видно что создается логгер, видно что добавляется в каком формате будет лог выводится - txt.
А как добавляется шлюз - нет.




В приведенном файле 239 строка
Код
_logManager.Sources.Add(_trader);

она там закоменнтирована чтобы не выдавало ошибку.

Я правильно понимаю, что логировать можно только реальный шлюз по средствам:
Код
_logManager.Sources.Add(_trader.UnderlyingTrader);

??
В логе все равно ничего про шлюз не появляется (
з.ы.Если бы в логе появилось что-то про шлюз - я бы не спрашивал )
Автор топика
Спасибо:

Moadip

Фотография
Автор статей Программист
Дата: 27.09.2012
Ответить


Цитата:
Я правильно понимаю, что логировать можно только реальный шлюз по средствам:

Да.

Цитата:
В приведенном файле 239 строка

Увидел. Правда не ожидал в этом месте.
У вас добавление шлюза в логгер идет в том же месте где и создается/добавляется стратегия.

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

risty

Фотография
Программист
Дата: 27.09.2012
Ответить


Moadip Перейти
Цитата:
Я правильно понимаю, что логировать можно только реальный шлюз по средствам:

Да.

Цитата:
В приведенном файле 239 строка

Увидел. Правда не ожидал в этом месте.
У вас добавление шлюза в логгер идет в том же месте где и создается/добавляется стратегия.

Добавлять шлюз в логгер надо тогда, когда он создается.
Еще до того как запустится стратегия, надо подключится к терминалу, запустить экспорт и на этом этапе могут вылезти баги.
Которые не будут добавлены в логи и будут не видны, т.к. добавление шлюза в логгер происходит слишком поздно.

Спасибо большое за разъяснение. Я сам как-то не додумался.
Теперь:
Код
_trader = new RealTimeEmulationTrader<QuikTrader>(new QuikTrader(Path.Text));
                    _logManager.Sources.Add(_trader.UnderlyingTrader);

А в логе появилась одна новая самая первая строчка про старт экспорта:
Автор топика
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 27.09.2012
Ответить


Moadip Перейти

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


RTEmulationTrader сделаем логирующим.
Спасибо:

risty

Фотография
Программист
Дата: 27.09.2012
Ответить


Mikhail Sukhov Перейти
Moadip Перейти

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


RTEmulationTrader сделаем логирующим.

Зато я уже зачетненько почитал
Mikhail Sukhov Перейти

про типизацию в C#.

Cool
Автор топика
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 30.09.2012
Ответить


Посмотрите последнюю версию в транке. Вроде бы баги с нерегистрацией заявки в РТ больше нет.
Спасибо:

Дюшес

Фотография
Программист
Дата: 21.10.2012
Ответить


RealTimeEmulationTrader перестал работать примерно где-то после версии 4.1.3.18418 и в последних тоже не работает.
Вызываешь RegisterOrder и на этом все, в логах пусто.
Спасибо:

Alexander

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


SampleRealTimeTesting из транка работает?
Спасибо:

Дюшес

Фотография
Программист
Дата: 26.10.2012
Ответить


К сожалению не могу проверить на RealTimeEmulationTrader<SmartTrader>. Проверял в Alfa и Quik на простом коде:
Код

class TestStrategy : Strategy
{
  public TestStrategy()
  {
  }

  protected override void OnStarted()
  {
    base.OnStarted();

    var order = this.CreateOrder(OrderDirections.Buy, 0);
    order.Type = OrderTypes.Market;

    RegisterOrder(order);
  }
}


В логах пусто. На альфе, при остановке, стратегия висит не завершаясь на фразе: "снятие всех активных заявок".
Спасибо:

Alexander

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


Какой инструмент?
Спасибо:

Дюшес

Фотография
Программист
Дата: 26.10.2012
Ответить


RIZ2
Спасибо:

Alexander

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


На фортсе нет и никогда не было маркет заявок.
Спасибо:

Дюшес

Фотография
Программист
Дата: 26.10.2012
Ответить


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

Дюшес

Фотография
Программист
Дата: 26.10.2012
Ответить


В версии 4.1.3.18418 на RealTimeEmulationTrader у меня работали и лимитные и маркет ордера
Спасибо:

pyhta4og

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


Пожалуйста, обновитесь до последней версии из транка и
поставьте у RealTimeEmulationTrader (именно RealTime, а не Underlying) уровень логирования Debug.

И попробуйте регистрацию заявки. В логе будут массированные сообщения типа IN, EM, OUT, CL

Пришлите этот лог а также, если возможно, код инициализации трейдера.

Спасибо:
1 2 3  >

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

loading
clippy