PureBytes Links
Trading Reference Links
|
TJ's way would work if you don't use PositionScore. It basically use scaleIn signals to simulate regular buys. ScaleIn signals don't have its own PosScore and are not sorted.
The way I presented in my previous post would work if you use PositionScore. All signals are sorted by PosScore under rotational mode. However, it can be much slower since there is a lot of signal sorting involved.
- Mark
----- Original Message -----
From: Tomasz Janeczko
To: amibroker@xxxxxxxxxxxxxxx
Sent: Monday, August 07, 2006 4:59 PM
Subject: Re: [amibroker] Losing Trades in Custom Backtester
Hello,
Answer is here: http://www.amibroker.com/kb/2006/04/24/using-redundant-signals-for-entries/
Best regards,
Tomasz Janeczko
amibroker.com
----- Original Message -----
From: C Alvarez
To: amibroker@xxxxxxxxxxxxxxx
Sent: Monday, August 07, 2006 10:04 PM
Subject: [amibroker] Losing Trades in Custom Backtester
I am using the Custom Backtester to iterate through the Signal list. Depending on some additional conditions that I only can know at this time, I might decide to skip a trade and set the PosSize = 0. This prevents the trade from happening, as I want.
The problem is that if I remove a trade from the Signal list and then the Buy array has a buy for the next day, it is not showing up the Signal list. And at this time I might want to take the trade. Any suggestions on how I can do this?
Here is the simplified code.
Thanks,
Cey
SetCustomBacktestProc("");
if( Status("action") == actionPortfolio )
{
bo = GetBacktesterObject();
bo.PreProcess(); // Initialize backtester
for(bar=0; bar<BarCount; bar++)
{
for( sig = bo.GetFirstSignal(bar); sig; sig = bo.GetNextSignal(bar) )
{
if( sig.IsEntry())
{
if (some_condition) // don't take trade
{
sig.PosSize = 0;
}
}
}
bo.ProcessTradeSignals(bar); // Process current bar's signals
}
bo.PostProcess();
}
|