Ed,

For what it is worth, it was your replies to my very first post that got me 
over the hump and on my way to solving my problem. It was also the spirit and 
generousity of those replies that instilled in me a sense of obligation to give 
back whenever I thought I might have something to offer in the same way that 
you helped me.

Keep posting! And thanks again.

Mike

--- In [email protected], "Edward Pottasch" <empotta...@...> wrote:
>
> ok great. Sorry for my annoyed reply but sometimes I give detailed responses 
> and never find out if my response is even read which kind off takes away the 
> stimulus :)
> 
> For the code I posted you can add to scale out of additional contracts if 
> needed. I have yet to work on problems where one first scales in and then 
> scales out.
> 
> regards, Ed
> 
> 
> 
>   ----- Original Message ----- 
>   From: gborrageiro 
>   To: [email protected] 
>   Sent: Friday, July 03, 2009 11:23 AM
>   Subject: [amibroker] Re: pyramiding - problems with code
> 
> 
> 
> 
> 
>   hi Edward,
> 
>   I do read replies...for some reason when I searched for my prior post it 
> did'nt come up, so I thought it had'nt been posted.
>   Thanks for your code, it works!
>   I spent three weeks with Amibroker support and could'nt get it resolved. 
> Code issues are not high on the list of their priorities unfortunately. 
> 
>   thanks again.
> 
>   --- In [email protected], "Edward Pottasch" <empottasch@> wrote:
>   >
>   > do you ever read replies?
>   > 
>   > 
>   > ----- Original Message ----- 
>   > From: gborrageiro 
>   > To: [email protected] 
>   > Sent: Thursday, June 25, 2009 6:36 PM
>   > Subject: [amibroker] pyramiding - problems with code
>   > 
>   > 
>   > 
>   > 
>   > 
>   > hi,
>   > 
>   > I am testing some scaling out strategies and can't get the backtester to 
> go short. There's a prob with my code somewhere but I just can't see where. 
>   > 
>   > Your help would be appreciated! thanks
>   > 
>   > SetTradeDelays( 0, 0, 0, 0 );
>   > BuyPrice = Avg;
>   > ShortPrice = Avg;
>   > SetOption( "FuturesMode", True );
>   > SetOption( "InitialEquity", 100000 );
>   > 
>   > fast = ema(avg,10);
>   > slow = ema(avg,100);
>   > 
>   > Buy = Cross( fast, slow ) ;
>   > Short = Cross( slow, fast ) ;
>   > Sell = 0;
>   > Cover = 0;
>   > 
>   > FirstProfitTarget = 0.02; 
>   > TrailingStop = 0.06; 
>   > StopLoss = 0.02;
>   > 
>   > priceatbuy = 0;
>   > highsincebuy = 0;
>   > priceatshort = 0;
>   > lowsinceshort = 0;
>   > 
>   > exit = 0;
>   > 
>   > for ( i = 0; i < BarCount; i++ )
>   > {
>   > if ( priceatbuy == 0 AND Buy[ i ] )
>   > {
>   > priceatbuy = BuyPrice[ i ];
>   > }
>   > 
>   > if ( priceatshort == 0 AND Short[ i ] )
>   > {
>   > priceatshort = ShortPrice[ 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 ( Low[ i ] <= ( 1 - TrailingStop * 0.01 ) * highsincebuy )
>   > {
>   > // trailing stop hit - exit
>   > exit = 2;
>   > SellPrice[ i ] = Min( Avg[ i ], ( 1 - TrailingStop * 0.01 ) * 
> highsincebuy );
>   > }
>   > 
>   > if ( Low[ i ] <= ( 1 - StopLoss * 0.01 ) * priceatbuy )
>   > {
>   > // Stop Loss hit - exit
>   > exit = 3;
>   > SellPrice[ i ] = Min( Avg[ i ], ( 1 - StopLoss * 0.01 ) * priceatbuy );
>   > }
>   > 
>   > if ( exit >= 2 )
>   > {
>   > Buy[ i ] = 0;
>   > Sell[ i ] = exit + 1; // mark appropriate exit code
>   > exit = 0;
>   > priceatbuy = 0; // reset price
>   > highsincebuy = 0;
>   > }
>   > }
>   > 
>   > if ( priceatshort > 0 )
>   > {
>   > lowsinceshort = Min( Low[ i ], lowsinceshort );
>   > 
>   > if ( exit == 0 AND
>   > Low[ i ] <= ( 1 - FirstProfitTarget * 0.01 ) * priceatshort )
>   > {
>   > // first profit target hit - scale-out
>   > exit = 1;
>   > Short[ i ] = sigScaleOut;
>   > 
>   > }
>   > 
>   > if ( High[ i ] >= ( 1 + TrailingStop * 0.01 ) * lowsinceshort )
>   > {
>   > // trailing stop hit - exit
>   > exit = 2;
>   > CoverPrice[ i ] = Max( Avg[ i ], ( 1 + TrailingStop * 0.01 ) * 
> lowsinceshort );
>   > }
>   > 
>   > if ( High[ i ] >= ( 1 + StopLoss * 0.01 ) * priceatshort )
>   > {
>   > // Stop Loss hit - exit
>   > exit = 3;
>   > CoverPrice[ i ] = Max( Avg[ i ], ( 1 + StopLoss * 0.01 ) * priceatshort );
>   > }
>   > 
>   > if ( exit >= 2 )
>   > {
>   > Short[ i ] = 0;
>   > Cover[ i ] = exit + 1; // mark appropriate exit code
>   > exit = 0;
>   > priceatshort = 0; // reset price
>   > lowsinceshort = 0;
>   > }
>   > }
>   > }
>   > 
>   > SetPositionSize( 2, spsShares );
>   > 
>   > SetPositionSize( 50, spsPercentOfPosition * ( Buy == sigScaleOut ) ); // 
> scale out 50% of position
>   > //SetPositionSize( 50, spsPercentOfEquity );
>   >
>


Reply via email to