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

[amibroker] Re: CBT Question


  • Date: Tue, 16 Feb 2010 12:19:45 -0000
  • From: "Pmxgs" <pmxgs@xxxxxxxxxx>
  • Subject: [amibroker] Re: CBT Question

PureBytes Links

Trading Reference Links

 Thanks for the tip, I got it now :)
 I was mislead by the help file  where it says:
- ProcessTradeSignals( long Bar )
This mid-level method processes all trading signals for given bar. It should be called once per every bar in your custom backtesting loop. 
That's why I thought that I could not use processtradesignals and entertrade/exittrade method at the same time.


--- In amibroker@xxxxxxxxxxxxxxx, Tomasz Janeczko <groups@xxx> wrote:
>
> Hello,
> 
> Yes you can and that is exactly what the example does (look at the AFL 
> code).
> 
> Best regards,
> Tomasz Janeczko
> amibroker.com
> 
> On 2010-02-15 23:06, Pmxgs wrote:
> > Ok.
> >
> >   After loking at that example, I have one question?
> >   Can I use the exittrade method and use bo.ProcessTradeSignals() at the same time? I thought that in the low level we could not use processtradesignals().
> >   I thought that I would need to cycle through all entry signals and call the entertrade() method and then after this I would have to cycle through all exit signals and call the exittrade method.
> > Basically my question is this: If I call the processtradesignals in the beginning of the loop, I don't need to go through all the entrysignals? And after that I can treat the exit signals using the exittrade method?
> >
> > thanks
> >
> >
> >
> >
> > --- In amibroker@xxxxxxxxxxxxxxx, Tomasz Janeczko<groups@>  wrote:
> >    
> >> Hello,
> >>
> >> Assign
> >> Sell = 0;
> >> Cover = 0;
> >>
> >> and use ExitTrade() method in CBT. That is simplest and most
> >> straightforward way to implement what you are after.
> >>
> >>
> >> see
> >> http://www.amibroker.com/kb/2006/03/06/re-balancing-open-positions/
> >>
> >> for example how to do that (you would need to use ExitTrade instead of
> >> ScaleTrade)
> >>
> >> Best regards,
> >> Tomasz Janeczko
> >> amibroker.com
> >>
> >> On 2010-02-15 21:57, Pmxgs wrote:
> >>      
> >>> Hello,
> >>>
> >>>    in that case, do I have to use the low level of CBT? Or is there any variable that I can assign to the signalobject so that the backtester skips those exit signals received from the 1st phase?
> >>>    As I described in the previous post, almost my trading system can be coded using "regular" phase. Only the stop loss exit  needs to use custom backtester.
> >>>
> >>>    thanks
> >>>
> >>>
> >>>
> >>> --- In amibroker@xxxxxxxxxxxxxxx, Tomasz Janeczko<groups@>   wrote:
> >>>
> >>>        
> >>>> Hello,
> >>>>
> >>>> The suggestion was wrong.
> >>>> PosSize property of signal object is only effective for ENTRY and
> >>>> SCALING (in/out) signals.
> >>>> EXIT signals just EXIT (close entire) position.
> >>>>
> >>>> Best regards,
> >>>> Tomasz Janeczko
> >>>> amibroker.com
> >>>>
> >>>> On 2010-02-15 17:41, Pmxgs wrote:
> >>>>
> >>>>          
> >>>>>     Hi,
> >>>>>
> >>>>>     I followed this suggestion which was to write sell=1 in the first phase of the backtest and then assign 0 to the possize property of  the signal object to avoid exiting trades (the condition to exit trades is only if profit from current open positions is greater than    -8000 but less than 5000). (profit>5000 is when profit target is hit)
> >>>>>
> >>>>> If I assign zero to possize in case of a sell, does the backtester skip this exit signal?
> >>>>> I don't get any response from the trace statement, so I'm doing several things wrong.
> >>>>>
> >>>>>
> >>>>> Here is my code to ilustrate what I'm trying to do. Any help ?
> >>>>>
> >>>>> SetCustomBacktestProc("");
> >>>>> if (Status("action") == actionPortfolio) {
> >>>>>        bo = GetBacktesterObject();	//  Get backtester object
> >>>>>
> >>>>>        bo.PreProcess();	//  Do pre-processing (always required)
> >>>>>        for (i = 0; i<    BarCount; i++)	//  Loop through all bars
> >>>>>        profit=0;
> >>>>> 	{
> >>>>>        	for (trade = bo.GetFirstOpenPos(); trade; trade = bo.GetNextOpenPos())
> >>>>> 			{	//  Loop through all open positions
> >>>>>                profit=profit+ trade.GetProfit() ;
> >>>>>               _TRACE("profit at bar "+profit+"-"+i);
> >>>>> 			}			
> >>>>>
> >>>>>            for (sig = bo.GetFirstSignal(i); sig; sig = bo.GetNextSignal(i))
> >>>>>            {	//  Loop through all signals at this bar
> >>>>>
> >>>>>                if (sig.Isexit()&&    profit>-8000&&    profit<5000) //skip exits	      {
> >>>>>                    _TRACE("exit signal at bar "+i);
> >>>>>                    sig.possize=0;
> >>>>>                  }
> >>>>>            }	//  End of for loop over signals at this bar
> >>>>>            bo.ProcessTradeSignals(i);	//  Process trades at bar (always required)
> >>>>>        }	//  End of for loop over bars
> >>>>>        bo.PostProcess();	//  Do post-processing (always required)
> >>>>> };
> >>>>>
> >>>>>
> >>>>>
> >>>>>     thanks
> >>>>>
> >>>>> --- In amibroker@xxxxxxxxxxxxxxx, "Pmxgs"<pmxgs@>    wrote:
> >>>>>
> >>>>>
> >>>>>            
> >>>>>>     Good idea. I hadn't hink of it that way.
> >>>>>>     Let's see if I can code it correctly.
> >>>>>>
> >>>>>>     thanks
> >>>>>>
> >>>>>> --- In amibroker@xxxxxxxxxxxxxxx, "Mike"<sfclimbers@>    wrote:
> >>>>>>
> >>>>>>
> >>>>>>              
> >>>>>>> Medium level CBT allows to cancel buy signals by setting position size to 0. Assuming the same applies for sell signals (i.e. cancel the signal), you could try using "Sell = 1;" as your sell logic and then cancel the signals using medium CBT when not applicable.
> >>>>>>>
> >>>>>>> I'm not necessarily recommending the above. Just pointing out that it could potentially be done without low level CBT, if so desired.
> >>>>>>>
> >>>>>>> Mike
> >>>>>>>
> >>>>>>> --- In amibroker@xxxxxxxxxxxxxxx, "Pmxgs"<pmxgs@>    wrote:
> >>>>>>>
> >>>>>>>
> >>>>>>>                
> >>>>>>>> Hi,
> >>>>>>>>
> >>>>>>>>       I'm trying to create a system where all my entry rules can be defined without cbt, but the exit rule (which is to close all positions if the loss of all open positions is greater than 5% of equity).
> >>>>>>>>
> >>>>>>>>     Since I have to use exit trade method of cbt, do I need do use the lowest level described in the help section of cbt?
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>     thanks
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>                  
> >>>>>>>
> >>>>>>>                
> >>>>>>
> >>>>>>              
> >>>>>
> >>>>> ------------------------------------
> >>>>>
> >>>>> **** IMPORTANT PLEASE READ ****
> >>>>> This group is for the discussion between users only.
> >>>>> This is *NOT* technical support channel.
> >>>>>
> >>>>> TO GET TECHNICAL SUPPORT send an e-mail directly to
> >>>>> SUPPORT {at} amibroker.com
> >>>>>
> >>>>> TO SUBMIT SUGGESTIONS please use FEEDBACK CENTER at
> >>>>> http://www.amibroker.com/feedback/
> >>>>> (submissions sent via other channels won't be considered)
> >>>>>
> >>>>> For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG:
> >>>>> http://www.amibroker.com/devlog/
> >>>>>
> >>>>> Yahoo! Groups Links
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>            
> >>>>
> >>>>          
> >>>
> >>>
> >>> ------------------------------------
> >>>
> >>> **** IMPORTANT PLEASE READ ****
> >>> This group is for the discussion between users only.
> >>> This is *NOT* technical support channel.
> >>>
> >>> TO GET TECHNICAL SUPPORT send an e-mail directly to
> >>> SUPPORT {at} amibroker.com
> >>>
> >>> TO SUBMIT SUGGESTIONS please use FEEDBACK CENTER at
> >>> http://www.amibroker.com/feedback/
> >>> (submissions sent via other channels won't be considered)
> >>>
> >>> For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG:
> >>> http://www.amibroker.com/devlog/
> >>>
> >>> Yahoo! Groups Links
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>        
> >>      
> >
> >
> >
> > ------------------------------------
> >
> > **** IMPORTANT PLEASE READ ****
> > This group is for the discussion between users only.
> > This is *NOT* technical support channel.
> >
> > TO GET TECHNICAL SUPPORT send an e-mail directly to
> > SUPPORT {at} amibroker.com
> >
> > TO SUBMIT SUGGESTIONS please use FEEDBACK CENTER at
> > http://www.amibroker.com/feedback/
> > (submissions sent via other channels won't be considered)
> >
> > For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG:
> > http://www.amibroker.com/devlog/
> >
> > Yahoo! Groups Links
> >
> >
> >
> >
> >
>




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

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

TO GET TECHNICAL SUPPORT send an e-mail directly to 
SUPPORT {at} amibroker.com

TO SUBMIT SUGGESTIONS please use FEEDBACK CENTER at
http://www.amibroker.com/feedback/
(submissions sent via other channels won't be considered)

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

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:
    amibroker-digest@xxxxxxxxxxxxxxx 
    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/