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

Re: [amibroker] Re: how to modify MarginDeposit by trade ?



PureBytes Links

Trading Reference Links

How do you store the values?
Normal variables do not pass directly from the base AFL to the CBT.
You need to use either staticvarset or save them to a composite symbol
and then read these as foreign symbols within the CBT. Of course you
could always save them to a text file, but this would be slower than
using compsoites
Sorry I ahve not read through the CBT document fully that was created
but you have to remember that the bars used in the loop in CBT is not
that same barindex values as per the base symbols. The bars counted in
the loops are based on the backtest bars. So reference to foreign
symbols needs to be done using datetime values. Tomasz has written a
function to allow easy referencing for this. This is slightly
different to the original

function FindValueAtDateTime( eq, dt, Value )
{
	found = -1;
	for( i=0; i<BarCount AND found==-1; i++ )
	{
		if( dt[i]==Value ) found = i;
	}
	return IIf( found != -1, eq[found], Null );
}
the function is located after SetCustomBacktestProc(""); and before
if( Status("action") == actionPortfolio )
ie
SetCustomBacktestProc("");
function FindValueAtDateTime( eq, dtm, Value )
{
	found = -1;
	for( i=0; i<BarCount AND found==-1; i++ )
	{
		if( dtm[i]==Value ) found = i;
	}
	return IIf( found != -1, eq[found], Null );
}
if( Status("action") == actionPortfolio )
{
...........................................................

In this Value is the datetime of the bar you want to reference the
appropriate foreign symbol
eq should be the Foreign function where your required data is stored

Here is an example that is within the open positions part inside the loop

dt = DateTime();
for(bar=1; bar<BarCount; bar++)
{
for( OpenPos = bo.GetFirstOpenPos(); OpenPos; OpenPos = bo.GetNextOpenPos() )
{
SellStop[bar] = FindValueAtDateTime(
Foreign("~Stops_"+OpenPos.Symbol,"O"), dt, dt[bar] );




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


On 23/06/07, Grant Noble <gruntus@xxxxxxxxxxx> wrote:
> Thx for the reply. I've read your wonderful docs on the CBT but am struggling with how to get the
> CBT to use values calculated outside of it's loops. I store the correct margin value at the time I
> generate my signals but, at CBT signal level I'm not actually dealing with a symbol/date paradigm am
>   I ? Whenever I try to access my array I just get zero values. Any idea what I can do about this ? G
>
> gp_sydney wrote:
> > I've never used MarginDeposit, but it is a property of the Signal
> > object in the CBT which means it could be adjusted on a per-trade
> > basis using the mid-level custom backtester interface.
> >
> > GP
> >
> >
> > --- In amibroker@xxxxxxxxxxxxxxx, Grant Noble <gruntus@xxx> wrote:
> >> Anyone using MarginDeposit ??
> >>
> >> gruntusnomore wrote:
> >>> I need to modify MarginDeposit on a trade-by-trade basis as it is
> >>> calculated using order level & stop points.
> >>> The backtester always uses the last value of MarginDeposit calculated
> >>> for any test range - and will use this value for all trades of the
> > same
> >>> symbol.
> >>> Can anyone advise how I can get around this ? Is it something that can
> >>> be done w/ CBT additions ?
> >>> Regards, GRANT
> >>> :-)
> >>>
> >>>
> >>>
> >>>
> >>> Please note that this group is for discussion between users only.
> >>>
> >>> To get support from AmiBroker please send an e-mail directly to
> >>> SUPPORT {at} amibroker.com
> >>>
> >>> For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG:
> >>> http://www.amibroker.com/devlog/
> >>>
> >>> For other support material please check also:
> >>> http://www.amibroker.com/support.html
> >>>
> >>> Yahoo! Groups Links
> >>>
> >>>
> >>>
> >>>
> >>>
> >
> >
> >
> >
> > Please note that this group is for discussion between users only.
> >
> > To get support from AmiBroker please send an e-mail directly to
> > SUPPORT {at} amibroker.com
> >
> > For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG:
> > http://www.amibroker.com/devlog/
> >
> > For other support material please check also:
> > http://www.amibroker.com/support.html
> >
> > Yahoo! Groups Links
> >
> >
> >
> >
> >
>
>
> Please note that this group is for discussion between users only.
>
> To get support from AmiBroker please send an e-mail directly to
> SUPPORT {at} amibroker.com
>
> For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG:
> http://www.amibroker.com/devlog/
>
> For other support material please check also:
> http://www.amibroker.com/support.html
>
> Yahoo! Groups Links
>
>
>
>


Please note that this group is for discussion between users only.

To get support from AmiBroker please send an e-mail directly to 
SUPPORT {at} amibroker.com

For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG:
http://www.amibroker.com/devlog/

For other support material please check also:
http://www.amibroker.com/support.html
 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/amibroker/

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/amibroker/join
    (Yahoo! ID required)

<*> To change settings via email:
    mailto:amibroker-digest@xxxxxxxxxxxxxxx 
    mailto:amibroker-fullfeatured@xxxxxxxxxxxxxxx

<*> To unsubscribe from this group, send an email to:
    amibroker-unsubscribe@xxxxxxxxxxxxxxx

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/