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

[amibroker] Re: BarsSince(Buy) -- One idea



PureBytes Links

Trading Reference Links


I don't think always relying on plotting arrays is the best solution. 
If I have a trading system (or indicator) that depends on the values 
in several arrays (and/or variables), I don't want to have to plot 
each of them individually to find a bug in my system. Short of 
linking windows, using multiple panes, or overlaying several 
different types of data in the same window, I also don't see how you 
can visually see cause and effect. 

What I currently do is have a nodebug/debug parameter in most of my 
charts I can set to either give me a plain title or a title plus the 
values of all the data the system depends on. When debug is selected, 
I can see all the data I want.**

The only PROBLEM with it is that I have to code in a parameter, code 
the logic to select which title to display, and then determine (and 
code) the values I want displayed. It seems simply opening 
a "debugging" window displaying the values of ALL active 
array/variables at any point in time would be a better idea (or maybe 
could there could be a way of selecting only the data of interest).

I didn't understand the commentary window and tooltip idea. I haven't 
used commentary since I tried your idea of making charts talk to me 
but, again, wouldn't I have to have explicit code to display my 
values of interest?

There is usually enough capability in AB to do anything you want 
several different ways so naturally there are other ways to see this 
same type of data. I think the issue is more about ease of use and 
think anything that gives me visibilty into problems without having 
to write special debugging code is probably a good thing.

Dan

**(Sometimes I've also manually transcribed some of the data into an 
Excel spreadsheet to better analyze where a problem occurred. So I 
guess I disagree that visual is always better :-} ).

(Another way I've addressed this same problem is to plot the data of 
several different arrays in the chart background color. That way you 
don't see them (except when they cross "real" things) but the values 
will display in the tool tips popup).


--- In amibroker@xxxxxxxxxxxxxxx, "Herman van den Bergen" 
<psytek@xxxx> wrote:
> Why don't you just PLOT the arrays, each line in your chart reveals 
exactly
> the same information but in a much more intuitive and visual way. 
When you
> are looking at a chart you ARE looking at ARRAYS of numbers, you 
can read
> the value of the array in the right labels. You can also turn on 
Price Data
> Tooltips and read the value for each line (ARRAY!) in the tooltip 
window. Or
> you can display the values in the Title of the chart.
> 
> Charting intermediate results (ARRAYS) is a powerful debugging tool 
and also
> will help you understand how indicators work.
> 
> herman
>   -----Original Message-----
>   From: danielwardadams [mailto:danielwardadams@x...]
>   Sent: Sunday, November 14, 2004 11:54 PM
>   To: amibroker@xxxxxxxxxxxxxxx
>   Subject: [amibroker] Re: BarsSince(Buy) -- One idea
> 
> 
> 
>   Tomasz,
>   One idea I had that might make understanding array processing 
easier
>   would be to be able to (optionally) display the array data in a
>   spreadsheet-like row and column format in a separate window (in 
real-
>   time). It would also make it obvious which data is in arrays
>   versus simple variables. Although there are ways to accomplish the
>   same thing (using lots of print statements or title variables 
which I
>   usually do when I'm stuck on a problem), it would be nice to have
>   a "debugging pane/window" that displayed some or all this data.
> 
>   The following won't be formatted right but is from the users 
guide.
>   If this appeared in a separate pane/window linked to a graph, I 
think
>   it could help a lot.
> 
>     Bar          1    2    3     4    5    6     7    8    9   10
>   1 High       1,24 1,27 1,25  1,29 1,25 1,29  1,35 1,35 1,37 1,29
>   2 Low        1,20 1,21 1,19  1,20 1,21 1,24  1,30 1,28 1,31 1,27
>   3 High+Low   2,44 2,48 2,44  2,49 2,46 2,53  2,65 2,63 2,68 2,46
>   4 MyVariable 1,22 1,24 1,22 1,245 1,23 1,265 1,325 1,315 1,34 1,23
> 
>   Fig 2. AFL steps when processing ( High + Low ) /2
> 
>   An easy implementation of it would be to display all active array
>   data in a popup window as you move the cursor (selection bar) 
across
>   a chart.
> 
>   If you like the idea (or some variation thereof), I'm sure you 
could
>   think of a user friendly way to present the data.
> 
>   Dan
> 
> 
>   --- In amibroker@xxxxxxxxxxxxxxx, "Tomasz Janeczko" 
<amibroker@xxxx>
>   wrote:
>   > Dan,
>   >
>   > You are right I am too close to this to see things the way 
others
>   do.
>   > Partially the problem is often caused by so many ways available
>   > to achieve particular goal that most users may find it difficult
>   > to find "optimum" one.
>   > Partially it is because of relatively small amount of examples
>   > found in the guide. I think that increasing number of examples
>   > will help.
>   > Therefore I have one request to the users:
>   > since I am too close to and may come up with too complex or
>   > too simplistic examples, I am keen to listen in which areas
>   > you are most blocked on and what systems/techniques are 
difficult
>   > to you. Once we complete the list of things being considered
>   > as problematic by majority of users I will be able to prepare
>   > example codes with explanations that will address your actual
>   problems.
>   >
>   > Best regards,
>   > Tomasz Janeczko
>   > amibroker.com
>   > ----- Original Message -----
>   > From: "danielwardadams" <danielwardadams@xxxx>
>   > To: <amibroker@xxxxxxxxxxxxxxx>
>   > Sent: Saturday, November 13, 2004 3:05 AM
>   > Subject: [amibroker] Re: BarsSince(Buy)
>   >
>   >
>   > >
>   > >
>   > > I hate to jump in the middle of this but in Owen's defense I
>   think
>   > > there is something about Amibroker that is extremely hard to
>   grasp.
>   > > I have 35 years experience writing software, 15-20 years
>   experience
>   > > doing fairly complex spreadsheet applications, and I've read 
the
>   > > (well written) portion of the user's guide on array processing
>   > > several times. Yet I'm constantly finding problems in my 
results -
>   -
>   > > frequently due to BarSince problems.
>   > >
>   > > When I find the problems, in retrospect they almost always 
seems
>   > > obvious and I wonder how I could have been do dumb. So I fix 
them
>   and
>   > > then -- either right away or a few days later -- I find that 
I've
>   > > introduced one or more other problems (frequently also due to
>   > > BarSince).
>   > >
>   > > Then I look at something like Tomasz's BarSince looping code 
and
>   > > it seems so obvious I wonder how I could have been so dumb.
>   > >
>   > > I think Tomasz is much too close to it to realize AFL is hard 
to
>   get
>   > > your mind around. If you are intimately familiar with the
>   processing
>   > > underlying every type of statment, I'm sure everything seems 
easy
>   and
>   > > obvious.
>   > >
>   > > Maybe my problem was not biting the bullet and learning how to
>   use
>   > > loops in the first place. Yet I think I remember reading in 
the
>   > > user's guide that you could accomplish everything with or 
without
>   > > loops and for some reason I thought writing without them was 
the
>   > > newer/better/preferred way to work with AB.
>   > >
>   > > I also understand Tomasz's reluctance to insert things into 
the
>   > > language which he perceives as compromizing the elegant 
simplicty
>   and
>   > > power of AB.
>   > >
>   > > I don't know what the answer is. There are probably ways to 
ease
>   the
>   > > AB learning curve but I won't pretend to know what they are.
>   > >
>   > > Dan
>   > >
>   > >
>   > > --- In amibroker@xxxxxxxxxxxxxxx, "Tomasz Janeczko"
>   <amibroker@xxxx>
>   > > wrote:
>   > >> Hello,
>   > >>
>   > >> What you wrote is COMPLETELY WRONG.
>   > >> You simply completely lack the understanding how BarsSince 
works,
>   > >> how MS works and how AB works.
>   > >>
>   > >> FYI: Metastock BarsSince works the same as AFLs.
>   > >> You simply are misguided by MS formulas using infamous "PREV"
>   > > statement
>   > >> that is basically the worst idea Equis programmers came up 
with.
>   > >>
>   > >> Please READ 
http://www.amibroker.com/guide/h_understandafl.html
>   > >>
>   > >> Read it twice, three times or four, five or ten times if
>   necessary.
>   > >>
>   > >> Your problem is that you want to use "PREVIOUS" bar value.
>   > >> There are many ways to achive this goal but most general
>   > >> is TO USE LOOPING.
>   > >> =============
>   > >>
>   > >> Simple and straightforward AND *FAST* (compared to horrible
>   > > MS "Prev")
>   > >>
>   > >> See sample code that demonstrates it (posted tens of times
>   already)
>   > >> and also available in
>   http://www.amibroker.com/guide/whatsnew.html
>   > >> document (at the very end):
>   > >>
>   > >> /* a sample low-level implementation of Profit-target stop in
>   AFL:
>   > > */
>   > >> Buy = Cross( MACD(), Signal() );
>   > >>
>   > >> priceatbuy=0;
>   > >>
>   > >> for( i = 0; i < BarCount; i++ )
>   > >> {
>   > >>      if( priceatbuy == 0 && Buy[ i ] )
>   > >>      priceatbuy = BuyPrice[ i ];
>   > >>
>   > >>      if( priceatbuy > 0 && SellPrice[ i ] > 1.1 * 
priceatbuy )
>   > >>      {
>   > >>        Sell[ i ] = 1;
>   > >>        SellPrice[ i ] = 1.1 * priceatbuy;
>   > >>        priceatbuy = 0;
>   > >>      }
>   > >>      else
>   > >>        Sell[ i ] = 0;
>   > >> }
>   > >>
>   > >>
>   > >> Best regards,
>   > >> Tomasz Janeczko
>   > >> amibroker.com
>   > >> ----- Original Message -----
>   > >> From: "Owen Davies" <owen5819@xxxx>
>   > >> To: <amibroker@xxxxxxxxxxxxxxx>
>   > >> Sent: Friday, November 12, 2004 2:50 PM
>   > >> Subject: Re: [amibroker] BarsSince(Buy)
>   > >>
>   > >>
>   > >> >
>   > >> > Tomasz Janeczko wrote:
>   > >> >
>   > >> >>You can use ExRemSpan instead: (etc.)
>   > >> >>
>   > >> >
>   > >> > I could again go over why this doesn't work?
>   > >> >
>   > >> > Please trace through the logic of what happens when 
ExRemSpan
>   > > lands you
>   > >> > on another day when the Buy conditions are true.
>   > >> >
>   > >> > For example--the example I used maybe two weeks ago--take 
the
>   > > classic
>   > >> > Larry Williams system with a volatility-breakout entrance 
and
>   his
>   > >> > "bailout" exit:  Enter when today's High is higher than the
>   Open
>   > > plus
>   > >> > (some fraction of) yesterday's range.  To get out, wait one
>   bar,
>   > > to give
>   > >> > the price time to move, and Sell on the first profitable
>   Open.
>   > > Use a
>   > >> > stop-loss to escape the losers.  So:
>   > >> >
>   > >> > Buy=H > O + Ref(H - L,-1);
>   > >> > BuyPrice=Max(O, Ref(H - L,-1) + TickSize);
>   > >> >
>   > >> > Sell=BarsSince(Entry) > 1 AND O > Ref(C,-BarsSince(Entry));
>   > >> > SellPrice=O;
>   > >> >
>   > >> > //And the obvious equivalents for Short trades
>   > >> >
>   > >> > ApplyStop(0,2,PickANumber,1,False);
>   > >> >
>   > >> > Those of you who once used Metastock will remember 
BarsSince
>   > > (Entry),
>   > >> > probably with great fondness and regret.  But you can't do
>   that
>   > > in AFL.
>   > >> > You can't even do separate BarsSince(Buy) and BarsSince
(Short)
>   > >> > statements.  In AFL, your Sell statement becomes Sell=O >
>   > >> > ValueWhen(Buy,BuyPrice,1);  And when you try to use 
ExRemSpan,
>   > > there is
>   > >> > every chance that you will land on another day where the 
Buy
>   > > conditions
>   > >> > are true.  At which point the ValueWhen function looks at 
that
>   > > day's
>   > >> > BuyPrice, and O is never higher.
>   > >> >
>   > >> > For a one-day delay, we can write two sell conditions, one 
for
>   > > use if
>   > >> > today is a Buy day and one for use if it is not, with
>   different
>   > > numbers
>   > >> > for the third parameter in the ValueWhen statement.  But 
what
>   if
>   > > you'd
>   > >> > like to set the delay for more than one day?  How many Sell
>   > > conditions
>   > >> > do you have to write to take care of all the possible
>   > > combinations of
>   > >> > Buy and non-Buy days since the entry?
>   > >> >
>   > >> > Two very talented programmers from our group were kind 
enough
>   to
>   > > attempt
>   > >> > solutions to this problem for me, one in AFL, the other 
in ...
>   I
>   > > guess
>   > >> > that was jScript.  I am very grateful to them for trying.
>   > > However,
>   > >> > neither succeeded.  In each case, trades that should have
>   ended
>   > > with a
>   > >> > profit after two or three days were not exited until much
>   later.
>   > > In a
>   > >> > test of the AFL version on continuous S&P data, the average
>   trade
>   > > length
>   > >> > was just over 46 bars, and one trade lasted more than 600 
bars!
>   > >> >
>   > >> > This is a very simple system, one of the most famous in 
all of
>   > >> > traderporn.  It can be "coded" unambiguously in English.  
With
>   > >> > BarsSince(Entry), it could be coded unambiguously in
>   Metastock;
>   > > but MS
>   > >> > would not give you valid entry and exit prices when I used 
it
>   > > last; that
>   > >> > was a major reason I was delighted when Tomasz made 
Amibroker
>   > >> > available.  Unfortunately, one really useful thing from
>   Metastock
>   > > got
>   > >> > left behind.  I understand that there are reasons for this.
>   But
>   > > those
>   > >> > reasons are keeping me from testing this and several other
>   ideas
>   > > that
>   > >> > might be of value.  Or they might not.  At this point, I 
have
>   no
>   > > way to
>   > >> > know.
>   > >> >
>   > >> > I am profoundly sorry to keep pushing this, as I believe
>   Tomasz
>   > > created
>   > >> > ExRemSpan in response to one of my early pleas for help in
>   coding
>   > > this
>   > >> > exit.  And it could be that there is some way to use ExRem 
and
>   > > ExRemSpan
>   > >> > that actually solves the problem with the kind of 
generality
>   I'm
>   > > looking
>   > >> > for, a technique that Tomasz knows but neither I nor my
>   > > Samaritans were
>   > >> > able to recognize.  But I'm betting against it.
>   > >> >
>   > >> > I have been trying to solve this problem for more than two
>   years
>   > > and am
>   > >> > quite convinced that it cannot be done.  Tomasz, PLEASE 
HELP.
>   > >> >
>   > >> > Pretty please?  I'll finally get around to renewing my 
license
>   if
>   > > you
>   > >> > do.  8-)
>   > >> >
>   > >> > Thanks to all for bearing with me on this.
>   > >> >
>   > >> > Owen Davies
>   > >> >
>   > >> >
>   > >> >
>   > >> > Check AmiBroker web page at:
>   > >> > http://www.amibroker.com/
>   > >> >
>   > >> > Check group FAQ at:
>   > > http://groups.yahoo.com/group/amibroker/files/groupfaq.html
>   > >> > Yahoo! Groups Links
>   > >> >
>   > >> >
>   > >> >
>   > >> >
>   > >> >
>   > >> >
>   > >> >
>   > >> >
>   > >
>   > >
>   > >
>   > >
>   > >
>   > >
>   > > Check AmiBroker web page at:
>   > > http://www.amibroker.com/
>   > >
>   > > Check group FAQ at:
>   http://groups.yahoo.com/group/amibroker/files/groupfaq.html
>   > > Yahoo! Groups Links
>   > >
>   > >
>   > >
>   > >
>   > >
>   > >
>   > >
>   > >
> 
> 
> 
> 
> 
>   Check AmiBroker web page at:
>   http://www.amibroker.com/
> 
>   Check group FAQ at:
> http://groups.yahoo.com/group/amibroker/files/groupfaq.html
> 
> 
>         Yahoo! Groups Sponsor
>               ADVERTISEMENT
> 
> 
> 
> 
> 
> --------------------------------------------------------------------
--------
> --
>   Yahoo! Groups Links
> 
>     a.. To visit your group on the web, go to:
>     http://groups.yahoo.com/group/amibroker/
> 
>     b.. To unsubscribe from this group, send an email to:
>     amibroker-unsubscribe@xxxxxxxxxxxxxxx
> 
>     c.. Your use of Yahoo! Groups is subject to the Yahoo! Terms of 
Service.
> 
> 
> 
> [Non-text portions of this message have been removed]





------------------------ Yahoo! Groups Sponsor --------------------~--> 
$9.95 domain names from Yahoo!. Register anything.
http://us.click.yahoo.com/J8kdrA/y20IAA/yQLSAA/GHeqlB/TM
--------------------------------------------------------------------~-> 

Check AmiBroker web page at:
http://www.amibroker.com/

Check group FAQ at: http://groups.yahoo.com/group/amibroker/files/groupfaq.html 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/amibroker/

<*> 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/