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

[amibroker] Re: Holy Grail? NOT!



PureBytes Links

Trading Reference Links

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.


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/