PureBytes Links
Trading Reference Links
|
Hi Mike.
I'll try this. Thanks again!
Mike escreveu:
> Hi,
>
> I believe that you should be able to make it work from within the
> custom backtester. Your portfolio equity, on a bar by bar basis, is
> available as a property from the backtester object (e.g. bo.Equity).
>
> Similarly, the purchase price is available as a property from each
> signal object (sig.Price).
>
> Doing the math along the lines of the following should give you the
> number of shares:
>
> ((sig.PosSize / -100) * bo.Equity) / sig.Price
>
> Note that you must transform the position size from a negative whole
> value to a positive fraction before multiplying against the equity.
>
> http://www.amibroker.com/guide/a_custombacktest.html
>
> Mike
>
> --- In amibroker@xxxxxxxxxxxxxxx, Flávio Veloso <flavso@xxx> wrote:
>> Hi Mike.
>>
>> Thanks for your reply.
>>
>> Unfortunately I'm setting PositionSize as percent of current equity
>> (based on my stop), and I think that's the problem.
>>
>> I guess that if we knew the number of shares in advance, we could
> take
>> care of the issue in simple AFL:
>>
>> RoundLotSize = IIf(shares >= 100, 100, 1);
>>
>> Perhaps there is some way to get position size value *in dollars*
> using
>> the custom backtester? If yes, then we could just divide the dollar
>> value by the close to get the approximate number of shares. Do you
> know
>> if it is possible do that that?
>>
>> Mike escreveu:
>>>
>>> If you do not come up with any other solution, you can always
> alter
>>> the position size of each individual signal using custom
> backtester
>>> code.
>>>
>>> Assuming that you are setting numbers of shares in the PostionSize
>>> calculation (as opposed to percentage of equity), something along
> the
>>> lines of the following (untested) code should work:
>>>
>>> SetOption("UseCustomBacktestProc", True );
>>>
>>> if (Status("action")== actionPortfolio) {
>>> bo = GetBacktesterObject();
>>> bo.PreProcess();
>>>
>>> for (bar = 0; bar < BarCount; bar++) {
>>> for (sig = bo.GetFirstSignal(bar); sig; sig =
>>> bo.GetNextSignal(bar)) {
>>> if (sig.IsEntry() && sig.PosSize > 100) {
>>> sig.PosSize = floor(sig.PosSize/100) * 100;
>>> }
>>> }
>>>
>>> bo.ProcessTradeSignals(bar);
>>> }
>>>
>>> bo.PostProcess();
>>> }
>>>
>>> Mike
>>>
>>> --- In amibroker@xxxxxxxxxxxxxxx <mailto:amibroker%
> 40yahoogroups.com>,
>>> Flávio Veloso <flavso@> wrote:
>>> >
>>> > Hi all.
>>> >
>>> > Is it possible to use different round lot sizes (e.g. by
> setting
>>> > RoundLotSize variable) depending on the number of shares that
> are
>>> going
>>> > to be bought/short?
>>> >
>>> > Basically all I want is RoundLotSize = 100 for any position
> size
>>> that
>>> > results in more than 100 shares to be bought/short, and
> RoundLotSize
>>> = 1
>>> > for the rest.
>>> >
>>> > For example:
>>> >
>>> > Number of shares (based on PositionSize): 75
>>> > Use RoundLotSize = 1
>>> > Shares to buy = 75
>>> >
>>> > Number of shares (based on PositionSize): 125
>>> > Use RoundLotSize = 100
>>> > Shares to buy = 100
>>> >
>>> > Number of shares (based on PositionSize): 360
>>> > Use RoundLotSize = 100
>>> > Shares to buy = 300
>>> >
>>> > Anyone doing this? If so, how?
>>> >
>>> > Thanks in advance.
>>> >
>>> > --
>>> > Flávio
>>> >
>>>
>>>
>>
>> --
>> Flávio
>>
>
>
>
> ------------------------------------
>
> **** IMPORTANT ****
> This group is for the discussion between users only.
> This is *NOT* technical support channel.
>
> *********************
> TO GET TECHNICAL SUPPORT from AmiBroker please send an e-mail directly to
> SUPPORT {at} amibroker.com
> *********************
>
> For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG:
> http://www.amibroker.com/devlog/
>
> For other support material please check also:
> http://www.amibroker.com/support.html
>
> *********************************
> Yahoo! Groups Links
>
>
>
--
Flávio
------------------------------------
**** IMPORTANT ****
This group is for the discussion between users only.
This is *NOT* technical support channel.
*********************
TO GET TECHNICAL SUPPORT from AmiBroker please send an e-mail directly to
SUPPORT {at} amibroker.com
*********************
For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG:
http://www.amibroker.com/devlog/
For other support material please check also:
http://www.amibroker.com/support.html
*********************************
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:
mailto:amibroker-digest@xxxxxxxxxxxxxxx
mailto: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/
|