Каталог файлов форума

Список вложений в сообщениях, оставленных на этой конференции.

Все файлы форума: 1230

Добавлено: evge » 12 ноя 2019, 13:19

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

Текст сообщения:

Приветствую.

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
SuperTrendEMA-Strategy-05.png (28.81 КБ) 17864 просмотра