Страница 1 из 1

Как определить направление реализованных сделок?

Добавлено: 04 ноя 2017, 09:15
dunkan
Есть ли возможность в роботе определить направление позиций (long или short) по предыдущим сделкам?

Re: Как определить направление реализованных сделок?

Добавлено: 04 ноя 2017, 11:58
evge
Вроде бы как нет такой функции.

Только реализованный доход по совершенным сделкам.

Можно самому завести список в глоб. переменную и фиксировать в нём направление сделок по тому же индексу. В список добавлять записи через метод Insert(0, направление). Открыли позицию добавили в список запись что открылись в Long, Short. В будущем по индексу в этом списке можно будет обращаться и получать информацию о направлении сделки, а через функцию RealizedPL(n) получать информацию о доходе \ убытке.

Что-то подобное

Код: Выделить всё

function Initialize()
{
...
AddGlobalVariable("Pos", Types.IntList, 0);
}

function OnUpdate()
{
if (...)
  {
     EnterLong();
     Pos.Insert(0, 1);
  }
if (...)
  {
     EnterShort();
     Pos.Insert(0, -1);
  }
}


В итоге будет список, который можно в любой момент перебрать или обратиться к нужному индексу и получить направления > 0 - Long, < 0 Short.

Ну тут конечно есть вероятность, что в позицию стратегия \ робот не войдёт, а запись в списке уже сделали. Можно через проверку изменения CurrentPosition() это же реализовать.

Сохраняем последнее состояние CurrentPosition() в глоб. переменной, а в начале скрипта сравниваем изменилось ли состояние в сравнении с предыдущей итерацией, если изменилось, то пишем в наш список что позиция стала Long, Short.

Вообщем, поле для творчества. :)

Re: Как определить направление реализованных сделок?

Добавлено: 05 ноя 2017, 10:33
dunkan
Спасибо!
Попробую сделать.