Hi Rick,

Please take a look at the correction Marcin was kind enough to send and let me know what you think

 

Allan

 

----- Original Message -----

From: kb1flr <[EMAIL PROTECTED]>

Date: Sunday, July 16, 2006 6:39 am

Subject: [amibroker] Re: I am lost

> Allen,
>
> Would you mind posting the final working code?
>
> Rick
>
> --- In [email protected], [EMAIL PROTECTED] wrote:
> >
> > Too late Tomasz,you have already solved the mystery...
> > you were right on in your assessment
> >
> > "I forgot to add that your problems may be also due to setting
> non
> > zero buy delays
> > (because then buy array is shifted while position size array is
> not).
> > If you use advanced position sizing, set trade delays to zero
> and
> >  delay entries directly in the code
> >  (using Ref() function)."
> > When I changed the settings from 1 day delay/ open,to
> Zero/close,I
> get the 50% scale out that was coded.It makes a HUGE difference as
> I
> was scaling out as much as 97% and was clueless as to why..
> > Thank you and everyine else who are leading me from the path of
> programming darkness
> >
> > Allan
> >
> >
> >
> > ----- Original Message -----
> > From: Tomasz Janeczko <[EMAIL PROTECTED]>
> > Date: Saturday, July 15, 2006 8:16 pm
> > Subject: Re: [amibroker] Re: I am lost
> > > Hello,
> > >
> > > As I wrote you through support channel: you need to provide
> > > settings file (.abs) and all other details needed to reproduce
> > > your setup.
> > >
> > > Without that it's guessing game: it may be because of delays
> set
> > > in the settings,
> > > or round lot sizing effect or other things.
> > > Anyway without looking on your settings file, ticker list and
> > > trade list one can not tell.
> > >
> > > Best regards,
> > > Tomasz Janeczko
> > > amibroker.com
> > >  ----- Original Message -----
> > >  From: [EMAIL PROTECTED]
> > >  To: [email protected]
> > >  Sent: Saturday, July 15, 2006 10:21 PM
> > >  Subject: Re: [amibroker] Re: I am lost
> > >
> > >
> > >  Thank you all for your help.EMP,i copied your code and ran it
> as
> > > i still am getting very odd # of shares on the initial scale
> > > out,and its certainly not a consistent ratio.I will read what
> i
> > > can,but this is puzzling..
> > >
> > >  
> > >
> > >
> > > ---------------------------------------------------------------
> --
> --
> > > -----------
> > >
> > >
> > >
> > >  hi,
> > >
> > >  i tested your code on HANS. I added some code to display what
> is
> > > going on. I always like to visualize the system and this is
> easy
> > > to do with Amibroker.
> > >
> > >  What you see in the image I added is that the initial Buy
> signal
> > > is already in July. In november it scales out followed by a
> sell
> > > signal. If I run the backtest I find that scaling out sells
> half
> > > of the initial amount.
> > >
> > >  Between the initial buy and the scale out there are multiple
> buy
> > > signals. However these are ignored by the backtester since the
> > > initial position is eneterd in July. So maybe your problem has
> > > something to do with the range you use in your backtest. Try
> to
> > > backtest all quotations.
> > >
> > >
> > >  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
> > >
> > >
> > >  SetBarsRequired(10000,10000);
> > >
> > >  SetChartOptions(0, chartShowDates);
> > >  Plot(C,"",colorWhite,64);
> > >
> > >  PlotShapes(IIf(Buy == 1,shapeUpArrow,0),colorWhite, layer =
> 0,
> > > yposition = BuyPrice, offset = 0 );
> > >  PlotShapes(IIf(Buy ==
> > > sigScaleOut,shapeDownTriangle,0),colorAqua, layer = 0,
> yposition
> =
> > > BuyPrice, offset = 0 );
> > >
> > >  PlotShapes(IIf(Sell,shapeDownArrow,0),colorYellow, layer = 0,
> > > yposition = SellPrice, offset = 0 );
> > > 
> //PlotShapes(IIf(Short,shapeHollowDownArrow,0),colorLightBlue,
> > > layer = 0, yposition = ShortPrice, offset = 0 );
> > >
> > >
> > >
> > >    ----- Original Message -----
> > >    From: [EMAIL PROTECTED]
> > >    To: [email protected]
> > >    Sent: Saturday, July 15, 2006 4:23 PM
> > >    Subject: Re: [amibroker] Re: I am lost
> > >
> > >
> > >
> > >
> > >    Tomasz,
> > >
> > >    that is certainly not the answer I was expecting.I am
> making
> a
> > > diligent effort to learn the coding and I have a specific
> > > NEED....Perhaps you didnt bother to read my prior message to
> the
> board
> > >
> > >    I posted the code that I was working with and can NOT get
> the
> > > results expected from the code descriptions.It is not like I
> asked
> > > the board to code me a system.I supplied the system which I
> copied
> > > from either the manual or a user file.I had no problems
> > > whatsoever,but when I went into the detailed trade report and
> went
> > > over the output,I discovered  that the supposed scale out of
> 50%
> > > was not occuring.but rather 86%.After spending several hours
> on
> > > it,I thought that I may find some help
> > >
> > >    "I don't have any experience as a pilot but please give me
> > > simple
> > >    one-page instruction how to fly jumbo-jet from New York to
> > > London"
> > >    Sorry but this is NOT doable"
> > >
> > >    Tomasz,your analogy is way off base and I really dont
> > > appreciate it.
> > >
> > >
> > >
> > >    Allan
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >    ----- Original Message -----
> > >
> > >
> > >    From: Tomasz Janeczko <[EMAIL PROTECTED]>
> > >
> > >    Date: Saturday, July 15, 2006 8:49 am
> > >
> > >    Subject: Re: [amibroker] Re: I am lost
> > >
> > >
> > >    > Hello,
> > >    >
> > >    > What you are asking for can be compared to:
> > >    > .
> > >    > It takes time and effort to learn how to fly as it takes
> > > time and
> > >    > effort to learn how to use any tool more sophisticated
> than
> > > a hammer.
> > >    >
> > >    > Sorry guys but of you have no experience you should start
> > > with
> > >    > something simple and make your system
> > >    > simple not using pyramiding and such stuff.  Then go
> slowly
> > >    > learning AFL. THere is a plenty of material posted to
> this
> > > list,
> > >    > in the knowledge base and in the manual.
> > >    >
> > >    > Best regards,
> > >    > Tomasz Janeczko
> > >    > amibroker.com
> > >    >  ----- Original Message -----
> > >    >  From: [EMAIL PROTECTED]
> > >    >  To: [email protected]
> > >    >  Sent: Saturday, July 15, 2006 2:04 PM
> > >    >  Subject: Re: [amibroker] Re: I am lost
> > >    >
> > >    >
> > >    >
> > >    >  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"
> > > <allansn@>
> > >    > 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@ 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
> > >    >  > >
> > >    >  >
> > >    >  >
> > >    >  >
> > >    >  >
> > >    >  >
> > >    >  > 
> > >    >
> > >
> > >
> >
>
>
>
>
>
> __._,_.___

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






SPONSORED LINKS
Investment management software Real estate investment software Investment property software
Software support Real estate investment analysis software Investment software


YAHOO! GROUPS LINKS




__,_._,___

Reply via email to