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

[amibroker] Re: Buyprice changes while long



PureBytes Links

Trading Reference Links

Ed,

Nice piece of work.

Please, how do you post your formula to keep tabs ?

Every time I send a formula with Yahoo, the lines are right indented.

Regards


--- In amibroker@xxxxxxxxxxxxxxx, "Edward Pottasch" <empottasch@xxx>
wrote:
>
> hi,
> 
> another Email .... the original problem you have has to do with the
fact that at some bars there is a buy and a sell signal at the same
bar. For some reason using exrem it is not treated properly it seems
.. did not figure out what exactly is the problem. 
> 
> I find it pretty hard to put all your rules inside 1 sell statement.
Therefore I show you how to solve your problem using a additional
procedure. Basicly once you are in a trade you have 
> - a stoploss (sort of a trailing stop) defined by Ref(LLV(L,5),-1) 
and you have 
> - a profit stop defined by Ref(2*ATR(10),-1).  
> 
> Below I show how you could code your idea, rgds, Ed
> 
> 
> 
> 
> procedure sell_proc(Buy,BuyPrice,stopLoss,profitTarget) { 
> 
> global Sell; 
> global SellPrice; 
> 
> global BuyAdjusted; 
> global BuyPriceAdjusted; 
> 
> Sell = 0; 
> SellPrice = 0; 
> 
> BuyAdjusted = 0; 
> BuyPriceAdjusted = 0; 
> 
> global stopLossLine; 
> global profitTargetLine; 
> 
> stopLossLine = Null; 
> profitTargetLine = Null; 
> 
> for( i = 0; i < BarCount; i++ ) 
> { 
>     
>    if ( Buy[ i ] ) 
>    { 
>     
>       BuyAdjusted[ i ] = 1; 
>       BuyPriceAdjusted[ i ] = BuyPrice[ i ]; 
>        
>       stopLossLine[ i ] = stopLoss[ i ]; 
>       profitTargetLine[ i ] = BuyPrice[ i ] + profitTarget[ i ]; 
>        
>       for (j = i + 1; j < BarCount; j++) 
>       {       
>          stopLossLine[ j ] = stopLossLine[ i ]; 
>          profitTargetLine[ j ] = profitTargetLine[ i ]; 
>           
>          if( L[ j ] <= stopLossLine[ j ] ) 
>          { 
>        
>             Sell[ j ] = 1; 
>             SellPrice[ j ] = Min(O[ j ],stopLossLine[ j ]); 
>        
>             i = j; 
>             break;                                        
> 
>          } 
>          else if( H[ j ] > profitTargetLine[ j ] ) 
>          { 
> 
>             Sell[ j ] = 1; 
>             SellPrice[ j ] = Max(O[ j ],profitTargetLine[ j ]); 
>        
>             i = j; 
>             break;                                     
>           
>          } 
>          else if (j == BarCount - 1) 
>          { 
>                    
>             i = BarCount; 
>                    
>          } 
>       } 
>    } 
> } 
> 
> } 
> 
> 
> SetBarsRequired(10000,10000); 
> 
> Entrypt=HHV(H,3); 
> 
> Buy= Cross(H,Ref(Entrypt,-1)); 
> BuyPrice=Max(O,Ref(Entrypt,-1)); 
> 
> sell_proc(Buy,BuyPrice,Ref(LLV(L,5),-1),Ref(2*ATR(10),-1) ); 
> 
> Buy = BuyAdjusted; 
> BuyPrice = BuyPriceAdjusted; 
> 
> Plot(stopLossLine,"stopLossLine",colorBlue,styleThick); 
> Plot(profitTargetLine,"profitTargetLine",colorLightBlue,styleThick); 
> Plot(Ref(Entrypt,-1),"EntryLevel",colorYellow,styleDashed); 
> 
> SetChartOptions(0, chartShowDates); 
> Plot(C,"Last=",colorBlack,64); 
> 
> PlotShapes(IIf(Buy,shapeUpArrow,shapeNone),colorGreen,0,L,-15); 
>
PlotShapes(IIf(Buy,shapeHollowCircle,shapeNone),colorGreen,0,BuyPrice,0); 
> PlotShapes(IIf(Sell,shapeDownArrow,shapeNone),colorRed,0,H,-15); 
>
PlotShapes(IIf(Sell,shapeHollowCircle,shapeNone),colorRed,0,SellPrice,0); 
> 
> 
> 
> 
> 
> 
> 
>   ----- Original Message ----- 
>   From: cagigas00 
>   To: amibroker@xxxxxxxxxxxxxxx 
>   Sent: Friday, July 11, 2008 11:08 AM
>   Subject: [amibroker] Buyprice changes while long
> 
> 
> 
>   The following code replicates the problem I am having with a
system. The buyprice is suppossed to be constant while the system is
long, however it keeps changing. How can I make the Buyprice a constant?
> 
>   Thanks
> 
>   Oscar
> 
>   //COND//
> 
>   Entrypt=HHV(H,3);
> 
>   //ENTRY SIGNAL//
> 
>   Buy= H > Ref(Entrypt,-1);
> 
>   BuyPrice=ValueWhen(Buy,Ref(Entrypt,-1));
> 
>   //EXIT SIGNAL//
> 
>   MaxTRADECLOSE=Ref(HighestSince(Buy,C),-1);
> 
>   Sell= L < Ref(LLV(L,5),-1) OR (Maxtradeclose-BuyPrice) > 2*ATR(10);
> 
>   //REMOVE EXCESIVE SIGNALS//
> 
>   Buy=ExRem(Buy,Sell);
> 
>   Sell=ExRem(Sell,Buy);
> 
>   //PLOT BUY AND SELL POINTS//
> 
>   Plot(C,"Last=",colorBlack,styleBar|styleThick);
> 
>   PlotShapes(IIf(Buy,shapeUpArrow,shapeNone),colorGreen,0,L,-15);
> 
>  
PlotShapes(IIf(Buy,shapeHollowCircle,shapeNone),colorGreen,0,BuyPrice,0);
> 
>   PlotShapes(IIf(Sell,shapeDownArrow,shapeNone),colorRed,0,H,-15);
> 
>  
PlotShapes(IIf(Sell,shapeHollowCircle,shapeNone),colorRed,0,SellPrice,0);
> 
>   //AUX//
> 
>   Plot(Buy,"buy",colorRed,styleLine|styleOwnScale);
> 
>   Plot(BuyPrice,"buyprice",colorBlue,styleLine);
> 
>   Plot(Maxtradeclose,"maxtradeclose",colorGreen,styleLine);
>



------------------------------------

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/