[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [amibroker] Re: I am lost



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 
> > 
> 
> 
> 
> 
> 
>