PureBytes Links
Trading Reference Links
|
Sorry, you can't do what you propose because BuyPrice and Sell Price
(and ShortPrice & CoverPrice) are a built-in variables that store the
prices you are buying and selling at. These are normally the Open or the
Close. If you use them as shown you will get wacko results (because you
are shifting the entire array backwards to the Buy date (or the offset
of that date).
Just use other names (such as MyBuyPrice).
--
Terry
-----Original Message-----
From: amibroker@xxxxxxxxxxxxxxx [mailto:amibroker@xxxxxxxxxxxxxxx] On
Behalf Of Thomas Z.
Sent: Friday, July 07, 2006 11:37
To: amibroker@xxxxxxxxxxxxxxx
Subject: RE: [amibroker] Re: How do I keep the buyprice while multiple
buy signals happen
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
>
|