Стратегии и роботы > Стратегия вход по стопу ATR

Обсуждение, описание стратегий и роботов, идеи для стратегий
evgen000
Сообщения: 15
Зарегистрирован: 04 май 2016, 11:32
Благодарил (а): 2 раза

Стратегия вход по стопу ATR

Непрочитанное сообщение evgen000 » 31 янв 2017, 09:52

Добрый день. Подскажите пожалуйста как написать стратегию со следующими условиями для лонга и шорта:
Ставим StopLimit от Close вчерашнего дня + 0.5 * ATR(5) для лонга и Close вчерашнего дня - 0.5 * ATR(5) для шорта

StopLimit Long: Close-1 + 0.5 * ATR(5)
StopLimit Short: Close-1 - 0.5 * ATR(5)

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

Re: Стратегия вход по стопу ATR

Непрочитанное сообщение evge » 31 янв 2017, 10:28

а на каком таймфрейме стратегия, D?
никогда такого не было и вот опять

evgen000
Сообщения: 15
Зарегистрирован: 04 май 2016, 11:32
Благодарил (а): 2 раза

Re: Стратегия вход по стопу ATR

Непрочитанное сообщение evgen000 » 31 янв 2017, 11:37

evge писал(а):а на каком таймфрейме стратегия, D?

дневной. Т.е стоп заявки ставятся так. Close предыдущего бара +- ATR * 0.5.

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

Re: Стратегия вход по стопу ATR

Непрочитанное сообщение evge » 31 янв 2017, 13:34

evgen000 писал(а):
evge писал(а):а на каком таймфрейме стратегия, D?

дневной. Т.е стоп заявки ставятся так. Close предыдущего бара +- ATR * 0.5.


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

var A = ATR(Input1, 5);
EnterLongLimit(Input1.Close[1] + A[0] * 0.5);
EnterShortLimit(Input1.Close[1] - A[0] * 0.5);


но одновременно в два направления выставить заявки (на сегодня) не получится.
поэтому лучше проверять условие текущей цены с ценой нужного открытия и открываться обычным EnterLong()/EnterShort() или EnterLongStop()/EnterShortStop()

например, так

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

var A = ATR(Input1, 5);
if (Input1.Close[0] > Input1.Close[1] + A[0] * 0.5)
   {
   EnterLong()
   }
if (Input1.Close[0] < Input1.Close[1] - A[0] * 0.5)
   {
   EnterShort()
   }


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


Вернуться в «Стратегии и роботы»

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

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