[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[amibroker] Anyone up to porting this MT4 indicator to AB?



PureBytes Links

Trading Reference Links

I don't believe I'm infringing on anyones copyright/ownership as this indicator is freely available for the MT4 platform and no indication is given of a copyright owner. Seems to work OK in showing trend change when used in conjunction with confirming PA.
Thanks.
 
 
/+------------------------------------------------------------------+
//|                                                        J_TPO.mq4 |
//|                      Copyright © 2004,                           |
//|                                                                  |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2004, ."
#property link      ""
 
#property indicator_separate_window
#property indicator_minimum -1
#property indicator_maximum 1
#property indicator_buffers 1
#property indicator_color1 DodgerBlue
//---- input parameters
extern int       Len=10;
//---- buffers
double ExtMapBuffer1[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0, ExtMapBuffer1);
//----
   return(0);
  }
 
//+------------------------------------------------------------------+
//| J_TPO indicatop                                                  |
//+------------------------------------------------------------------+
int start()
  {
   //int limit;
   //int counted_bars=IndicatorCounted();
//---- check for possible errors
   //if(counted_bars<0) return(-1);
//---- last counted bar will be recounted
   //if(counted_bars>0) counted_bars--;
   //limit=Bars-counted_bars;
//---- main loop
  
     double f0, f8, f10, f18, f20, f28, f30, f40, k,
      var14, var18, var1C, var20, var24, shift, value;
     int f38, f48, var6, var12, varA, varE;
     double arr0[300], arr1[300], arr2[300], arr3[300];
 
   //f38=0;
   for(int i=Bars-Len-100; i>=0; i--)
     {
     var14=0;
     var1C=0;
     if(f38==0) 
      {
      f38=1;
      f40=0;
      if (Len-1>= 2) f30=Len-1;
      else f30=2;
      f48=f30+1;
      f10=Close[i];
      arr0[f38] = Close[i];
      k=f48;
      f18 = 12 / (k * (k - 1) * (k + 1));
      f20 = (f48 + 1) * 0.5;
      } 
     else 
      {
      if (f38 <= f48) f38 = f38 + 1;
      else f38 = f48 + 1;
      f8 = f10;
      f10 = Close[i];
      if (f38 > f48) 
        {
        for (var6 = 2; var6<=f48; var6++) arr0[var6-1] = arr0[var6];
        arr0[f48] = Close[i];
        }
      else arr0[f38] = Close[i];
      if ((f30 >= f38) && (f8 != f10)) f40 = 1;  
      if ((f30 == f38) && (f40 == 0)) f38 = 0;  
     }
  
   if (f38 >= f48) 
      {
      for (varA=1; varA<=f48; varA++)
         {
         arr2[varA] = varA;
         arr3[varA] = varA;
         arr1[varA] = arr0[varA];
         }
     
      for (varA=1; varA<=(f48-1); varA++)
         {
         var24 = arr1[varA];
         var12 = varA;
         var6 = varA + 1;
         for (var6=varA+1; var6<=f48; var6++)
            {
            if (arr1[var6] < var24)
               {
               var24 = arr1[var6];
               var12 = var6;
               }
            }
        
         var20 = arr1[varA];
         arr1[varA] = arr1[var12];
         arr1[var12] = var20;
         var20 = arr2[varA];
         arr2[varA] = arr2[var12];
         arr2[var12] = var20;
         }
     
      varA = 1;
      while (f48 > varA)
        {
        var6 = varA + 1;
        var14 = 1;
        var1C = arr3[varA];
        while (var14 != 0)
          {
          if (arr1[varA] != arr1[var6]) 
             {
             if ((var6 - varA) > 1)
                {
                var1C = var1C / (var6 - varA);
                varE = varA;
                for (varE=varA; varE<=(var6-1); varE++)
                   arr3[varE] = var1C;
               
                }
             var14 = 0;
             }
          else
             {
             var1C = var1C + arr3[var6];
             var6 = var6 + 1;
             }
          }
        varA = var6;
        }
      var1C = 0;
      for (varA=1; varA<=f48; varA++)
        var1C = var1C + (arr3[varA] - f20) * (arr2[varA] - f20);
             
      var18 = f18 * var1C;
     }
   else
     var18 = 0;
 
   value = var18;
   if (value == 0) value = 0.00001;
 
   ExtMapBuffer1[i]=value;
   }
//---- done
   return(0);
  }
//+------------------------------------------------------------------+


Please note that this group is for discussion between users only.

To get support from AmiBroker please send an e-mail directly to
SUPPORT {at} amibroker.com

For other support material please check also:
http://www.amibroker.com/support.html





SPONSORED LINKS
Investment management software Real estate investment software Investment property software
Software support Real estate investment analysis software Investment software


YAHOO! GROUPS LINKS