Пользовательские индикаторы > SuperTrendEMA - трендовый индикатор, созданный на основе ATR и EMA

Дополнительные индикаторы от пользователей Альфа-Директ 4. Готовые решения от пользователей.
66rus
Сообщения: 8
Зарегистрирован: 12 ноя 2019, 11:19

Re: SuperTrendEMA - трендовый индикатор, созданный на основе ATR и EMA

Непрочитанное сообщение 66rus » 28 июн 2020, 18:42

evge писал(а):Приветствую.

66rus писал(а):1. Можно ли сделать закрытие прибыльной позиции по профиту в %?


Можно. Вариантов 2:
- BRS, но с указанием стоп-лосс (можно большой указать)
- Или проверять после каждого бара CurrentPLper() >= TakeProfitPercent и выходить из позиции

пример с BRS:

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

function Initialize()
{
   StrategyName = "SuperTrendEMA";
   AddParameter("P1", 7, "", 1);
   AddParameter("P2", 4, "", 1);
   AddParameter("P3", 2, "", 1);
   AddParameter("SL", 10, "StopLoss", 1);
   AddParameter("TP", 1, "TakeProfit", 1);
   AddInput("Input1", Inputs.Candle, 30, true, "LKOH=МБ ЦК");
   LongLimit = 50;
   ShortLimit = -50;
   AddChartIndicator("MY.SuperTrendEMA", new Dictionary <string, string>{{"EmaPer", "P1"},{"TrPer", "P2"},{"factor", "P3"}});
}

function OnUpdate()
{
   var STema = MY.SuperTrendEMA(Input1, P1, P2, P3);
   /// ПРАВИЛО 1
   if ( STema["Trend"][0] > 0 && CurrentPosition() <= 0)
   {
      EnterLong();
      BreakingStop(SL, TP, SignalPriceType.DeltaInPercentFromAveragePrice);
   }
   /// ПРАВИЛО 2
   if ( STema["Trend"][0] < 0  && CurrentPosition() >= 0)
   {
      EnterShort();
      BreakingStop(SL, TP, SignalPriceType.DeltaInPercentFromAveragePrice);
   }
}


пример с CurrentPLper:

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

function Initialize()
{
   StrategyName = "SuperTrendEMA";
   AddParameter("P1", 7, "", 1);
   AddParameter("P2", 4, "", 1);
   AddParameter("P3", 2, "", 1);
   AddParameter("TP", 1, "", 1);
   AddInput("Input1", Inputs.Candle, 30, true, "LKOH=МБ ЦК");
   LongLimit = 50;
   ShortLimit = -50;
   AddChartIndicator("MY.SuperTrendEMA", new Dictionary <string, string>{{"EmaPer", "P1"},{"TrPer", "P2"},{"factor", "P3"}});
}

function OnUpdate()
{
   var STema = MY.SuperTrendEMA(Input1, P1, P2, P3);
   /// ПРАВИЛО 1
   if ( STema["Trend"][0] > 0  && CurrentPosition() <= 0)
   {
      EnterLong();
   }
   /// ПРАВИЛО 2
   if ( STema["Trend"][0] < 0  && CurrentPosition() >= 0)
   {
      EnterShort();
   }
   
   if (CurrentPLper() >= TP) ClosePosition();
}


66rus писал(а):2. И можно ли сделать выбор направления торговли. Допустим только в покупку или продажу?


Можно, указывайте в роботе или тестировании максимальное количество для Long, Short позиции равным 0.

SuperTrendEMA-Strategy-05.png


Добрый день!
Можете сделать вариант с временным интервалом, когда будет разрешено входить в позицию.
Чтобы исключить самое начало торгов. А если еще и вынести в настройки, то было бы идеально.
Например время начала торговли 10-45 и время окончания 19-45. (Этот временной интервал просто для примера дал)
Заранее спасибо!


Вернуться в «Пользовательские индикаторы»

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

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