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

RE: [amibroker] Re: How do I keep the buyprice while multiple buy signals happen



PureBytes Links

Trading Reference Links

Hi Andre,
 
i have not checked out my code below detailed but it should point you to the
right direction. Just a quick modification.
i would also better use the build-in applystop function instead manually
stop and profit target.
 
Buy = Cross (MACD(12, 26), Signal(12, 26,9));
BuyPrice = ValueWhen(Ref(Buy,-1),Open); 

StopLoss = 0.9*BuyPrice;
ProfitTarget = 1.03*BuyPrice;

Sell = Cross(High,ProfitTarget) OR Cross(StopLoss, Low);
SellPrice = IIf(High>ProfitTarget, ProfitTarget, StopLoss);

Buy = ExRem(Buy, Sell);
Sell = ExRem(Sell,Buy);

 
Best regards
 
Thomas
www.tradingbasis.com <http://www.tradingbasis.com/> 
 
 

  _____  

From: amibroker@xxxxxxxxxxxxxxx [mailto:amibroker@xxxxxxxxxxxxxxx] On Behalf
Of Andre
Sent: Friday, July 07, 2006 5:24 PM
To: amibroker@xxxxxxxxxxxxxxx
Subject: [amibroker] Re: How do I keep the buyprice while multiple buy
signals happen



Thanks Thomas,
I knew about exrem. Thanks to you I realized one new thing: the 
recursive nature of the sales signal (which is based on the buy 
signal) means that I have to do Exrem several times. I have re-
approached my problem and this code apparently seems to do the trick 
I wanted ("buy at MACD crossing, sell at 3% profit or 10% loss"), 
but, my gosh it's ugly (3 Exrems)! And I am not sure if logicaly 
this is enough. I proved empirically to myself (try stock AXP), that 
2 exrems is not enough. Is there a more elegant way to do this?:

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

Buy = Cross (MACD(12, 26), Signal(12, 26,9));
BP = IIf(Buy, Ref(BuyPrice,1), 0); 

//Actual BuyPrice [BP] is the Open of the following day

Sell = Cross(High,1.03*ValueWhen(Buy, BP)) OR Cross(0.9*ValueWhen
(Buy , BP), Low);

// NOTE THAT AT THIS POINT I GET FALSE SELL SIGNALS BECAUSE I HAVE 
FALSE BUY SIGNALS

Buy = ExRem(Buy, Sell);

// THIS GETS RID OF FIRST WAVE OF FALSE SELLS
// THEN WE RE-CALCULATE ALL BUYS AND SELLS:

BP = IIf(Buy, Ref(BuyPrice,1), 0); 
//BuyPrice is the Open of the following day

Sell = Cross(High,1.03*ValueWhen(Buy, BP)) OR Cross(0.9*ValueWhen
(Buy , BP), Low);

Buy = ExRem(Buy, Sell);

// THIS IS NOT ENOUGH. IF THERE HAD BEEN 2 FALSE BUYS BEFORE, SELLS 
ARE STILL OFF.

BP = IIf(Buy, Ref(BuyPrice,1), 0); 
Sell = Cross(High,1.03*ValueWhen(Buy, BP)) OR Cross(0.9*ValueWhen
(Buy , BP), Low);

Buy = ExRem(Buy, Sell);

// I AM NOT SURE IF I HEREWITH COVERED IT ALL, OR I NEED TO CONTINUE 
THIS EXREM GYMNASTICS. IN PRACTICAL TESTS THIS SEEMS TO GIVE ME THE 
CORRECT +3% and -10% Trades.

SellPrice = IIf(High>1.03*ValueWhen(Buy, BP), 1.03*ValueWhen(Buy, 
BP), 0.9*ValueWhen(Buy, BP));

--- In amibroker@xxxxxxxxx <mailto:amibroker%40yahoogroups.com> ps.com,
"Thomas Z." <tzg@xxx> wrote:
>
> Hi Andre,
> 
> i think the easiest way would simply be to use the exrem function. 
It would
> assure that you only get a new buy after a sell.
> 
> SYNTAX exrem( ARRAY1, ARRAY2 ) 
> RETURNS ARRAY 
> FUNCTION removes excessive signals:
> returns 1 on the first occurence of "true" signal in Array1
> then returns 0 until Array2 is true even if there are "true" 
signals in
> Array1 
> EXAMPLE buy = ExRem( buy, sell );
> sell = ExRem( sell, buy ); 
> 
> Best regards
> 
> Thomas
> www.tradingbasis.com <http://www.tradingb <http://www.tradingbasis.com/>
asis.com/> 
> 
> 
> 
> _____ 
> 
> From: amibroker@xxxxxxxxx <mailto:amibroker%40yahoogroups.com> ps.com
[mailto:amibroker@xxxxxxxxx <mailto:amibroker%40yahoogroups.com> ps.com] 
On Behalf
> Of Andre
> Sent: Friday, July 07, 2006 9:14 AM
> To: amibroker@xxxxxxxxx <mailto:amibroker%40yahoogroups.com> ps.com
> Subject: [amibroker] How do I keep the buyprice while multiple buy 
signals
> happen
> 
> 
> 
> Hello,
> 
> This should be the simplest thing and I am simply running in 
circles 
> with AFL not being able to give me what I want.
> Here's what I want in simple terms:
> 
> . Buy on MACD crossing (buy at Open the following day).
> . Sell at 3% profit or at 10% loss.
> 
> Period. That's all.
> 
> The problem I am having is in "keeping" the purchase price at 
hand. 
> Yes, I know about "ValueWhen" function, but I can't get it to work 
> because I can easily have multiple buy signals before the sell 
> occurs and a new Buy gives me a new BuyPrice that throws off all 
my 
> profit and loss targets.
> Please advise. Thanks,
> 
> Andre Perman
>