Пользовательские индикаторы > StochRSI

Дополнительные индикаторы от пользователей Альфа-Директ 4. Готовые решения от пользователей.
Kurono
Сообщения: 14
Зарегистрирован: 08 июл 2017, 20:37
Поблагодарили: 5 раз

StochRSI

Непрочитанное сообщение Kurono » 08 июл 2017, 21:42

Автор: Ki-wi
Ссылка на кеш гугла

индюк "Зоны безопасности"

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

function Initialize()
{
IndicatorName = "SA";   // Задайте название индикатора и сохраните с данным именем
AddInput("Input", Inputs.Candle);   
// Ввод параметров
AddParameter("Period", 20);   // Период
AddParameter("K", 2); // Коэффициент   

PriceStudy = true;   
AddSeries("Upper", DrawAs.Line, Color.Green);   // Задаем вид линии для нисходящих трендов
AddSeries("Lower", DrawAs.Line, Color.Red);   // Задаем вид линии для восходящих трендов
AddSeries("dlv", DrawAs.Line, Color.Red, false); // Вспомогательный ряд
AddSeries("uplv", DrawAs.Line, Color.Red, false); // Вспомогательный ряд
}

function Evaluate()
{
if (CurrentIndex < 1)
   {
      Upper = Input.High[0];   
      Lower = Input.Low[0];   
   }
else
   {
      double sum=0;
      int kp=0;
      // Для восходящих трендов
      for (int i=0;i<Period-1;i++)
         {
            if (Input.Low[-2-i]>Input.Low[-1-i])
               {
                  sum=sum+(Input.Low[-2-i]-Input.Low[-1-i]); // Сумма значений прорывов вниз
                  kp=kp+1; // Количество прорывов вниз
               }
         }
      
      dlv=Input.Low[-1]-(double) K*(sum/kp);
      
      if (dlv[-1]>dlv[0]) // Максимальный уровень стоп-лосса за последние 2 дня
         Lower=dlv[-1];
      else
         Lower=dlv[0];

      // Для нисходящих трендов
      sum=0;
      kp=0;
      for (int i=0;i<Period-1;i++)
         {
            if (Input.High[-2-i]<Input.High[-1-i])
               {
                  sum=sum+(Input.High[-1-i]-Input.High[-2-i]); // Сумма значений прорывов вверх
                  kp=kp+1; // Количество прорывов вверх
               }
         }
      
      uplv=Input.High[-1]+(double) K*(sum/kp);
      
      if (uplv[-1]<uplv[0]) // Максимальный уровень стоп-лосса за последние 2 дня
         Upper=uplv[-1];
      else
         Upper=uplv[0];
   }

}
Вложения
ss (2017-07-08 at 10.07.46).png
ss (2017-07-08 at 10.07.46).png (26.82 КБ) 3055 просмотров

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

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

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