Forex Tester Forum (Professional Training Software for Traders) Forum Index Forex Tester Forum (Professional Training Software for Traders)

Back to main site   Risk disclosure
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

J_TPO

 
Post new topic   Reply to topic    Forex Tester Forum (Professional Training Software for Traders) Forum Index -> Indicators
View previous topic :: View next topic  
Author Message
sbs



Joined: 02 Mar 2011
Posts: 2

PostPosted: Wed Mar 02, 2011 7:35 pm    Post subject: J_TPO Reply with quote

Having some problems coding this indicator. It's an oscillator similar to stochastics, but somewhat better working, at least for me. Can someone help out?

Can attach my broken Delphi code, too Smile

Code:

//+------------------------------------------------------------------+
//|                                                        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);
  }
//+------------------------------------------------------------------+
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Forex Tester Forum (Professional Training Software for Traders) Forum Index -> Indicators All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You can attach files in this forum
You can download files in this forum


Powered by phpBB © 2001, 2005 phpBB Group