OvcharenkoVI
|
Дата: 27.05.2012
оффтоп
Показывай всем такую эквити с рельного трейдера и продавай робота за 1****** ))
|
|
|
|
fish
|
Дата: 27.05.2012
при реальной работе также, ВРЕТ :D откатил на старую версию
|
|
|
|
Кот Матроскин
|
Дата: 27.05.2012
OvcharenkoVI  Показывай всем такую эквити с рельного трейдера и продавай робота за 1****** )) Такая корова нужна самому)))
|
Автор топика
|
|
|
Кот Матроскин
|
Дата: 28.05.2012
Кот Матроскин  Но если сделать запрос this.MyTrades.GetPnL(), то покажет верно Пересчитал все сделки вручную - и этот метод привирает процентов на 10-15 в разную сторону...
|
Автор топика
|
|
|
Mikhail Sukhov
|
Дата: 28.05.2012
Кот Матроскин  Кот Матроскин  Но если сделать запрос this.MyTrades.GetPnL(), то покажет верно Пересчитал все сделки вручную - и этот метод привирает процентов на 10-15 в разную сторону... Можете привести числа?
|
|
|
|
Кот Матроскин
|
Дата: 28.05.2012
Mikhail Sukhov  Кот Матроскин  Кот Матроскин  Но если сделать запрос this.MyTrades.GetPnL(), то покажет верно Пересчитал все сделки вручную - и этот метод привирает процентов на 10-15 в разную сторону... Можете привести числа?
|
Автор топика
|
|
|
Mikhail Sukhov
|
Дата: 28.05.2012
Кот Матроскин 
Как по этому логу проверить результаты this.MyTrades.GetPnL() и ручные результаты?
|
|
|
|
Кот Матроскин
|
Дата: 28.05.2012
Mikhail Sukhov  Как по этому логу проверить результаты this.MyTrades.GetPnL() и ручные результаты? Экселевский файл из генератора отчетов, в нем справа выделен рамкой ручной расчет, со ссылками на цены. Крайний правый столбик (из трех выделенных) - PnL, расчитанный вручную. В текстовом файле ему соответствует "TotPnL = ...", расчитанный this.MyTrades.GetPnL() Сравнивать желательно четные сделки (купил-продал)
|
Автор топика
|
|
|
Mikhail Sukhov
|
Дата: 28.05.2012
Кот Матроскин  В текстовом файле ему соответствует "TotPnL = ...", расчитанный this.MyTrades.GetPnL() Сравнивать желательно четные сделки (купил-продал) this.MyTrades.GetPnL() возвращает PnL с учетом нереализованной прибыли (стоимости открытой позиции). И туда нужно передавать только сделки с открытыми позициями. Тоесть, если у вас сделки то открывают, то закрывают, то нереализованная прибыль будет каждый раз пересчитываться. Но добавим, пожалуй, проверку для передачи туда всевозможных сделок. Бага с PnLManager не определена. По ней так же приветствуются детальные отчеты. Плюс лог значение Security.MinStepPrice. И да, все в курсе, что у нас пересчет идет из пунктов в рубли?
|
|
|
|
Кот Матроскин
|
Дата: 28.05.2012
|
|
|
|
Mikhail Sukhov  this.MyTrades.GetPnL() возвращает PnL с учетом нереализованной прибыли (стоимости открытой позиции). И туда нужно передавать только сделки с открытыми позициями. Тоесть, если у вас сделки то открывают, то закрывают, то нереализованная прибыль будет каждый раз пересчитываться. Не знаю, правильно ли делал, но последовательность была такая: подписался на strategy.NewMyTrades и после каждой совершенной сделки (и на открытие позиции, и на закрытие) вызывал strategy.MyTrades.GetPnL(), а затем выводил значение в лог. Если не правильно, то уже не знаю, чем получить адекватное значение PnL - strategy.PnLManager.PnL врет безбожно, показывает в два раз больше, чем GetPnL! Для примера: подписался на strategy.EquityManager.NewEquityData и вывел в лог вместе с GetPnL(). По расчетам, GetPnL еще где-то рядом попадает, а equityData.Value, видимо, берется из PnLManager.PnL: Код
equityData.Time equityData.Value GetPnL()
2012.03.02 15:20:17.0000 1,49000 0,79000
2012.03.12 10:10:19.0000 -0,17000 -0,08000
2012.03.15 10:20:29.0000 0,83000 0,45000
2012.03.16 17:40:13.0000 -0,07000 0,07000
2012.03.20 11:50:28.0000 -1,53000 -0,80000
2012.03.21 14:00:33.0000 -1,76000 -0,91000
2012.03.27 13:30:08.0000 0,83000 0,58000
2012.03.30 18:30:12.0000 -0,90000 -0,32000
2012.04.04 13:20:03.0000 0,34000 0,15000
2012.04.06 15:13:41.0000 2,36000 1,17000
2012.04.11 17:50:24.0000 1,50000 0,81000
Mikhail Sukhov  Бага с PnLManager не определена. По ней так же приветствуются детальные отчеты. Какой-то особенный отчет сделать? Mikhail Sukhov  Плюс лог значение Security.MinStepPrice. И да, все в курсе, что у нас пересчет идет из пунктов в рубли? MinStepPrice = 0.01m, бумага Сбербанк обычка, пункты и рубли вроде как должны идти один к одному
|
Автор топика
|
|
|
Mikhail Sukhov
|
Дата: 28.05.2012
Кот Матроскин  MinStepPrice = 0.01m, бумага Сбербанк обычка, пункты и рубли вроде как должны идти один к одному У Сбера с Мамбы MinStepPrice должен быть равен 1.
|
|
|
|
Кот Матроскин
|
Дата: 28.05.2012
Mikhail Sukhov  Кот Матроскин  MinStepPrice = 0.01m, бумага Сбербанк обычка, пункты и рубли вроде как должны идти один к одному У Сбера с Мамбы MinStepPrice должен быть равен 1. У меня стоит MinStepSize = 0.01m, а его цена, по логике, 1 копейка, т.е. 0.01 Почему 1? При тестировании вся история идет в расчете на 1 акцию, с сотыми долями рубля
|
Автор топика
|
|
|
Mikhail Sukhov
|
Дата: 28.05.2012
Кот Матроскин  Mikhail Sukhov  Кот Матроскин  MinStepPrice = 0.01m, бумага Сбербанк обычка, пункты и рубли вроде как должны идти один к одному У Сбера с Мамбы MinStepPrice должен быть равен 1. У меня стоит MinStepSize = 0.01m, а его цена, по логике, 1 копейка, т.е. 0.01 Почему 1? При тестировании вся история идет в расчете на 1 акцию, с сотыми долями рубля MinStepPrice MinStepSize.
|
|
|
|
profts
|
Дата: 06.12.2012
|
|
|
|
обновился до 4.1.6 - PnLManager.PnL стал выдавать какую-то ерунду... все-таки какие именно нужно указывать параметры для инструмента RIZ2? сейчас стоят такие : Цитата: _secRIZ2 = MainWindow.Instance.Trader.Securities.FirstOrDefault(sec => sec.Code == "RIZ2"); _secRIH2.MinStepSize = 10m; _secRIH2.MinStepPrice = 6.2876m;
Цитата: 2012.12.06 15:09:00.824| |SS_RIZ2@RTS_SPBFUT002yw|Новая позиция: SPBFUT002yw-RIZ2@RTS=0. 2012.12.06 15:09:01.772| |SS_RIZ2@RTS_SPBFUT002yw|PnLManager.PnL = 10 2012.12.06 15:09:06.858| |SS_RIZ2@RTS_SPBFUT002yw|Новая Buy сделка 671730899 по цене 147150 на 1 заявки 54387075. 2012.12.06 15:09:06.863| |SS_RIZ2@RTS_SPBFUT002yw|Новая позиция: SPBFUT002yw-RIZ2@RTS=1. 2012.12.06 15:09:13.080| |SS_RIZ2@RTS_SPBFUT002yw|Новая Sell сделка 671730929 по цене 147150 на 1 заявки 54387076. 2012.12.06 15:09:13.090| |SS_RIZ2@RTS_SPBFUT002yw|Новая позиция: SPBFUT002yw-RIZ2@RTS=0. 2012.12.06 15:09:13.091| |SS_RIZ2@RTS_SPBFUT002yw|PnLManager.PnL = 30 2012.12.06 15:09:18.670| |SS_RIZ2@RTS_SPBFUT002yw|Новая Buy сделка 671731001 по цене 147130 на 1 заявки 54387077. 2012.12.06 15:09:18.674| |SS_RIZ2@RTS_SPBFUT002yw|Новая позиция: SPBFUT002yw-RIZ2@RTS=1. 2012.12.06 15:09:41.016| |SS_RIZ2@RTS_SPBFUT002yw|Новая Sell сделка 671731388 по цене 147080 на 1 заявки 54387081. 2012.12.06 15:09:41.016| |SS_RIZ2@RTS_SPBFUT002yw|Новая позиция: SPBFUT002yw-RIZ2@RTS=0. 2012.12.06 15:09:41.017| |SS_RIZ2@RTS_SPBFUT002yw|PnLManager.PnL = 40
|
|
|
|
Alexander
|
Дата: 18.12.2012
profts  обновился до 4.1.6 - PnLManager.PnL стал выдавать какую-то ерунду... все-таки какие именно нужно указывать параметры для инструмента RIZ2? сейчас стоят такие : Цитата: _secRIZ2 = MainWindow.Instance.Trader.Securities.FirstOrDefault(sec => sec.Code == "RIZ2"); _secRIH2.MinStepSize = 10m; _secRIH2.MinStepPrice = 6.2876m;
в одном случае secRiz, в другом secRih. Лучше подпишитесь на NewTrades и там выведите информацию о MinStepSize \ MinStepPrice у trade.Security
|
|
|