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

ES+стоп-лосс ???

Добавлено: 04 мар 2016, 17:29
Ипонамама
Не пойму как в конструкторе стратегий добавить в базовую ES возможность реверса в случае превышения процента убытка.
Подскажите спецы ? :oops:

Re: ES+стоп-лосс ???

Добавлено: 04 мар 2016, 18:57
evge
Ну если правильно понял, то так:

добавив 2 правила:

где проверяем позицию CurrentPosition() > 0 - т.е. сейчас открыт long, < 0 - short
и проверяем на превышение % убытка < P3 - в параметре задаем отрицательное значение (убыток)

и прописываем открыть противоположную позицию

Alfa_ES-01.png
Alfa_ES-01.png (20.37 КБ) 23665 просмотров

Alfa_ES-02.png
Alfa_ES-02.png (25.84 КБ) 23665 просмотров

Re: ES+стоп-лосс ???

Добавлено: 04 мар 2016, 19:03
evge
но что-бы это всё работало! надо основные 2 правила изменить!

так:

Alfa_ES-03.png
Alfa_ES-03.png (26.18 КБ) 23664 просмотра

Alfa_ES-04.png
Alfa_ES-04.png (26.15 КБ) 23664 просмотра

Re: ES+стоп-лосс ???

Добавлено: 04 мар 2016, 19:52
Ипонамама
Спасибо - прогоню по оптимизациям, посмотрю работоспособность

Re: ES+стоп-лосс ???

Добавлено: 04 мар 2016, 21:52
Ипонамама
Мдямс... херь получается, Хуже чем просто ES :(

Re: ES+стоп-лосс ???

Добавлено: 04 мар 2016, 22:08
evge
Да, стратегии примитивные. Эти стратегии как мини-демо примеры в терминале. Нужно свое составлять.

Re: ES+стоп-лосс ???

Добавлено: 04 мар 2016, 22:46
Ипонамама
evge писал(а):Да, стратегии примитивные. Эти стратегии как мини-демо примеры в терминале. Нужно свое составлять.

Да блин не умею... я в это дело 3 месяца назад сунулся. Никогда и рядом не стоял ))
Зато у меня куча времени на тестирование и обкатку. Приму помощь грамотного чела в разработке роботов и поделюсь результатами.

Re: ES+стоп-лосс ???

Добавлено: 04 мар 2016, 23:48
evge
Ипонамама писал(а):не умею


думаю лучше всего это писать индикаторы, а сам робот будет простой.
Индикатор подает сигнал: купи, продай, закрой позицию.

А в стратегии простые правила их исполняющие.

Re: ES+стоп-лосс ???

Добавлено: 05 мар 2016, 07:26
evge
всё таки 1,2 правила надо менять. Просто проверка EMA > SMA или EMA < SMA не подойдет для реверса.
надо сделать условие пересекает вверх \ вниз

и ещё

правило 3,4 будет всегда делать реверс, независимо от того что сейчас показывает EMA и SMA
т.е. если после % убытка и переворота опять будет убыток сработает ещё раз реверс.

Т.е. в правилах 3 и 4 можно (а может и не нужно) добавить правило EMA>SMA и EMA<SMA из правил 1 и 2 соответственно.

итоговый код стратегии:

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

/**
Стратегия на пересечении быстрой ЕМА и медленной SMA.
Developed by evge;
Algorithm = ТРЕНД;
Hash code 4A9CEBFFFA1A8F7C09FA291DBC599531
**/
function Initialize()
{
   StrategyName = "Alfa_ES";
   AddParameter("P1", 3, "", 1);
   AddParameter("P2", 75, "", 0);
   AddParameter("P3", -1, "", 1);
   AddInput("Input1", Inputs.Candle, 60, true, "SBER=МБ ЦК");
   LongLimit = 0;
   ShortLimit = 0;
}

function OnUpdate()
{
   /// ПРАВИЛО 1
   if ( (CrossAbove(EMA(Input1.Close, P1), SMA(Input1.Close, P2)) == true) && (CurrentPosition() <= 0) )
   {
      EnterLong();
   }

   /// ПРАВИЛО 2
   if ( (CrossBelow(EMA(Input1.Close, P1), SMA(Input1.Close, P2)) == true) && (CurrentPosition() >= 0) )
   {
      EnterShort();
   }

   /// ПРАВИЛО 3
   if ( (CurrentPosition() > 0) && (CurrentPLper() < P3) && (EMA(Input1.Close, P1) > SMA(Input1.Close, P2)) )
   {
      EnterShort();
   }

   /// ПРАВИЛО 4
   if ( (CurrentPosition() < 0) && (CurrentPLper() < P3) && (EMA(Input1.Close, P1) < SMA(Input1.Close, P2)) )
   {
      EnterLong();
   }

}

Тестирование и оптимизация

Добавлено: 05 мар 2016, 08:21
evge
Это тестирование и оптимизация без 3,4 правил стратегии

на скриншоте P3=-1, но на самом деле оно -1000, т.е. правила 3, 4 отключены

Alfa_ES-05.png


оптимизация с параметром P3 = -1000, т.е. отключены правила 3, 4

P1, P2 от 5 до 150 с шагом 5

Alfa_ES-06.png