А такой рисунок видели? - страница 39

crom
288
crom  
Sergey Pavlov
13475
Sergey Pavlov  
sergeev писал(а) >>

Высший пилотаж! Я давно подумывал о том: как бы нарисовать что-либо кривой баланса и эквити. У Вас это классно получилось.

Sergey Kravchuk
3190
Sergey Kravchuk  
// Обычная МА-ша, но "не наша" ;) 
// вот так можно зашифровать стандартный "Moving Averages.mq4"

#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Red
extern int MA_Period=13;
extern int MA_Shift=0;
extern int MA_Method=0;
double  2147483644 [];
int  2147483645 =0;
int init()
  {
   int     2147483647 ;
   string  2147483637 ;
   SetIndexStyle(0,DRAW_LINE);
   SetIndexShift(0,MA_Shift);
   IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS));
   if(MA_Period<2) MA_Period=13;
    2147483647 =MA_Period-1;
   switch(MA_Method)
     {
      case 1 :  2147483637 ="EMA(";   2147483647 =0; break;
      case 2 :  2147483637 ="SMMA("; break;
      case 3 :  2147483637 ="LWMA("; break;
      default :
         MA_Method=0;
          2147483637 ="SMA(";
     }
   IndicatorShortName( 2147483637 +MA_Period+")");
   SetIndexDrawBegin(0, 2147483647 );
   SetIndexBuffer(0, 2147483644 );
   return(0);
  }
int start()
  {
   if(Bars<=MA_Period) return(0);
    2147483645 =IndicatorCounted();
   if ( 2147483645 <0) return(-1);
   if ( 2147483645 >0)  2147483645 --;
   switch(MA_Method)
     {
      case 0 :  2147483636 ();  break;
      case 1 :  2147483646 ();  break;
      case 2 :  2147483635 (); break;
      case 3 :  2147483641 ();
     }
   return(0);
  }
void  2147483636 ()
  {
   double  2147483634 =0;
   int     2147483643 , 2147483640 =Bars- 2147483645 -1;
   if( 2147483640 <MA_Period)  2147483640 =MA_Period;
   for( 2147483643 =1; 2147483643 <MA_Period; 2147483643 ++, 2147483640 --)
       2147483634 +=Close[ 2147483640 ];
   while( 2147483640 >=0)
     {
       2147483634 +=Close[ 2147483640 ];
       2147483644 [ 2147483640 ]= 2147483634 /MA_Period;
      2147483634 -=Close[ 2147483640 +MA_Period-1];
       2147483640 --;
     }
   if( 2147483645 <1)
      for( 2147483643 =1; 2147483643 <MA_Period; 2147483643 ++)  2147483644 [Bars- 2147483643 ]=0;
  }
void  2147483646 ()
  {
   double  2147483639 =2.0/(MA_Period+1);
   int     2147483640 =Bars-2;
   if( 2147483645 >2)  2147483640 =Bars- 2147483645 -1;
   while( 2147483640 >=0)
     {
      if( 2147483640 ==Bars-2)  2147483644 [ 2147483640 +1]=Close[ 2147483640 +1];
       2147483644 [ 2147483640 ]=Close[ 2147483640 ]* 2147483639 + 2147483644 [ 2147483640 +1]*(1- 2147483639 );
       2147483640 --;
     }
  }
void  2147483635 ()
  {
   double  2147483634 =0;
   int     2147483643 , 2147483642 , 2147483640 =Bars- 2147483645 +1;
    2147483640 =Bars-MA_Period;
   if( 2147483640 >Bars- 2147483645 )  2147483640 =Bars- 2147483645 ;
   while( 2147483640 >=0)
     {
      if( 2147483640 ==Bars-MA_Period)
        {
         for( 2147483643 =0, 2147483642 = 2147483640 ; 2147483643 <MA_Period; 2147483643 ++, 2147483642 ++)
           {
             2147483634 +=Close[ 2147483642 ];
             2147483644 [ 2147483642 ]=0;
           }
        }
      else  2147483634 = 2147483644 [ 2147483640 +1]*(MA_Period-1)+Close[ 2147483640 ];
       2147483644 [ 2147483640 ]= 2147483634 /MA_Period;
       2147483640 --;
     }
  }
void  2147483641 ()
  {
   double  2147483634 =0.0,lsum=0.0;
   double  2147483638 ;
   int     2147483643 , 2147483633 =0, 2147483640 =Bars- 2147483645 -1;
   if( 2147483640 <MA_Period)  2147483640 =MA_Period;
   for( 2147483643 =1; 2147483643 <=MA_Period; 2147483643 ++, 2147483640 --)
     {
       2147483638 =Close[ 2147483640 ];
       2147483634 += 2147483638 * 2147483643 ;
      lsum+= 2147483638 ;
       2147483633 += 2147483643 ;
     }
    2147483640 ++;
    2147483643 = 2147483640 +MA_Period;
   while( 2147483640 >=0)
     {
       2147483644 [ 2147483640 ]= 2147483634 / 2147483633 ;
      if( 2147483640 ==0) break;
       2147483640 --;
       2147483643 --;
       2147483638 =Close[ 2147483640 ];
       2147483634 = 2147483634 -lsum+ 2147483638 *MA_Period;
      lsum-=Close[ 2147483643 ];
      lsum+= 2147483638 ;
     }
   if( 2147483645 <1)
      for( 2147483643 =1; 2147483643 <MA_Period; 2147483643 ++)  2147483644 [Bars- 2147483643 ]=0;
  }
Sceptic Philozoff
17690
Sceptic Philozoff  
ForexTools, респект! Только это, наверно, уже из серии "А такой код видели?". Кстати, а почему бы не организовать и такую ветку?
Sceptic Philozoff
17690
Sceptic Philozoff  

Ну да, Виктор, вот в этой ветке был об этом разговор.

Sergey Kravchuk
3190
Sergey Kravchuk  
невидимый 160-й тут просто для прикола. на самом деле это я прожку написал, которая выдирает все используемые идентификаторы и вот так их кодирует (anti decompiler). на недельке статью оформлю с исходником - может опубликуют (прожка на VB а не на MQL)...
Виктор
Модератор
6448
Виктор  
ForexTools >>:
невидимый 106-й тут просто для прикола. на самом деле это я прожку написал, которая выдирает все используемые идентификаторы и вот так их кодирует (anti decompiler). на недельке статью оформлю с исходником - может опубликуют (прожка на VB а не на MQL)...

Объясните тупому - зачем публиковать такие находки на общедоступном форуме? Чтобы появились модернизированные декомпиляторы? Сами они еще долго не додумались бы, ход достаточно неординарный.

Sergey Kravchuk
3190
Sergey Kravchuk  
granit77 >>:

Чтобы появились модернизированные декомпиляторы? Сами они еще долго не додумались бы, ход достаточно неординарный.

это давно известный ход ;) декомпилятор не восстанавливает имена переменных, но имена функций - МК почемуто не зашифровали. поэтому если перед компиляцией публичного ex4 обработать вот так исходник, то декомпилер восстановит тот текст, который я и привел в качестве примера. вы сможете восстановить только по этому тексту что оно строит (без моей подсказки)? ;) здесь же главная фишка не в невидимом символе, а в полной бессмысленности абсолютно всех используемых переменных (кроме внешних параметров эксперта и имен импортированных функций из внешних же длл). теоретически можно в таком виде отдать "исходник" и кроме строки копирайта никто там толком ничего не поправит (особенно если еще текст замусорить никогда невыполняемыми кусками кода).

TheXpert
18198
TheXpert  

ForexTools писал(а) >>

вы сможете восстановить только по этому тексту что оно строит (без моей подсказки)? ;)

Да. Чем лучше написан код, тем легче.

Олег
412
Олег