ошибка эмуляционный plazaTrader
Atom Ответить
17.05.2012


Версия 4.1 (beta)
Переписал, под новую версию, для отлаживания решил поработать через эмуляционый трейдер
Код
RealTimeEmulationTrader<PlazaTrader>

Стратегия работает, но вывод в график эквити нет, также не появляется информация в отчете о сделках, только о заявках.

Вот стек трейс


Ошибка обработки данных

System.MissingMethodException: Method not found: 'Void StockSharp.BusinessEntities.MyTrade.set_PnL(System.Decimal)'.

at StockSharp.Algo.Strategies.Strategy.#=qkgZFPxGi$ECujYjIxJexEA==(IEnumerable`1 #=qcE736mub7VO2W6WF6_Ksjw==)

at StockSharp.Algo.Strategies.Strategy.#=qMsE_t0UvJbk5pl_d10bUg65YKxFVfxDw_sxPZZdceso=(IEnumerable`1 #=qAVYNiKdFDaWf7$E79yD9HA==)

at System.Action`1.Invoke(T obj)

at Ecng.Common.DelegateHelper.SafeInvoke[T](Action`1 handler, T arg)

at StockSharp.Algo.Testing.RealTimeEmulationTrader`1.#=q31tcw46kVie247LG7JC3rawsTV_4PPMiNb3nfHQhRAg=(IEnumerable`1 #=q1SB9HRPlt19vFFcTcgdNUA==)

at Ecng.Common.DelegateHelper.SafeInvoke[T](Action`1 handler, T arg)

at StockSharp.Algo.Testing.MarketEmulator.#=quqtSnuGq5f5POgxeDleFXw==(Order #=qVYBEhfpbngiIldDzjfeNVw==, Decimal #=qB_q5TM5NqOVbmG8Sh_y0lA==, Decimal #=qJy$qJWxHkEld9IY5ASavhQ==)

at StockSharp.Algo.Testing.MarketEmulator.#=qf9CQicKzakD5vLTcalBhVaXvGMTvBHWEg0Z_wjOs9Fs=(Order #=qJ$avBfwd$514nCN7kM9DcA==, MarketDepth #=qOle93rDk3Vy4zS6UNYpYQw==, Boolean #=qt3rmFrcGsK2eVx1hmI0vXg==)

at StockSharp.Algo.Testing.MarketEmulator.#=qt9mNe1nnM0L_bVvVy_asHQ==(LinkedListNode`1 #=qn9ljsNq8MfAm9iGN4eGuGg==)

ОК
---------------------------

Теги:


Спасибо:




17 Ответов
fish

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


через реальный PlazaTrader
также ошибка


Ошибка обработки данных

System.MissingMethodException: Method not found: 'Void StockSharp.BusinessEntities.MyTrade.set_PnL(System.Decimal)'.

at StockSharp.Algo.Strategies.Strategy.#=qkgZFPxGi$ECujYjIxJexEA==(IEnumerable`1 #=qcE736mub7VO2W6WF6_Ksjw==)

at StockSharp.Algo.Strategies.Strategy.#=qMsE_t0UvJbk5pl_d10bUg65YKxFVfxDw_sxPZZdceso=(IEnumerable`1 #=qAVYNiKdFDaWf7$E79yD9HA==)

at System.Action`1.Invoke(T obj)

at Ecng.Common.DelegateHelper.SafeInvoke[T](Action`1 handler, T arg)

at Ecng.ComponentModel.EventsContainer`1.Raise(IEnumerable`1 items)

ОК
---------------------------
Автор топика
Спасибо:

fish

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


также вроде опять появился перебор позиции при MQS, пока не могу предоставить лог работы, пришлось оперативно отключать робота :D
Автор топика
Спасибо:

Alexander

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


Исправили, обновил сборки.
Спасибо:

fish

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


спасибо большое!!!! удивляюсь Вашей оперативностью! ThumpUp
Автор топика
Спасибо:

fish

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



Проблема1: не правильно отображается доходность, график эквити

Завышена прибыль по эквити, т.е. реально к примеру алгоритм заработал 850 а робот уже отражает 2000
для индекса РТС (видимо с переводом проблемы)

Проблема2: перебор позиции

лог работы в виде отчета о сделках, там макс должно было быть 1 позиция, либо -1 либо + 1
В итоге доходило до 5
Как то была эта проблема но позже ее пофиксили, к примеру у предыдущей версии на которой я работал данной ошибки нет, позы набираются ровно, в коде робота поменял только событийную модель, в связи с последними изменениями
Автор топика
Спасибо:

fish

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


да забыл добавить это реальный трейдер, а не эмуляционный
Автор топика
Спасибо:

pyhta4og

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


Equity рисуется в рублях. Перевод в рубли идет умножением PnL сделки в пунктах на Security.MinStepPrice.

Возможно в вашем случае MinStepPrice некорректно обновился через Plazatrader. Каким инструментом торгуете?

ЗЫ. Форма кривой эквити красивая) Всегда такая? Арбитраж?
Спасибо:

fish

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


да знаю что в рублях, в предыдущей версии на которой работал (около 16700 сборка) корректно отображается
+ как писал выше нет проблем с перебором позиции

Цитата:
Арбитраж?


нет

Цитата:
Форма кривой эквити красивая) Всегда такая?


увы нет :D

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

Alexander

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


fish Перейти

Проблема2: перебор позиции

лог работы в виде отчета о сделках, там макс должно было быть 1 позиция, либо -1 либо + 1
В итоге доходило до 5
Как то была эта проблема но позже ее пофиксили, к примеру у предыдущей версии на которой я работал данной ошибки нет, позы набираются ровно, в коде робота поменял только событийную модель, в связи с последними изменениями



Посмотрел детально по отчёту и посчитал по сделкам.

Всё считается верно - у вас действительно на 521 и 523 сделке стала позиция = 5.
На сделках 256, 260, 264, 268, 274, 278, 282, 432 и т.д. - позиция = 4.

Так что проблема не в определении позиции, а в вашем алгоритме.



По первому пункту - напишите чему равен MinStepPrice у инструмента. Может плаза криво оттранслировала.
И какой инструмент?

P.S. Просьба для новых проблем создавать новые темы, а не писать в старых. Данные проблемы к эмуляционному plazaTrader отношения не имеют.
Спасибо:

fish

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


Цитата:
Посмотрел детально по отчёту и посчитал по сделкам.

Всё считается верно - у вас действительно на 521 и 523 сделке стала позиция = 5.
На сделках 256, 260, 264, 268, 274, 278, 282, 432 и т.д. - позиция = 4.

Так что проблема не в определении позиции, а в вашем алгоритме.


Александр, эти сделки я скопировал с терминала (чтобы показать о проблеме набора лишней позиции), к сожалению лог работы самого робота не сохранил.
В алгоритме исключительно заменил событийную логику. Есть алгоритм написанный на сборке (16700 приблизительно), он работает без перебора позиции, в этом
алгоритме поменял в нескольких местах событийную логику в соответствии с новым синтаксисом ее написания. Т.е. логика самого алгоритма не поменялась.

В понедельник попробую версию которую выкладывает Михаил, так как помню что у вас на старых версиях сохранялась эта проблема с перебором позиции, а у Михаила нет.
Возможно у Вас не полная совместимость версий? В понедельник отпишусь.

Цитата:
По первому пункту - напишите чему равен MinStepPrice у инструмента. Может плаза криво оттранслировала.
И какой инструмент?


RIM2

Цитата:
P.S. Просьба для новых проблем создавать новые темы, а не писать в старых. Данные проблемы к эмуляционному plazaTrader отношения не имеют.


да Вы правы, исправлюсь!





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

Alexander

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


fish Перейти

Александр, эти сделки я скопировал с терминала (чтобы показать о проблеме набора лишней позиции), к сожалению лог работы самого робота не сохранил.
В алгоритме исключительно заменил событийную логику. Есть алгоритм написанный на сборке (16700 приблизительно), он работает без перебора позиции, в этом
алгоритме поменял в нескольких местах событийную логику в соответствии с новым синтаксисом ее написания. Т.е. логика самого алгоритма не поменялась.

В понедельник попробую версию которую выкладывает Михаил, так как помню что у вас на старых версиях сохранялась эта проблема с перебором позиции, а у Михаила нет.
Возможно у Вас не полная совместимость версий? В понедельник отпишусь.



Ещё раз.
Можете сами посчитать позицию по тем сделкам что вы дали в excel - там действительно достигает позиции равной 4 и 5.
Т.е. проблемы в подсчёте позиции нет. По сделкам ровно сколько отображает PositionManager, столько и получается.

Совместимость версий у нас полная, мы собираем релизы из одного места. Все исходники - up to date.


Чему равен MinStepPrice у инструмента? Уже в третий раз задаём вопрос.
Спасибо:

fish

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


Цитата:
Ещё раз.
Можете сами посчитать позицию по тем сделкам что вы дали в excel - там действительно достигает позиции равной 4 и 5.
Т.е. проблемы в подсчёте позиции нет. По сделкам ровно сколько отображает PositionManager, столько и получается.


прежде чем отправить отчет я посчитал позиции из отчета, по этому и отправил его, в подтверждения того, что ошибка есть.
данный отчет скопирован с терминала, т.е. это сделки не из логики робота, а именно сделки совершенный по факту!
сделки из логики робота я не сохранил.
проблему перебора как раз выявил наблюдая в квике за работой алгоритма подключенного по плазе, там и заметил перебор!
Может это из за асинхроности отправки заявок?

Цитата:
Чему равен MinStepPrice у инструмента? Уже в третий раз задаём вопрос.


шаг цены 5 пунктов
стоимость шага цены примерно 3.1 руб.
думаю это можно было узнать и из названия инструмента, я ведь написал RIM2





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

Alexander

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


fish Перейти
Цитата:
Ещё раз.
Можете сами посчитать позицию по тем сделкам что вы дали в excel - там действительно достигает позиции равной 4 и 5.
Т.е. проблемы в подсчёте позиции нет. По сделкам ровно сколько отображает PositionManager, столько и получается.


прежде чем отправить отчет я посчитал позиции из отчета, по этому и отправил его, в подтверждения того, что ошибка есть.
данный отчет скопирован с терминала, т.е. это сделки не из логики робота, а именно сделки совершенный по факту!
сделки из логики робота я не сохранил.
проблему перебора как раз выявил наблюдая в квике за работой алгоритма подключенного по плазе, там и заметил перебор!
Может это из за асинхроности отправки заявок?

Цитата:
Чему равен MinStepPrice у инструмента? Уже в третий раз задаём вопрос.


шаг цены 5 пунктов
стоимость шага цены примерно 3.1 руб.
думаю это можно было узнать и из названия инструмента, я ведь написал RIM2



Давайте ещё раз.
По первому:
в чём заключается ошибка? В том, что неверно отображается позиция?
Или в том что совершаются сделки которые совершаться не должны?


По второму:
я прекрасно знаю шаг цены и стоимость шага цены по спецификации. Вопрос был чему они равны у данного инструмента в вашем роботе. Ведь эти значения при подсчёте PnL берутся именно из той информации что передаёт биржа. т.е. Security.MinStepPrice
Спасибо:

fish

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


Цитата:
Давайте ещё раз.
По первому:
в чём заключается ошибка? В том, что неверно отображается позиция?
Или в том что совершаются сделки которые совершаться не должны?


совершаются сделки которые совершаться не должны!
в сборке (16700 приблизительно) этого нет! работает как следует!
в новой версии заменил исключительно синтаксис, логика прежняя!

Цитата:
По второму:
я прекрасно знаю шаг цены и стоимость шага цены по спецификации. Вопрос был чему они равны у данного инструмента в вашем роботе. Ведь эти значения при подсчёте PnL берутся именно из той информации что передаёт биржа. т.е. Security.MinStepPrice


ответить не смогу, в понедельник посмотрю!
Автор топика
Спасибо:

Alexander

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


fish Перейти
совершаются сделки которые совершаться не должны!
в сборке (16700 приблизительно) этого нет! работает как следует!
в новой версии заменил исключительно синтаксис, логика прежняя!


Какая стратегия используется? Покажите код создания стратегии.
Спасибо:

fish

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


используется MQS в различных вариациях

создаю так:

Код
Quoting = new MarketQuotingStrategy(order, new Unit(X), new Unit(X))
{
    Volume = 1,
    Security = Y,
    Trader = Trader,
    Portfolio = Portfolio
};

base.ChildStrategies.Add(Quoting);






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

Alexander

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


fish Перейти
используется MQS в различных вариациях

создаю так:

Код
Quoting = new MarketQuotingStrategy(order, new Unit(X), new Unit(X))
{
    Volume = 1,
    Security = Y,
    Trader = Trader,
    Portfolio = Portfolio
};

base.ChildStrategies.Add(Quoting);




Приведите дополнительный лог - по инциализации (чтоб точно понимать что она запускается 1 раз), ордерам, сделкам и изменению позиции стратегии.
С той версии что вы указываете у нас никаких изменений не было, пока совсем не ясно почему у вас такие проблемы.



У кого-нибудь ещё наблюдаются проблемы с перебором позиции?
Спасибо:


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

loading
clippy