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

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

Добавлено: 31 янв 2017, 09:52
evgen000
Добрый день. Подскажите пожалуйста как написать стратегию со следующими условиями для лонга и шорта:
Ставим 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)

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

Добавлено: 31 янв 2017, 10:28
evge
а на каком таймфрейме стратегия, D?

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

Добавлено: 31 янв 2017, 11:37
evgen000
evge писал(а):а на каком таймфрейме стратегия, D?

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

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

Добавлено: 31 янв 2017, 13:34
evge
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) и цену закрытия предыдущего дня нужно найти назад в истории, что вообщем-то не сложно.