PureBytes Links
Trading Reference Links
|
Hi, TJ,
My submission here is for a fact finding process, I have not
determined whether there is a bug or not. I assume my own bug first,
that is why I am here before sending anything to you. I know you are
busy on next release and I like it that way.
I tried to use the collective knowledge of this board to help
identifying my problem.
But when you are eager to help me out, I am all ears and hence I
responded eagerly. All my statements are the observations of my own.
Throughout this fact finding process I learn from every one who cares
enough to respond. Thanks.
As you can read from Al's response he agreed with my argument that I
should be able to use a trade delay of 0 doe an ENTRY when all the
data I use to determine my entry is from yesterday's info. As I
stated, I can actually calculate all the info I need tonight after
close and place a STOP order before tomorrow's open both for long and
short. That is why I use [priceB] and [priceS] for my backtest and
[entryB] and [entryS] for my exploration. I can use exploration to
determine the STOP order I should place tonight for tomorrow's order.
Discussion is always good, good mannered debate is also good to find
fact.
I understand your concern, but unfortunately an open forum is an open
forum, and it is the best and fast way to get help and comments for
us users/learners.
Thomas
--- In amibroker@xxxxxxxxxxxxxxx, "Tomasz Janeczko" <amibroker@xxxx>
wrote:
> Thomas,
>
> Please understand I don't debug / fix user's code because
> it is exteremely time consuming and if I did I would not have time
> to do anything more.
> See http://www.amibroker.com/freesupport.html
>
>
> I only can fix errors in AmiBroker itself if you provide me
> with bug report showing incorrect calculations.
>
> I looked at your code and you have lots of coding errors in it.
> For example you write:
>
> ExRemSpan(Buy, wait); // I thought I don't need
>
> this unfortunatelly has no effect. ExRemSpan is a FUNCTION
> and it's result value HAVE TO BE ASSIGNED to the variable.
> Correct usage is:
>
> Buy = ExRemSpan(Buy, wait); // ASSIGNMENT !!!!!!!!!!!!
>
>
> Also ExRemSpans are placed incorrectly (they should be placed
> before Cover = Ref(Short, -wait);, not after
>
> etc, etc....
>
>
>
> Best regards,
> Tomasz Janeczko
> amibroker.com
> ----- Original Message -----
> From: <tchan95014@xxxx>
> To: <amibroker@xxxxxxxxxxxxxxx>
> Sent: Monday, February 10, 2003 10:45 PM
> Subject: [amibroker] Re: Holy Grail? NOT!
>
>
> > Hi, TJ,
> >
> > sigh! Please check my code, [priceB] and [priceS], I have used ref
> > (xxx, -1) to push both condition one bar back already.
> >
> > I am pretty much sitting on the TRADING day to look back the
previous
> > bar to see if there is any SIGNAL generated YESTERDAY, if YES,
and if
> > TODAY's high is higher than the breakout price established
YESTERDAY,
> > then I get stopped in from an order I can put in YESTERDAY after
the
> > close.
> >
> >
> > Thomas
> >
> > --- In amibroker@xxxxxxxxxxxxxxx, "Tomasz Janeczko"
<amibroker@xxxx>
> > wrote:
> > > Hello,
> > >
> > > ATR (that you are using) usesC/H/L of CURRENT bar also.
therefore
> > you can not trade
> > > on open with zero delay.
> > >
> > > Best regards,
> > > Tomasz Janeczko
> > > amibroker.com
> > > ----- Original Message -----
> > > From: <tchan95014@xxxx>
> > > To: <amibroker@xxxxxxxxxxxxxxx>
> > > Sent: Monday, February 10, 2003 8:41 PM
> > > Subject: [amibroker] Re: Holy Grail? NOT!
> > >
> > >
> > > 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/
> >
> >
> > 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/
> >
> >
> >
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/
|