[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

Hello Terry,
 
you can also change the buyprice through afl.
 
 
Best regards
 
Thomas
www.tradingbasis.com <http://www.tradingbasis.com/> 
 
 

  _____  

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




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
>