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

[amibroker] Re: Buying at open -- In Real Life



PureBytes Links

Trading Reference Links

Hi Mark,

Thank you for your very prompt reply.
I will study your code shortly.

I personally do not use limit shares by % of one bar's volume,
because when I backtest for a long period of time (more than 10
years) my equity grows so big so fast that, the volume limit
makes recent years not accounted for.

For instance, suppose I start out with $30000 and I have 10% limit
on the bar of trade.  At the beginning, the 10% limit is no issue
because I don't have much money to begin with.  But later on, I might
have like 4 million dollars and that's when things get problematic;
with that amount of money, the trades I'm making is so small to my
cash position that, I would see situations where my system is hardly
working yet I maintain high Cumulative Annual Return because bad
trades don't hurt my cash position.

When designing a system, this is a big issue; you don't want to have
a non-working system disguised like working.

Your approach of using EMA as a limit is very interesting however.
I will see how I can incorporate it into my system.

Thank you,

intermilan04

--- In amibroker@xxxxxxxxxxxxxxx, "Mark H" <amibroker@xxx> wrote:
>
> Limit shares by % of one bar's volume is one of the worst practices
in backtesting.
> I am always a bit puzzled by why everybody is concerned about
"looking into the future" but few people pay attention to this practice.
> It is "looking into the future" in terms of volume! When you place
an order in the morning, do you know today's volume?
> And position sizing has great impact on system performance.
> 
> Anyway, to use 1% EMA(V,50) of today as limit for tomorrow's entry,
you may need to use CBT to do backtest.
> Here is what I do: (normal position size is 10% of equity)
> 
> ......
> SetPositionSize(EMA(V,50) * 0.01 * BuyPrice, spsValue ); 
> 
> ......
> 
> if( Status("action") == actionPortfolio )
> 
> { 
> 
> bo = GetBacktesterObject(); 
> 
> ..........
> 
> for ( sig=bo.GetFirstSignal(bar); sig; sig=bo.GetNextSignal(bar)) 
> 
> { 
> 
> // Only one position per symbol
> 
> if (sig.isEntry() AND sig.Price != -1 AND IsNull( bo.FindOpenPos(
sig.Symbol ))) 
> 
> { 
> 
> // sig.PosSize is passed from Phase I. It is %1 of EMA(V, 50).
> 
> ps = Min(sig.PosSize, bo.Equity * 0.10); 
> 
> // long only
> 
> bo.EnterTrade(bar, sig.symbol, True, sig.Price, ps,
sig.PosScore,sig.RoundLotSize);
> 
> } 
> 
> } 
> 
> 
> 
>   ----- Original Message ----- 
>   From: intermilan04 
>   To: amibroker@xxxxxxxxxxxxxxx 
>   Sent: Tuesday, August 15, 2006 11:37 PM
>   Subject: [amibroker] Re: Buying at open -- In Real Life
> 
> 
>   Hi Mark,
> 
>   Very interesting approach. How do you limit the volume like how you
>   do? I am aware you can limit by % of one bar's volume, but not sure
>   if you could do like 1% of 50 period EMA of volume.
> 
>   Regards,
> 
>   intermilan04
> 
>   --- In amibroker@xxxxxxxxxxxxxxx, "Mark H" <amibroker@> wrote:
>   >
>   > Yes. My system buys/sells at open since I still have a day job. The
>   results have been very close to those of backtest.
>   > I think it contribute to two factors: I use IB which in most cases
>   can get you the exact open prices; my system limits the shares to buy
>   to 1% of 50 period EMA of volume.
>   > 
>   > ----- Original Message ----- 
>   > From: intermilan04 
>   > To: amibroker@xxxxxxxxxxxxxxx 
>   > Sent: Tuesday, August 15, 2006 2:30 AM
>   > Subject: [amibroker] Buying at open -- In Real Life
>   > 
>   > 
>   > Hi all,
>   > 
>   > I'm just curious if anyone here are buying and selling securities at
>   > the open with market orders, i.e. orders are placed BEFORE
MARKET OPEN
>   > and they get executed as soon as the market opens.
>   > 
>   > I have noticed that buying at the open might help you get cheap
>   > shares, but the reverse is also true...you might sell your shares at
>   > really bad bids.
>   > 
>   > The reason why I'm bringing it up is, my system on Amibroker is
>   > designed to trade at the open. And strangely enough, my system isn't
>   > doing too well ever since I started using it...perhaps it's because
>   > I'm getting bad bids and asks by placing market orders overnight?
>   > 
>   > I'm not quite sure how the first trade occurs, in theory I sell
to the
>   > highest bidder but with low liquidity of pre-market trading, what if
>   > the highest bid is absurdly low?
>   > 
>   > Any thoughts on this is greatly appreciated.
>   > 
>   > Regards,
>   > 
>   > intermilan04
>   >
>