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

RE: [amibroker] Re: SAR more reliable



PureBytes Links

Trading Reference Links

 You said:  "thanks for replying to my question - too bad you couldn't give
me the answer."

LOL.  You will have a hard time using all of the power of AFL with an
attitude like that.

Your question: "If someone can explain to me the right solution"

The code I pasted in is the solution.  The explanation is that the SAR
indicator is hard coded into the AB internal program; you can not change it.
It operates only on the Close price.

If you want to use SAR against any other variable you have to use the code
pasted in here.  SAR is very complex and this is a way to do it; probably
the only way but maybe someone else can speak up and give you a more simple
solution.

Good luck.  Ha!

-----Original Message-----
From: amibroker@xxxxxxxxxxxxxxx [mailto:amibroker@xxxxxxxxxxxxxxx] On Behalf
Of ikodu.takana
Sent: Tuesday, June 12, 2007 3:54 PM
To: amibroker@xxxxxxxxxxxxxxx
Subject: [amibroker] Re: SAR more reliable

--- In amibroker@xxxxxxxxxxxxxxx, Ken Close <ken45140@xxx> wrote:
>
> Here is the variable SAR code.  You have to look very closely and
watch all
> of the subscripts and temporary variables in order to make the
substitution
> you want.
> 
> Ken
> 
> /////////////////////////////////
> // Parabolic SAR re-implemented in
> // native AFL.
> //
> // Example of for/if/else control statements // // Requires:
> // AmiBroker 4.31.1
> //
> // Written by: Tomasz Janeczko
> 
> IAF = 0.04;       // acceleration factor
> MaxAF = 0.2;     // max acceleration
> 
> psar = Close;		// initialize
> long = 1;        // assume long for initial conditions
> af = IAF;         // init acelleration factor
> ep = Low[ 0 ];   // init extreme point
> hp = High [ 0 ];
> lp = Low [ 0 ];
> 
> for( i = 2; i < BarCount; i++ )
> {
> 	if ( long )
> 	{
> 		psar [ i ] = psar [ i-1 ] + af * ( hp - psar [ i-1 ] );
> 	}
> 	else
> 	{
> 		psar [ i ] = psar [ i-1 ] + af * ( lp - psar [ i-1 ] );
> 	}
> 
> 	reverse =  0;
> 	//check for reversal
> 	if ( long )
> 	{
> 		if ( Low [ i ] < psar [ i ]  )
> 		{
> 			long = 0; reverse = 1; // reverse position to Short
> 			psar [ i ] =  hp;       // SAR is High point in prev
> trade
> 			lp = Low [ i ];
> 			af = IAF;
> 		}
> 	}
> 	else
> 	{
> 		if ( High [ i ] > psar [ i ]  )
> 		{
> 			long = 1; reverse = 1;        //reverse position to
> long
> 			psar [ i ] =  lp;
> 			hp = High [ i ];
> 			af = IAF;
> 		}
> 	}
> 
> 	if ( reverse == 0 )
> 	{
> 		if ( long )
> 		{
> 			if ( High [ i ] > hp ) 
> 			{
> 				hp = High [ i ]; 
> 				af = af + IAF; 
> 				if( af > MaxAF ) af = MaxAF; 
> 			}
>              
> 			if( Low[ i - 1 ] < psar[ i ] ) psar[ i ] = Low[ i -
> 1 ];
> 			if( Low[ i - 2 ] < psar[ i ] ) psar[ i ] = Low[ i -
> 2 ];
> 		}
>        else
> 		{
> 			if ( Low [ i ] < lp )  
> 			{ 
> 				lp = Low [ i ]; 
> 				af = af + IAF; 
> 				if( af > MaxAF ) af = MaxAF; 
> 			}	
> 				
> 			if( High[ i - 1 ] > psar[ i ] ) psar[ i ] = High[ i
> - 1 ];
> 			if( High[ i - 2 ] > psar[ i ] ) psar[ i ] = High[ i
> - 2 ];
> 
> 		}
> 	}
> }
> 
> Plot( Close, "Price", colorBlack, styleLine ); Plot( psar, "SAR", 
> colorRed, styleDots | styleNoLine | styleThick );
> 
> -----Original Message-----
> From: amibroker@xxxxxxxxxxxxxxx [mailto:amibroker@xxxxxxxxxxxxxxx]
On Behalf
> Of ikodu.takana
> Sent: Tuesday, June 12, 2007 1:02 PM
> To: amibroker@xxxxxxxxxxxxxxx
> Subject: [amibroker] SAR more reliable
> 
> Hello,
> 
> is it possible to plot a SAR signal computed from an EMA(close,5) for 
> instance instead of the standard close - that would make the SAR
much more
> reliable against market noises.
> 
> from that link ( http://www.amibroker.com/library/detail.php?id=268 ) 
> i tried to replace the line :
> 
> psar = Close;		// initialize
> with
> psar = EMA(Close,5);		// initialize
> 
> or
> psar = (C + H + L)/3;		// initialize
> 
> but that made strange results or even bugged the code
> 
> If someone can explain to me the right solution
> 
> thanks
> 
> 
> 
> Please note that this group is for discussion between users only.
> 
> To get support from AmiBroker please send an e-mail directly to
SUPPORT {at}
> amibroker.com
> 
> For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG:
> http://www.amibroker.com/devlog/
> 
> For other support material please check also:
> http://www.amibroker.com/support.html
>  
> Yahoo! Groups Links
>


thanks for replying to my question - too bad you couldn't give me the
answer.




Please note that this group is for discussion between users only.

To get support from AmiBroker please send an e-mail directly to SUPPORT {at}
amibroker.com

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

For other support material please check also:
http://www.amibroker.com/support.html
 
Yahoo! Groups Links






Please note that this group is for discussion between users only.

To get support from AmiBroker please send an e-mail directly to 
SUPPORT {at} amibroker.com

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

For other support material please check also:
http://www.amibroker.com/support.html
 
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/