Spent another day on this problem.   Very frustrated at this point.  
Even when I reduce the whole thing down to just the trailing stop 
portion on the buy side only it still does not work.  Has anyone been 
able to get this code from the Pyramiding section of the website to 
work?  Are there things missing in the code or has it been updated 
recently?  Does this code need to follow or precede the 
normal "Buy", "Sell", "Short", "Cover" instructions in the code?

Any tidbit of advice on this would be very appreciated.

thx,

Fred




--- In [email protected], "jjj_98" <[EMAIL PROTECTED]> wrote:
>
> Hi,
> 
> Trying to scale out of a position in my code and used the code from 
> one of the articles on the AB website.  What is happening is that 
the 
> program does not recognize the profit targets or trailing stops 
that 
> have been set up in the code.  At one point it was recognizing it, 
> but not correctly and when it scaled out it scaled out 100% rather 
> than 50%.
> 
> I've spent a few hours trying to make this work.  I'd really 
> appreciate it if anyone could take a look at the portion of the 
code 
> in question below and let me know if they see any obvious 
problems.  
> Yes, I have defined TrailingStop and FirstProfitTarget parameters.
> 
> thx,
> 
> PriceatBuy = 0;
> PriceatShort = 0;
> HighSinceBuy = 0;
> LowSinceShort = 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] >= (FirstProfitTarget + 
> PriceAtBuy)) 
>               {
>               // first profit target hit - Scale Out
>               Exit = 1;
>               Buy[i] = sigScaleOut;
>               SellPrice[i] = FirstProfitTarget + PriceAtBuy;  
>       
>               }
>               if(Low[i] <= (HighSinceBuy - TrailingStop))
>               {
>               // trailing stop hit - exit
>               Exit = 2;
>               SellPrice[i] = (HighSinceBuy - TrailingStop);
>               }
>               if(Exit == 2)
>               {
>               Buy[i] = 0;
>               Exit = 0;
>               PriceAtBuy = 0;
>               HighSinceBuy = 0;
>               }
>       }
>       
>       if(PriceatShort == 0 AND Short[i])
>       {
>               PriceatShort = ShortPrice[i];
>       }
>       if(PriceatShort > 0)
>       {       
>               LowSinceShort = Min(Low[i] , LowSinceShort);
>               if(Exit == 0 AND Low[i] <= (PriceatShort - 
> FirstProfitTarget)) 
>               {
>               // first profit target hit - Scale Out
>               Exit = 1;
>               Short[i] = sigScaleOut;
>               }
>               if(High[i] >= (LowSinceShort + TrailingStop))
>               {
>               // trailing stop hit - exit
>               Exit = 2;
>               BuyPrice[i] = (LowSinceShort + TrailingStop);
>               }
>               if(Exit == 2)
>               {
>               Short[i] = 0;
>               Exit = 0;
>               PriceatShort = 0;
>               LowSinceShort = 0;
>               }
> 
>       }
> 
> }
> SetPositionSize(50,spsPercentOfPosition*((Buy == sigScaleOut)+
(Short 
> == sigScaleOut)));
> //scale out of 50% of position
>


Reply via email to