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
|