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

[amibroker] Re: Trailing stop does not work -



PureBytes Links

Trading Reference Links

Keith

Thanks for your input BUT this is TJ's code, I would expect that it would be correct, I recall reading somewhere that assigning a scalar in this fashion works as a Logical AND for scalars againts the entire array.

I had to stare at this for a while myself.

Any other sugesstions?


--- In amibroker@xxxxxxxxxxxxxxx, Keith McCombs <kmccombs@xxx> wrote:
>
> In the code below, TL[i] is a 'value'.  IIf() operates on arrays and 
> returns an 'array'.  Therefore, you are trying to set a 'value' equal to 
> an array, which is impossible.
> 
> TL[ i ] = IIf( Cond1 AND Stop[ i ] > Value3, Stop[ i ],
> IIf( Cond1 AND Stop[ i ] < Value3, Value3,
> IIf( NOT Cond1, Prev, Stop[ i ] * HoldingDays[ i ] ) ) );
> 
> Re-read User Manual and/or Help regarding arrays.  Re-read it again, and 
> again.
> This is a classic mistake made by many AFL newbees.
> 
> 
> edwol53 wrote:
> >  
> >
> > Hello
> >
> > Could any AFL expert or any one else see why the traing stop (for long 
> > side) in the code below does not work?
> >
> > I have uploaded a PDF ("PROFIT LOCKING AND THE RELATIVE PRICE 
> > CHANNEL-2.pdf "
> > http://f1.grp.yahoofs.com/v1/0IVuSoMsbmfIJkS8BkrK-OzCjyoqwQfjxR02zpQSIVvPq-fWYu_5Bakzj2IZQxSdhHaawLCqyDLqtawdnYI3uJezUqn-/PROFIT%20LOCKING%20AND%20THE%20RELATIVE%20PRICE%20CHANNEL%202.pdf 
> > <http://f1.grp.yahoofs.com/v1/0IVuSoMsbmfIJkS8BkrK-OzCjyoqwQfjxR02zpQSIVvPq-fWYu_5Bakzj2IZQxSdhHaawLCqyDLqtawdnYI3uJezUqn-/PROFIT%20LOCKING%20AND%20THE%20RELATIVE%20PRICE%20CHANNEL%202.pdf>)
> >
> > of screen shots of Amibroker and the working version of Metastock for 
> > the same indicator in the files section for temporary reference.
> >
> > There seems to be an intial value that I cannot see where it 
> > originates from. There are some commented out attempts to see where 
> > the problem left in the code below that can be deleted - they give the 
> > same result.
> >
> > Thanks in advance for some input
> > Ed
> >
> > Code:
> > //PROFIT LOCKING AND THE RELATIVE PRICE CHANNEL
> > //Amended - 27 July 2009
> > //S&C Traders' Tips Issue 1/2008
> > Version(5.20); //Requires v5.20
> > SetBarsRequired(sbrAll); //Use all available bars
> > dt = ParamDate("Date of the trend", "2008-11-21" ); // get start date
> > Value1 = Param("Bearish Periods", 21, 3, 55 );
> > Value2 = Param("Multiplication Factor", 3.8, 1, 10 );
> > Value3 = Param("Initial Stop", 10, 0, 1e6 );
> > Value4 = Param("Channel Periods", 21, 3, 55 ); // Channel Periods
> > Value5 = Param("Overbought region", 75, 1, 100 ); // Overbought region
> > Value6 = Param("Channel Smoothing", 1, 1, 10 );
> >
> > Start = Cross(DateNum(),dt);
> > Started = Flip(Start, 0);
> >
> > HoldingDays = BarsSince( DateNum() < dt );
> >
> > Index = RSI( Value4 );
> > OB = EMA( Index - Value5, Value6 );
> > Bullish = Close - ( Close * OB/100 );
> >
> > //Calculate trailing stop line
> > TL = Null;
> > Stop = Null;
> > Prev = 0; //Temporary scalar variable
> > trailstop = 0;
> >
> > Bearish = Sum( abs( Low - Ref( Low, -1 ) ), Value1 ) / Value1;
> > RangeA = Sum( Close - Low, Value1 ) / Value1;
> > Stop = Close - ( ( Bearish + RangeA ) * Value2 );
> >
> > for( i = 1; i < BarCount; i++ )
> > {
> > if(Started[i] == 0 ) continue;
> > Prev = TL[ i - 1 ];
> > Cond1 = Stop[ i ] > Prev;
> >
> > // if(NOT(Started[i-1]) AND Started[i]) TL[i-1] = Value3; //OR use 
> > TL[i-1] = Stop[i-1];
> >
> > /* if( Stop[ i ] > Prev AND Stop[ i ] > Value3)
> > trailstop = Stop[ i ];
> > else
> > if( Stop[ i ] > Prev AND Stop[ i ] < Value3)
> > trailstop = Value3;
> > else
> > if( Stop[ i ] <= Prev)
> > trailstop = Prev;
> > else trailstop = Stop[ i ] * HoldingDays[ i ] ;
> > TL[ i ] = trailstop;
> > */
> > /*
> > TL[ i ] = IIf( Stop[ i ] > Prev AND Stop[ i ] > Value3, Stop[ i ],
> > IIf( Stop[ i ] > Prev AND Stop[ i ] < Value3, Value3,
> > IIf( Stop[ i ] <= Prev, Prev, Stop[ i ] * HoldingDays[ i ] ) ) );
> > */
> >
> > TL[ i ] = IIf( Cond1 AND Stop[ i ] > Value3, Stop[ i ],
> > IIf( Cond1 AND Stop[ i ] < Value3, Value3,
> > IIf( NOT Cond1, Prev, Stop[ i ] * HoldingDays[ i ] ) ) );
> >
> > }
> > /* _TRACE(" i = " + NumToStr(i, 1.0) + " index date = " + NumToStr(dt, 
> > 1.0) + " Stop i = " + NumToStr(Stop, 3.0) + " TL[i] = " + NumToStr(TL, 
> > 3.0)); */
> >
> > // TL = IIf( HoldingDays == 0, Null, TL ); // Plot from the input date
> > Bullish = IIf( HoldingDays == 0, Null, Bullish );
> >
> > Plot( C, "Price", IIf( C > O, colorGreen, colorRed ), styleCandle );
> > Plot( TL, "TL", colorBlue );
> > Plot( Stop, "Stop", colorGreen );
> > // Plot( Prev, "Prev", colorRed );
> > // Plot( Bullish, "Bullish", colorLightGrey );
> > // PlotOHLC( TL, TL, Bullish, Bullish, "", ColorRGB( 230, 230, 230), 
> > styleCloud | styleNoLabel );
> > Title = "{{NAME}} - {{DATE}} - {{VALUES}}";
> >
> >
>




------------------------------------

**** IMPORTANT PLEASE READ ****
This group is for the discussion between users only.
This is *NOT* technical support channel.

TO GET TECHNICAL SUPPORT send an e-mail directly to 
SUPPORT {at} amibroker.com

TO SUBMIT SUGGESTIONS please use FEEDBACK CENTER at
http://www.amibroker.com/feedback/
(submissions sent via other channels won't be considered)

For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG:
http://www.amibroker.com/devlog/

Yahoo! Groups Links

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

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/amibroker/join
    (Yahoo! ID required)

<*> To change settings via email:
    mailto:amibroker-digest@xxxxxxxxxxxxxxx 
    mailto:amibroker-fullfeatured@xxxxxxxxxxxxxxx

<*> 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/