SI
SI
discoversearch

We've detected that you're using an ad content blocking browser plug-in or feature. Ads provide a critical source of revenue to the continued operation of Silicon Investor.  We ask that you disable ad blocking while on Silicon Investor in the best interests of our community.  If you are not using an ad blocker but are still receiving this message, make sure your browser's tracking protection is set to the 'standard' level.
Strategies & Market Trends : TA-Quotes Plus -- Ignore unavailable to you. Want to Upgrade?


To: Richard Estes who wrote (10187)4/2/2000 5:22:00 PM
From: LaVerne E. Olney  Read Replies (2) | Respond to of 11149
 
Where's the bottom? Testing Market Sentiment with VIX.

Thanks for the compliment, Richard. I'm always looking for market direction tools and thought this one may be of some immediate interest.

The site fundmovers.com was recently noted on the Timing Index Mutual Funds thread. One of their systems for determining market sentment and direction is described: The Connors VIX Reversal. The following scan illustrates backtesting of this indicator.

As noted on the site, it is important to correlate this indicator with others in the determination of market extremes. In my examination of these VIX indicators, it is apparent that the market lows are much easier to determine than the market tops. I've specified very short-term parameters for the charting indicators, which are not necessarily optimum. If anyone finds more reliable settings or is able to improve the indicator logic, I'd be interested in the feedback.

Note that the output file will not be displayed at the completion of the scan, since it is an html file. You will need to click on the "vixbuy.htm" filename in the "QP2data\lists" directory.

leo
WATCHLIST: users.intermediatn.net
MARKET SENTIMENT: users.intermediatn.net

//CVR (Conners VIX Reversal)

input="vix.lst"; //This file has a single line -- !VIX
output="vixbuy.htm";

integer day, start, finish, subday, last, var, periodhi, totalhi, periodlo, totallo, score;
string color, green, red, yellow;

//Indicator parameters

Set RSI = 5;
var:=9; // PerCent Variabliity from Moving Average in CVR 3 (default = 10)
Set StochRSI = 10,10,3,W;
Set CCI=8;
Set MACD = 8,17,9;

green:="B0FFB0";
red:="FFB0B0";
yellow:="FFFFB0";

//Backtesting Variables

start:=-500; //approx. 2 years
finish:=0;

//Begin HML report

Println "<HTML>";
Println "<BODY>";
Println "<H1><CENTER>Connors VIX Reversal</CENTER></H1>";

Println "<P>The Connors VIX Reversal strategies were created by Larry Connors and ";
Println "introduced in his book Connors On Advanced Trading Strategies. </P>";

Println "<P>The VIX is the Chicago Board Options Exchange (CBOE) Volatility Index, ";
Println "which reflects the market consensus estimate of future volatility by measuring ";
Println "the implied volatility of OEX options. The VIX tends to be high when the market ";
Println "is extremely volatile, especially during market declines. It tends to be low when ";
Println "the market is less volatile, usually during extreme up moves and sideways ";
Println "movement. As a result, high readings usually signify too much bearishness, ";
Println "while low readings signify complacency.</P>";

Println "<P>The VIX can be used to measure market sentiment. When combined with ";
Println "additional timing triggers, it offers the opportunity to identify market extremes ";
Println "and likely reversal points. The reliability of these indicators is enhanced by ";
Println "confirmation: the more signals pointing in the same direction, the more likely ";
Println "a move in that direction.</P>";

Println "<P>The CVR I strategy goes long when VIX makes a five-day high and closes ";
Println "below its opening on the same day. It goes short when VIX makes a five-day";
Println " low and closes above its opening on the same day. The extreme high/low ";
Println "reading combined with the intraday reversal usually signifies a change in ";
Println "market sentiment. Since 1993, the S&Ps have moved in the direction of the";
Println " CVR I signal 62% of the time within three days of the signal being triggered. </P>";

Println "<P>The CVR II measures the VIX with the Relative Strength Index (RSI). ";
Println "Extreme RSI readings that reverse usually signal a change in VIX sentiment. ";
Println "Since 1993, this has proven correct 60% of the time within seven days. ";

Println "<P>The CVR III uses moving averages to measure extreme VIX readings. ";
Println "When the VIX moves 10% from its 10-day moving average, it has been ";
Println "pulled to an extreme and is likely to snap back. This has correctly predicted ";
Println "direction nearly 70% of the time after four-to-six days). </P>";

Println "<P>The CVR V is a one-day trading approach: You buy or sell on the ";
Println "close and exit the next day on the close or earlier. For buy set-ups, the VIX ";
Println "must open and close in the bottom third of its trading range for the day, and ";
Println "it must also close above its 10-day moving average (sell set-ups are reversed). ";
Println "This captures intraday sentiment swings where the VIX is too high or too low ";
Println "and will likely revert to its mean. </P>";

Println "<P>The CVR VI identifies markets that are trading at price extremes and ";
Println "are likely to reverse. A buy signal (sells are reversed) is triggered when 2 out ";
Println "of the past 3 days the VIX makes a 20 period high. </P>";

Println "<P>For comparison purposes, the next three columns contain signals for the ";
Println " extreme turning points for StochRSI, CCI and MACD. The StochRSI is very ";
Println "similiar to the RSI (CVR II) and the CCI is similiar to but is more precise ";
Println "than the CVR III. Therefore a case could be made to exclude two of these ";
Println "indicators from the total SCORE column.</P>";

Println "<TABLE Border=1 Frame=Box Rules=All>";
Println "<TR Align=Left BGCOLOR=#C0C0C0>";
Println "<TD><SPAN CLASS=smallfontreverse>ÿDateÿ</SPAN></TD>";
Println "<TD><SPAN CLASS=smallfontreverse>ÿCVR -1ÿ</SPAN></TD>";
Println "<TD><SPAN CLASS=smallfontreverse>ÿCVR -2ÿ</SPAN></TD>";
Println "<TD><SPAN CLASS=smallfontreverse>ÿCVR -3ÿ</SPAN></TD>";
Println "<TD><SPAN CLASS=smallfontreverse>ÿCVR -5ÿ</SPAN></TD>";
Println "<TD><SPAN CLASS=smallfontreverse>ÿCVR -6ÿ</SPAN></TD>";
Println "<TD><SPAN CLASS=smallfontreverse>ÿStochRSIÿ</SPAN></TD>";
Println "<TD><SPAN CLASS=smallfontreverse>ÿCCIÿ</SPAN></TD>";
Println "<TD><SPAN CLASS=smallfontreverse>ÿMACDÿ</SPAN></TD>";
Println "<TD><SPAN CLASS=smallfontreverse>ÿSCOREÿ</SPAN></TD>";
Println "</TR>";

Println "<TR Align=Left>";
For day = start to finish step 1 do
Println "<TD BGCOLOR=#C0C0C0>ÿ", Date(day),"</TD>";
score:=0;

//CVR 1

color:=yellow;
If High(day)>High(day-1) and High(day)>High(day-2) and High(day)>High(day-3)
and High(day)>High(day-4) and Close(day)< Open(day) then
color:=green;
score:=score + 1;
endif;
If Low(day)<Low(day-1) and Low(day)<Low(day-2) and Low(day)<Low(day-3)
and Low(day)<Low(day-4) and Close(day)>Open(day) then
color:=red;
score:=score - 1;
endif;
Println "<TD BGCOLOR=#", color, " Align=Right>ÿOpen ", Open(day):3:2, "ÿ</TD>";

//CVR 2

color:=yellow;
If RSI(day)<RSI(day-1) and RSI(day-1)>RSI(day-2) and RSI(day-1)>70 then
color:=green;
score:=score + 1;
endif;
If RSI(day)>RSI(day-1) and RSI(day-1)<RSI(day-2) and RSI(day-1)<30 then
color:=red;
score:=score - 1;
endif;
Println "<TD BGCOLOR=#", color, " Align=Right>ÿClose ", Close(day):3:2, "ÿ</TD>";

//CVR 3

color:=yellow;
If 100 * Close(day)>(100 + var)*MovAvg(day,10, cl) then
color:=green;
score:=score + 1;
endif;
If 100 * Close(day)< (100 - var) *MovAvg(day,10,cl) then
color:=red;
score:=score - 1;
endif;
Println "<TD BGCOLOR=#", color, " Align=Right>ÿ10-MA ", MovAvg(day,10,cl):3:2, "ÿ</TD>";

//CVR 5

color:=yellow;
If close(day)<Range(day)/3 + Low(day) and
open(day)<Range(day)/3 + Low(day) and
close(day)>MovAvg(day,10,cl) then
color:=green;
score:=score + 1;
endif;
If close(day)>High(day) - Range(day)/3 and
open(day)>High(day) - Range(day)/3 and
close(day)<MovAvg(day,10,cl) then
color:=red;
score:=score - 1;
endif;
Println "<TD BGCOLOR=#", color, " Align=Right>ÿLow ", Low(day):3:2, "ÿ</TD>";

//CVR 6

totalhi:=0;
totallo:=0;
For last = 1 to 3 step 1 do
periodhi:=1;
periodlo:=1;
For subday = last-22 to last-4 step 1 do
If High(day + subday)>High(day) then
periodhi:=0;
endif;
If Low(day + subday)<Low(day) then
periodlo:=0;
endif;
next subday;
totalhi:=totalhi + periodhi;
totallo:=totallo + periodlo;
next last;
color:=yellow;
If totalhi > 1 then color:=green;
score:=score + 1;
endif;
If totallo > 1 then color:=red;
score:=score - 1;
endif;
Println "<TD BGCOLOR=#", color, " Align=Right>ÿHigh ", High(day):3:2, "ÿ</TD>";

//StochRSI

color:=yellow;
If StochRSI(day-2)<StochRSI(day-1) and
StochRSI(day)<StochRSI(day-1) and StochRSI(day-1)>80 then
color:=green;
score:=score + 1;
endif;
If StochRSI(day-2)>StochRSI(day-1) and
StochRSI(day)>StochRSI(day-1) and StochRSI(day-1)<20 then
color:=red;
score:=score - 1;
endif;
Println "<TD BGCOLOR=#", color, " Align=Right>ÿStochRSIÿ</TD>";

//CCI

color:=yellow;
If CCI(day)>100 and CCI(day)<CCI(day-1) then
color:=green;
score:=score + 1;
endif;
If CCI(day)<-100 and CCI(day)>CCI(day-1) then
color:=red;
score:=score - 1;
endif;
Println "<TD BGCOLOR=#", color, " Align=Right>ÿCCIÿ</TD>";

//MACD

color:=yellow;
if MACD(day-2)-MACDSignal(day-2) < MACD(day-1)-MACDSignal(day-1) and
MACD(day-1)-MACDSignal(day-1) > MACD(day)-MACDSignal(day) and
MACD(day)-MACDSignal(day) > 0 then
color:=green;
score:=score + 1;
endif;
if MACD(day-2)-MACDSignal(day-2) > MACD(day-1)-MACDSignal(day-1) and
MACD(day-1)-MACDSignal(day-1) < MACD(day)-MACDSignal(day) and
MACD(day)-MACDSignal(day) < 0 then
color:=red;
score:=score - 1;
endif;
Println "<TD BGCOLOR=#", color, " Align=Right>ÿMACDÿ</TD>";

//Score

color:=yellow;
If score >2 then
color:=green;
endif;
If score < -2 then
color:=red;
endif;
Println "<TD BGCOLOR=#", color, " Align=Right>ÿScore ", score, "ÿ</TD>";

Println "</TR>";
next day;

println "</TABLE></HTML>";println "</TABLE></HTML>";