Страница 1 из 1
Как посчитать убыточную сделку.
Добавлено: 02 ноя 2017, 15:44
elktrade
Подскажите, пожалуйста, какой-нибудь код по проще, чтобы я мог получать количество убыточных сделок.
Наваял нечто такое, а оно не считает
Код: Выделить всё
...
if(CurrentPosition() == 0 && PreviousPosition > 0 && PreviousPLper < 0) {CountBadTrade++;}
...
...
/// в конце стратегии
if(CurrentPosition() != PreviousPosition) {PreviousPosition = CurrentPosition();}
if(CurrentPLper() != PreviousPLper) {PreviousPLper = CurrentPLper();}
Re: Как посчитать убыточную сделку.
Добавлено: 02 ноя 2017, 17:41
evge
Может так попробовать? Сам не проверял, но по логике.
Код: Выделить всё
function Initialize()
{
...
AddGlobalVariable("LastPL", Types.Double);
AddGlobalVariable("Loss", Types.Int, 0);
}
function OnUpdate()
{
if (CurrentPosition() != 0 && LastPL < 0) Loss++;
LastPL = CurrentPL();
}
Re: Как посчитать убыточную сделку.
Добавлено: 02 ноя 2017, 18:10
elktrade
Если я правильно понял, в приведенном примере счетчик будет увеличиваться каждый бар, пока текущая позиция не равна нулю, а прибыль минусовая.
А мне бы нужно чтобы, одна убыточная сделка, посчиталась 1 раз, если потом после прибыльных сделок, была еще одна убыточная сделка то еще +1.
Re: Как посчитать убыточную сделку.
Добавлено: 02 ноя 2017, 20:44
evge
Код: Выделить всё
if (CurrentPosition() == 0 && LastPL < 0) Loss++;
LastPL = CurrentPL();
а так?
Re: Как посчитать убыточную сделку.
Добавлено: 03 ноя 2017, 12:59
elktrade
В общем из тех.поддержки написали, вдруг кому пригодится, предложили юзать RealizedPL(0)
RealizedPL без параметров возвращает общее значение,
Но если передавать индекс, то цифры будут как в отчёте в разделе операции.
То есть RealizedPL(0) - PL последней закрытой сделки (самая верхняя строка из операций)
1 - предпоследняя и так далее,
До RealizedPLCount()-1
Re: Как посчитать убыточную сделку.
Добавлено: 03 ноя 2017, 13:02
evge
Да, всё проще оказывается. Это добавили в одном из последних обновлений.
RealizedPL() – возвращает текущий реализованный доход по закрытым сделкам робота (стратегии).
RealizedPLCount() – Количество закрытых сделкок робота (стратегии).
RealizedPL(int index) – возвращает реализованный доход по индексу по закрытым сделкам робота (стратегии). 0 – от последней сделки.
в документации это есть.