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 <[EMAIL PROTECTED]>
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 [EMAIL PROTECTED]
>
> peace
>
> OT
>
> --- In
[email protected], "matrix10014"
<[EMAIL PROTECTED]> 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
[EMAIL PROTECTED] 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
> >
>
>
>
>
>
>