Raskoks, I am not very good at this yet, but I can see a few things that might 
be causing problems.

1. SetBacktestMode( backtestRegularRaw2 ); Make sure that you want RegularRaw2. 
Raw2 does allow redundant signals.

2. newDayB=Ref(dn,-1)!= dn; I don't see where you have defined dn.

3. if ( CntBuys <= MaxBuys.....I had to take out the = sign so that it reads 
CntBuys<MaxBuys.

Hope this helps,
Wood

--- In [email protected], "raskoks" <rask...@...> wrote:
>
> Hi,maybe someone can tell me what i do wrong. I have smth like that (code 
> below) and i need to have max only one transaction per day. Morover every 
> transacion is simply reversing position (always on market). But for this code 
> signals which aren't use ( for example buy signal when i already have long 
> position) are count to daily limit. I really don't know why :).
> Thanks for any help.
> 
> 
> CondBuy=..;
> CondShort=..;
> Buy= CondBuy ;
> Sell= CondShort ;
> Short=Sell;
> Cover=Buy;
> 
> CurrentPos[0]=0;
> MaxBuys = 1;
> dnB = DateNum();
> newDayB=Ref(dn,-1)!= dn;
> SetBacktestMode( backtestRegularRaw2 );
> SetCustomBacktestProc("");
> if ( Status( "action" ) == actionPortfolio )
> {
>    bo = GetBacktesterObject();
>    bo.PreProcess();
>    cntBuys =0;
>    for ( i = 0; i < BarCount; i++ )
>    {
>       if(newDayB[i]==1)
>               cntBuys = 0;
> 
>       for ( sig = bo.GetFirstSignal( i ); sig; sig =bo.GetNextSignal( i ) )
>       {
> 
>             
>             if ( CntBuys <= MaxBuys AND sig.IsLong()AND CurrentPos[0]!=1)
>             {
>                CanEnter = True;
>                CntBuys++;
>               CurrentPos[0]=1;
>             }
>               else if ( CntBuys <= MaxBuys AND NOT sig.IsLong()AND 
> CurrentPos[0]!=-1)         {                                                  
>      
>                CanEnter = True;
>                CntBuys++;
>                CurrentPos[0]=-1;
> 
>               } 
>             if ( ! CanEnter ) sig.Price = -1;
>          
>         }
>    bo.ProcessTradeSignals( i );
>    }
>    bo.PostProcess();
> }
>


Reply via email to