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

Re: [amibroker] Re: Holy Grail? NOT!



PureBytes Links

Trading Reference Links

Thomas,

You are quite correct in your assertion that buying without a delay on a 
stop is feasible, using the previous day's price as the signal from which to 
take today's stop. What you are coding is very similar to a system I've been 
playing with lately (the Professional Breakout System?). A problem you may 
be running into is the fact that you are using both the long and short modes 
at the same time. There's no way of knowing which trade took place using EOD 
data. If you get a simultaneous long and short signal on the same day, the 
long trade will be exited by the short and you will be short. Try separating 
the long and short modes and backtest each separately. You'll get far worse 
results. You will also find that if you add the results for long and short 
together, the sum will not be anywhere near what you get with simultaneous 
long and short combined. Check it out.

Al V.


>From: "tchan95014 <tchan95014@xxxxxxxxx>" <tchan95014@xxxxxxxxx>
>Reply-To: amibroker@xxxxxxxxxxxxxxx
>To: amibroker@xxxxxxxxxxxxxxx
>Subject: [amibroker] Re: Holy Grail? NOT!
>Date: Mon, 10 Feb 2003 19:41:15 -0000
>
>Hi, Jim,
>
>If you could kindly re-read my comment on the AFL code.
>
>There I mentioned that I am using the breakout price generated on
>YESTERDAY's close, if TODAY's high is higher
>than the long breakout price, then long, if TODAY's low is lower than
>the short breakout price, then short.
>Since the breakout price is set the day before, one can always enter
>a STOP price order and
>wait for it to be triggered. That is, you enter a STOP order after
>the CLOSE yesterday, and if TODAY's price
>go across the breakout price, that STOP price is triggered
>automatically, apparently I am waiting TODAY for
>this STOP price to be triggered, so there should be NO trade delay.
>
>NOTE: I do not use the info from [settings...], I define my own
>buyprice/sellprice/shortprice/coverprice.
>
>Please check the [priceB] and [priceS], I have used ref(xxx, -1) to
>ensure I am using the previous day's breakout
>price.
>
>I have my mind set on the TRADING day not on SIGNAL generation day, I
>guess that is the reason why it caused so many confusions. But,
>again, I have carefully pushed back the SIGNAL tested one bar already.
>
>
>
>Fred,
>
>Yes, it is possible to trade with trade delay 0 on OPEN, if you have
>set the SELL = ref(buy, -20) for example.
>That is, if you have a BUY 20 bars ago, today and only today the SELL
>is triggered, of course you can set the
>trade delay to 0 because the trade was initiated 20 days ago.
>
>Of course, only if this SELL = ref(buy, -20) works correctly for me,
>especially when there are potentially
>more than one BUY signals are triggered. That is also why I urged
>those who tried my AFL code to check the
>'explore' I just could not see where this SELL = ref(BUY, -20)
>happening.
>
>
>
>
>Thomas
>
>
>--- In amibroker@xxxxxxxxxxxxxxx, "Fred <fctonetti@xxxx>"
><fctonetti@xxxx> wrote:
> > Jim,
> >
> > Although it's not possible to trade with delay 0 on the open it is
> > certainly possible and feasible to trade with delay 0 on close.
>One
> > may not get 100% of the signals correct but the small amount of
> > errors will for the most part balance each other out.  I do this
> > EVERY day.
> >
> > Fred
> >
> > --- In amibroker@xxxxxxxxxxxxxxx, "Jim Hutchison" <phutch@xxxx>
>wrote:
> > > Your system will get a high return on account because there is no
> > trade
> > > delay set "SetTradeDelays(0, 0, 0, 0);". You are buying or
>selling
> > at
> > > the close on the same day the trading signal is generated. Which
> > would
> > > not be possible in real life. You can not trade at the close
>after
> > the
> > > close.
> > >
> > > Jim Hutchison
> > >
> > >
> > > -----Original Message-----
> > > From: tchan95014 <tchan95014@xxxx> [mailto:tchan95014@x...]
> > > Sent: Monday, February 10, 2003 1:01 PM
> > > To: amibroker@xxxxxxxxxxxxxxx
> > > Subject: [amibroker] Re: Holy Grail? NOT!
> > >
> > > Hi, All,
> > >
> > > Apparently some explanation is in order. Please check below along
> > the
> > > AFL code.
> > >
> > > BTW, not all tickers have excellent results, there are many also
> > > suffer bad losses.
> > >
> > > Any comments are welcome. Thanks.
> > >
> > > Thomas
> > >
> > > ------------------------------------------------------------------
>--
> > --
> > > -------
> > > Hi, All,
> > >
> > > When I ran the attached AFL file below on CIEN (daily), it
>generated
> > > RAR% > 1900 (from 2000-1-1 to today), which is incredible, look
> > like a
> > > holy grail found. I ran more tickers and more ridiculous profit.
> > >
> > > However, when I ran the 'explore', I just could not match up my
>code
> > > with the output, nor the ARROWS. I do not even understand why the
> > > 'explore' output was presented the way it was.
> > >
> > > Any kind sould please help, I just could not see what I did wrong.
> > > If there is any use of future data, I could find it nor AB.
> > > Please run 'backtest', then compare it with the output
>of 'explore'
> > >
> > > Thanks.
> > >
> > >
> > > Thomas
> > >
> > >
> > > // ---------------------------------------------------------------
>--
> > --
> > > ------------------------------------
> > > // ATR range breakout system, run on daily bars
> > > //
> > > // This is a very simple volatility breakout system.
> > > // It keys off YESTERDAY's close +/- some multiple of ATR(n), n =
> > 10.
> > > multiple = 0.6 here.
> > > // Hence, if TODAY's high > long breakout price determined by
> > > yesterday close (priceB), we go long
> > > // if TODAY's low < short breakout price determined by
>yesterday's
> > > close (priceS), we go short
> > > // Because of this nature, we have to use SetTradeDelays() on
> > > BUY/SHORT to 0, you set a STOP
> > > // price and enter your order before OPEN and wait for execution.
> > > // Since we always WAIT 20 days AFTER entry, and we exit our
> > position
> > > on OPEN, there is not much
> > > // difference in setting SetTradeDelays() on SELL/CLOSE to 0 or 1.
> > > //
> > > // If you check, you will see priceB and priceS is YESTERDAY's
> > > breakout prices to be used today.
> > > // I like to use TODAY as the base, if any signal occurs today, I
> > can
> > > set the STOP price for tomorrow.
> > > // Also, if there is any execution TODAY.
> > > //
> > > // ---------------------------------------------------------------
>--
> > --
> > > -------------------------------------
> > > // System defines
> > > // ---------------------------------------------------------------
>--
> > --
> > > -------------------------------------
> > >
> > > SetTradeDelays(0, 0, 0, 0);
> > >
> > > // ---------------------------------------------------------------
>--
> > --
> > > -------------------------------------
> > > // System Parameters
> > > // ---------------------------------------------------------------
>--
> > --
> > > -------------------------------------
> > >
> > > smoothB = 10;           // 10-bar ATR() is used
> > > multipleB = 0.6;        // with 0.6 * ATR(10) as the volatility
> > > breakout range
> > > wait = 20;              // wait  20 bars after entry then exit
> > > smoothS = smoothB;      // make sure LONG and SHORT uses same
> > > parameters
> > > multipleS = multipleB;
> > >
> > > entryB = C + multipleB * ATR(smoothB);  // BUY breakout price for
> > > NEXT bar
> > > entryS = C - multipleS * ATR(smoothS);  // SHORT breakout price
>for
> > > NEXT bar
> > > priceB = Ref(entryB, -1);               // make sure we are using
> > > PREVIOUS bar for our decision making
> > > priceS = Ref(entryS, -1);               // make sure we are using
> > > PREVIOUS bar for our decision making
> > >
> > > // if TODAY's high > YESTERDAY's Close +/- breakout range, we
>want
> > to
> > > act on.
> > > // Because we are using yesterday price, we are pretty much
>setting
> > > up a STOP price
> > > // to act, from yesterday's price, on today's price.
> > >
> > > CondBuy = IIf(H > priceB, 1, 0);        // priceB is previous bar
> > > price
> > > CondShort = IIf(L < priceS, 1, 0);      // priceS is previous bar
> > > price
> > >
> > > // ---------------------------------------------------------------
>--
> > --
> > > -------------------------------------
> > > // Trading System Rules
> > > // ---------------------------------------------------------------
>--
> > --
> > > -------------------------------------
> > >
> > > Buy = CondBuy;                          // CondBuy was created
>for
> > > debug only
> > > Sell = Ref(Buy, -wait);                 // supposedly a 20 day
>wait
> > > before SELL
> > > Short = CondShort;
> > > Cover = Ref(Short, -wait);
> > > ExRemSpan(Buy, wait);                   // I thought I don't need
> > > this, because
> > > ExRemSpan(Short, wait);                 // equity(1) is used
>below
> > > (makes no difference though)
> > >
> > > BuyPrice = IIf(Open > priceB, Open, priceB);    // Make sure
>entry
> > > price is realistic
> > > ShortPrice = IIf(Open < priceS, Open, priceS);
> > > SellPrice = Open;                       // Since we set a 20-day
> > > wait, I assume Sell will onlu
> > > CoverPrice = Open;                      // be set to TRUE, 20
>bars
> > > after 'Buy' is triggered
> > >
> > > // ---------------------------------------------------------------
>--
> > --
> > > -------------------------------------
> > > // Equity info
> > > // ---------------------------------------------------------------
>--
> > --
> > > -------------------------------------
> > >
> > > Eq = Equity(1);
> > >
> > > // ---------------------------------------------------------------
>--
> > --
> > > -------------------------------------
> > > // Exploration
> > > // ---------------------------------------------------------------
>--
> > --
> > > -------------------------------------
> > >
> > > Filter = 1;
> > >
> > > AddColumn(O, "Open");
> > > AddColumn(H, "High");
> > > AddColumn(L, "Low");
> > > AddColumn(C, "Close");
> > > AddColumn(V, "Volume", 1.0);
> > >
> > > AddColumn(CondBuy, "CondBuy");
> > > AddColumn(Buy, "Buy", 1.0);
> > > AddColumn(Sell, "Sell", 1.0);
> > > AddColumn(entryB, "entryB");
> > >
> > > AddColumn(CondShort, "CondShort");
> > > AddColumn(Short, "Short", 1.0);
> > > AddColumn(Cover, "Cover", 1.0);
> > > AddColumn(entryS, "entryS");
> > >
> > >
> > >
> > >
> > > Yahoo! Groups Sponsor
> > > ADVERTISEMENT
> > >
> > >
> > >
> > >
> > > Post AmiQuote-related messages ONLY to: amiquote@xxxxxxxxxxxxxxx
> > > (Web page: http://groups.yahoo.com/group/amiquote/messages/)
> > >
> > > Check group FAQ at:
> > > http://groups.yahoo.com/group/amibroker/files/groupfaq.html
> > >
> > > Your use of Yahoo! Groups is subject to the Yahoo! Terms of
>Service.
>


Al Venosa
avcinci@xxxxxxxxxxx

_________________________________________________________________
The new MSN 8: smart spam protection and 2 months FREE*  
http://join.msn.com/?page=features/junkmail


Post AmiQuote-related messages ONLY to: amiquote@xxxxxxxxxxxxxxx 
(Web page: http://groups.yahoo.com/group/amiquote/messages/)

Check group FAQ at: http://groups.yahoo.com/group/amibroker/files/groupfaq.html 

Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/