StockFetcher Forums · Filter Exchange · Started as a rotation filter -- enjoy<< 1 2 3 >>Post Follow-up
fotchstecker
304 posts
msg #154577
Ignore fotchstecker
modified
11/8/2020 1:44:27 PM

All, I built this originally as a rotator filter (hence the ETF conditions) but now I use it more as a short term entry point for anything that pops up. I generally look for the top 1-3 tickers, and I place a stop normally on the low of the day of the signal. So, if I run this in the evening, I enter the next day after the market cross on 60min VWAP and place a stop on the low of the signal evening, if it's lower. If it's not, I'll place a trail of to start.

Welcome any all ideas/variations. Enjoy!

By the way! Does anyone have a kludge for the "next 2 days from signal %return" as a column? So if I run the filter on historical days I can see what the ticker returned for the next X days? Thanks.


Fetcher[
market is ETF
Average Volume(30) > 500000

set{100Return, ROC(100,1) / 100 }
set{50Return, ROC(50,1) / 50}
set{25Return, ROC(25,1) / 25}
set{12Return, ROC(12,1) / 12}
set{6Return, ROC(6,1) / 6}
set{3Return, ROC(3,1) / 3}
set{1Return, ROC(1,1) / 1}

add column 100Return
add column 50Return
add column 25Return
add column 12Return
add column 6Return
add column 3Return
add column 1Return


set{ROCrotateA, 100Return + 50Return}
set{ROCrotateB, 50Return + 25Return}
set{ROCrotateAB, ROCrotateA + ROCrotateB}
add column ROCrotateAB {ROC 100to25}

set{ROCrotateC, 25Return + 12Return}
set{ROCrotateD, 12Return + 6Return}
set{ROCrotateCD, ROCrotateC + ROCrotateD}
add column ROCrotateCD {ROC 25to6}

set{ROCrotateE, 6Return + 3Return}
set{ROCrotateF, 3Return + 1Return}
set{ROCrotateEF, ROCrotateE + ROCrotateF}
add column ROCrotateEF {ROC 6to1}

set{ROCrotateABCD, ROCrotateAB + ROCrotateCD}
set{ROCrotateCDEF, ROCrotateCD + ROCrotateEF}
set{ROCrotateABCDCDEF, ROCrotateABCD + ROCrotateCDEF}
add column ROCrotateABCDCDEF {ROCTOTAL}

ADD COLUMN SEPARATOR
sort column 15 ascending

3Return > 6Return
3Return > 12Return
3Return < 25return
3Return < 50Return
3Return < 100Return

Historical Volatility(100,1) > 10
Historical Volatility(10,1) > 10
add column Historical Volatility(100,1) {hVOL100}
]



nibor100
1,044 posts
msg #154582
Ignore nibor100
11/9/2020 11:06:05 AM

Kludged for 2 day return historically,
Ed S.

Fetcher[
market is ETF
Average Volume(30) 2 days ago > 500000

set{100Return, ROC(100,1) / 100 }
set{50Return, ROC(50,1) / 50}
set{25Return, ROC(25,1) / 25}
set{12Return, ROC(12,1) / 12}
set{6Return, ROC(6,1) / 6}
set{3Return, ROC(3,1) / 3}
set{1Return, ROC(1,1) / 1}

add column 100Return
add column 50Return
add column 25Return
add column 12Return
add column 6Return
add column 3Return
add column 1Return


set{ROCrotateA, 100Return + 50Return}
set{ROCrotateB, 50Return + 25Return}
set{ROCrotateAB, ROCrotateA + ROCrotateB}
add column ROCrotateAB {ROC 100to25}

set{ROCrotateC, 25Return + 12Return}
set{ROCrotateD, 12Return + 6Return}
set{ROCrotateCD, ROCrotateC + ROCrotateD}
add column ROCrotateCD {ROC 25to6}

set{ROCrotateE, 6Return + 3Return}
set{ROCrotateF, 3Return + 1Return}
set{ROCrotateEF, ROCrotateE + ROCrotateF}
add column ROCrotateEF {ROC 6to1}

set{ROCrotateABCD, ROCrotateAB + ROCrotateCD}
set{ROCrotateCDEF, ROCrotateCD + ROCrotateEF}
set{ROCrotateABCDCDEF, ROCrotateABCD + ROCrotateCDEF}
add column ROCrotateABCDCDEF {ROCTOTAL}

ADD COLUMN SEPARATOR
sort column 15 ascending

3Return 2 days ago > 6Return 2 days ago
3Return 2 days ago > 12Return 2 days ago
3Return 2 days ago < 25return 2 days ago
3Return 2 days ago < 50Return 2 days ago
3Return 2 days ago < 100Return 2 days ago

Historical Volatility(100,1) 2 days ago > 10
Historical Volatility(10,1) 2 days ago > 10
add column Historical Volatility(100,1) {hVOL100}
/*add column close 2 days ago add column close*/ add column roc(2,1){next 2 days from signal %return}
]



fotchstecker
304 posts
msg #154587
Ignore fotchstecker
modified
11/9/2020 8:14:25 PM

Thanks, Ed. S.
One question -- using your version of the "forward return" kludge, I'm not making sense of values yet. For example, if you run the filter back to November 2, observe the results.

You'll see SOXL at the top of the list on November 2. Using that as the "signal" date, the "2 day forward percent return" column has a value of -3.34. However, if you eyeball a chart, SOXL does nothing but goes up on November 2, 3, 4, 5, 6. Roughly, the 2 day return (Nov 3 - 5) is around 25%. Through Nov 6, it's around 30% or so -- a bit different from -3.34...

What do you make of the output? I know it's a kludge, but maybe I'm misunderstanding what you intended.

Anyhow, thank you much for looking.

nibor100
1,044 posts
msg #154589
Ignore nibor100
11/10/2020 5:37:07 AM

The best way to double check any kind of backtest/historical filter that is a modification of a current day signal filter is to open a 2nd browser window and run the original signal filter in it to double check the daily outputs.

In this case, to check the kludge filter's output for Nov 2 you have run your signal filter on Thursday Oct 29 which is "2 days ago" to get the closing value for that signal date which gives a 2 day forward % loss when compared to the closing value of SOXL on Nov2.

Since SF can't pull data from beyond the current date, I had to set all of your filter decision criteria to 2 days ago values in order to calculate the 2 day return from each of your original filter signal dates.

Of course that means that you can't get yesterday's 2 day return running the kludge filter until you can run it tomorrow. But I figure losing 1 day's value isn't that big of a deal in a kludge scenario.

Ed S.



fotchstecker
304 posts
msg #154591
Ignore fotchstecker
11/10/2020 9:28:10 AM

Very helpful. Thank you, Ed.

Cheese
1,374 posts
msg #154609
Ignore Cheese
11/12/2020 12:30:18 PM

https://www.stockfetcher.com/forums/Filter-Exchange/Started-as-a-rotation-filter-enjoy/154577
fotchstecker modified 11/9/2020 8:14:25 PM
==========================================================================

Thank you, fotch
Today's market actions show the great value of fotchstecker's filter above.
The signals seem to be concurrent, occurring on trading day, not the night before (?)

fotchstecker
304 posts
msg #154632
Ignore fotchstecker
11/16/2020 3:15:08 PM

Thanks, Cheese.
Incidentally, I have been experimenting with a very simple added line:

Day Change > 0

The purpose here is to filter out "long vol" etfs. Doing so might be contrary to your goals, but since the initial tickers returned are based on absolute value, you will move to both the upside and downside. So, addtional line helps separate the two.

Cheese
1,374 posts
msg #154633
Ignore Cheese
11/16/2020 3:33:24 PM

Thank you, fotch

In a few early trading hours of Nov 12, 2020, your filter above showed all bearish signals
(inverse and Vix-related ETFs)

Then it stopped showing any pick for the remainder of that day Nov 12.
At this point, I began to guess that your above filter was signaling a potential consolidation
or potential change from bearish to bullish sentiment, which turned out to be a good guess
going into Nov 13.

Maybe that was a lucky stroke for me, or maybe your filter is really really good,



fotchstecker
304 posts
msg #154639
Ignore fotchstecker
modified
11/17/2020 9:39:01 AM

Cheese, I think one thing that could improve the filter to help answer that question would be a "beta"-like comparison. I'm not sure beta itself is the best thing, since that requires a period for the calculation (and it's often not trivial to select a period of the correlation that is usable for interpreting a single day's filter return).

I do think the filter is reliably indicating some kind of bulk rotations by class because you will see baskets of metals, bonds, bearish ETFs, and leveraged-index etfs occur in groups. For example, if you ran this on 11-16 in the evening, you saw only "bearish" etfs popping up. Why this is happening during a "vaccine optimism" run, I have no idea. It's either because it's calculating absolute volatility (and is "wrong" as a signal for those bearish longs), or it's because a top is forming.

I personally don't believe in predictions, picks, beliefs or the like. I think of trading as a "series of trades" and not "one trade" and the way to increase the number (ie longevity) in that series is through risk. Etc.

**Intuitively, what I think might be helpful is some kind of way of comparing an index return for the day (in a column) or past couple of days and a comparison/delta to the symbols returned on a given day. I haven't come up with an approach for this yet. The purpose of this comparison would be to estimate the relationship between the broad market and the day's filter results.

I don't think there is anything especially superior about the filter on it's own, per se and I don't try to overestimate it. I just try to understand what it's outputting. It's useful to me personally because I have an idea of how to trade it. I usually use trendline stops where the tendline is drawn "by eye" between two recent lows. And it's as simple as that, sadly. But I do hope it's useful for you and others, too.

Cheese
1,374 posts
msg #154640
Ignore Cheese
modified
11/17/2020 10:00:32 AM

Thank you, fotch
I didn't see any output when I loaded this page yesterday.
Earlier today, it showed all bearish signals. Now, no result shown.
Maybe the tone of the market is changing again.
Maybe it will work for me again.
Good filter !

davesaint86 and Kevin_in_GA have done some serious work on asset class rotation.
I believe testing was done, too. Their rotation timeframe may be longer than yours.
There may be some mutual learning and benefits between your work and theirs.

StockFetcher Forums · Filter Exchange · Started as a rotation filter -- enjoy<< 1 2 3 >>Post Follow-up

*** Disclaimer *** StockFetcher.com does not endorse or suggest any of the securities which are returned in any of the searches or filters. They are provided purely for informational and research purposes. StockFetcher.com does not recommend particular securities. StockFetcher.com, Vestyl Software, L.L.C. and involved content providers shall not be liable for any errors or delays in the content, or for any actions taken based on the content.


Copyright 2022 - Vestyl Software L.L.C.Terms of Service | License | Questions or comments? Contact Us
EOD Data sources: DDFPlus & CSI Data Quotes delayed during active market hours. Delay times are at least 15 mins for NASDAQ, 20 mins for NYSE and Amex. Delayed intraday data provided by DDFPlus


This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.