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

Re: [amibroker] Adding custom metrics



PureBytes Links

Trading Reference Links

Hello,
 
I still couldn't achieve... Below please find a work summary and my code. I will be glad to see your comments&help. Thanks in advance.
 
1- The operation is to examine the trades of a single ticker in depth.
2- Passing of one formula (trend) to composite is OK. I can see it appear in tickers.
3- I desired to check Buy signals with a loop. And insert the values of the composite to a static array buy VarSet. This should be added by date sequence by the signals loop.
4- Then, get the new static array variables in the trades loop by varget and add the custom metrics.
 
The problem is: Getting the composite array values into CB doesn't seem possible.
Here is the code:
 

trend = EMA(C,5) / EMA(C,21);

AddToComposite

(C, "~MyTrend", "X", atcFlagEnableInBacktest| atcFlagDefaults );

SetCustomBacktestProc

("");

if

( Status("action") == actionPortfolio)

{

bo =

GetBacktesterObject();

bo.PreProcess();

//

sc =

1;

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

{

for (sig = bo.GetFirstSignal(i); sig; sig = bo.GetNextSignal(i))

{

if( sig.IsEntry() )

{

//VarSet("trendd"+sc,Foreign("~MyTrend", "C"));

a =

Foreign("~MyTrend", "C"); //for testing purpose

sc = sc +

1;

}

}

bo.ProcessTradeSignals(i);

}

tc =

1;

for( trade = bo.GetFirstTrade(); trade; trade = bo.GetNextTrade() )

{

//tr = VarGet("trendd"+tc);

trade.AddCustomMetric(

"Trend", a); //tr should be here instead of a

tc = tc +

1;

}

 bo.PostProcess();

}

System...

2008/11/16 İlhan Ketrez <ketrezilhan@xxxxxxxxx>
Hello,
 
Not complete yet but "AddToComposite" hint seems to be enough for me..
Thank you very much.
2008/11/16 Thomas Z. <tzg@xxxxxxxxxxxxxxxxxxx>

Hello,

it is be possible.

You have to store the CCI Value through AddToComposite for each symbol and
have to load it in the CBI through the foreign function.
Additionally you have to use a loop to iterate through all bars and all
closed trades to add the CCI value from the bar where the trade has been
closed.


Thomas
www.PatternExplorer.com


From: amibroker@xxxxxxxxxxxxxxx [mailto:amibroker@xxxxxxxxxxxxxxx] On Behalf
Of Ilhan Ketrez
Sent: Saturday, November 15, 2008 11:05 PM
To: amibroker@xxxxxxxxxxxxxxx
Subject: Re: [amibroker] Adding custom metrics

Still no replies.
 
I wonder if this is possible in Amibroker.
 
A yes/no response or a link to an example document can also be very helpful.
 
Thank you.


 
2008/11/14 İlhan Ketrez <ketrezilhan@xxxxxxxxx>
Thank you but it doesn't work that way, i.e. it doesn't give the entry CCI.
To clarify, I want to see the entry CCI values in the yellow areas of the
attached picture.
Could you please elaborate your response by providing an example?
 
Thank you very much.
On Fri, Nov 14, 2008 at 10:04 PM, Ara Kaloustian <ara1@xxxxxxxxxx> wrote:
Entry for "CCI" should be just "CCI"  - not "trade.CCI"
 
----- Original Message -----
From: İlhan Ketrez
To: amibroker@xxxxxxxxxxxxxxx
Sent: Friday, November 14, 2008 12:00 PM
Subject: [amibroker] Adding custom metrics

Dear friends,
 
Regarding the addition of custom metrics to the backtest report, to simplify
my question please find below a script from the AB documentation. Simply, I
want to add, for example, CCI value, RSI value and various entry bar
conditions instead of Initial risk or R multiple below.
 
In other words, just like trade.score gives entry score, I want to add
"trade.cci" as entry cci to the backtest report.
 
Thank you in advance for your help.
 
Best regards,
Ilhan
 
SetCustomBacktestProc("");
MaxLossPercentStop = 10; // 10% max. loss stop
/* Now custom-backtest procedure follows */
if
( Status("action") == actionPortfolio )
{
bo =
GetBacktesterObject();
bo.Backtest(
1); // run default backtest procedure
SumProfitPerRisk =
0;
NumTrades =
0;
// iterate through closed trades first
for( trade = bo.GetFirstTrade(); trade; trade = bo.GetNextTrade() )
{
// risk is calculated as the maximum value we can loose per trade
// in this example we are using max. loss stop
// it means we can not lose more than (MaxLoss%) of invested amount
// hence ris
Risk = ( MaxLossPercentStop /
100 ) * trade.GetEntryValue();
RMultiple = trade.GetProfit()/Risk;
trade.AddCustomMetric(
"Initial risk $", Risk );
trade.AddCustomMetric(
"R-Multiple", RMultiple );
trade.AddCustomMetric(
"Trend", trend );
SumProfitPerRisk = SumProfitPerRisk + RMultiple;
NumTrades++;
}
expectancy3 = SumProfitPerRisk / NumTrades;
bo.AddCustomMetric(
"Expectancy (per risk)", expectancy3 );
bo.ListTrades();
}





------------------------------------

**** IMPORTANT ****
This group is for the discussion between users only.
This is *NOT* technical support channel.

*********************
TO GET TECHNICAL 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/



__._,_.___

**** IMPORTANT ****
This group is for the discussion between users only.
This is *NOT* technical support channel.

*********************
TO GET TECHNICAL 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

*********************************




Your email settings: Individual Email|Traditional
Change settings via the Web (Yahoo! ID required)
Change settings via email: Switch delivery to Daily Digest | Switch to Fully Featured
Visit Your Group | Yahoo! Groups Terms of Use | Unsubscribe

__,_._,___