This did not help. But thanks for responding. I am already using zero trade delays. Back to the drawing board.
Pete :-) \--- In [email protected], "onelkm" <lkm...@...> wrote: > > This is what was posted a while back regarding scaling out; hope > it helps > Larry > > Re: [amibroker] Re: Scaling out example code does NOT work > > Re: Scaling out example code does NOT work > > > Hi Howard, > > Thanks for the reply. I have recently learned from Tomasz that trade > delays must > be all set to > ZERO in order for the scaling code to work. while it does NOT make > intuitive > sense why trade > delays should affect scaling, it works Now. > > > > The values calculated for scaling conditions are probably based on the > initial & subsequent trade prices with a zero bar trade delay. > if your delay is one bar then you must change the code to accommodate > the altered trade prices to one bar after the Signal. > > > > > --- In [email protected], "Pete" <dryheat3@> wrote: > > > > I give up. I tried for a couple hours to get the example in the help > > file of the scale out code to work for futures. I'm just not > getting it. > > I need a section of code to define the scale out strategy based not > on > > percent of position size but rather on points. For instance, I would > > like to scale out of a futures position after profit reaches 1 point > > and scale out further when profit reaches 3 points, allowing the 3rd > > and final contract to run out until the sell signal is triggered. I > > sure hope there is some code out there that does this. > > > > The example from the help file: > > > > Buy = Cross( MA( C, 10 ), MA( C, 50 ) ); > > 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 = 10; // profit > > SecondProfitTarget = 20; // in percent > > TrailingStop = 10; // 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( 50, spsPercentOfEquity ); > > SetPositionSize( 50, spsPercentOfPosition * ( Buy == > sigScaleOut ) ); > > // scale out 50% of position > > >
