Версия 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(Action`1 handler, T arg)
at StockSharp.Algo.Testing.RealTimeEmulationTrader1.#=q31tcw46kVie247LG7JC3rawsTV_4PPMiNb3nfHQhRAg=(IEnumerable1 #=q1SB9HRPlt19vFFcTcgdNUA==)
at Ecng.Common.DelegateHelper.SafeInvoke(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==)
Kommentare (17)
Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen
через реальный 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(Action`1 handler, T arg)
at Ecng.ComponentModel.EventsContainer
1.Raise(IEnumerable1 items)ОК
также вроде опять появился перебор позиции при MQS, пока не могу предоставить лог работы, пришлось оперативно отключать робота :D
Исправили, обновил сборки.
спасибо большое!!!! удивляюсь Вашей оперативностью! 👍
Проблема1: не правильно отображается доходность, график эквити
Завышена прибыль по эквити, т.е. реально к примеру алгоритм заработал 850 а робот уже отражает 2000 для индекса РТС (видимо с переводом проблемы)
Проблема2: перебор позиции
лог работы в виде отчета о сделках, там макс должно было быть 1 позиция, либо -1 либо + 1 В итоге доходило до 5 Как то была эта проблема но позже ее пофиксили, к примеру у предыдущей версии на которой я работал данной ошибки нет, позы набираются ровно, в коде робота поменял только событийную модель, в связи с последними изменениями
Посмотрел детально по отчёту и посчитал по сделкам.
Всё считается верно - у вас действительно на 521 и 523 сделке стала позиция = 5. На сделках 256, 260, 264, 268, 274, 278, 282, 432 и т.д. - позиция = 4.
Так что проблема не в определении позиции, а в вашем алгоритме.
По первому пункту - напишите чему равен MinStepPrice у инструмента. Может плаза криво оттранслировала. И какой инструмент?
P.S. Просьба для новых проблем создавать новые темы, а не писать в старых. Данные проблемы к эмуляционному plazaTrader отношения не имеют.
да забыл добавить это реальный трейдер, а не эмуляционный
Equity рисуется в рублях. Перевод в рубли идет умножением PnL сделки в пунктах на Security.MinStepPrice.
Возможно в вашем случае MinStepPrice некорректно обновился через Plazatrader. Каким инструментом торгуете?
ЗЫ. Форма кривой эквити красивая) Всегда такая? Арбитраж?
да знаю что в рублях, в предыдущей версии на которой работал (около 16700 сборка) корректно отображается
нет
увы нет :D
Александр, эти сделки я скопировал с терминала (чтобы показать о проблеме набора лишней позиции), к сожалению лог работы самого робота не сохранил. В алгоритме исключительно заменил событийную логику. Есть алгоритм написанный на сборке (16700 приблизительно), он работает без перебора позиции, в этом алгоритме поменял в нескольких местах событийную логику в соответствии с новым синтаксисом ее написания. Т.е. логика самого алгоритма не поменялась.
В понедельник попробую версию которую выкладывает Михаил, так как помню что у вас на старых версиях сохранялась эта проблема с перебором позиции, а у Михаила нет. Возможно у Вас не полная совместимость версий? В понедельник отпишусь.
RIM2
да Вы правы, исправлюсь!
Ещё раз. Можете сами посчитать позицию по тем сделкам что вы дали в excel - там действительно достигает позиции равной 4 и 5. Т.е. проблемы в подсчёте позиции нет. По сделкам ровно сколько отображает PositionManager, столько и получается.
Совместимость версий у нас полная, мы собираем релизы из одного места. Все исходники - up to date.
Чему равен MinStepPrice у инструмента? Уже в третий раз задаём вопрос.
прежде чем отправить отчет я посчитал позиции из отчета, по этому и отправил его, в подтверждения того, что ошибка есть. данный отчет скопирован с терминала, т.е. это сделки не из логики робота, а именно сделки совершенный по факту! сделки из логики робота я не сохранил. проблему перебора как раз выявил наблюдая в квике за работой алгоритма подключенного по плазе, там и заметил перебор! Может это из за асинхроности отправки заявок?
шаг цены 5 пунктов стоимость шага цены примерно 3.1 руб. думаю это можно было узнать и из названия инструмента, я ведь написал RIM2
прежде чем отправить отчет я посчитал позиции из отчета, по этому и отправил его, в подтверждения того, что ошибка есть. данный отчет скопирован с терминала, т.е. это сделки не из логики робота, а именно сделки совершенный по факту! сделки из логики робота я не сохранил. проблему перебора как раз выявил наблюдая в квике за работой алгоритма подключенного по плазе, там и заметил перебор! Может это из за асинхроности отправки заявок?
шаг цены 5 пунктов стоимость шага цены примерно 3.1 руб. думаю это можно было узнать и из названия инструмента, я ведь написал RIM2
Давайте ещё раз. По первому: в чём заключается ошибка? В том, что неверно отображается позиция? Или в том что совершаются сделки которые совершаться не должны?
По второму: я прекрасно знаю шаг цены и стоимость шага цены по спецификации. Вопрос был чему они равны у данного инструмента в вашем роботе. Ведь эти значения при подсчёте PnL берутся именно из той информации что передаёт биржа. т.е. Security.MinStepPrice
совершаются сделки которые совершаться не должны! в сборке (16700 приблизительно) этого нет! работает как следует! в новой версии заменил исключительно синтаксис, логика прежняя!
ответить не смогу, в понедельник посмотрю!
Какая стратегия используется? Покажите код создания стратегии.
используется MQS в различных вариациях
создаю так:
Quoting = new MarketQuotingStrategy(order, new Unit(X), new Unit(X)) ;
base.ChildStrategies.Add(Quoting);