Суммарное значение прибыли убытка

Суммарное значение прибыли убытка
Atom
11.07.2012
Moadip


Сборка 18183.

При использовании шлюза EmulationTrader значение Strategy.PnLManager.PnL равно суммарное значение прибыли убытка / шаг цены Security.
Если использовать QuikTrader, то Strategy.PnLManager.PnL равно суммарное значение прибыли убытка.

Например по ри PnL в пунктах равно 555.

EmulationTrader -> Strategy.PnLManager.PnL = 111
QuikTrader -> Strategy.PnLManager.PnL = 555

Собственно пожелание. Чтобы во всех шлюзах был один формат. Или с делением или без на шаг Security.

Теги:


Спасибо:


pyhta4og

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


Moadip
Сборка 18183.

При использовании шлюза EmulationTrader значение Strategy.PnLManager.PnL равно суммарное значение прибыли убытка / шаг цены Security.
Если использовать QuikTrader, то Strategy.PnLManager.PnL равно суммарное значение прибыли убытка.

Например по ри PnL в пунктах равно 555.

EmulationTrader -> Strategy.PnLManager.PnL = 111
QuikTrader -> Strategy.PnLManager.PnL = 555

Собственно пожелание. Чтобы во всех шлюзах был один формат. Или с делением или без на шаг Security.


Вообще алгоритм вычисления PnL находится в Strategy.PnLManager и не должен зависеть от шлюза. Strategy.PnLManager.PnL вычисляется в рублях как security.MinStepPrice / security.MinStepSize * (PNL в пунктах)

Возможно в вашем случае Security.MinStepSize для QuikTrader по какой-то причине равно 1 вместо 5

Вы можете это проверить поставив бреакпойнт где-нибудь в Strategy.OnNewTrade?

Такое поведение появилось именно начиная с версией 18183?
Спасибо:

Moadip

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


Цитата:
Вообще алгоритм вычисления PnL находится в Strategy.PnLManager и не должен зависеть от шлюза


Я это понимаю, но почему это зависит от шлюза не понял. Про MinStepSize что то не вспомнил.

Оказалось вся фишка не в MinStepSize а в MinStepPriсe.
QuikTrader


EmulationTrader


Цитата:
Возможно в вашем случае Security.MinStepSize для QuikTrader по какой-то причине равно 1 вместо 5

Из квика не экспортирую доп. колонку в которой стоит стоимость шага цена.
Т.е. если нет этих данных, то по умолчанию она берется равная шагу Security?[huh]

В EmulationTrader Security создается "вручную" с указанием MinStepPriсe = 1;

Цитата:
Такое поведение появилось именно начиная с версией 18183?

В предыдущей сборке тоже было, но в более ранних не наблюдалось.
Похоже до этого в QuikTrader если данные для MinStepPriсe не экспортируются то MinStepPriсe = 1, поэтому подобного расхождения и не наблюдалось.
Спасибо:

pyhta4og

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


Цитата:

Я это понимаю, но почему это зависит от шлюза не понял. Про MinStepSize что то не вспомнил.

Ну точнее косвенно зависит только через MinStepSize и MinStepPriсe.

Цитата:

Т.е. если нет этих данных, то по умолчанию она берется равная шагу Security?[huh]

Нужно смотреть, но скорее всего да, потому что тогда шаг в 0.01 для например лукойла на ММВБ будет переводится в 1 копейку корректно

Цитата:

В EmulationTrader Security создается "вручную" с указанием MinStepPriсe = 1;


Вообще говоря вы должны в Quik экспортировать MinStepPrice потому что от него зависит PnL расчет. PnL считается в рублях а не в пунктах,иначе непонятно как складывать PnL разных бумаг.

EmulTrader никак не меняет MinStepPrice какой зададите такой и будет. Сейчас в разработке новая фича - хранилище SecurityChange в котором будет записываться история MinStepPrice и соотвественно задавать MinStepPrice можно будет автоматически.
Спасибо:

PavelAd

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


pyhta4og

Вообще говоря вы должны в Quik экспортировать MinStepPrice потому что от него зависит PnL расчет.


А как его экспортировать из Квика? В документации в разделе "настройка Quik" для таблицы "Инструменты" указано только 6 колонок, среди которых колонки "стоимость шага цены" нету
Спасибо:

Moadip

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


Экспорт дополнительных колонок

Добавить в Quik в таблицу "Инструменты" нужные колонки и в том же порядке добавить колонки в экспорт.

Код

            QuikTrader trader = new QuikTrader(path);

            var columns = trader.SecuritiesTable.Columns;
            columns.Add(DdeSecurityColumns.Strike);
            columns.Add(DdeSecurityColumns.Volatility);
            columns.Add(DdeSecurityColumns.UnderlyingSecurity);
            columns.Add(DdeSecurityColumns.TheorPrice);
            columns.Add(DdeSecurityColumns.OptionType);
            columns.Add(DdeSecurityColumns.ExpiryDate);
            columns.Add(DdeSecurityColumns.MaxPrice);
            columns.Add(DdeSecurityColumns.MinPrice);
            columns.Add(DdeSecurityColumns.MinStepPrice);
Спасибо: PavelAd

PavelAd

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


Странно, почему вывода такой нужной колонки по дефолтным настройкам нету
Спасибо:


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

loading
clippy