ok thanks Mike, regards, Ed
----- Original Message ----- From: Mike To: [email protected] Sent: Friday, July 03, 2009 6:32 PM Subject: [amibroker] Re: pyramiding - problems with code 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 ); > > >
