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

[amibroker] Re: Scale Out Question



PureBytes Links

Trading Reference Links

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 amibroker@xxxxxxxxxxxxxxx, "jjj_98" <jjj_98@xxx> 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
>




Please note that this group is for discussion between users only.

To get support from AmiBroker please send an e-mail directly to 
SUPPORT {at} amibroker.com

For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG:
http://www.amibroker.com/devlog/

For other support material please check also:
http://www.amibroker.com/support.html
 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/amibroker/

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/amibroker/join
    (Yahoo! ID required)

<*> To change settings via email:
    mailto:amibroker-digest@xxxxxxxxxxxxxxx 
    mailto:amibroker-fullfeatured@xxxxxxxxxxxxxxx

<*> To unsubscribe from this group, send an email to:
    amibroker-unsubscribe@xxxxxxxxxxxxxxx

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/