PureBytes Links
Trading Reference Links
|
Why not use the functions that exist for this purpose
// 'bo' variable holds Backtester object retrieved earlier *
for*( openpos = bo.GetFirstOpenPos(); openpos; openpos =
bo.GetNextOpenPos() )
{
// openpos variable now holds Trade object
}
To iterate through closed trade list you should use GetFirstTrade() /
GetNextTrade() methods of Backtester object, as shown below:
*for*( trade = bo.GetFirstTrade(); trade; trade = bo.GetNextTrade() )
{
// trade variable now holds Trade object
}
--
Cheers
Graham
AB-Write >< Professional AFL Writing Service
Yes, I write AFL code to your requirements
http://www.aflwriting.com
On 29/11/06, Mark H <amibroker@xxxxxxxxxxxxx> wrote:
>
> OK, I verified that open positions work if I handle them AFTER the main
> loop (loop through all bars) in CBT.
> But it has problem within the main loop.
>
> Here is the code:
>
> If I put AddCustomMetric() after bo.ExitTrade(), it has no effect.
>
> if (sig.isExit())
> {
> pos = bo.FindOpenPos( sig.Symbol );
> if(pos) {
> lastC = pos.GetPrice(bar-1, "C");
> curO =pos.GetPrice(bar, "O");
> if(bo.ExitTrade(bar,sig.symbol,sig.Price))
> {
> //!!!!!!!!!!!!!!!!!!!!! the folowing line has no effect!!!!!!!!
> pos.AddCustomMetric("OvernightGap", curO - lastC);
> _TRACE("EXIT: " + sig.symbol + "@" + sig.Price);
> }
> }
> }
> If I put it before bo.ExitTrade(), the crach warning window of AB popped
> up:
>
> if (sig.isExit())
> {
> pos = bo.FindOpenPos( sig.Symbol );
> if(pos) {
> lastC = pos.GetPrice(bar-1, "C");
> curO =pos.GetPrice(bar, "O");
> //!!!!!!!!!!!!!!!!!!!!! the folowing line crash amibroker!!!!!!!!
> pos.AddCustomMetric("OvernightGap", curO - lastC);
> if(bo.ExitTrade(bar,sig.symbol,sig.Price))
> {
> _TRACE("EXIT: " + sig.symbol + "@" + sig.Price);
> }
> }
> }
>
>
> ----- Original Message -----
> *From:* Tomasz Janeczko <groups@xxxxxxxxxxxxx>
> *To:* amibroker@xxxxxxxxxxxxxxx
> *Sent:* Tuesday, November 28, 2006 1:58 PM
> *Subject:* Re: [amibroker] AddCustomMetric() for open positions
>
> Hello,
>
> Are you sure ? Open positions and closed trades are handled by exactly the
> same class internally and I see
> no reason why it should not work. If in doubt send code that allows to
> reproduce the problem to support.
>
> Best regards,
> Tomasz Janeczko
> amibroker.com
>
> ----- Original Message -----
> *From:* Mark H <amibroker@xxxxxxxxxxxxx>
> *To:* amibroker@xxxxxxxxxxxxxxx
> *Sent:* Tuesday, November 28, 2006 6:47 PM
> *Subject:* [amibroker] AddCustomMetric() for open positions
>
> Tomasz:
>
> AddCustomMetric() has no effect on open positions. I want to add some
> custom metrics based on some calculations using values returned
> by GetPrice().
>
> AddCustomMetric() works fine for closed positions (trades), but then
> GetPrice() no longer works.
>
> Is this by design?
>
> Thanks,
>
> - Mark
>
>
>
Content-Description: "AVG certification"
No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.5.430 / Virus Database: 268.14.19/556 - Release Date: 11/28/2006 3:22 PM
|