Скальпер изменения (Rotator_2)

У Вас есть идея, под которую нужен торговый робот? А, быть может, требуется создание нового индикатора или адаптация старого к МТ5? Бесплатно советники и индикаторы под Ваше техническое задание!

Скальпер изменения (Rotator_2)

Сообщение Kalkin » 07 фев 2016, 13:11

Как-то так.
Индикатор, который Вы выложили, декомпилированый, поэтому я его в советник не включаю. В следующий раз вообще не буду браться за работу, если увижу выложенный программный продукт после декомпиляции.
Вложения
KE_Rotator_2+Ind.mq4
Версия 2.4 (Ind)
(24.55 KB) Скачиваний: 21
Аватар пользователя
Kalkin
 
Сообщений: 1589
Зарегистрирован: 05 мар 2015, 06:51
Средств на руках: 108.80 Доллар
Награды: 2
Ветеран I (1) Медаль за научный вклад (1)
Группа: Базовая
Благодарил (а): 633 раз.
Поблагодарили: 1190 раз.
Ace Register Votive

Скальпер изменения (Rotator_2)

Сообщение pit84 » 08 фев 2016, 05:38

Kalkin писал(а):Как-то так.
Индикатор, который Вы выложили, декомпилированый, поэтому я его в советник не включаю. В следующий раз вообще не буду браться за работу, если увижу выложенный программный продукт после декомпиляции.

Спасибо вам за помощь, но я правда не знал что индикатор ломаный, если ВЫ мне подскажете как их различать буду вам очень признателен и в будущем даже пытаться не буду предлагать такие варианты!!!
Аватар пользователя
pit84
 
Сообщений: 412
Зарегистрирован: 25 фев 2015, 07:03
Средств на руках: 7.50 Доллар
Откуда: Омск
Награды: 1
Ветеран I (1)
Группа: Базовая
Благодарил (а): 262 раз.
Поблагодарили: 78 раз.

Скальпер изменения (Rotator_2)

Сообщение Kalkin » 08 фев 2016, 07:01

В декомпилировнном файле имена переменных обезличены и состоят из букв, соответствующих типу переменной и цифр, а также отсутствуют какие-либо поясняющие комментарии. Например, индикатор RSI из стандартной поставки Метатрейдера. Вот так выглядит текст, который сделал программист:
Код: выделить все
//+------------------------------------------------------------------+
//| Relative Strength Index                                          |
//+------------------------------------------------------------------+
int start()
  {
   int    i,counted_bars=IndicatorCounted();
   double rel,negative,positive;
//----
   if(Bars<=RSIPeriod) return(0);
//---- initial zero
   if(counted_bars<1)
      for(i=1;i<=RSIPeriod;i++) RSIBuffer[Bars-i]=0.0;
//----
   i=Bars-RSIPeriod-1;
   if(counted_bars>=RSIPeriod) i=Bars-counted_bars-1;
   while(i>=0)
     {
      double sumn=0.0,sump=0.0;
      if(i==Bars-RSIPeriod-1)
        {
         int k=Bars-2;
         //---- initial accumulation
         while(k>=i)
           {
            rel=Close[k]-Close[k+1];
            if(rel>0) sump+=rel;
            else      sumn-=rel;
            k--;
           }
         positive=sump/RSIPeriod;
         negative=sumn/RSIPeriod;
        }
      else
        {
         //---- smoothed moving average
         rel=Close[i]-Close[i+1];
         if(rel>0) sump=rel;
         else      sumn=-rel;
         positive=(PosBuffer[i+1]*(RSIPeriod-1)+sump)/RSIPeriod;
         negative=(NegBuffer[i+1]*(RSIPeriod-1)+sumn)/RSIPeriod;
        }
      PosBuffer[i]=positive;
      NegBuffer[i]=negative;
      if(negative==0.0) RSIBuffer[i]=0.0;
      else RSIBuffer[i]=100.0-100.0/(1+positive/negative);
      i--;
     }
//----
   return(0);
  }
//+------------------------------------------------------------------+


А вот тот же участок кода после декомпиляции исполняемого файла:
Код: выделить все
int start() {
   double ld_8;
   double ld_16;
   double ld_24;
   double ld_32;
   double ld_40;
   int l_ind_counted_4 = IndicatorCounted();
   if (Bars <= RSIPeriod) return (0);
   if (l_ind_counted_4 < 1) for (int li_0 = 1; li_0 <= RSIPeriod; li_0++) g_ibuf_80[Bars - li_0] = 0.0;
   li_0 = Bars - RSIPeriod - 1;
   if (l_ind_counted_4 >= RSIPeriod) li_0 = Bars - l_ind_counted_4 - 1;
   while (li_0 >= 0) {
      ld_32 = 0.0;
      ld_40 = 0.0;
      if (li_0 == Bars - RSIPeriod - 1) {
         for (int li_48 = Bars - 2; li_48 >= li_0; li_48--) {
            ld_8 = Close[li_48] - (Close[li_48 + 1]);
            if (ld_8 > 0.0) ld_40 += ld_8;
            else ld_32 -= ld_8;
         }
         ld_24 = ld_40 / RSIPeriod;
         ld_16 = ld_32 / RSIPeriod;
      } else {
         ld_8 = Close[li_0] - (Close[li_0 + 1]);
         if (ld_8 > 0.0) ld_40 = ld_8;
         else ld_32 = -ld_8;
         ld_24 = ((g_ibuf_84[li_0 + 1]) * (RSIPeriod - 1) + ld_40) / RSIPeriod;
         ld_16 = ((g_ibuf_88[li_0 + 1]) * (RSIPeriod - 1) + ld_32) / RSIPeriod;
      }
      g_ibuf_84[li_0] = ld_24;
      g_ibuf_88[li_0] = ld_16;
      if (ld_16 == 0.0) g_ibuf_80[li_0] = 0.0;
      else g_ibuf_80[li_0] = 100.0 - 100.0 / (ld_24 / ld_16 + 1.0);
      li_0--;
   }
   return (0);
}


Разница видна "невооруженным глазом", правда?
Аватар пользователя
Kalkin
 
Сообщений: 1589
Зарегистрирован: 05 мар 2015, 06:51
Средств на руках: 108.80 Доллар
Награды: 2
Ветеран I (1) Медаль за научный вклад (1)
Группа: Базовая
Благодарил (а): 633 раз.
Поблагодарили: 1190 раз.
Ace Register Votive

Скальпер изменения (Rotator_2)

Сообщение pit84 » 09 фев 2016, 05:35

Kalkin писал(а):В декомпилировнном файле имена переменных обезличены и состоят из букв, соответствующих типу переменной и цифр, а также отсутствуют какие-либо поясняющие комментарии. Например, индикатор RSI из стандартной поставки Метатрейдера. Вот так выглядит текст, который сделал программист:
Код: выделить все
//+------------------------------------------------------------------+
//| Relative Strength Index                                          |
//+------------------------------------------------------------------+
int start()
  {
   int    i,counted_bars=IndicatorCounted();
   double rel,negative,positive;
//----
   if(Bars<=RSIPeriod) return(0);
//---- initial zero
   if(counted_bars<1)
      for(i=1;i<=RSIPeriod;i++) RSIBuffer[Bars-i]=0.0;
//----
   i=Bars-RSIPeriod-1;
   if(counted_bars>=RSIPeriod) i=Bars-counted_bars-1;
   while(i>=0)
     {
      double sumn=0.0,sump=0.0;
      if(i==Bars-RSIPeriod-1)
        {
         int k=Bars-2;
         //---- initial accumulation
         while(k>=i)
           {
            rel=Close[k]-Close[k+1];
            if(rel>0) sump+=rel;
            else      sumn-=rel;
            k--;
           }
         positive=sump/RSIPeriod;
         negative=sumn/RSIPeriod;
        }
      else
        {
         //---- smoothed moving average
         rel=Close[i]-Close[i+1];
         if(rel>0) sump=rel;
         else      sumn=-rel;
         positive=(PosBuffer[i+1]*(RSIPeriod-1)+sump)/RSIPeriod;
         negative=(NegBuffer[i+1]*(RSIPeriod-1)+sumn)/RSIPeriod;
        }
      PosBuffer[i]=positive;
      NegBuffer[i]=negative;
      if(negative==0.0) RSIBuffer[i]=0.0;
      else RSIBuffer[i]=100.0-100.0/(1+positive/negative);
      i--;
     }
//----
   return(0);
  }
//+------------------------------------------------------------------+


А вот тот же участок кода после декомпиляции исполняемого файла:
Код: выделить все
int start() {
   double ld_8;
   double ld_16;
   double ld_24;
   double ld_32;
   double ld_40;
   int l_ind_counted_4 = IndicatorCounted();
   if (Bars <= RSIPeriod) return (0);
   if (l_ind_counted_4 < 1) for (int li_0 = 1; li_0 <= RSIPeriod; li_0++) g_ibuf_80[Bars - li_0] = 0.0;
   li_0 = Bars - RSIPeriod - 1;
   if (l_ind_counted_4 >= RSIPeriod) li_0 = Bars - l_ind_counted_4 - 1;
   while (li_0 >= 0) {
      ld_32 = 0.0;
      ld_40 = 0.0;
      if (li_0 == Bars - RSIPeriod - 1) {
         for (int li_48 = Bars - 2; li_48 >= li_0; li_48--) {
            ld_8 = Close[li_48] - (Close[li_48 + 1]);
            if (ld_8 > 0.0) ld_40 += ld_8;
            else ld_32 -= ld_8;
         }
         ld_24 = ld_40 / RSIPeriod;
         ld_16 = ld_32 / RSIPeriod;
      } else {
         ld_8 = Close[li_0] - (Close[li_0 + 1]);
         if (ld_8 > 0.0) ld_40 = ld_8;
         else ld_32 = -ld_8;
         ld_24 = ((g_ibuf_84[li_0 + 1]) * (RSIPeriod - 1) + ld_40) / RSIPeriod;
         ld_16 = ((g_ibuf_88[li_0 + 1]) * (RSIPeriod - 1) + ld_32) / RSIPeriod;
      }
      g_ibuf_84[li_0] = ld_24;
      g_ibuf_88[li_0] = ld_16;
      if (ld_16 == 0.0) g_ibuf_80[li_0] = 0.0;
      else g_ibuf_80[li_0] = 100.0 - 100.0 / (ld_24 / ld_16 + 1.0);
      li_0--;
   }
   return (0);
}


Разница видна "невооруженным глазом", правда?

Разница видна и существенная!!!
Теперь прежде чем давать заявку буду обязательно просматривать код, хоть я и мало что в нём понимаю но буду стараться как то сравнивать с вашей подсказкой.
Ещё раз огромное Вам спасибо!!!
Аватар пользователя
pit84
 
Сообщений: 412
Зарегистрирован: 25 фев 2015, 07:03
Средств на руках: 7.50 Доллар
Откуда: Омск
Награды: 1
Ветеран I (1)
Группа: Базовая
Благодарил (а): 262 раз.
Поблагодарили: 78 раз.


Вернуться в Торговые советники на заказ

Кто сейчас на форуме?

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

Права доступа к форуму

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

cron