PureBytes Links
Trading Reference Links
|
Dave,
I have some notes on your code.
a. You consider absolute threshold values. It is almost useless, you
should take percentage.
A threshold = 10 would give hundreds of signals for NDX values and
rare signals for CSCO or no signal for a stock below 10$. NDX would
need a threshold=100, which would never give any signal for MSFT.
b. In your
tracking = 0; // last peak we're comparing to
action = 0; // last action taken; +1 = up, -1 = down
> result[0] = 0;
> for(i = 1; i < BarCount; i++)
> {
> result[i] = 0; // default output for this bar if no
move
> if(action != 1) // looking for a rise
you begin, in the second line, define action=0.
Then, without any other "action" reference, you ask
if(action != 1)
But, of course "action" is still =0 from the 2nd line and is not
equal to 1.
>From your description :"...single bar that's at least the threshold
amount greater than the minimum value seen...", if we agree to
change the "amount" with "percentage", I have a solution, posted long
time ago, the "realistic peak condition" and, instead of searching, I
may repost it.
I can detect the point which is 3% lower than the last "visible"
peak. If it is what you search, please let me know and I will revert.
Dimitris Tsokakis
--- In amibroker@xxxxxxxxxxxxxxx, "Dave Merrill" <dmerrill@xxxx>
wrote:
> hi Dimitris, thanks for jumping in.
>
> let me try to be clearer about the kind of simple reversal I'm
looking for:
> for an up move, I'm looking for a single bar that's at least the
threshold
> amount greater than the minimum value seen since the last down move.
> for a down move, I'm looking for a single bar that's at least the
> threshold amount lower than the maximum value seen since the last
up move.
>
> like this, with a threshold of 3 in both directions:
>
> 3 (min of first cycle)
> 5
> 4
> 6 <- up move, at least 3 above min of first cycle (3)
> 7
> 8 (max of this up cycle)
> 6
> 7
> 6
> 4 <- down move, at least 3 below max of this up cycle (8)
> 1
> 3
> 2
> 3
> 0 (min of this down cycle)
> 2
> 4 <- up move, at least 3 above min of this down cycle (0)
>
> make sense?
>
> below is the AFL I came up with. it does scan every bar, which I'm
surprised
> was necessary, but it works, I think, and it's not as horribly slow
as I was
> afraid it might be. given an array and separate thresholds for up
and down
> moves, it returns an array with +1 at every up move, -1 at every
down move,
> and 0 everywhere else.
>
> ---------------------
> function ReverseDetect(ValueArray, ThreshUp, ThreshDown) {
> tracking = 0; // last peak we're comparing to
> action = 0; // last action taken; +1 = up, -1 =
down
> result[0] = 0;
> for(i = 1; i < BarCount; i++)
> {
> result[i] = 0; // default output for this bar if no
move
> if(action != 1) // looking for a rise
> {
> if(tracking > ValueArray[i])
> tracking = ValueArray[i];
> else
> {
> if(ValueArray[i] > tracking +
ThreshUp)
> {
> action = 1;
> result[i] = action;
> tracking = ValueArray[i];
> }
> }
> }
> if(action != -1) // looking for a drop
> {
> if(tracking < ValueArray[i])
> tracking = ValueArray[i];
> else
> {
> if(ValueArray[i] < tracking -
ThreshDown)
> {
> action = -1;
> result[i] = action;
> tracking = ValueArray[i];
> }
> }
>
> }
> }
> return result;
> }
> ---------------------
>
> [if this gets mangled in the msg an anyone cares, I could post it
as a
> file.]
>
> making any more sense? see any way to code this in fewer lines of
> array-based AFL?
>
> FWIW, none of the inputs I've tested so far have yielded great
buy/sell
> signals when processed this way. maybe none will, but at least I've
been
> able to test this idea.
>
> dave
>
>
> > your questions are somehow confusing: you wrote, for example,
> > for "san diego wave" strategy :
> > "...switches long when the MTI rises by .12"
> > If the MTI goes like
> > MTI0
> > MTI1=MTI0+0.13
> > MTI2=MTI1+0.15
> > MTI3=MTI2+0.12
> > MTI4=MTI3+0.13
> > ie it increases 4 consequtive bars by >0.12, they go long every
day ?
> > I dont think so and, anyway, it is not a reversal.
> > You probably mean MTI go lower and lower and, on day0, change
> > direction and go higher by >0.12.
> > If this is requested, you should specify how many descending bars
you
> > need *before* the change.
> > Do you need just one ?
> > Then
> > cond=roc(c,1)>0 AND Ref(roc(c,1),-1)<0;
> > is enough to describe this "reversal".
> > Equivalent condition would be the
> > cond1=Ref(c,-1)==LLV(c,3);
> > Do you need more than one consecutive descending bars before the
> > reversal ?
> > Then
> > k=4;
> > cond=ROC(C,1)>0 AND Ref(Sum(ROC(C,1)<0,k),-1)==k;
> > would give you the reversal after four *consecutive* descending
bars.
> > Do you need just the previous bar to be the lower of the last k
bars ?
> > Then,
> > k=10;
> > Cond=Ref(C,-1)==LLV(C,k);
> > would describe that yestedays close was the lowest of the last k
> > bars, ie we do have a reversal without asking *all* previous bars
to
> > be descending.
> > As you see, there are many alternatives and it would be better to
be
> > more specific.
> > Decide first how would you like the reversal and then AFL will
solve
> > your request in 2 or 102 lines [they will be executed with the
same
> > speed, in one way or another]
> > Dimitris Tsokakis
> > PS1: All above described conditions are realistic, you should
avoid
> > *ANY* zig/peak/trough functions.
> > The known trouble of zig use is simple : You are informed that
Day X
> > *was* a peak, but this information arrives 2 or 12 or 102 days
later
> > and it is totally useless for trading. Zig and its derivatives are
> > *very* useful for the historical study of an indicator, but
totally
> > useless for decision making.
> > PS2. Although it may be obvious, just know that all above
conditions
> > are equally applied to indicators, not only Close value. Just
> > describe how do you like the reversal.
> >
> > --- In amibroker@xxxxxxxxxxxxxxx, "Dave Merrill" <dmerrill@xxxx>
> > wrote:
> > > I've been examining VectorVest's tools for a while now, and I'd
say
> > that
> > > while that link tells you some of the party line, that's not the
> > whole
> > > enchilada. once you have a good long/short timing signal,
there's a
> > pretty
> > > rich toolkit for stock selection, and a lot of canned and user
group
> > > strategies that I and others have tested and believe can do
quite
> > well.
> > > timing's another story. as the tampa group's approach indicates,
> > many people
> > > think you can do better than VV's standard recommendations. some
> > people
> > > include the MTI and other proprietary VV indicators in their
overall
> > > formula, some not.
> > >
> > > anyway, I just used the MTI as an example of the kind of turn
> > detection I
> > > was looking for; I didn't mean to discuss any particular way of
> > interpreting
> > > it as a strategy. the MTI is range-bounded, so crossings of
fixed
> > levels can
> > > have meaning. but how do you make use of other indicators that
> > aren't
> > > range-bounded? besides zero crossing or crossing some other
> > indicator line,
> > > another one that occurred to me was this idea of direction
> > reversals of some
> > > particular amount.
> > >
> > > I just need to figure out how to implement it...
> > >
> > > dave
> > >
> > >
> > > > Some insight on Vectorvest MTI indicator:
> > > >
> > > > http://www.sctxcompclub.org/MtgFollowUp/Jul1_02Invest.html
> > > >
> > > > --- In amibroker@xxxxxxxxxxxxxxx, "Dave Merrill"
<dmerrill@xxxx>
> > wrote:
> > > > > one example is the vectorvest-based "san diego wave"
strategy,
> > which
> > > > > switches long when the MTI (vectorvest's proprietary Market
> > Timing
> > > > > Indicator) rises by .12, and goes short when it falls
by .12.
> > > > absolute level
> > > > > doesn't matter, just having reversed direction by that
amount.
> > (not
> > > > that I'm
> > > > > saying that specifically is a great strategy or anything.)
> > > > >
> > > > > any indicator could be interpreted this way, and I thought
it'd
> > be
> > > > > interesting to see which ones turned out to be useful.
> > > > >
> > > > > it's really easy to see these turns visually on a chart. I'm
> > > > surprised that
> > > > > it doesn't seem easy to determine them procedurally. I'd
have
> > > > thought tj or
> > > > > one of the other AFL gurus would have put my feeble brain to
> > shame
> > > > with a 2
> > > > > line solution by now (;-).
> > > > >
> > > > > dave
------------------------ Yahoo! Groups Sponsor ---------------------~-->
Buy Ink Cartridges or Refill Kits for Your HP, Epson, Canon or Lexmark
Printer at Myinks.com. Free s/h on orders $50 or more to the US & Canada. http://www.c1tracking.com/l.asp?cid=5511
http://us.click.yahoo.com/l.m7sD/LIdGAA/qnsNAA/GHeqlB/TM
---------------------------------------------------------------------~->
Send BUG REPORTS to bugs@xxxxxxxxxxxxx
Send SUGGESTIONS to suggest@xxxxxxxxxxxxx
-----------------------------------------
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/
|