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 Yahoo! Groups Links <*> To visit your group on the web, go to: http://groups.yahoo.com/group/amibroker/ <*> To unsubscribe from this group, send an email to: [EMAIL PROTECTED] <*> Your use of Yahoo! Groups is subject to: http://docs.yahoo.com/info/terms/
