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

Суммарное значение прибыли убытка
Atom
7/11/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.


Tags:


Thanks:


pyhta4og

Avatar
Date: 7/11/2012
Reply


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?

Thanks:

Moadip

Avatar
Date: 7/11/2012
Reply


Вообще алгоритм вычисления 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, поэтому подобного расхождения и не наблюдалось.

Thanks:

pyhta4og

Avatar
Date: 7/11/2012
Reply


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

Т.е. если нет этих данных, то по умолчанию она берется равная шагу Security?[huh] Нужно смотреть, но скорее всего да, потому что тогда шаг в 0.01 для например лукойла на ММВБ будет переводится в 1 копейку корректно

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

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

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

Thanks:

PavelAd

Avatar
Date: 8/31/2012
Reply


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

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

Thanks:

Moadip

Avatar
Date: 8/31/2012
Reply


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

Добавить в 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);

Thanks: PavelAd

PavelAd

Avatar
Date: 9/3/2012
Reply


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

Thanks:


Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy