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

[amibroker] Re: BarsSince(Buy == 1)



PureBytes Links

Trading Reference Links

Ill put you out of your misery, Peter, and save you weeks if not 
months of mucking around as I have.

Amibroker is a wonderful program - uniquely fast with it's array 
based technology. But it does have a major flaw vs other software 
products. AFL code has NO ACCESS to your ACTUAL trade stats 
(entryprice, bars in trade etc). Unless you use the built in commands 
to do ultra simple stuff (Applystop etc), you are simply guessing 
based on the movement of the market. EXREM and EXREMSPAN just help 
you guess better!

Don't be too depressed though, as the new Custom Backtester does have 
access to the actual trade. But it is very cryptic (easy to make a 
mistake) and Tomasz appears reluctant to give support for it. I have 
written a piece of CB code that will do what you want. It looks 
correct but does not work presently. Tomasz has it and (hopefully!) 
one rainy day he might get around to correcting it. I will post it 
here if so. Or perhaps he would like to?

Max

--- In amibroker@xxxxxxxxxxxxxxx, "Peter" <pa299@xxxx> wrote:
> Hi
> I'm a new to AFL and need some help with code for a exit on first 
> profitable open.
> 
> I've been using this code in a Commentary window to check if it 
> works.
> 
> The problem I have is that at times after entering a long position 
> (Buy = false) the variable BuyBarsSince in the line 
> BuyBarsSince = BarsSince(Buy == 1);
> will reset to 0 when Cond1 AND Cond2 AND Cond3 are all true
> 
> The result is an exit below the entry price.
> 
> My question is why at times does 
> BarsSince(Buy == 1)
> reset to 0 when Buy = false?
> 
> 
> Am I missing obvious?
> Any help would be appreciated?
> Thanks
> Peter
> 
> 
> //3Down Close Commentary
> 
> Cond1 = Ref(C,1) > Ref(C,0);
> Cond2 = Ref(C,-2) > Ref(C,-1);
> Cond3 = Ref(C,-3) > Ref(C,-2);
> 
> Buy = Cond1 AND Cond2 AND Cond3 ;
> BuyPrice = Ref(Open,0);
> 
> //------------------------------------------
> // Exit 1st Profitable Open
> // How many bars ago was the last Buy signal?
> BuyBarsSince = BarsSince(Buy == 1);
> // Actual Price of buy
> Price4LastBuy = Ref(BuyPrice, -BuyBarsSince);
> 
> SellCond1 = Cross(Open,Price4LastBuy);
> SellCond2 = BarsSince(Buy == 1) > 0;
> 
> Sell = SellCond1 AND SellCond2;
> SellPrice = Ref(O,0);
> 
> Sell=ExRem(Sell,Buy); Buy=ExRem(Buy,Sell);
> 
> 
> 
> //------------------------------------------
> 
> "3 Down Close Commentary";
> "";
> "Cond1 is " + WriteVal(Cond1);
> "Cond2 is " + WriteVal(Cond2);
> "Cond3 is " + WriteVal(Cond3);
> "Buy is " + WriteVal(Buy);
> 
> "";
> "BuyPrice is " + WriteVal(Price4LastBuy );
> "BarsSince(Buy)is " + WriteVal(BarsSince(Cond1 AND Cond2));
> "Price4LastBuy is " + WriteVal(Price4LastBuy);
> 
> "";
> "SellCond1 is " + WriteVal(SellCond1 );
> "SellCond2 is " + WriteVal(SellCond2 );
> 
> "Sell is " + WriteVal(Sell );
> "SellPrice is " + WriteVal(SellPrice );




------------------------ Yahoo! Groups Sponsor --------------------~--> 
In low income neighborhoods, 84% do not own computers.
At Network for Good, help bridge the Digital Divide!
http://us.click.yahoo.com/EpW3eD/3MnJAA/cosFAA/GHeqlB/TM
--------------------------------------------------------------------~-> 

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 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/

<*> 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/