Bump.
--- In [email protected], "rise_t575" <ris...@...> wrote:
>
>
>
> Tomasz,
>
> Let me say this another way:
>
> I haven't ranked the stocks at all in both codes (yet).
>
> But still, using SetPositionSize results in entry signals in Z to A order,
> while the CBT code results in signals in A to Z order (as expected when using
> GetFirstSignal, GetNextSignal).
>
> Why do I get the signals in Z to A order with SetPositionSize?
>
> Thanks.
>
> --- In [email protected], Tomasz Janeczko <groups@> wrote:
> >
> > Hello,
> >
> > You have mistake in your code/thinking. Ranking/sorting occurs in FIRST
> > phase of backtest.
> >
> > Assigning different scores after ranking/sorting is done (in second phase /
> > cbt) does not change the ordering,
> > that's why in case b) you have alphabetical ordering.
> >
> > If you want to change the order of trades in CBT you need to do it yourself
> > (EnterTrade/ExitTrade/ScaleTrade)
> >
> > Best regards,
> > Tomasz Janeczko
> > amibroker.com
> >
> > On 2010-07-20 23:10, rise_t575 wrote:
> > >
> > > Another question regarding taking signals / the signal score:
> > >
> > > As an exercise, I've coded two 100% identical position sizing algorithms,
> > > a) in normal AFL (SetPositionSize) and b) with mid-level CBT.
> > > After fixing all the obvious bugs in my CBT code, I've noticed that the
> > > results still differ.
> > >
> > > A couple of frustrating hours of later, going through the trades
> > > manually, I've noticed that (a = SetPositionSize) and (b = CBT code) are
> > > sometimes trading different signals.
> > >
> > > In the AA's Results list for the same bar, I'm getting the following
> > > Entry Signals for (a) and (b):
> > >
> > > (a) Entry signals(score):SANM=Buy(1), CIEN=Buy(1), AMCC=Buy(1)
> > > (b) Entry signals(score):AMCC=Buy(1), CIEN=Buy(1), SANM=Buy(1)
> > >
> > > While the signals are the same, the order is reversed. Which comes into
> > > play when the signal score is the same while there are insufficient funds.
> > >
> > > If there's only cash available for one more trade,
> > >
> > > (a) will enter a position in SANM,
> > > (b) will enter a position in AMCC,
> > >
> > > and this is where the difference in the end results for the backtests
> > > comes from.
> > >
> > > Is working SetPositionSize backwards through the signals?
> > >
> > > Thanks in advance for clarification.
> > >
> > >
> > > --- In [email protected], Tomasz Janeczko<groups@> wrote:
> > >> Hello,
> > >>
> > >> You can either
> > >> a) turn ON "Allow position shrinking" - that will allow to open highest
> > >> ranked position albeit with adjusted size to fit available funds
> > >> b) use custom backtest to detect such circumstance and assign -1 to
> > >> price.
> > >>
> > >> Best regards,
> > >> Tomasz Janeczko
> > >> amibroker.com
> > >>
> > >> On 2010-07-20 18:24, Tavan Taban wrote:
> > >>>
> > >>> Hello,
> > >>>
> > >>> Thank you Tomasz, for your clear and wise comments.
> > >>>
> > >>> By the way, I remember more about the problem I experienced earlier. A
> > >>> fictive description of the problem is as follows.
> > >>>
> > >>> Initial equity: 10000 (default)
> > >>> Position Size: 5%
> > >>> Highest ranked stock's price: 600
> > >>> Assume 40 more signals.
> > >>>
> > >>> Result:
> > >>> Backtester rejects the highest ranked signal indicating insufficient
> > >>> funds and takes no trades.
> > >>> The problem continues as this signal continues in raw mode backtest.
> > >>>
> > >>> At that time, I passed off the subject by simply increasing the initial
> > >>> equity.
> > >>> Walking towards perfection, perhaps you may consider handling different
> > >>> "insufficient funds" differently.
> > >>>
> > >>> Best regards,
> > >>> IK
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>> 2010/7/20 Tomasz Janeczko<groups@<mailto:groups@>>
> > >>>
> > >>> Hello,
> > >>>
> > >>>
> > >>>
> > >>> "While I have no idea what exactly does happen when I set
> > >>> sig.Price to -1 and why this works "
> > >>>
> > >>> It works because I coded it so. The internal code uses -1 as
> > >>> special marker to skip a signal.
> > >>>
> > >>>
> > >>> Best regards,
> > >>> Tomasz Janeczko
> > >>> amibroker.com<http://amibroker.com>
> > >>>
> > >>> On 2010-07-20 17:36, rise_t575 wrote:
> > >>> >
> > >>> >
> > >>> >
> > >>> >
> > >>> > Tomasz,
> > >>> >
> > >>> > While I have no idea what exactly does happen when I set
> > >>> sig.Price to -1 and why this works, I can happily report that it *does*
> > >>> work - so thanks for
> > >>> the help!
> > >>> >
> > >>> > --- In
> > >>> [email protected]<mailto:amibroker%40yahoogroups.com>, Tomasz
> > >>> Janeczko<groups@> wrote:
> > >>> >> Hello,
> > >>> >>
> > >>> >> It is simple. By default AmiBroker opens positions in RANKED
> > >>> order (more preferred trades first).
> > >>> >> If at some point of going through the ranking it finds the
> > >>> trade that it can not open (for example
> > >>> >> due to insufficient funds) it will NOT open LOWER ranked
> > >>> trades because it is undesirable to have
> > >>> >> better candidates replaced by worse candidates when you run
> > >>> out of funds.
> > >>> >> When requested position size is non-zero and position size
> > >>> shrinking is ON AmiBroker will attempt
> > >>> >> to adjust pos size to lower value within user-defined
> > >>> constraints ("MinShares", Round lot size).
> > >>> >> It will go down as far as constraints allow, but if it reaches
> > >>> the barrier or zero it will reject the trade
> > >>> >> and all lower-ranked signals.
> > >>> >> Setting signal's pos size to zero in the beginning effectively
> > >>> means the same condition.
> > >>> >>
> > >>> >> You should NOT set position size to zero if you want to reject
> > >>> single trade BUT continue to handle lower-ranked signals.
> > >>> >>
> > >>> >> If you want to SKIP one signal, without affecting others, you
> > >>> should set Price property of that signal to -1 (minus one).
> > >>> >>
> > >>> >> Best regards,
> > >>> >> Tomasz Janeczko
> > >>> >> amibroker.com<http://amibroker.com>
> > >>> >>
> > >>> >> On 2010-07-20 12:42, rise_t575 wrote:
> > >>> >>> Thanks a lot - I will try your solution.
> > >>> >>> Do you have an idea *why* this is happening?
> > >>> >>>
> > >>> >>> --- In
> > >>> [email protected]<mailto:amibroker%40yahoogroups.com>, Tavan
> > >>> Taban<tavantaban@> wrote:
> > >>> >>>> I remember experiencing the same problem earlier. As far as
> > >>> I remember, it
> > >>> >>>> is something like, if it cancels one, cancels also the rest
> > >>> which are not
> > >>> >>>> coded to be rejected. I can dig more if it helps.
> > >>> >>>>
> > >>> >>>> Anyway, one solution alternative may be the following.
> > >>> >>>>
> > >>> >>>> for( sig = bo.GetFirstSignal( bar ); sig; sig =
> > >>> bo.GetNextSignal( bar ) )
> > >>> >>>> {
> > >>> >>>> if (IDontLikeThisSignal) sig.Type = 7;
> > >>> >>>> } // end if exit
> > >>> >>>>
> > >>> >>>>
> > >>> >>>> 2010/7/17 rise_t575<rise_t@>
> > >>> >>>>
> > >>> >>>>> Hello,
> > >>> >>>>>
> > >>> >>>>> I've noticed using mid-level CBT that when I set the
> > >>> position size to zero
> > >>> >>>>> for the signal in question (the reason for setting it to
> > >>> zero is slightly
> > >>> >>>>> complicated& not that important here - some data needed
> > >>> for a subsequent
> > >>> >>>>> calculation is {empty}), the trade is marked as "rejected"
> > >>> in AA's results
> > >>> >>>>> list (which is perfectly ok).
> > >>> >>>>> What is not "perfectly ok" is the fact that the backtester
> > >>> rejects the
> > >>> >>>>> following signals at the same bar as well (there's enough
> > >>> cash available and
> > >>> >>>>> position size is> 0).
> > >>> >>>>>
> > >>> >>>>> How can I prevent this?
> > >>> >>>>>
> > >>> >>>>>
> > >>> >>>>>
> > >>> >>>
> > >>> >>>
> > >>> >>> ------------------------------------
> > >>> >>>
> > >>> >>> **** 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<http://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<http://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
> > >
> > >
> > >
> > >
> >
>