PureBytes Links
Trading Reference Links
|
Keith,
you will find in the files section the 3 alternatives for VarIAF to
begin with. I hope it is interesting.
Dimitris Tsokakis
--- In amibroker@xxxxxxxxxxxxxxx, "Keith Bennett" <kbennett@xxxx>
wrote:
> For Peter & Dimitris,
>
> I use SAR variants in conjunction with a custom composite index for
> market timing and then I use these signals to trade hi betas. Of
> particular value to me was the powerSAR dll posted by Stephane some
> time ago (thank you Stephane) which importantly provided different
> acceleration factors for "long" and "short" positions.
>
> I'm not even close to being able to understand your attached code
but
> I have loaded it into IB and immediately noted that "as is" the
> SARafl reversal signals often occured one day (sometimes two)
earlier
> than the "best" signals from powerSAR.
>
> Would it be possible/difficult to provide this same facilty in
SARafl
> to independently set the "long" and "short" accelerations. Thank
you
> both for your many contributions.
>
> Keith
>
>
> --- In amibroker@xxxxxxxxxxxxxxx, "bluesinvestor" <investor@xxxx>
> wrote:
> > Dimitris,
> >
> > You are correct ... I did not make any other modifications other
> than
> > what you suggested in your prior email (sorry).
> >
> > Attached is another version that takes variable arrays for IAF and
> > MaxIAF. Below are answers to your comments.
> >
> > Regards,
> > Peter
> >
> > -----Original Message-----
> > From: DIMITRIS TSOKAKIS [mailto:TSOKAKIS@x...]
> > Sent: Saturday, May 03, 2003 6:22 AM
> > To: amibroker@xxxxxxxxxxxxxxx
> > Subject: [amibroker] Var IAF Re: DIMITRIS- Question
> >
> > Peter,
> > thank you very much for your reply.
> > I can not make a lot of comments on your code, see my
> > http://groups.yahoo.com/group/amibroker/message/39501
> > experimental idea.
> > I hope you will excuse my naive comments below.
> > Dimitris Tsokakis
> >
> >
> > --- In amibroker@xxxxxxxxxxxxxxx, "bluesinvestor" <investor@xxxx>
> > wrote:
> > > Dimitris,
> > >
> > > It does not seem to make a big difference with a variable IAF.
> > >
> > > Peter
> > >
> > > // Initialize IAF Array
> > > X=(DEMA(StochD(40),20)-50)/50;
> > > IAF=0.05*(1.1+abs(X));
> >
> > this function varies [for ^NDX] from 0.055 to 0.105
> > It is important for the MaxAF selection
> > Fixed in attached version
> >
> > >
> > > function SARafl( Cvar, Hvar, Lvar, MaxAF )
> > > {
> > > //IAF = 0.02; // acceleration factor
> > > //MaxAF = 0.02; // max acceleration
> >
> > It does not make sense to me. MaxAF should be at least 10*IAF
> > Fixed - actually 20*IAF based on your prior email
> >
> > > psar = Cvar; // initialize
> > > long = 1; // assume long for initial conditions
> > > af = IAF[ 0 ]; // init acelleration factor
> >
> > I suppose here you define the initial af value
> > yes
> >
> > > ep = Lvar[ 0 ]; // init extreme point
> > > hp = Hvar [ 0 ];
> > > lp = Lvar [ 0 ];
> > >
> > > for( i = 2; i < BarCount; i++ )
> > > {
> > > if ( long )
> > > {
> > > psar [ i ] = psar [ i-1 ] + af * ( hp - psar [
> > > i-1 ] );
> >
> > I suppose here you create the various psar values.
> > af has still it initial value ? I do not see variable af here.
> > af changes in other portions of the code - it is variable
> >
> > > }
> > > else
> > > {
> > > psar [ i ] = psar [ i-1 ] + af * ( lp - psar [
> > > i-1 ] );
> >
> > af still has its initial value ?
> > not necessarily
> >
> > > }
> > >
> > > reverse = 0;
> > > //check for reversal
> > > if ( long )
> > > {
> > > if ( Lvar [ i ] < psar [ i ] )
> > > {
> > > long = 0; reverse = 1; // reverse
> > > position to Short
> > > psar [ i ] = hp; // SAR is Hvar
> > > point in prev trade
> > > lp = Lvar [ i ];
> > > //af = IAF;
> > > af = IAF[ i ];
> > af changes here ---------^
> > > }
> > > }
> > > else
> > > {
> > > if ( Hvar [ i ] > psar [ i ] )
> > > {
> > > long = 1; reverse =
> > 1; //reverse
> > > position to long
> > > psar [ i ] = lp;
> > > hp = Hvar [ i ];
> > > //af = IAF;
> > > af = IAF[ i ];
> > af changes here ---------^
> > > }
> > > }
> > >
> > > if ( reverse == 0 )
> > > {
> > > if ( long )
> > > {
> > > if ( Hvar [ i ] > hp )
> > > {
> > > hp = Hvar [ i ];
> > > //af = af + IAF;
> > > af = af + IAF[ i ];
> > > if( af > MaxAF ) af = MaxAF;
> > > }
> > >
> > > if( Lvar[ i - 1 ] < psar[ i ] ) psar[
> > i
> > > ] = Lvar[ i - 1 ];
> > > if( Lvar[ i - 2 ] < psar[ i ] ) psar[
> > i
> > > ] = Lvar[ i - 2 ];
> > > }
> > > else
> > > {
> > > if ( Lvar [ i ] < lp )
> > > {
> > > lp = Lvar [ i ];
> > > //af = af + IAF;
> > > af = af + IAF[ i ];
> > > if( af > MaxAF ) af = MaxAF;
> > > }
> > >
> > > if( Hvar[ i - 1 ] > psar[ i ] ) psar[
> > i
> > > ] = Hvar[ i - 1 ];
> > > if( Hvar[ i - 2 ] > psar[ i ] ) psar[
> > i
> > > ] = Hvar[ i - 2 ];
> > >
> > > }
> > > }
> > > }
> > > return psar;
> > > }
> > >
> > > Plot( Close, "Price", colorBlack, styleCandle );
> > > Plot( SARafl(C,H,L,0.02), "SAR", colorRed, styleDots |
> styleNoLine |
> > > styleThick );
> > >
> > > Filter=1;
> > > AddColumn(SAR(.02,.02),"SAR");
> >
> > you use the same IAF, maxAF here ?
> > just for comparison . this is the built-in SAR() function
> >
> > > AddColumn(SARafl(C,H,L,0.02),"SARafl");
> >
> > 0.02 is very low for maxIAF
> > this is variable in the current code
------------------------ Yahoo! Groups Sponsor ---------------------~-->
Rent DVDs Online - Over 14,500 titles.
No Late Fees & Free Shipping.
Try Netflix for FREE!
http://us.click.yahoo.com/YoVfrB/XP.FAA/uetFAA/GHeqlB/TM
---------------------------------------------------------------------~->
Send BUG REPORTS to bugs@xxxxxxxxxxxxx
Send SUGGESTIONS to suggest@xxxxxxxxxxxxx
-----------------------------------------
Post AmiQuote-related messages ONLY to: amiquote@xxxxxxxxxxxxxxx
(Web page: http://groups.yahoo.com/group/amiquote/messages/)
--------------------------------------------
Check group FAQ at: http://groups.yahoo.com/group/amibroker/files/groupfaq.html
Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
|