PureBytes Links
Trading Reference Links
|
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 <myersrk@xxxxxxxxxxx>
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 amibroker@xxxxxxxxxxxxxxx, allansn@xxx 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 <groups@xxx>
> > 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: allansn@xxx
> > > To: amibroker@xxxxxxxxxxxxxxx
> > > 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: allansn@xxx
> > > To: amibroker@xxxxxxxxxxxxxxx
> > > 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 <groups@xxx>
> > >
> > > 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: allansn@xxx
> > > > To: amibroker@xxxxxxxxxxxxxxx
> > > > 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 <orionsturtle@xxx>
> > > >
> > > > 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@xxx
> > > > >
> > > > > peace
> > > > >
> > > > > OT
> > > > >
> > > > > --- In amibroker@xxxxxxxxxxxxxxx, "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
> > > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > >
> > >
> > >
> >
>
>
>
>
>
>
|