Стратегии и роботы > Удвоить позицию
Удвоить позицию
Можно ли прописать в стратегии робота удвоение позиции Лонг (Шорт) если цена закрытия меньше (больше) цены открытой позиции?
- evge
- Администратор
- Сообщения: 1811
- Зарегистрирован: 04 фев 2016, 09:46
- Откуда: Млечный путь, планета Земля
- Благодарил (а): 83 раза
- Поблагодарили: 366 раз
- Контактная информация:
Re: Удвоить позицию
Можно,
AverPrice() - цена открытой позиции
CurrentPosition() - текущая позиция
EnterLong(Q) - открыть позицию в long на Q шт, но не больше максимальной позиции long стратегии
EnterShort(Q) - открыть позицию в short на Q шт, но не больше максимальной позиции short стартегии
всё это поможет удвоить позицию
подобное этому
это удвоение УЖЕ открытой позиции,
необходимо ещё в стратегии условия на открытие первоначальной позиции. Конечно открытие первоначальной позиции должно быть меньше максимально возможной, т.к. удвоение иначе работать не будет. Например, так EnterLong(Q) - Q кол-во первоначальное меньшее в 2 и более раза чем LongLimit стратегии.
AverPrice() - цена открытой позиции
CurrentPosition() - текущая позиция
EnterLong(Q) - открыть позицию в long на Q шт, но не больше максимальной позиции long стратегии
EnterShort(Q) - открыть позицию в short на Q шт, но не больше максимальной позиции short стартегии
всё это поможет удвоить позицию
подобное этому
Код: Выделить всё
//удвоение уже открытой позиции
if (Input1.Close[0] > AverPrice() && CurrentPosition() < 0) EnterShort(-CurrentPosition());
if (Input1.Close[0] < AverPrice() && CurrentPosition() > 0) EnterLong(CurrentPosition());
это удвоение УЖЕ открытой позиции,
необходимо ещё в стратегии условия на открытие первоначальной позиции. Конечно открытие первоначальной позиции должно быть меньше максимально возможной, т.к. удвоение иначе работать не будет. Например, так EnterLong(Q) - Q кол-во первоначальное меньшее в 2 и более раза чем LongLimit стратегии.
никогда такого не было и вот опять
Re: Удвоить позицию
evge писал(а):Код: Выделить всё
//удвоение уже открытой позиции
if (Input1.Close[0] > AverPrice() && CurrentPosition() < 0) EnterShort(-CurrentPosition() * 2);
if (Input1.Close[0] < AverPrice() && CurrentPosition() > 0) EnterLong(CurrentPosition() * 2);
это удвоение УЖЕ открытой позиции,
EnterShort(-CurrentPosition() * 2) - разве это не утроение позиции?
- evge
- Администратор
- Сообщения: 1811
- Зарегистрирован: 04 фев 2016, 09:46
- Откуда: Млечный путь, планета Земля
- Благодарил (а): 83 раза
- Поблагодарили: 366 раз
- Контактная информация:
Re: Удвоить позицию
Да, поправил. Там не утроение. Там не нужно * 2, вообще.
никогда такого не было и вот опять
Re: Удвоить позицию
А можно дополнительно в условии прописать:
if (Input1.Close[0] < AverPrice() * Коэффициент && CurrentPosition() > 0) EnterLong(CurrentPosition())
if (Input1.Close[0] < AverPrice() * Коэффициент && CurrentPosition() > 0) EnterLong(CurrentPosition())
- evge
- Администратор
- Сообщения: 1811
- Зарегистрирован: 04 фев 2016, 09:46
- Откуда: Млечный путь, планета Земля
- Благодарил (а): 83 раза
- Поблагодарили: 366 раз
- Контактная информация:
Re: Удвоить позицию
A.Lemzhin писал(а):А можно дополнительно в условии прописать:
if (Input1.Close[0] < AverPrice() * Коэффициент && CurrentPosition() > 0) EnterLong(CurrentPosition())
Конечно, это условие "можно" менять как угодно. Добавьте параметр коэф. в стратегии и добавляйте его в условие.
Здесь нельзя менять только CurrentPosition() > 0, т.к. в данном случае мы проверяем обязательное наличие позиции лонг.
никогда такого не было и вот опять
Re: Удвоить позицию
Спасибо. Всё получилось! ...... хотя большой радости при тестировании стратегии не принесло.....
Re: Удвоить позицию
Добрый день.
Для Размера открытой позиции есть оператор CurrentPosition, для Учетной цены - AverPrice. Есть ли оператор для Цена Последней Позиции?
Для Размера открытой позиции есть оператор CurrentPosition, для Учетной цены - AverPrice. Есть ли оператор для Цена Последней Позиции?
- evge
- Администратор
- Сообщения: 1811
- Зарегистрирован: 04 фев 2016, 09:46
- Откуда: Млечный путь, планета Земля
- Благодарил (а): 83 раза
- Поблагодарили: 366 раз
- Контактная информация:
Re: Удвоить позицию
A.Lemzhin писал(а):Добрый день.
Для Размера открытой позиции есть оператор CurrentPosition, для Учетной цены - AverPrice. Есть ли оператор для Цена Последней Позиции?
на сегодня нет, но можно запомнить предполагаемую цену в глоб. переменной и использовать, когда сделка произойдёт и изменится CurrentPosition(). Однако, это не реальная цена исполнения будет, а желаемая в случае с открытием по Stop'у.
никогда такого не было и вот опять
Вернуться в «Стратегии и роботы»
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 4 гостя