Общие вопросы по разработке > Как определить направление реализованных сделок?
Как определить направление реализованных сделок?
Есть ли возможность в роботе определить направление позиций (long или short) по предыдущим сделкам?
- evge
- Администратор
- Сообщения: 1811
- Зарегистрирован: 04 фев 2016, 09:46
- Откуда: Млечный путь, планета Земля
- Благодарил (а): 83 раза
- Поблагодарили: 367 раз
- Контактная информация:
Re: Как определить направление реализованных сделок?
Вроде бы как нет такой функции.
Только реализованный доход по совершенным сделкам.
Можно самому завести список в глоб. переменную и фиксировать в нём направление сделок по тому же индексу. В список добавлять записи через метод Insert(0, направление). Открыли позицию добавили в список запись что открылись в Long, Short. В будущем по индексу в этом списке можно будет обращаться и получать информацию о направлении сделки, а через функцию RealizedPL(n) получать информацию о доходе \ убытке.
Что-то подобное
В итоге будет список, который можно в любой момент перебрать или обратиться к нужному индексу и получить направления > 0 - Long, < 0 Short.
Ну тут конечно есть вероятность, что в позицию стратегия \ робот не войдёт, а запись в списке уже сделали. Можно через проверку изменения CurrentPosition() это же реализовать.
Сохраняем последнее состояние CurrentPosition() в глоб. переменной, а в начале скрипта сравниваем изменилось ли состояние в сравнении с предыдущей итерацией, если изменилось, то пишем в наш список что позиция стала Long, Short.
Вообщем, поле для творчества.
Только реализованный доход по совершенным сделкам.
Можно самому завести список в глоб. переменную и фиксировать в нём направление сделок по тому же индексу. В список добавлять записи через метод 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.
Вообщем, поле для творчества.
никогда такого не было и вот опять
Вернуться в «Общие вопросы по разработке»
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 17 гостей