Can some body code this to .AFL for amibroker

extremist

Well-Known Member
#1
Step MA :

//+------------------------------------------------------------------+
//| StepMA_v1.mq4 |
//| Copyright 2005, TrendLaboratory Ltd. |
//| E-mail: [email protected] |
//+------------------------------------------------------------------+
#property copyright "Copyright 2005, TrendLaboratory Ltd."
#property link "E-mail: [email protected]"

#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Red
//---- input parameters
extern int StepSize=30;
extern int Advance=0;
extern int HighLow=0;
//---- indicator buffers
double LineBuffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
string short_name;
//---- indicator line
SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,1);
SetIndexShift(0,Advance);
SetIndexBuffer(0,LineBuffer);
IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS));
//---- name for DataWindow and indicator subwindow label
short_name="StepMA("+StepSize+")";
IndicatorShortName(short_name);
SetIndexLabel(0,"StepMA");
//----
SetIndexDrawBegin(0,1);
//----
return(0);
}

//+------------------------------------------------------------------+
//| StepMA_v1 |
//+------------------------------------------------------------------+
int start()
{
int shift,trend;
double smin0,smax0,smin1,smax1;


for(shift=Bars-1;shift>=0;shift--)
{
if (HighLow>0)
{
smax0=Low[shift]+2*StepSize*Point;
smin0=High[shift]-2*StepSize*Point;

if(Close[shift]>smax1) trend=1;
if(Close[shift]<smin1) trend=-1;
}

if (HighLow == 0)
{
smax0=Close[shift]+2*StepSize*Point;
smin0=Close[shift]-2*StepSize*Point;

if (Close[shift]>smax1) trend=1;
if (Close[shift]<smin1) trend=-1;
}

if(trend>0 && smin0<smin1) smin0=smin1;
if(trend<0 && smax0>smax1) smax0=smax1;

if (trend>0) LineBuffer[shift]=smin0+StepSize*Point;
if (trend<0) LineBuffer[shift]=smax0-StepSize*Point;

smin1=smin0;
smax1=smax0;
}
return(0);
}
 

mastermind007

Well-Known Member
#2
Step MA :

//+------------------------------------------------------------------+
//| StepMA_v1.mq4 |
//| Copyright 2005, TrendLaboratory Ltd. |
//| E-mail: [email protected] |
//+------------------------------------------------------------------+
#property copyright "Copyright 2005, TrendLaboratory Ltd."
#property link "E-mail: [email protected]"

#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Red
//---- input parameters
extern int StepSize=30;
extern int Advance=0;
extern int HighLow=0;
//---- indicator buffers
double LineBuffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
string short_name;
//---- indicator line
SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,1);
SetIndexShift(0,Advance);
SetIndexBuffer(0,LineBuffer);
IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS));
//---- name for DataWindow and indicator subwindow label
short_name="StepMA("+StepSize+")";
IndicatorShortName(short_name);
SetIndexLabel(0,"StepMA");
//----
SetIndexDrawBegin(0,1);
//----
return(0);
}

//+------------------------------------------------------------------+
//| StepMA_v1 |
//+------------------------------------------------------------------+
int start()
{
int shift,trend;
double smin0,smax0,smin1,smax1;


for(shift=Bars-1;shift>=0;shift--)
{
if (HighLow>0)
{
smax0=Low[shift]+2*StepSize*Point;
smin0=High[shift]-2*StepSize*Point;

if(Close[shift]>smax1) trend=1;
if(Close[shift]<smin1) trend=-1;
}

if (HighLow == 0)
{
smax0=Close[shift]+2*StepSize*Point;
smin0=Close[shift]-2*StepSize*Point;

if (Close[shift]>smax1) trend=1;
if (Close[shift]<smin1) trend=-1;
}

if(trend>0 && smin0<smin1) smin0=smin1;
if(trend<0 && smax0>smax1) smax0=smax1;

if (trend>0) LineBuffer[shift]=smin0+StepSize*Point;
if (trend<0) LineBuffer[shift]=smax0-StepSize*Point;

smin1=smin0;
smax1=smax0;
}
return(0);
}
How much payment are you offering?
 

mastermind007

Well-Known Member
#4
Mastermind i am ready to pay pls give me ur email address
i want amibroker code I WILL GIVE U MQ4. CAN U CONVERT IT ???
thanks
Yes, I can convert it. I've PM'd you my email address.
 

mastermind007

Well-Known Member
#6
Mastermind i am ready to pay pls give me ur email address

i want amibroker code I WILL GIVE U MQ4. CAN U CONVERT IT ???

thanks
Hemal,

Pls check your email.
 

sr114

Well-Known Member
#7
Extremist

the code of StepMa u posted was very old. if u really want the latest version use this

Code:
//+------------------------------------------------------------------+
//|                                                    StepMA_v7.mq4 |
//|                                Copyright  2006, TrendLaboratory |
//|            http://finance.groups.yahoo.com/group/TrendLaboratory |
//|                                   E-mail: [email protected] |
//+------------------------------------------------------------------+
#property copyright "Copyright  2006, TrendLaboratory"
#property link      "http://finance.groups.yahoo.com/group/TrendLaboratory"
//----
#property indicator_chart_window
#property indicator_buffers 3
#property indicator_color1 Aqua
#property indicator_color2 Blue
#property indicator_color3 Red
//---- input parameters
extern int     Length     =10;      // Volty Length
extern double  Kv         =1.0;     // Sensivity Factor
extern int     StepSize   =0;       // Constant Step Size (if need)
extern int     MA_Mode    =0;       // Volty MA Mode : 0-SMA, 1-LWMA 
extern int     Advance    =0;       // Offset
extern double  Percentage =0;       // Percentage of Up/Down Moving   
extern bool    HighLow    =false;   // High/Low Mode Switch (more sensitive)
extern int     ColorMode  =0;       // Color Mode Switch
extern int     BarsNumber =0;
//---- indicator buffers
double LineBuffer[];
double UpBuffer[];
double DnBuffer[];
double smin[];
double smax[];
double trend[];
double StepMA=0, ATR0=0,ATRmax=-100000,ATRmin=1000000;
int limit;
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
   double StepSizeCalc(int Len, double Km, int Size, int k)
  {
   double result;
   if(Size==0)
     {
      double AvgRange=0;
      for(int i=Len-1;i>=0;i--)
        {
         if(MA_Mode==0) double alfa= 1.0; else alfa= 1.0+1.0*(Len-i)/Len;
         AvgRange+= alfa*(High[k+i]-Low[k+i]);
        }
      ATR0=AvgRange/Len;
//----
      if (ATR0>ATRmax) ATRmax=ATR0;
      if (ATR0<ATRmin) ATRmin=ATR0;
//----
      result=MathRound(0.5*Km*(ATRmax+ATRmin)/Point);
     }
   else
      result=Km*StepSize;
   return(result);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
   double StepMACalc (bool HL, double Size, int k)
  {
   int counted_bars=IndicatorCounted();
   double result;
//----
   if (HL)
     {
      smax[k]=Low[k]+2.0*Size*Point;
      smin[k]=High[k]-2.0*Size*Point;
     }
   else
     {
      smax[k]=Close[k]+2.0*Size*Point;
      smin[k]=Close[k]-2.0*Size*Point;
     }
   if (counted_bars==0){smax[limit+1]=smax[limit];smin[limit+1]=smin[limit];trend[limit+1]=0;}
//----
   trend[k]=trend[k+1];
   if (Close[k]>smax[k+1]) trend[k]=1;
   if (Close[k]<smin[k+1]) trend[k]=-1;
   if(trend[k]>0)
     {
      if(smin[k]<smin[k+1]) smin[k]=smin[k+1];
      result=smin[k]+Size*Point;
     }
   else
     {
      if(smax[k]>smax[k+1]) smax[k]=smax[k+1];
      result=smax[k]-Size*Point;
     }
   //Print (" k=",k," trend=",trend[k], " res=",result," Smax=", smax[k], " Smin=", smin[k]);
   return(result);
  }
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
  int init()
  {
   string short_name;
//---- indicator line
   IndicatorBuffers(6);
   SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,2);
   SetIndexStyle(1,DRAW_LINE);
   SetIndexStyle(2,DRAW_LINE);
   //
   SetIndexArrow(1,159);
   SetIndexArrow(2,159);
   //
   SetIndexBuffer(0,LineBuffer);
   SetIndexBuffer(1,UpBuffer);
   SetIndexBuffer(2,DnBuffer);
   //
   SetIndexShift(0,Advance);
   SetIndexShift(1,Advance);
   SetIndexShift(2,Advance);
   //
   SetIndexBuffer(3,smin);
   SetIndexBuffer(4,smax);
   SetIndexBuffer(5,trend);
//---- name for DataWindow and indicator subwindow label
   short_name="StepMA("+Length+","+Kv+","+StepSize+")";
   IndicatorShortName(short_name);
   SetIndexLabel(0,short_name);
   SetIndexLabel(1,"UpTrend");
   SetIndexLabel(2,"DownTrend");
//----
   SetIndexDrawBegin(0,Length);
   SetIndexDrawBegin(1,Length);
   SetIndexDrawBegin(2,Length);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custor indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//---- 
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| StepMA_v7                                                        |
//+------------------------------------------------------------------+
int start()
  {
   int shift, counted_bars=IndicatorCounted();
//----
   if(BarsNumber > 0)int Nbars=BarsNumber; else Nbars=Bars;
   if(counted_bars > 0) limit=Nbars-counted_bars;
   if(counted_bars < 0) return(0);
   if(counted_bars ==0) limit=Nbars-Length-1;
//----
   for(shift=limit;shift>=0;shift--)
     {
      int Step=StepSizeCalc( Length, Kv, StepSize, shift);
      Comment (" StepSize= ", Step);
      StepMA=StepMACalc(HighLow, Step, shift)+Percentage/100.0*Step*Point;
      if(ColorMode==0) LineBuffer[shift]=StepMA;
      if(ColorMode==1)
        {
         if(trend[shift]>0){UpBuffer[shift]=StepMA-Step*Point;DnBuffer[shift]=EMPTY_VALUE;}
         else
            if(trend[shift]<0){DnBuffer[shift]=StepMA+Step*Point;UpBuffer[shift]=EMPTY_VALUE;}
        }
      else
         if(ColorMode==2)
           {
            if (trend[shift]>0)
              {
               UpBuffer[shift]=StepMA;
               if(trend[shift+1] < 0)UpBuffer[shift+1]=DnBuffer[shift+1];
               DnBuffer[shift]=EMPTY_VALUE;
              }
            if (trend[shift]<0)
              {
               DnBuffer[shift]=StepMA;
               if(trend[shift+1] > 0)DnBuffer[shift+1]=UpBuffer[shift+1];
               UpBuffer[shift]=EMPTY_VALUE;
              }
           }
         else
           {
            UpBuffer[shift]=EMPTY_VALUE; DnBuffer[shift]=EMPTY_VALUE;
           }
     }
   return(0);
  }
//+------------------------------------------------------------------+
rgds
subroto
 

sr114

Well-Known Member
#8
Yes, I can convert it. I've PM'd you my email address.
Mastermind007

as u can convert the stepMA into amibroker , so u r aware of this particular mt4 indi of Igor.

so can u please elaborate abut this indi - how it works, what to look at this indi, how to interpret it?

also abut the other variation - stepStoch and stepRSI - any idea? specially stepSToch - who to interpret it?

got the images of charts in some forex sites and also Kartick (Kartick Marar) have translated stepMA into amibroker - but unable to get the logic. as u r aware - so it seems u had used it or using it - so please shen some insight abut stepMA.

rgds
subroto
 

johnnypareek

Well-Known Member
#9
Mastermind007

as u can convert the stepMA into amibroker , so u r aware of this particular mt4 indi of Igor.

so can u please elaborate abut this indi - how it works, what to look at this indi, how to interpret it?

also abut the other variation - stepStoch and stepRSI - any idea? specially stepSToch - who to interpret it?

got the images of charts in some forex sites and also Kartick (Kartick Marar) have translated stepMA into amibroker - but unable to get the logic. as u r aware - so it seems u had used it or using it - so please shen some insight abut stepMA.

rgds
subroto

Bhai,

He must be charging to convert as he gave the guy his email. But then he didn't received any mail from the guy who requested to convert, because he again posted that he has sent private message with email ID.

Now You can guess
 

sr114

Well-Known Member
#10
Bhai,

He must be charging to convert as he gave the guy his email. But then he didn't received any mail from the guy who requested to convert, because he again posted that he has sent private message with email ID.

Now You can guess
Yes Bhai

i know this situation well.

No body is going to pay a single penny for the conversion or translation .

BTW - Johnny Bhai - i find this stepMA stuff interesting - very useful to get trend or the sideways mkt as i was going thru the fores site analysing the stepMA stuff. also its not so tough to convert mt4 indis - practically not very difficult

but have to get ideas b4 the conversion - how it works? etc etc

rgds
subroto

p.s. - to share the idea abut a indi u know or u used - it costs nothing - so i requested abut it. till waiting for the reply
 

Similar threads