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

RE: [amibroker] Re: Pyramiding: buy a 2nd time if buy cryteria is reached,



PureBytes Links

Trading Reference Links

I am presently also trying to understand how to employ SigScaleIn
effectively.  I wish to go Long using 3% of available equity no more than
four times prior to a Sell for a given equity assuming repeated buy signals
are received prior to a Sell signal.  Following your suggestions I've tried
to encode a For Loop for this purpose but I obtain no Buy signals.
Replacing the For Loop with "Buy = BuySig" in the code below I obtain 77
trades.  Would you (or anyone else) be kind enough to indicate the error of
my ways?

 

BuySig = Cross(C,EMA(C,20));

SellSig= Cross(EMA(C,50),C);

 

PositionSize = -3;

SetFormulaName("Test");

SetOption("MaxOpenPositions",12);

SetOption("CommissionAmount",0.00);

SetOption("CommissionMode",2);

SetOption("InitialEquity",100000);

SetOption("PriceBoundChecking",1);

SetOption("UsePrevBarEquityForPosSizing",0);  

SetOption("PortfolioReportMode",0);

SetTradeDelays(0,0,0,0);

BuyPrice=SellPrice=ShortPrice=CoverPrice=Close;

 

  for(i=1; i<5; i++);

  {  Buy = IIf(BuySig[i],sigScaleIn,0);

  }

 

 

Sell   = SellSig;

 

 

  _____  

From: amibroker@xxxxxxxxxxxxxxx [mailto:amibroker@xxxxxxxxxxxxxxx] On Behalf
Of Graham
Sent: Wednesday, November 15, 2006 2:15 PM
To: amibroker@xxxxxxxxxxxxxxx
Subject: Re: [amibroker] Re: Pyramiding: buy a 2nd time if buy cryteria is
reached,

 

supistarde

maxopenpositions limits the number of stocks that can have trades open
duiring a backtest

scaling into trades is not affected this setting
How you define the scaling depends on what you wnat to do 

eg to scale in every time you get a buy condtion true you can simply write

buy = ( buyconditions ) * sigscalein;
sell = sellconditions;

alternatively something like this could be used

buy = buyconditions; 
sell = sellconditions;
inTrade = flip(buy,sell);
buy = buy and iif( intrade, sigscalein, 1);

to change the positionsixze for the scalein then you use setpositionsize
function, see examples in help for this

there are a number of methods to achieve the scaling and what you use
depends on the conditions for the buys and sells. sometimes straight
condition statements are enough, other times you may nbeed to place them
into a for loop, or in extreme cases when the scaling is dependant on the
results of the first pass backtest then the custom backtest code is needed
(as you are a beginner in AFL I suggest you stay with the simpler methods
and build your knowledges of AB and the aFL) 

Look through the help files and also search on the archives of this group
for information on writing AFL.

-- 
Cheers
Graham
AB-Write >< Professional AFL Writing Service
Yes, I write AFL code to your requirements 
http://www.aflwriti <http://www.aflwriting.com> ng.com 

On 16/11/06, Mark H <amibroker@xxxxxxxxx <mailto:amibroker@xxxxxxxxxxxxx>
.net> wrote:

You would need to use the custom backtester (CBT) to do the position sizing.
See amibroker knowledge base for some examples.

 

----- Original Message ----- 

From: supistarde <mailto:supistarde@xxxxxxxx>  

To: amibroker@xxxxxxxxx <mailto:amibroker@xxxxxxxxxxxxxxx> ps.com 

Sent: Wednesday, November 15, 2006 1:22 PM

Subject: [amibroker] Re: Pyramiding: buy a 2nd time if buy cryteria is
reached,

 

does it not work at amibroker?

--- In amibroker@xxxxxxxxx <mailto:amibroker@xxxxxxxxxxxxxxx> ps.com,
"supistarde" <supistarde@xxx> wrote:
>
> Hello community,
> 
> I know how to minimize open positions:
> SetOption("maxopenpositions",2);
> 
> but how does this sigScaleIn work?
> I want to buy further stocks if my buy conditions are met a second
> time. The second position should have half the size of the first
> position.
> How do I do this?
> 
> Buy = Buy + sigScaleIn * DoScaleIn
> How do I link sigscalein to my buy signal?
> 
> Regards,
>





 


Content-Description: "AVG certification"
No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.1.409 / Virus Database: 268.14.11/542 - Release Date: 11/20/2006