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

[amibroker] Re: Money management AFL



PureBytes Links

Trading Reference Links

I second that. IMHO its better to have two independent strategies in portfolio then one which scales in or out.

--- In amibroker@xxxxxxxxxxxxxxx, Howard B <howardbandy@xxx> wrote:
>
> Greetings all --
> 
> Be certain that scaling in actually helps your trading system.  It hurts
> most.  You might be able to isolate the scaling in effect by running the
> system as two separate systems -- one with the original buy and the second
> with the scale in buy.
> 
> Thanks,
> Howard
> 
> On Wed, Oct 21, 2009 at 1:35 AM, mkecera <mkecera@xxx> wrote:
> 
> >
> >
> > Remember that if you do use scaling out you are just adding another system
> > to your basic system. The same applies for scaling in.
> >
> > MK
> >
> >
> > --- In amibroker@xxxxxxxxxxxxxxx <amibroker%40yahoogroups.com>,
> > "kevinkee20" <kevinkee20@> wrote:
> > >
> > > I'm trying to write a money management AFL. I start off with the
> > scaling-out example in the user guide, and add just one more condition -
> > after openinig a position, if it is initially profitable but before it hits
> > the profit target of say 20% it appears to be turning into a loss. In this
> > case I want to set the stop to be the BuyPrice.
> > >
> > > Unfortunately it doesn't work - it just doesn't exit when the price drops
> > below the BuyPrice.
> > >
> > > Below please find the full AFL, would anyone be able to help ?
> > >
> > > Buy = Cross( MA( C, 10 ), MA( C, 30 ) );
> > > Sell = 0;//Cross(MA(C,30), MA(C,10));
> > >
> > > // the system will exit
> > > // 50% of position if FIRST PROFIT TARGET stop is hit
> > > // 50% of position is SECOND PROFIT TARGET stop is hit
> > > // 100% of position if TRAILING STOP is hit
> > > SetTradeDelays( 0, 0, 0, 0 ); /* delay entry/exit by one bar */
> > >
> > > FirstProfitTarget = 20; // profit
> > > SecondProfitTarget = 40; // in percent
> > > TrailingStop = 25; // also in percent
> > >
> > > priceatbuy=0;
> > > highsincebuy = 0;
> > >
> > > exitoriginal = 0;
> > > exitriskfree = 0;
> > >
> > > exit = 0;
> > >
> > > for( i = 0; i < BarCount; i++ )
> > > {
> > > if( priceatbuy == 0 AND Buy[ i ] )
> > > {
> > > priceatbuy = BuyPrice[ i ];
> > > exitoriginal = 1;
> > > exitriskfree = 0;
> > > }
> > >
> > >
> > > if( priceatbuy > 0 )
> > > {
> > > highsincebuy = Max( High[ i ], highsincebuy );
> > >
> > > if (exitoriginal == 1 AND Close[i] > priceatbuy)
> > > {
> > > exitoriginal = 0;
> > > exitriskfree = 1;
> > > }
> > >
> > > if (exitriskfree == 1 AND Low[i] <= priceatbuy)
> > > {
> > > exit = 3;
> > > SellPrice[i] = priceatbuy;
> > > exitoriginal = 0;
> > > exitriskfree = 0;
> > > }
> > >
> > >
> > > if( exit == 0 AND
> > > High[ i ] >= ( 1 + FirstProfitTarget * 0.01 ) * priceatbuy )
> > > {
> > > // first profit target hit - scale-out
> > > exit = 1;
> > > Buy[ i ] = sigScaleOut;
> > > }
> > >
> > > if( exit == 1 AND
> > > High[ i ] >= ( 1 + SecondProfitTarget * 0.01 ) * priceatbuy AND
> > > exitriskfree ==1)
> > > {
> > > // second profit target hit - exit
> > > exit = 2;
> > > SellPrice[ i ] = Max( Open[ i ], ( 1 + SecondProfitTarget * 0.01 ) *
> > priceatbuy );
> > > }
> > >
> > > if(( Low[ i ] <= ( 1 - TrailingStop * 0.01 ) * highsincebuy ) AND
> > exitriskfree==1)
> > > {
> > > // trailing stop hit - exit
> > > exit = 3;
> > > SellPrice[ i ] = Min( Open[ i ], ( 1 - TrailingStop * 0.01 ) *
> > highsincebuy );
> > > }
> > >
> > > if( exit >= 2 )
> > > {
> > > Buy[ i ] = 0;
> > > Sell[ i ] = exit + 1; // mark appropriate exit code
> > > exit = 0;
> > > priceatbuy = 0; // reset price
> > > highsincebuy = 0;
> > > }
> > > }
> > > }
> > >
> > > SetPositionSize( 20, spsPercentOfEquity );
> > > SetPositionSize( 50, spsPercentOfPosition * ( Buy == sigScaleOut ) ); //
> > scale out 50% of position
> > > // scale out 50% of position
> > > PlotShapes( (Buy) * shapeUpArrow , IIf( (Buy), colorGreen,colorBlue ),
> > 0,IIf( (Buy), L,H ),-20 );
> > > Plot( Close, "Price", IIf( Close > Open, colorGreen, colorRed
> > ),styleCandle | styleThick );
> > > PlotShapes( (ExRem(Sell,Buy)) * shapeSmallDownTriangle ,
> > colorLightOrange, 0,H ,-15 );
> > >
> > > Plot( MA(C, 10), _DEFAULT_NAME(), colorGreen, styleLine);
> > > Plot( MA(C, 30), _DEFAULT_NAME(), colorRed, styleLine);
> > >
> >
> >  
> >
>




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

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