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

[amibroker] Trailing stop does not work -



PureBytes Links

Trading Reference Links

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)

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/