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

[amibroker] Re: Optimizing your Moving average



PureBytes Links

Trading Reference Links


Anthony,

in case, you ask that for short position, C[i] < C[i-1] is not always 
the lowest close of the short side, the code below takes care of a 
lowest or highest close for breakout.
Ouf !!

stephane

Buy=Cross(C,EMA(C,19));
Sell=Cross(EMA(C,19),C) ;//Month()==1;

CumCSt=0;
poslong=0;posshort=0;
Hiclose=LoClose=C[0];

for (i=1; i<BarCount; i++)
{

if( Buy[i])
{
poslong=1;posshort=0;
}
if(Sell[i])
{
poslong=0;posshort=1;
}
//Rlong[i]=poslong;
//RShort[i]=posshort;

if(poslong==1)
{
LoClose=Null;
 if(Buy[i])
 {
 HiClose=C[i];
 CumCSt[i]=0.1;
 }
 else
 {
 if(C[i]>HiClose)
 {
 HiClose=C[i];
 CumCSt[i]=Cumcst[i-1] + 0.003;
 }
 else
 CumCSt[i]=Cumcst[i-1];
 }
}
else
{
HiClose=Null;
 if(Sell[i])
 {
 Loclose=C[i];
 CumCSt[i]=0.1;
 }
 else
 {
 if(C[i]<Loclose)
 {
 CumCSt[i]=Cumcst[i-1] + 0.003; 
 Loclose=C[i];
 }
 else
 CumCst[i]=Cumcst[i-1];
 }
}

result[i]=loClose; // or Hiclose 
if(CumCst[i]>0.13)
CumCst[i]=0.13;

}

per=19;
Smth=2/(per+1)+CumCSt;
MovAvg=AMA(C,Smth);

Plot(Cumcst,"",colorBlue,1);<s.carrasset@xxxx> wrote:
> 
> Sorry, I wrote it between two MRI
> better code
> 
> Buy=Cross(C,EMA(C,19));
> Sell=Cross(EMA(C,19),C) ;//Month()==1;
> 
> CumCSt=0;
> poslong=0;posshort=0;
> 
> for (i=1; i<BarCount; i++)
> {
> 
> if( Buy[i])
> {
> poslong=1;posshort=0;
> }
> if(Sell[i])
> {
> poslong=0;posshort=1;
> }
> //Rlong[i]=poslong;
> //RShort[i]=posshort;
> 
> if(poslong==1)
> {
>  if(Buy[i])
>  CumCSt[i]=0.1;
>  else
>  {
>  if(C[i]>C[i-1])
>  CumCSt[i]=Cumcst[i-1] + 0.003;
>  else
>  CumCSt[i]=Cumcst[i-1];
>  }
> }
> else
> {
>  if(Sell[i])
>  CumCSt[i]=0.1;
>  else
>  {
>  if(C[i]<C[i-1])
>  CumCSt[i]=Cumcst[i-1] + 0.003;
>  else
>  CumCst[i]=Cumcst[i-1];
>  }
> }
> 
> 
> if(CumCst[i]>0.13)
> CumCst[i]=0.13;
> 
> }
> 
> per=19;
> Smth=2/(per+1)+CumCSt;
> MovAvg=AMA(C,Smth);
> 
> Plot(CumCst,"",colorBlue,1);
> 
> <s.carrasset@xxxx> wrote:
> > 
> > Anthony,sorry I have not tried it,
> > now I think it is Ok 
> > 
> > Buy=Cross(C,EMA(C,19));
> > Sell=Cross(EMA(C,19),C) ;//Month()==1;
> > 
> > CumCSC=0;
> > poslong=1;posshort=0;
> > 
> > for (i=1; i<BarCount; i++)
> > {
> > 
> > if( Buy[i])
> > {
> > poslong=1;posshort=0;
> > }
> > if(Sell[i])
> > {
> > poslong=0;posshort=1;
> > }
> > Rlong[i]=poslong;
> > RShort[i]=posshort;
> > 
> > if(Rlong[i])
> > {
> >  if(Buy[i])
> >  CumCSC[i]=0.1;
> >  else
> >  {
> >  if(C[i]>C[i-1])
> >  CumCSc[i]=Cumcsc[i-1] + 0.003;
> >  else
> >  CumCSc[i]=Cumcsc[i-1];
> >  }
> > }
> > if (RShort[i])
> > {
> >  if(Sell[i])
> >  CumCSC[i]=0.1;
> >  else
> >  {
> >  if(C[i]<C[i-1])
> >  CumCSc[i]=Cumcsc[i-1] + 0.003;
> >  else
> >  CumCSc[i]=Cumcsc[i-1];
> >  }
> > }
> > 
> > 
> > if(CumCSc[i]>0.13)
> > CumCSc[i]=0.13;
> > 
> > }
> > 
> > per=19;
> > Smth=2/(per+1)+CumCSc;
> > MovAvg=AMA(C,Smth);
> > 
> > Plot(Cumcsc,"",colorBlue,1);
> > > Stephane,
> > > 
> > > Thank you for trying, but unfortunately it is not 
working....the 
> > CUMCST value is always .13 and does not reset to .10 with a new 
buy 
> > or sell signal .
> > > 
> > > Anthony
> > >   ----- Original Message ----- 
> > >   From: s.carrasset 
> > >   To: amibroker@xxxxxxxxxxxxxxx 
> > >   Sent: Monday, October 25, 2004 3:34 PM
> > >   Subject: Re: [amibroker] Optimizing your Moving average
> > > 
> > > 
> > >   Anthony
> > > 
> > >   this must do the job
> > > 
> > >   Buy=Cross(C,EMA(C,19));
> > >   Sell=Cross(EMA(C,19),C) ;
> > > 
> > >   CumCst=0.0;
> > >   poslong=0;
> > >   posshort=0;
> > > 
> > >   for (i=1; i<BarCount; i++)
> > >   {
> > >   if(Buy[i])
> > >   {
> > >   poslong=1;
> > >   posshort=0;
> > >   CumCst[i]=0.1;
> > >   }
> > >   if(Sell[i])
> > >   {
> > >   poslong=0;
> > >   posshort=1;
> > >   CumCst[i]=0.1;
> > >   }
> > > 
> > > 
> > >   if(posshort==1)
> > >   {
> > >   if(C[i]<C[i-1])
> > >   CumCst[i]=CumCst[i-1] + 0.003;
> > >   else
> > >   CumCst[i]=CumCst[i-1];
> > >   }
> > >   else  // if(poslong==1)
> > >   {
> > >   if(C[i]>C[i-1])
> > >   CumCst[i]=CumCst[i-1] + 0.003;
> > >   else
> > >   CumCst[i]=CumCst[i-1];
> > > 
> > >   }
> > > 
> > >   if(CumCst[i]>0.13)
> > >   CumCst[i]=0.13;
> > > 
> > >   }
> > > 
> > >   per=19;
> > > 
> > >   Smth=2/(per+1)+CumCst;
> > > 
> > >   MovAvg=AMA(C,Smth);
> > > 
> > >   Plot(movavg,"",colorBlue,1);
> > >   Plot(C,"",1,64);
> > > 
> > >   PlotShapes(Buy*shapeUpArrow,colorGreen,0,L,-20);
> > >   PlotShapes(Sell* shapeDownArrow,colorRed,0,H,-20);
> > > 
> > > 
> > > 
> > > 
> > > 
> > > 
> > > 
> > > 
> > > 
> > > 
> > > 
> > > 
> > >   Faragasso a écrit :
> > > 
> > >   > Thanks Stephane,
> > >   >
> > >   > unfortunately I am at a loss as to how to finish this...
> > >   >
> > >   >
> > >   > Buy=Cross(C,EMA(C,19));
> > >   >
> > >   > Sell=Cross(EMA(C,19),C) ;//Month()==1;
> > >   >
> > >   > CumCSC=0;
> > >   >
> > >   > for (i=1; i<BarCount; i++)
> > >   >
> > >   > {
> > >   >
> > >   > if(Buy[i])
> > >   >
> > >   > CumCSC[i]=0;
> > >   >
> > >   > else
> > >   >
> > >   > {
> > >   >
> > >   > if(C[i]>C[i-1])
> > >   >
> > >   > CumCSc[i]=Cumcsc[i-1] + 0.003;
> > >   >
> > >   > else
> > >   >
> > >   > CumCSc[i]=Cumcsc[i-1];
> > >   >
> > >   > }
> > >   >
> > >   > if(CumCSc[i]>0.13)
> > >   >
> > >   > CumCSc[i]=0.13;
> > >   >
> > >   > }
> > >   >
> > >   > per=19;
> > >   >
> > >   > Smth=2/(per+1)+CumCSc;
> > >   >
> > >   > MovAvg=AMA(C,Smth);
> > >   >
> > >   > Plot(movavg,"",colorBlue,1);
> > >   >
> > >   > Plot(C,"",1,64);
> > >   >
> > >   > Filter=1;
> > >   >
> > >   > AddColumn(Buy,"buy");
> > >   >
> > >   > AddColumn(Cumcsc,"cst");
> > >   >
> > >   > AddColumn(smth,"smth");
> > >   >
> > >   >
> > >   > Anthony
> > >   >
> > >   >
> > >   > ----- Original Message -----
> > >   >   From: s.carrasset
> > >   >   To: amibroker@xxxxxxxxxxxxxxx
> > >   >   Sent: Sunday, October 24, 2004 5:26 PM
> > >   >   Subject: Re: [amibroker] Optimizing your Moving average
> > >   >
> > >   >
> > >   >   Hello,
> > >   >
> > >   >
> > >   >   Anthony, this code can be a starting point
> > >   >
> > >   >   Sell=Month()==1;
> > >   >   Cumcst=0.1;
> > >   >   for (i=1; i<BarCount; i++)
> > >   >   {
> > >   >   if(Sell[i])
> > >   >   CumCST[i]=0.10;
> > >   >   else
> > >   >   {
> > >   >   if(C[i]>C[i-1])
> > >   >   CumCST[i]=Cumcst[i-1] + 0.003;
> > >   >   else
> > >   >   CumCST[i]=Cumcst[i-1];
> > >   >   }
> > >   >
> > >   >   if(CumCST[i]>0.13)
> > >   >   CumCST[i]=0.13;
> > >   >
> > >   >   }
> > >   >
> > >   >   per=19;
> > >   >   Smth=2/(per+1)+CumCST;
> > >   >
> > >   >   MovAvg=AMA(C,Smth);
> > >   >
> > >   >   Plot(movavg,"",colorBlue,1);
> > >   >   Plot(C,"",1,64);Anthony Faragasso a écrit :
> > >   >
> > >   >   > Anyone ?
> > >   >   >
> > >   >   > This seems a perfect time for AMA(array, factor ) but 
> > unfortunately I
> > >   >   > have
> > >   >   > never applied the AMA function, I would like the Smth 
to 
> be 
> > adjusting;
> > >   >   >
> > >   >   > Lets work with a 19 period moving average...
> > >   >   >
> > >   >   >
> > >   >   > Per=19;
> > >   >   >
> > >   >   > BuySignal=cross(c,Ema(c,per);
> > >   >   > SellSignal=cross(Ema(c,per),c);
> > >   >   >
> > >   >   > additionalSmthConstant=
> > >   >   >
> > >   >   > CumSmthConstant=2/(per+1) + additonalSmthConstant;
> > >   >   >
> > >   >   > MovAvg=AMA(C,Smth);
> > >   >   >
> > >   >   > Here are the Details:
> > >   >   >
> > >   >   > After a buy signal is generated, assign additional 
> > smoothing 
> > >   > constant of
> > >   >   > .003 when a stock or commodity makes a new higher close.
> > >   >   >
> > >   >   > The new Cumulative Smoothing Constant is calculated by 
> > adding daily
> > >   >   > additional smoothing constant to previous Cumulative 
> > Smoothing 
> > >   > Constant
> > >   >   > until a maximum of .13 is reached.
> > >   >   >
> > >   >   > After a Sell signal return the Cumulative Smoothing 
> > Constant to the
> > >   >   > starting
> > >   >   > value of .10
> > >   >   >
> > >   >   > After a sell signal is generated, assign additional 
> > smoothing 
> > >   > constant of
> > >   >   > .003 when a stock or commodity makes a new lower close.
> > >   >   >
> > >   >   > The new Cumulative Smoothing Constant is calculated by 
> > adding daily
> > >   >   > additional smoothing constant to previous Cumulative 
> > Smoothing 
> > >   > Constant
> > >   >   > until a maximum of .13 is reached.
> > >   >   >
> > >   >   >
> > >   >   >
> > >   >   >
> > >   >   >
> > >   >   >
> > >   >   >
> > >   >   >
> > >   >   >
> > >   >   >
> > >   >   > Check AmiBroker web page at:
> > >   >   > http://www.amibroker.com/
> > >   >   >
> > >   >   > Check group FAQ at:
> > >   >   > 
> http://groups.yahoo.com/group/amibroker/files/groupfaq.html
> > >   >   >
> > >   >   >
> > >   >   > *Yahoo! Groups Sponsor*
> > >   >   > ADVERTISEMENT
> > >   >   > click here
> > >   >   > 
> > >   > 
> > 
> 
<http://us.ard.yahoo.com/SIG=1298fvm08/M=295196.4901138.6071305.300117
> > 
> 
6/D=groups/S=1705632198:HM/EXP=1098732488/A=2128215/R=0/SIG=10se96mf6/
> > *http://companion.yahoo.com> 
> > >   >
> > >   >   >
> > >   >   >
> > >   >   >
> > >   >   > 
> > >   > ------------------------------------------------------------
--
> --
> > --------
> > >   >   > *Yahoo! Groups Links*
> > >   >   >
> > >   >   >     * To visit your group on the web, go to:
> > >   >   >       http://groups.yahoo.com/group/amibroker/
> > >   >   >       
> > >   >   >     * To unsubscribe from this group, send an email to:
> > >   >   >       amibroker-unsubscribe@xxxxxxxxxxxxxxx
> > >   >   >       
> > >   > <mailto:amibroker-unsubscribe@xxxxxxxxxxxxxxx?
> > subject=Unsubscribe>
> > >   >   >       
> > >   >   >     * Your use of Yahoo! Groups is subject to the 
Yahoo! 
> > Terms of
> > >   >   >       Service <http://docs.yahoo.com/info/terms/>.
> > >   >   >
> > >   >   >
> > >   >   >
> > >   >   >
> > >   >   > __________ Information NOD32 1.876 (20040924) __________
> > >   >   >
> > >   >   > Ce message a ete verifie par NOD32 Antivirus System.
> > >   >   > http://www.nod32.com
> > >   >
> > >   >
> > >   >
> > >   >
> > >   >   [Non-text portions of this message have been removed]
> > >   >
> > >   >
> > >   >
> > >   >   Check AmiBroker web page at:
> > >   >   http://www.amibroker.com/
> > >   >
> > >   >   Check group FAQ at: 
> > >   > http://groups.yahoo.com/group/amibroker/files/groupfaq.html
> > >   >
> > >   >
> > >   >         Yahoo! Groups Sponsor
> > >   >               ADVERTISEMENT
> > >   >             
> > >   >       
> > >   >       
> > >   >
> > >   >
> > >   > ------------------------------------------------------------
--
> --
> > --------------
> > >   >   Yahoo! Groups Links
> > >   >
> > >   >     a.. To visit your group on the web, go to:
> > >   >     http://groups.yahoo.com/group/amibroker/
> > >   >      
> > >   >     b.. To unsubscribe from this group, send an email to:
> > >   >     amibroker-unsubscribe@xxxxxxxxxxxxxxx
> > >   >      
> > >   >     c.. Your use of Yahoo! Groups is subject to the Yahoo! 
> > Terms of 
> > >   > Service.
> > >   >
> > >   >
> > >   >
> > >   > [Non-text portions of this message have been removed]
> > >   >
> > >   >
> > >   >
> > >   > Check AmiBroker web page at:
> > >   > http://www.amibroker.com/
> > >   >
> > >   > Check group FAQ at: 
> > >   > http://groups.yahoo.com/group/amibroker/files/groupfaq.html
> > >   >
> > >   >
> > >   > *Yahoo! Groups Sponsor*
> > >   > ADVERTISEMENT
> > >   > click here 
> > >   > 
> > 
> 
<http://us.ard.yahoo.com/SIG=129671rpa/M=294855.5468653.6549235.300117
> > 
> 
6/D=groups/S=1705632198:HM/EXP=1098758133/A=2376776/R=0/SIG=11ldm1jvc/
> > *http://promotions.yahoo.com/ydomains2004/index.html> 
> > >   >
> > >   >
> > >   >
> > >   > ------------------------------------------------------------
--
> --
> > --------
> > >   > *Yahoo! Groups Links*
> > >   >
> > >   >     * To visit your group on the web, go to:
> > >   >       http://groups.yahoo.com/group/amibroker/
> > >   >        
> > >   >     * To unsubscribe from this group, send an email to:
> > >   >       amibroker-unsubscribe@xxxxxxxxxxxxxxx
> > >   >       <mailto:amibroker-unsubscribe@xxxxxxxxxxxxxxx?
> > subject=Unsubscribe>
> > >   >        
> > >   >     * Your use of Yahoo! Groups is subject to the Yahoo! 
> Terms 
> > of
> > >   >       Service <http://docs.yahoo.com/info/terms/>.
> > >   >
> > >   >
> > >   >
> > >   >
> > >   > __________ Information NOD32 1.876 (20040924) __________
> > >   >
> > >   > Ce message a ete verifie par NOD32 Antivirus System.
> > >   > http://www.nod32.com
> > > 
> > > 
> > > 
> > > 
> > >   [Non-text portions of this message have been removed]
> > > 
> > > 
> > > 
> > >   Check AmiBroker web page at:
> > >   http://www.amibroker.com/
> > > 
> > >   Check group FAQ at: 
> > http://groups.yahoo.com/group/amibroker/files/groupfaq.html 
> > > 
> > > 
> > >         Yahoo! Groups Sponsor 
> > >               ADVERTISEMENT
> > >              
> > >        
> > >        
> > > 
> > > 
> > > ----------------------------------------------------------------
--
> --
> > ----------
> > >   Yahoo! Groups Links
> > > 
> > >     a.. To visit your group on the web, go to:
> > >     http://groups.yahoo.com/group/amibroker/
> > >       
> > >     b.. To unsubscribe from this group, send an email to:
> > >     amibroker-unsubscribe@xxxxxxxxxxxxxxx
> > >       
> > >     c.. Your use of Yahoo! Groups is subject to the Yahoo! 
Terms 
> of 
> > Service. 
> > > 
> > > 
> > > 
> > > [Non-text portions of this message have been removed]





------------------------ Yahoo! Groups Sponsor --------------------~--> 
$9.95 domain names from Yahoo!. Register anything.
http://us.click.yahoo.com/J8kdrA/y20IAA/yQLSAA/GHeqlB/TM
--------------------------------------------------------------------~-> 

Check AmiBroker web page at:
http://www.amibroker.com/

Check group FAQ at: http://groups.yahoo.com/group/amibroker/files/groupfaq.html 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/amibroker/

<*> To unsubscribe from this group, send an email to:
    amibroker-unsubscribe@xxxxxxxxxxxxxxx

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/