Общие вопросы по разработке > TrailingStopLoss. Выставление с учётом давности открытия позиции.

Общие вопросы по разработке в Альфа-Директ 4. Обсуждение разработки пользовательских индикаторов, стратегий.
Аватара пользователя
k.4nt
Сообщения: 7
Зарегистрирован: 11 янв 2019, 11:35
Благодарил (а): 3 раза

TrailingStopLoss. Выставление с учётом давности открытия позиции.

Непрочитанное сообщение k.4nt » 22 янв 2019, 13:21

Добрый день.
Если кто-то реализовал уже- подскажите пожалуйста как:
Хочу выставлять TrailingStopLoss() от конкретного уровня. Расчёт идёт по максимуму/минимума за "N" свечей.
Вопрос: максимум и минимум хочу рассчитывать с учётом удаления от места открытия позиции.
То есть. Пока "N" меньше расстояния от места открытия позиции- один код, ушли дальше- другой код.

BugsDigger
Сообщения: 338
Зарегистрирован: 11 ноя 2018, 17:11
Благодарил (а): 21 раз
Поблагодарили: 42 раза

Re: TrailingStopLoss. Выставление с учётом давности открытия позиции.

Непрочитанное сообщение BugsDigger » 22 янв 2019, 13:41

Вот как раз с моментом времени открытия позиции пока всё плохо. Вы можете запомнить его в момент совершения операции ("момент" тоже понятие растяжимое) в работающей стратегии, но после перезапуска стратегии эта информация будет потеряна. В лучшем случае вы можете сбросить запись о сделке в каком-то виде в файл, затем из него читать, чтобы восстановить историю.

В теме "Хотелки" я вписал пожелание приделать время сделки (вернее время изменения учетной цены позиции) к информации, возвращаемой ф-цией GetPosition, но надежда на реализацию этого слабая...

Аватара пользователя
Indigo-On
Сообщения: 48
Зарегистрирован: 28 ноя 2018, 18:44
Откуда: Russia
Благодарил (а): 18 раз
Поблагодарили: 9 раз

Re: TrailingStopLoss. Выставление с учётом давности открытия позиции.

Непрочитанное сообщение Indigo-On » 22 янв 2019, 14:46

k.4nt писал(а):Добрый день.
Если кто-то реализовал уже- подскажите пожалуйста как:
Хочу выставлять TrailingStopLoss() от конкретного уровня. Расчёт идёт по максимуму/минимума за "N" свечей.
Вопрос: максимум и минимум хочу рассчитывать с учётом удаления от места открытия позиции.
То есть. Пока "N" меньше расстояния от места открытия позиции- один код, ушли дальше- другой код.


BugsDigger прав насчет времени изменения учетной позиции.
Самое простое, считать количество свечек, прошедших с момента открытия лонговой или шортовой позиции.
В лоб, например, можно так (хотя и некрасиво):
► Показать

Аватара пользователя
k.4nt
Сообщения: 7
Зарегистрирован: 11 янв 2019, 11:35
Благодарил (а): 3 раза

Re: TrailingStopLoss. Выставление с учётом давности открытия позиции.

Непрочитанное сообщение k.4nt » 24 янв 2019, 11:33

Когда Ema пересечёт Sma- Открываем Long.
Циклом считаем когда это было.
Вот что у меня вышло:

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

if ( (EMA(Input1.Close, Ema)[1] <= SMA(Input1.Close, Sma)[1]) && (EMA(Input1.Close, Ema) > SMA(Input1.Close, Sma)) )
{
   EnterLong();
}
int Time = 0;
for (var T = 1; ((EMA(Input1.Close, Ema)[T] > SMA(Input1.Close, Sma)[T])); T++) /// Пока Ema Больше Sma (То есть выше), плюсуем Т, что бы высчитать шаг расчёта.
{
   Time = T;
}


Работает. Но пока мало понятно на сколько будет грузить ПК при "долгой" работе.

Аватара пользователя
evge
Администратор
Сообщения: 1652
Зарегистрирован: 04 фев 2016, 09:46
Откуда: Млечный путь, планета Земля
Благодарил (а): 64 раза
Поблагодарили: 303 раза
Контактная информация:

Re: TrailingStopLoss. Выставление с учётом давности открытия позиции.

Непрочитанное сообщение evge » 24 янв 2019, 12:35

Того же результата можно добиться так:

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

Function Initialize()
{
...
AddGlobalVariable("X", Types.Int, 0);
...
}

Function OnUpdate()
{
...
if (Условие)
{
EnterLong();
X = CurrentIndex;
}

//Смещение до бара сигнала вычисляем так:
int Time = CurrentIndex - X;
...
}
никогда такого не было и вот опять

Аватара пользователя
k.4nt
Сообщения: 7
Зарегистрирован: 11 янв 2019, 11:35
Благодарил (а): 3 раза

Re: TrailingStopLoss. Выставление с учётом давности открытия позиции.

Непрочитанное сообщение k.4nt » 24 янв 2019, 12:45

Вы правы во всём. Это первая реализация и проба пера так сказать.


Вернуться в «Общие вопросы по разработке»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 12 гостей