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

[amibroker] Re: Entry Time Delay



PureBytes Links

Trading Reference Links

You can't trace a whole array in a statement like that, as far as I'm
aware. Think of it like a Plot statement and use either string
concatenation with single numbers or the StrFormat function for more
detail:

for (i = 0; i < BarCount; i++)
    _TRACE("This is the close: " + Close[i]);

or:

for (i = 0; i < BarCount; i++)
    _TRACE(StrFormat("This is the close: %1.3f", Close[i]));

So for the Buy & Sell arrays, something like this:

dt = DateTime();    //  So you can see the date/time as well
for (i = 0; i < BarCount; i++)
    _TRACE(StrFormat("Bar: %1.0f, ", i) + DateTimeToStr(dt[i]) +
        StrFormat(", Buy = %1.0f, Sell = %1.0f", Buy[i], Sell[i]));

That will give output like this (with EOD data):

Bar: 469, 18/11/1998, Buy = 0, Sell = 0
Bar: 470, 19/11/1998, Buy = 0, Sell = 0
Bar: 471, 20/11/1998, Buy = 1, Sell = 0
Bar: 472, 23/11/1998, Buy = 0, Sell = 0
Bar: 473, 24/11/1998, Buy = 0, Sell = 0
Bar: 474, 25/11/1998, Buy = 0, Sell = 0
Bar: 475, 26/11/1998, Buy = 0, Sell = 0

Only do it over one or two stocks at a time though, otherwise you
could be generating hundreds or even thousands of lines for each stock
which will likely take a long time. One code at a time should be
enough to help find your problem.

GP


--- In amibroker@xxxxxxxxxxxxxxx, Ed Middleton <jjj_98@xxx> wrote:
>
> Ok I've got the DebugView software loaded and open.  I've added the
line:
>  
> _Trace("This is the close" + Close);
>  
> Getting nothing in the DebugView.
>  
> Not familiar at all with this DebugView software.   Can someone help
me get this working?
>  
> thx,
>  
>  
>   ----- Original Message ----- 
>   From:   gp_sydney 
>   To: amibroker@xxxxxxxxxxxxxxx 
>   Sent: Wednesday, July 04, 2007 9:13   AM
>   Subject: [amibroker] Re: Entry Time   Delay
>   
> 
>         
> Could be anything really. I don't have intra-day data and haven't
> played   around with multi-time frame code, so I can't easily check
this.
> 
> What   I'd be doing next though is using DebugView with some trace
> statements to   see if the Buy & Short arrays have anything in them.
> Trace inside a   loop to see what the value of Buy and Short are at
  each
> bar.
> 
> GP
> 
> --- In amibroker@xxxxxxxxxxxxxxx,   Ed Middleton <jjj_98@> wrote:
> >
> > gp_sydney,
> >   
> > Your logic makes sense but when I added it I still get no   trades
> being initiated. Below is my code. For the life of me I don't see   why
> your logic won't work. Could it be something in the   preferences?
> > 
> > 
> > // Simiple MOVING AVERAGE MULTI   TIMEFRAME BACKTEST 
> > 
> > // Notes: all trades must be triggered on   "Close", "0" days delay 
> > 
> > // in the backtest setup.
> >   
> > 
> > 
> > // Parameters
> > 
> >   LongPeriods=Param("Long Periods",17,5,21,3);
> > 
> >   LongPeriodsLTF=Param("Long PeriodsLTF",9,5,21,3);
> >   
> > NumberofPositions=Param("Positions",2,2,6,1);
> >   
> >  
FirstProfitTarget=Param("FirstProfitTarget",0.004,0.0001,0.0045,0.0001);
> >   
> > SecondProfitTarget   =
> Param("SecondProfitTarget",0.009,0.0001,0.0125,0.0001);
> >   
> >   TrailingStop=Param("TrailStop",0.001,0.0001,0.003,0..0001);
> >   
> > 
> > 
> > TimeFrameSet (in5Minute); // switch to 15 minute   time frame
> > 
> > // Calculate Moving Averages
> > 
> >   MAShort=MA(C,LongPeriods);
> > 
> >   MALong=Ref(MAShort,-2);
> > 
> > // Check for Long or Short   Signals
> > 
> > LongSignal = (C > MALong) AND (C > MAShort) AND   (MAShort > MALong);
> > 
> > ShortSignal = (C < MALong) AND (C   < MAShort) AND (MAShort < MALong);
> > 
> >   TimeFrameRestore(); // restore time frame to original
> > 
> >   
> > 
> > TimeFrameSet (in15Minute); // switch to 15 minute time   frame
> > 
> > // Calculate Moving Averages
> > 
> >   MAShortLT=MA(C,LongPeriodsLTF);
> > 
> >   MALongLT=Ref(MAShortLT,-1);
> > 
> > LongSignalLT = (C >   MALongLT) AND (C > MAShortLT) AND (MAShortLT >
> MALongLT);
> >   
> > ShortSignalLT = (C < MALongLT) AND (C < MAShortLT) AND   (MAShortLT <
> MALongLT);
> > 
> > SignalLatchLong =   Flip(LongSignalLT,ShortSignalLT);
> > 
> > SignalLatchShort   = Flip(ShortSignalLT, LongSignalLT);
> > 
> >   TimeFrameRestore(); // restore time frame to original
> > 
> >   
> > 
> > // Points only test is equivalent to trading just one   contract. This
> can be 
> > 
> > // easily accomplished using   Futures mode of the backtester AND
> adding the following one line to your   formula:
> > 
> > MarginDeposit = 1;
> > 
> >   PositionSize=NumberofPositions;
> > 
> > 
> > 
> >   
> > 
> > //Entry and Exit
> > 
> > EntryTimeCondition = IIf (   Minute() == 4 + 0*5, True,
> > 
> > IIf ( Minute() == 4 + 1*5,   True,
> > 
> > IIf ( Minute() == 4 + 2*5, True,
> > 
> > IIf (   Minute() == 4 + 3*5, True,
> > 
> > IIf ( Minute() == 4 + 4*5,   True,
> > 
> > IIf ( Minute() == 4 + 5*5, True,
> > 
> > IIf (   Minute() == 4 + 6*5, True,
> > 
> > IIf ( Minute() == 4 + 7*5,   True,
> > 
> > IIf ( Minute() == 4 + 8*5, True,
> > 
> > IIf (   Minute() == 4 + 9*5, True,
> > 
> > IIf ( Minute() == 4 + 10*5,   True,
> > 
> > IIf ( Minute() == 4 + 11*5,   True,False))))))))))));//Entry only
> occurs at the end of each 5   minute bar.
> > 
> > //Bars must be setup in preferences for "Time   stamp of compressed
> intraday bars shows:
> > 
> > // START time of   interval" as being checked off.
> > 
> > 
> > 
> > Cover =   (TimeFrameExpand(LongSignal, in5Minute) AND
EntryTimeCondition) 
> >   
> > OR (TimeFrameExpand(SignalLatchLong, in15Minute)   AND
> EntryTimeCondition) 
> > 
> > OR TimeNum() > 155800;
> >   
> > 
> > 
> > Sell = TimeFrameExpand(ShortSignal, in5Minute)   OR
> TimeFrameExpand(SignalLatchShort, in15Minute)
> > 
> >   OR TimeNum() > 155800;
> > 
> > 
> > 
> > Buy =   TimeFrameExpand(LongSignal, in5Minute)   AND
> TimeFrameExpand(SignalLatchLong, in15Minute)
> > 
> > AND   (TimeNum()>93300) AND (TimeNum() <153000) AND  
EntryTimeCondition;
> > 
> > 
> > 
> > 
> > 
> > Short   = TimeFrameExpand(ShortSignal, in5Minute)   AND
> TimeFrameExpand(SignalLatchShort, in15Minute)
> >   
> > AND (TimeNum()>93300) AND (TimeNum() <153000) AND  
EntryTimeCondition;
> > 
> > 
> > 
> > // Trade   Management
> > 
> > PriceatShort = 0;
> > 
> > LowSinceShort =   1000000;
> > 
> > PriceatBuy = 0;
> > 
> > HighSinceBuy =   0;
> > 
> > Exit = 0;
> > 
> > for( i = 0; i < BarCount;   i++)
> > 
> > {
> > 
> > if(PriceAtBuy == 0 AND   Buy[i])
> > 
> > {
> > 
> > PriceAtBuy = BuyPrice[i];
> >   
> > BarCountBuy = BarCount;
> > 
> > }
> > 
> >   if(PriceAtBuy > 0)
> > 
> > {
> > 
> > HighSinceBuy =   Max(High[i-1] , HighSinceBuy);
> > 
> > if(Exit == 0 AND High[i]   >= ((1 + FirstProfitTarget)* PriceAtBuy)) 
> > 
> > {
> >   
> > // first profit target hit - Scale Out
> > 
> > Exit =   1;
> > 
> > Buy[i] = sigScaleOut;
> > 
> > BuyPrice[i] = ((1 +   FirstProfitTarget)* PriceAtBuy) ; 
> > 
> > }
> > 
> >   if(Exit == 0 AND High[i] >= ((1 + SecondProfitTarget)*
PriceAtBuy))   
> > 
> > {
> > 
> > // Second profit target hit -   Exit
> > 
> > Exit = 2;
> > 
> > Sell[i] = 1;
> > 
> >   SellPrice[i] = ((1 + SecondProfitTarget)* PriceAtBuy) ; 
> > 
> >   }
> > 
> > if((Low[i] <= (HighSinceBuy *(1- TrailingStop)))   AND (i !=
BarCountbuy))
> > 
> > {
> > 
> > // trailing   stop hit - exit
> > 
> > Exit = 2;
> > 
> > Sell[i] =   1;
> > 
> > SellPrice[i] = (HighSinceBuy *(1-   TrailingStop));
> > 
> > }
> > 
> > if(Exit == 2)
> >   
> > {
> > 
> > Exit = 0;
> > 
> > PriceAtBuy = 0;
> >   
> > HighSinceBuy = 0;
> > 
> > }
> > 
> > }
> >   
> > 
> > 
> > if(PriceatShort == 0 AND Short[i])
> > 
> >   {
> > 
> > PriceatShort = ShortPrice[i];
> > 
> >   BarCountShort = BarCount;
> > 
> > }
> > 
> > if(PriceatShort   > 0)
> > 
> > { 
> > 
> > LowSinceShort = Min(Low[i-1] ,   LowSinceShort);
> > 
> > if(Exit == 0 AND Low[i] <=   (PriceatShort *(1 - FirstProfitTarget))) 
> > 
> > {
> >   
> > // first profit target hit - Scale Out
> > 
> > Exit =   1;
> > 
> > Short[i] = sigScaleOut;
> > 
> >   ShortPrice[i]=(PriceatShort *(1 - FirstProfitTarget));
> >   
> > }
> > 
> > if(Exit == 0 AND Low[i] <= (PriceatShort *(1 -  
SecondProfitTarget))) 
> > 
> > {
> > 
> > // first   profit target hit - Scale Out
> > 
> > Exit = 2;
> > 
> >   Cover[i] = 1;
> > 
> > CoverPrice[i]=(PriceatShort *(1 -   SecondProfitTarget));
> > 
> > }
> > 
> > if((High[i]   >= (LowSinceShort * (1 + TrailingStop))) AND (i   !=
> BarCountShort)) 
> > 
> > {
> > 
> > // trailing   stop hit - exit
> > 
> > Exit = 2;
> > 
> > Cover[i] =   1;
> > 
> > CoverPrice[i] = (LowSinceShort *(1+   TrailingStop));
> > 
> > }
> > 
> > if(Exit == 2)
> >   
> > {
> > 
> > Exit = 0;
> > 
> > PriceatShort =   0;
> > 
> > LowSinceShort = 1000000;
> > 
> > }
> >   
> > }
> > 
> > 
> > 
> > }
> > 
> >   SetPositionSize(50,spsPercentOfPosition*((Buy ==  
sigScaleOut)+(Short 
> > 
> > == sigScaleOut)));
> >   
> > //scale out of 50% of position 
> > 
> > 
> > 
> >   Mask = BarsSince(Sell) >= 5 AND BarsSince(Cover) >= 5;
> > 
> >   Mask = IIf(IsNull(Mask), True, Mask); // Convert Nulls to Trues
> >   
> > Buy = Buy AND Mask;
> > 
> > Short = Short AND Mask; 
> >   
> > ----- Original Message ----- 
> > From: gp_sydney 
> > To: amibroker@xxxxxxxxxxxxxxx   
> > Sent: Tuesday, July 03, 2007 6:58 PM
> > Subject: [amibroker] Re:   Entry Time Delay
> > 
> > 
> > 
> > Fred,
> > 
> > The   problem you're describing is because the BarsSince array returns
> > Null   values before the first True in the array you're testing.
If you
> >   convert them back to True values, then your statements should work:
> >   
> > Mask = BarsSince(Sell) >= 5 AND BarsSince(Cover) >= 5;
> >   Mask = IIf(IsNull(Mask), True, Mask); // Convert Nulls to Trues
> >   Buy = Buy AND Mask;
> > Short = Short AND Mask;
> > 
> > Now the   Mask array will start off with all True values before the
> > first Sell   or Cover signal, allowing earlier Buy and Short signals
> to
> >   remain.
> > 
> > GP
> > 
> > --- In amibroker@xxxxxxxxxxxxxxx,   Ed Middleton <jjj_98@> wrote:
> > >
> > > Herman,
> >   > 
> > > Actually I think you meant to type:
> > > 
> >   > Buy = Buy AND BarsSince(Sell)>=5 AND BarsSince(Cover)   >=5;
> > > 
> > > similarily,
> > > 
> > >   Short = Short AND BarsSince(Sell)>=5 AND BarsSince(Cover)   >=5;
> > > 
> > > In my head this should only allow a "Buy"   (or "Short") 5 bars
after
> > the last trade exit.
> > > 
> >   > Now the problem with this approach is that there cannot be a
Sell   Or
> > Cover without a trade (A Buy or Short)first being put on by
> >   definition. You cannot end a trade without first putting on a trade.
> >   In the above, you cannot put on a trade until 5 days after a Sell or
> >   Cover. So when you run this code, no trades are initiated.
> > >   
> > > If there was a way of initiating the code with a Sell and   Cover
> > signal on Bar "0" then I'd assume that on Bar 5 that the  
conditions in
> > the Buy and Short code at the top would be satisfied. I   don't know
> > how to intiate the code so that it starts with a sell and   cover
> signal.
> > > 
> > > I've tried: Sell = Cover =   1
> > > 
> > > I've tried in my if loop,
> > > If (i ==   0)
> > > {
> > > sell(i) = 1;
> > > cover(i) = 1;
> >   > }
> > > 
> > > Neither has worked.
> > > 
> >   > Am I missing something in your logic?
> > > 
> > >   thanks,
> > > 
> > > Fred
> > > 
> > > -----   Original Message ----- 
> > > From: Herman 
> > > To: Ed   Middleton 
> > > Sent: Friday, June 29, 2007 5:31 AM
> > >   Subject: Re: [amibroker] Entry Time Delay
> > > 
> > > 
> >   > 
> > > 
> > > 
> > > 
> > > 
> > >   Your system here...
> > > 
> > > 
> > > 
> > >   
> > > Sell = Sell AND BarsSince(Sell) >= 5;
> > > 
> >   > 
> > > 
> > > 
> > > herman
> > > 
> >   > 
> > > 
> > > 
> > > Thursday, June 28, 2007,   9:36:11 PM, you wrote:
> > > 
> > > 
> > > 
> > >   
> > > >
> > > 
> > > Ok now really frustrated.   Nothing seems to be working.
> > > 
> > > 
> > > 
> >   > Here's what I want to do:
> > > 
> > > Wait 5 bars after a   sell or cover before buying or shorting
> > again. You would think this   was simple but as you can see 
> > below it is causing me some trouble.   Any help would be 
> > appreciated.
> > > 
> > > 
> >   > 
> > > thx,
> > > 
> > > 
> > > 
> > >   Fred
> > > 
> > > 
> > > 
> > > ----- Original   Message ----- 
> > > 
> > > From: Ed Middleton 
> > >   
> > > To: amibroker@xxxxxxxxxxxxxxx   
> > > 
> > > Sent: Thursday, June 28, 2007 2:37 PM
> > >   
> > > Subject: Re: [amibroker] Entry Time Delay
> > > 
> >   > 
> > > 
> > > 
> > > Ok, I've found the problem.   BarsSince(Sell) and
> > BarsSince(Cover) never = anything because there is   not Sells or 
> > Covers to get a value from and thus no buys or shorts.   Somehow I 
> > need to be able to allow the first buy or Short to occur   then
> > everything will be ok.
> > > 
> > > 
> > >   
> > > Any suggestions?
> > > 
> > > 
> > >   
> > > thx,
> > > 
> > > 
> > > 
> > >   ----- Original Message ----- 
> > > 
> > > From: Ed Middleton   
> > > 
> > > To: amibroker@xxxxxxxxxxxxxxx   
> > > 
> > > Sent: Thursday, June 28, 2007 11:48 AM
> >   > 
> > > Subject: Re: [amibroker] Entry Time Delay
> > >   
> > > 
> > > 
> > > 
> > > Also tried:
> >   > 
> > > BarsSinceExit =   Min(BarsSince(Sell),BarsSince(Cover));
> > > 
> > >   Added to Buy and Short lines:
> > > 
> > > AND (BarsSinceExit   > 0);
> > > 
> > > This should have gotten me in on the next   5 minute bar. No
> > luck with this procedure either. I'm missing   something in my
> > programming logic.
> > > 
> > > 
> >   > 
> > > 
> > > 
> > > ----- Original Message -----   
> > > 
> > > From: jjj_98 
> > > 
> > > To: amibroker@xxxxxxxxxxxxxxx   
> > > 
> > > Sent: Thursday, June 28, 2007 11:04 AM
> >   > 
> > > Subject: [amibroker] Entry Time Delay
> > > 
> >   > 
> > > 
> > > 
> > > After exiting a trade I want to   wait 5 minutes before
> > re-entering a 
> > > 
> > > trade   so here's what code I've tried but it does not seem to be 
> > >   
> > > making a difference in the next entry. Do you see any   problems?
> > > 
> > > 
> > > 
> > > 
> > >   //Initialize last trade exit times
> > > 
> > > 
> > >   
> > > 
> > > LastSellTime = LastCoverTime = 000000;
> >   > 
> > > 
> > > 
> > > 
> > > // Calculates   Amount of time since last exit
> > > 
> > > 
> > >   
> > > 
> > > TimeSinceLastTrade = Min((TimeNum() -   
> > LastSellTime),(TimeNum() - 
> > > 
> > >   LastCoverTime));
> > > 
> > > 
> > > 
> > >   
> > > // I added this to my BUY and SHORT instructions so that   the
> > time to 
> > > 
> > > re-enter the next trade must   be greater than 5 minutes.
> > > 
> > > 
> > > 
> >   > 
> > > AND (TimeSinceLastTrade > 000500);
> > > 
> >   > 
> > > 
> > > 
> > > //In my logic added the   following to get the time of the
> > Last Sell 
> > > 
> > >   and Last Cover
> > > 
> > > 
> > > 
> > > 
> >   > if(Sell[i] == 1)
> > > 
> > > {
> > > 
> > >   LastSellTime = TimeNum();
> > > 
> > > }
> > > 
> >   > 
> > > 
> > > 
> > > if(Cover[i] == 1)
> > >   
> > > {
> > > 
> > > LastCoverTime = TimeNum();
> >   > 
> > > }
> > > 
> > > 
> > > 
> > >   
> > > ---------------------------------
> > >   
> > > Choose the right car based on your needs. Check out Yahoo!   
> > Autos new Car Finder tool. 
> > > 
> > >   ---------------------------------
> > > 
> > >   Get the Yahoo! toolbar and be alerted to new email wherever
> > you're   surfing. 
> > > 
> > > 
> > > 
> > > 
> > >   
> > > 
> > >   ---------------------------------
> > > 
> > >   Boardwalk for $500? In 2007? Ha! 
> > > 
> > > Play Monopoly   Here and Now (it's updated for today's economy) at
> > Yahoo!   Games.
> > > 
> > > 
> > > 
> > > #ygrp-mlmsg {   FONT-SIZE: small; FONT-FAMILY:
> >   arial,helvetica,clean,sans-serif}#ygrp-mlmsg TABLE {   }#ygrp-mlmsg
> > SELECT { FONT: 99%   arial,helvetica,clean,sans-serif}INPUT { FONT:
> 99%
> >   arial,helvetica,clean,sans-serif}TEXTAREA { FONT: 99%
> >   arial,helvetica,clean,sans-serif}#ygrp-mlmsg PRE { FONT:   100%
> > monospace}CODE { FONT: 100% monospace}#ygrp-mlmsg * {   LINE-HEIGHT:
> > 1.22em}#ygrp-text { FONT-FAMILY:   Georgia}#ygrp-text P { MARGIN: 0px
> > 0px 1em}#ygrp-tpmsgs { CLEAR:   both; FONT-FAMILY:
Arial}#ygrp-vitnav {
> > FONT-SIZE: 77%; MARGIN:   0px; PADDING-TOP: 10px; FONT-FAMILY:
> > Verdana}#ygrp-vitnav A {   PADDING-RIGHT: 1px; PADDING-LEFT: 1px;
> > PADDING-BOTTOM: 0px;   PADDING-TOP: 0px}#ygrp-actbar { CLEAR: both;
> > MARGIN: 25px 0px; COLOR:   #666; WHITE-SPACE: nowrap; TEXT-ALIGN:
> > right}#ygrp-actbar ..left {   FLOAT: left; WHITE-SPACE: nowrap}..bld {
> > FONT-WEIGHT: bold}#ygrp-grft   { PADDING-RIGHT: 0px; PADDING-LEFT:
0px;
> > FONT-SIZE: 77%;   PADDING-BOTTOM: 15px; PADDING-TOP: 15px;
FONT-FAMILY:
> > >   Verdana}#ygrp-ft { PADDING-RIGHT: 0px; BORDER-TOP: #666 1px  
solid;
> > PADDING-LEFT: 0px; FONT-SIZE: 77%; PADDING-BOTTOM: 5px;   PADDING-TOP:
> > 5px; FONT-FAMILY: verdana}#ygrp-mlmsg #logo {   PADDING-BOTTOM:
> > 10px}#ygrp-vital { PADDING-RIGHT: 0px; PADDING-LEFT:   8px;
> > MARGIN-BOTTOM: 20px; PADDING-BOTTOM: 8px; PADDING-TOP:   2px;
> > BACKGROUND-COLOR: #e0ecee}#ygrp-vital #vithd { FONT-WEIGHT:   bold;
> > FONT-SIZE: 77%; TEXT-TRANSFORM: uppercase; COLOR: #333;   FONT-FAMILY:
> > Verdana}#ygrp-vital UL { PADDING-RIGHT: 0px;   PADDING-LEFT: 0px;
> > PADDING-BOTTOM: 0px; MARGIN: 2px 0px; PADDING-TOP:   0px}#ygrp-vital
> > UL LI { CLEAR: both; BORDER-RIGHT: #e0ecee 1px solid;   BORDER-TOP:
> > #e0ecee 1px solid; BORDER-LEFT: #e0ecee 1px solid;   BORDER-BOTTOM:
> > #e0ecee 1px solid; LIST-STYLE-TYPE: none}#ygrp-vital UL   LI .ct {
> > PADDING-RIGHT: 0.5em; FONT-WEIGHT: bold; FLOAT: right; WIDTH:   2em;
> > COLOR: #ff7900; TEXT-ALIGN: right}#ygrp-vital UL LI ..cat   {
> > FONT-WEIGHT: bold}#ygrp-vital A { TEXT-DECORATION:   none}#ygrp-vital
> > A:hover {
> > > TEXT-DECORATION:   underline}#ygrp-sponsor #hd { FONT-SIZE: 77%;
> > COLOR:   #999}#ygrp-sponsor #ov { PADDING-RIGHT: 13px; PADDING-LEFT:
> > 13px;   MARGIN-BOTTOM: 20px; PADDING-BOTTOM: 6px; PADDING-TOP: 6px;
> >   BACKGROUND-COLOR: #e0ecee}#ygrp-sponsor #ov UL { PADDING-RIGHT:
  0px;
> > PADDING-LEFT: 8px; PADDING-BOTTOM: 0px; MARGIN: 0px;   PADDING-TOP:
> > 0px}#ygrp-sponsor #ov LI { PADDING-RIGHT: 0px;   PADDING-LEFT: 0px;
> > FONT-SIZE: 77%; PADDING-BOTTOM: 6px; PADDING-TOP:   6px;
> > LIST-STYLE-TYPE: square}#ygrp-sponsor #ov LI A { FONT-SIZE:   130%;
> > TEXT-DECORATION: none}#ygrp-sponsor #nc { PADDING-RIGHT:   8px;
> > PADDING-LEFT: 8px; MARGIN-BOTTOM: 20px; PADDING-BOTTOM:   0px;
> > PADDING-TOP: 0px; BACKGROUND-COLOR: #eee}#ygrp-sponsor ..ad   {
> > PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 8px;
> >   PADDING-TOP: 8px}#ygrp-sponsor .ad #hd1 { FONT-WEIGHT: bold;
> >   FONT-SIZE: 100%; COLOR: #628c2a; LINE-HEIGHT: 122%; FONT-FAMILY:
> >   Arial}#ygrp-sponsor .ad A { TEXT-DECORATION: none}#ygrp-sponsor
  .ad
> > A:hover { TEXT-DECORATION:
> > >   underline}#ygrp-sponsor .ad P { MARGIN: 0px}o { FONT-SIZE:
> >   0px}..MsoNormal { MARGIN: 0px}#ygrp-text TT { FONT-SIZE:
> >   120%}BLOCKQUOTE { MARGIN: 0px 0px 0px 4px}..replbq { }
> > > 
> >   > ---------------------------------
> > > Building a   website is a piece of cake. 
> > > Yahoo! Small Business gives you all   the tools to get online.
> > >
> > 
> > 
> > 
> >   #ygrp-mlmsg { FONT-SIZE: small;   FONT-FAMILY:
> arial,helvetica,clean,sans-serif}#ygrp-mlmsg   TABLE { }#ygrp-mlmsg
> SELECT { FONT: 99%   arial,helvetica,clean,sans-serif}INPUT { FONT:
  99%
> arial,helvetica,clean,sans-serif}TEXTAREA { FONT:   99%
> arial,helvetica,clean,sans-serif}#ygrp-mlmsg PRE { FONT:   100%
> monospace}CODE { FONT: 100% monospace}#ygrp-mlmsg * {   LINE-HEIGHT:
> 1.22em}#ygrp-text { FONT-FAMILY: Georgia}#ygrp-text   P { MARGIN: 0px
> 0px 1em}#ygrp-tpmsgs { CLEAR: both; FONT-FAMILY:   Arial}#ygrp-vitnav {
> FONT-SIZE: 77%; MARGIN: 0px; PADDING-TOP: 10px;   FONT-FAMILY:
> Verdana}#ygrp-vitnav A { PADDING-RIGHT: 1px;   PADDING-LEFT: 1px;
> PADDING-BOTTOM: 0px; PADDING-TOP: 0px}#ygrp-actbar {   CLEAR: both;
> MARGIN: 25px 0px; COLOR: #666; WHITE-SPACE: nowrap;   TEXT-ALIGN:
> right}#ygrp-actbar .left { FLOAT: left; WHITE-SPACE:   nowrap}..bld {
> FONT-WEIGHT: bold}#ygrp-grft { PADDING-RIGHT: 0px;   PADDING-LEFT: 0px;
> FONT-SIZE: 77%; PADDING-BOTTOM: 15px; PADDING-TOP: 15px;   FONT-FAMILY:
> > Verdana}#ygrp-ft { PADDING-RIGHT: 0px; BORDER-TOP:   #666 1px solid;
> PADDING-LEFT: 0px; FONT-SIZE: 77%; PADDING-BOTTOM: 5px;   PADDING-TOP:
> 5px; FONT-FAMILY: verdana}#ygrp-mlmsg #logo {   PADDING-BOTTOM:
> 10px}#ygrp-vital { PADDING-RIGHT: 0px; PADDING-LEFT:   8px;
> MARGIN-BOTTOM: 20px; PADDING-BOTTOM: 8px; PADDING-TOP:   2px;
> BACKGROUND-COLOR: #e0ecee}#ygrp-vital #vithd { FONT-WEIGHT:   bold;
> FONT-SIZE: 77%; TEXT-TRANSFORM: uppercase; COLOR: #333;   FONT-FAMILY:
> Verdana}#ygrp-vital UL { PADDING-RIGHT: 0px;   PADDING-LEFT: 0px;
> PADDING-BOTTOM: 0px; MARGIN: 2px 0px; PADDING-TOP:   0px}#ygrp-vital
> UL LI { CLEAR: both; BORDER-RIGHT: #e0ecee 1px solid;   BORDER-TOP:
> #e0ecee 1px solid; BORDER-LEFT: #e0ecee 1px solid;   BORDER-BOTTOM:
> #e0ecee 1px solid; LIST-STYLE-TYPE: none}#ygrp-vital UL LI   .ct {
> PADDING-RIGHT: 0.5em; FONT-WEIGHT: bold; FLOAT: right; WIDTH:   2em;
> COLOR: #ff7900; TEXT-ALIGN: right}#ygrp-vital UL LI .cat   {
> FONT-WEIGHT: bold}#ygrp-vital A { TEXT-DECORATION:   none}#ygrp-vital
> A:hover {
> > TEXT-DECORATION:   underline}#ygrp-sponsor #hd { FONT-SIZE: 77%;
> COLOR:   #999}#ygrp-sponsor #ov { PADDING-RIGHT: 13px; PADDING-LEFT:
> 13px;   MARGIN-BOTTOM: 20px; PADDING-BOTTOM: 6px; PADDING-TOP:   6px;
> BACKGROUND-COLOR: #e0ecee}#ygrp-sponsor #ov UL { PADDING-RIGHT:   0px;
> PADDING-LEFT: 8px; PADDING-BOTTOM: 0px; MARGIN: 0px;   PADDING-TOP:
> 0px}#ygrp-sponsor #ov LI { PADDING-RIGHT: 0px; PADDING-LEFT:   0px;
> FONT-SIZE: 77%; PADDING-BOTTOM: 6px; PADDING-TOP:   6px;
> LIST-STYLE-TYPE: square}#ygrp-sponsor #ov LI A { FONT-SIZE:   130%;
> TEXT-DECORATION: none}#ygrp-sponsor #nc { PADDING-RIGHT:   8px;
> PADDING-LEFT: 8px; MARGIN-BOTTOM: 20px; PADDING-BOTTOM:   0px;
> PADDING-TOP: 0px; BACKGROUND-COLOR: #eee}#ygrp-sponsor .ad   {
> PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM:   8px;
> PADDING-TOP: 8px}#ygrp-sponsor .ad #hd1 { FONT-WEIGHT:   bold;
> FONT-SIZE: 100%; COLOR: #628c2a; LINE-HEIGHT: 122%;   FONT-FAMILY:
> Arial}#ygrp-sponsor .ad A { TEXT-DECORATION:   none}#ygrp-sponsor .ad
> A:hover { TEXT-DECORATION:
> >   underline}#ygrp-sponsor .ad P { MARGIN: 0px}o {   FONT-SIZE:
> 0px}..MsoNormal { MARGIN: 0px}#ygrp-text TT {   FONT-SIZE:
> 120%}BLOCKQUOTE { MARGIN: 0px 0px 0px 4px}..replbq { }
> >   
> > ---------------------------------
> > Be a better   Heartthrob. Get better relationship answers from someone
> who knows.
> >   Yahoo! Answers - Check it out.
> >
> 
> 
> 
>    #ygrp-mlmsg {	FONT-SIZE: small; FONT-FAMILY:
arial,helvetica,clean,sans-serif}#ygrp-mlmsg TABLE {	}#ygrp-mlmsg
SELECT {	FONT: 99% arial,helvetica,clean,sans-serif}INPUT {	FONT: 99%
arial,helvetica,clean,sans-serif}TEXTAREA {	FONT: 99%
arial,helvetica,clean,sans-serif}#ygrp-mlmsg PRE {	FONT: 100%
monospace}CODE {	FONT: 100% monospace}#ygrp-mlmsg * {	LINE-HEIGHT:
1.22em}#ygrp-text {	FONT-FAMILY: Georgia}#ygrp-text P {	MARGIN: 0px
0px 1em}#ygrp-tpmsgs {	CLEAR: both; FONT-FAMILY: Arial}#ygrp-vitnav {
FONT-SIZE: 77%; MARGIN: 0px; PADDING-TOP: 10px; FONT-FAMILY:
Verdana}#ygrp-vitnav A {	PADDING-RIGHT: 1px; PADDING-LEFT: 1px;
PADDING-BOTTOM: 0px; PADDING-TOP: 0px}#ygrp-actbar {	CLEAR: both;
MARGIN: 25px 0px; COLOR: #666; WHITE-SPACE: nowrap; TEXT-ALIGN:
right}#ygrp-actbar .left {	FLOAT: left; WHITE-SPACE: nowrap}..bld {
FONT-WEIGHT: bold}#ygrp-grft {	PADDING-RIGHT: 0px; PADDING-LEFT: 0px;
FONT-SIZE: 77%; PADDING-BOTTOM: 15px; PADDING-TOP: 15px; FONT-FAMILY:
>  Verdana}#ygrp-ft {	PADDING-RIGHT: 0px; BORDER-TOP: #666 1px solid;
PADDING-LEFT: 0px; FONT-SIZE: 77%; PADDING-BOTTOM: 5px; PADDING-TOP:
5px; FONT-FAMILY: verdana}#ygrp-mlmsg #logo {	PADDING-BOTTOM:
10px}#ygrp-vital {	PADDING-RIGHT: 0px; PADDING-LEFT: 8px;
MARGIN-BOTTOM: 20px; PADDING-BOTTOM: 8px; PADDING-TOP: 2px;
BACKGROUND-COLOR: #e0ecee}#ygrp-vital #vithd {	FONT-WEIGHT: bold;
FONT-SIZE: 77%; TEXT-TRANSFORM: uppercase; COLOR: #333; FONT-FAMILY:
Verdana}#ygrp-vital UL {	PADDING-RIGHT: 0px; PADDING-LEFT: 0px;
PADDING-BOTTOM: 0px; MARGIN: 2px 0px; PADDING-TOP: 0px}#ygrp-vital
UL LI {	CLEAR: both; BORDER-RIGHT: #e0ecee 1px solid; BORDER-TOP:
#e0ecee 1px solid; BORDER-LEFT: #e0ecee 1px solid; BORDER-BOTTOM:
#e0ecee 1px solid; LIST-STYLE-TYPE: none}#ygrp-vital UL LI .ct {
PADDING-RIGHT: 0.5em; FONT-WEIGHT: bold; FLOAT: right; WIDTH: 2em;
COLOR: #ff7900; TEXT-ALIGN: right}#ygrp-vital UL LI .cat {
FONT-WEIGHT: bold}#ygrp-vital A {	TEXT-DECORATION: none}#ygrp-vital
A:hover {
> 	TEXT-DECORATION: underline}#ygrp-sponsor #hd {	FONT-SIZE: 77%;
COLOR: #999}#ygrp-sponsor #ov {	PADDING-RIGHT: 13px; PADDING-LEFT:
13px; MARGIN-BOTTOM: 20px; PADDING-BOTTOM: 6px; PADDING-TOP: 6px;
BACKGROUND-COLOR: #e0ecee}#ygrp-sponsor #ov UL {	PADDING-RIGHT: 0px;
PADDING-LEFT: 8px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP:
0px}#ygrp-sponsor #ov LI {	PADDING-RIGHT: 0px; PADDING-LEFT: 0px;
FONT-SIZE: 77%; PADDING-BOTTOM: 6px; PADDING-TOP: 6px;
LIST-STYLE-TYPE: square}#ygrp-sponsor #ov LI A {	FONT-SIZE: 130%;
TEXT-DECORATION: none}#ygrp-sponsor #nc {	PADDING-RIGHT: 8px;
PADDING-LEFT: 8px; MARGIN-BOTTOM: 20px; PADDING-BOTTOM: 0px;
PADDING-TOP: 0px; BACKGROUND-COLOR: #eee}#ygrp-sponsor .ad {
PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 8px;
PADDING-TOP: 8px}#ygrp-sponsor .ad #hd1 {	FONT-WEIGHT: bold;
FONT-SIZE: 100%; COLOR: #628c2a; LINE-HEIGHT: 122%; FONT-FAMILY:
Arial}#ygrp-sponsor .ad A {	TEXT-DECORATION: none}#ygrp-sponsor .ad
A:hover {	TEXT-DECORATION:
>  underline}#ygrp-sponsor .ad P {	MARGIN: 0px}o {	FONT-SIZE:
0px}..MsoNormal {	MARGIN: 0px}#ygrp-text TT {	FONT-SIZE:
120%}BLOCKQUOTE {	MARGIN: 0px 0px 0px 4px}..replbq {	}
>        
> ---------------------------------
> Choose the right car based on your needs.  Check out Yahoo! Autos
new Car Finder tool.
>




Please note that this group is for discussion between users only.

To get 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/