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

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

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

Добавлено: evge » 06 июн 2017, 08:55

Тема: Re: помогите написать робота EMA WMA

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

как итог, код стратегии по вышесказанному

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

function Initialize()
{
   StrategyName = "MA_EW";
   AddParameter("Pfast", 6, "", 1); //EMA period
   AddParameter("Pslow", 58, "", 1); //WMA period
   AddParameter("P2", 0.3, "", 1); // Первоначальный стоплосс Long
   AddParameter("P3", 0.3, "", 1); // Первоначальный стоплосс Short
   AddParameter("p4", 0.3, "", 1); // Перестановка стоплосс Long
   AddParameter("p5", 0.3, "", 1); // Перестановка стоплосс Short
   AddInput("Input1", Inputs.Candle, 15, true, "RIM7=ФОРТС");
   LongLimit = 1;
   ShortLimit = -1;
}

function OnUpdate()
{

   // evge 06.06.2017 http://alfadirect4.ru

   // Extended TrailingStop :)
   // Перестановка стопа на каждом баре при открытой позиции, на % параметров p4, p5 от минимума и максимума последних 2х баров.
   if (CurrentPosition() != 0)
   {
      CancelStopLoss();
      //Если мы в long, то берем последние 2 бара, определяем минимум и ставим стоп на % ниже, указанный в параметре p4
      //Если мы в short, то берем последние 2 бара, определяем максимум и ставим стоп на % выше, указанный в параметре p5
      var Low = Math.Min(Input1.Low[0], Input1.Low[1]);
      var High = Math.Max(Input1.High[0], Input1.High[1]);
      var StopPrice = CurrentPosition() > 0 ?  Low - Low * 0.01 * p4 : High + High * 0.01 * p5;
      StopLoss(StopPrice, SignalPriceType.Price);
   }   

   // Long
   if ( CrossAbove(EMA(Input1.Close, Pfast), WMA(Input1.Close, Pslow)) && Pfast < Pslow )
   {
      EnterLong();
      StopLoss(P2, SignalPriceType.DeltaInPercentFromAveragePrice);
   }
   
   // Short
   if ( CrossBelow(EMA(Input1.Close, Pfast), WMA(Input1.Close, Pslow)) && Pfast < Pslow )
   {
      EnterShort();
      StopLoss(P3, SignalPriceType.DeltaInPercentFromAveragePrice);
   }
   
}


параметры по умолчанию из стратегии Pfast = 6, Pslow = 58, ...

MA_EW-02.png
Отработка переносимых стоплосс
MA_EW-02.png (40.18 КБ) 18536 просмотров


MA_EW-01.png
Сводный отчет
MA_EW-01.png (37.18 КБ) 18536 просмотров