PureBytes Links
Trading Reference Links
|
Thanks OT,
I will take you up on your offer.Ami is great program,but is in desparate need of a simplied" Dummy" manual for those that have very little programming experience.
As I did not write this code,and was using it to learn "AFL",I am having a difficult time pinpointing what is causing an 86% scale out,when it should be 50%..
If there are any power users who have a simple code that involves "scaling in/out of positions"and replacing stops,or a pyramyiding example would really appreciate seeing it.
Allan
----- Original Message -----
From: orionsturtle <orionsturtle@xxxxxxxxx>
Date: Friday, July 14, 2006 10:20 pm
Subject: [amibroker] Re: I am lost
> I don't have the expertise in programming but I have been
> struggling
> with this same bit of code for the past 2 weeks. I have made it
> work
> on the long only side and would be glad to send you the EOD sys
> file
> I have that works. Between the detail log and the trade report you
> should be able to see what is going on and make adjustments to
> suite
> your needs. The switches in the backtest settings will screw you
> up
> if not set properly and may account for your weird results. make
> sure in the backtest settings>portfolio tab, that the limit trade
> size as % of entry bar is set to zero and just the "Trade size
> limit
> when..." is the only thing checked. i have my max positions set to
> one for now until I get the code fully to my liking. If you want
> the
> SYS file reach me at orionsturtle@xxxxxxxxx
>
> peace
>
> OT
>
> --- In amibroker@xxxxxxxxxxxxxxx, "matrix10014" <allansn@xxx> wrote:
> >
> > Hi,
> > Been playing with a code that I copied to familairize myself
> with
> > some of the functionality of Amibroker...As you can see,the
> entry
> is
> > a simple moving average crossover,that exits 50% of the position
> up
> > 20% and the remaining 50% up 30%.There is also a trailing stop..
> >
> > When i check a detailed log of the trade,I get very bizzare
> results.
> >
> > An example is HANS..On 10/31/2005 I go long 205 shares of HANS@
> 48.59
> >
> > On 11/3,I scale out of 176 shares@xxx is 86% of my
> > position,when i am supposed to scale out of half.As its not my
> > code,and i am trying to learn Ami code,i really dont know what
> went
> > wrong..
> >
> >
> >
> >
> > 10/31/2005
> > Enter Long, HANS, Price: 48.59, Shares: 205,
> > Commission: 0, Rank: 1, Equity 100000, Margin Loan: 0, Fx rate: 1
> >
> >
> > 11/3/2005
> > Exit signals:HANS=Scale-Out,
> > Scale-Out Long HANS, Price 59.74, Shares 176, Fx Rate 1,
> > Number of shares - Current: 29, Exited: 176, Max: 205, Avg.
> Entry
> > Price 48.59, Avg. Exit Price 59.74, Avg Fx. Rate Entry 1, Exit
> 1,
> >
> >
> >
> > The code is as follows
> >
> > Buy = Cross(C, MA( C,21) );
> > Sell = 0;
> >
> > // 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
> >
> > FirstProfitTarget = 20; // profit
> > SecondProfitTarget =30; // in percent
> > TrailingStop = 50; // also in percent
> >
> >
> > priceatbuy=0;
> > highsincebuy = 0;
> >
> > exit = 0;
> >
> > for( i = 0; i < BarCount; i++ )
> > {
> > if( priceatbuy == 0 AND Buy[ i ] )
> > {
> > priceatbuy = BuyPrice[ i ];
> > }
> >
> > if( priceatbuy > 0 )
> > {
> > highsincebuy = Max( High[ i ], highsincebuy );
> >
> > 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 )
> > {
> > // 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
> )
> > {
> > // 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( 10, spsPercentOfEquity );
> > SetPositionSize( 50, spsPercentOfPosition * ( Buy ==
> > sigScaleOut ) ); // scale out 50% of position
> >
>
>
>
>
>
>
|