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 [EMAIL PROTECTED]ps.com,
"Thomas Z." <[EMAIL PROTECTED]> 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.tradingbasis.com/>
>
>
>
> _____
>
> From: [EMAIL PROTECTED]ps.com
[mailto:[EMAIL PROTECTED]ps.com]
On Behalf
> Of Andre
> Sent: Friday, July 07, 2006 9:14
AM
> To: [EMAIL PROTECTED]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
>