Category Archives: EDS

The VixRSI14 Indicator – Part 1

While the bulk of the financial world focuses most of its attention on whether or not Bitcoin will turn to sh, er, something that rhymes with Bitcoin, a lot of “old timers” continue on with trying to look at markets in a more traditional way. Unfortunately, some people who try to look at markets in a more traditional way also spend an inordinate amount of time “dividing one number by another” thinking there is some purpose to it (“Hi. My name is Jay”)

The only good news is that every once in awhile something useful – or at least potentially useful (since no single calculation guarantees profitability which also involves other “minor” issues such as which securities to trade, allocation size, entry method, profit taking criteria, stop loss triggers and so on and so forth). A number of years ago I stumbled upon a calculation that I ultimately refer to as VixRSI (for reasons that will become fairly obvious soon).  More specifically I have a few different versions but one I like is call used VixRSI14.

First the Good News: In this and some future articles I will detail how I apply VixRSI14 to monthly, weekly and daily price charts.

Now the Bad News: Nothing that I will write in any of those articles will detail a “simple automated system that generates you can’t lose trading signals guaranteed to make you rich beyond the dreams of avarice.”  Sorry about that. But I thought you should know.

The truth is that the indicator generates signals – and yes, a certain percentage of the time those signals aren’t that great.  And even on occasions when the signals are decent all of the factors I mentioned above (securities traded, capital allocation, etc.) still hold the key to turning a “signal” into a “profit”.

VixRSI14

VixRSI14 is calculated by combining Larry William’s “VixFix” indicator with the standard old 14-day RSI from Welles Wilder. I’ve decided to put the calculations at the end of the article in order to avoid scaring anyone off.

For now let’s look at what to look for on a monthly price chart.

VixRSI14 on a Monthly Chart

OK, true confession time: there is (at least as far as I can tell) no “one best way” to use VixRSI14 on a monthly chart.  So I will simply show you “One way.”

*A “buy alert” is triggered when the monthly value for VixRSI14 first rises to 3.5 or higher and then drops back to 3.0 or below

*Before going on please note that there is nothing “magic” about 3.5 or 3.  Different values can be used and will generate varying results.

*Also, some may prefer to simply look for a drop from above 3 to below 3 without requiring a move above 3.5

*Finally please note the use of the phrase “buy alert” and the lack of the phrase “BUY AS MUCH AS YOU CAN RIGHT THIS VERY MINUTE!!!!”

Figures 1 through 4 show several different Dow30 stocks “through the years.

1

Figure 1 – Ticker AXP (Courtesy AIQ TradingExpert)

2

Figure 2 – Ticker BA (Courtesy AIQ TradingExpert)

3

Figure 3 – Ticker HPQ (Courtesy AIQ TradingExpert)

4

Figure 4 – Ticker IBM (Courtesy AIQ TradingExpert)

Summary

Buy alerts on monthly charts using the criteria I described are obviously very rare.  In fact many securities never see the VixRSI14 rise high enough to trigger an alert.  Likewise, not every 3.5 then 3 event for every stock will work out as well as those depicted in Figures 1 through 4.

Still, remember that I am just presenting an “idea” and not a finished product.

Code:

William’s VixFix is simply the 22-day high price minus today’s low price divided by the 22-day high price (I then multiply by 100 and then add 50).  That may sound complicated but it is not.

The code for AIQ TradingExpert appears below.

########## VixFix Code #############

hivalclose is hival([close],22).

vixfix is (((hivalclose-[low])/hivalclose)*100)+50.

###############################

####### 14-period RSI Code ###########

Define periods14 27.

U14 is [close]-val([close],1).

D14 is val([close],1)-[close].

AvgU14 is ExpAvg(iff(U14>0,U14,0),periods14).

AvgD14 is ExpAvg(iff(D14>=0,D14,0),periods14).

RSI14 is 100-(100/(1+(AvgU14/AvgD14))).

###############################

VixRSI14 is then calculated by dividing the 3-period exponential average of VixFix by the 3-period exponential average of RSI14

####### VixRSI14 Code ###########

VixRSI14 is expavg(vixfix,3)/expavg(RSI14,3).

###############################

Jay Kaeppel

Disclaimer:  The data presented herein were obtained from various third-party sources.  While I believe the data to be reliable, no representation is made as to, and no responsibility, warranty or liability is accepted for the accuracy or completeness of such information.  The information, opinions and ideas expressed herein are for informational and educational purposes only and do not constitute and should not be construed as investment advice, an advertisement or offering of investment advisory services, or an offer to sell or a solicitation to buy any security.

Trend or Countertrend? Why Not Both?

First the brutal disclaimers: What follows is NOT a trading “system.” It is merely an “idea.” Even more brutally, I can’t even claim that it “works”.  All the testing I have done so far is more anecdotal. Also to an extremely huge degree, the actual entry trigger and exit trigger that  trader might choose to use will have – as always – at least as much if not more impact on overall trading results as the actual “alert” signal detailed below.
Got that?  OK, then let’s proceed.
The Debate
The ongoing debate in trading is always – trend-following or countertrend?  Which is the way to go?  There are (conservatively) at least a bazillion and one ways to argue one way or the other.       Figure 1 displays ticker TXN with upper and lower “Acceleration Bands” (code for AIQ TradingExpert appears after disclaimer at end of article) drawn.
1
Figure 1 – Ticker TXN with Acceleration Bands (Courtesy AIQ TradingExpert)
Want to start a debate?  Ask this question: Is it better to buy when price hits the upper band or the lower band?  Sometimes price hits the upper band and just keeps going.  Sometimes it hits the upper band and the move peters out and reverses fairly quickly.
Going with the trend can lead to some big winning trades along the way, but typically involves a lot of whipsaws as well. Trading countertrend can lead to some great, quick profits – expect of course for when the initial trend never quite reverses and quick losses accrue instead.
What to do, what to do?
So the “idea” I mentioned at the outset generally goes like this:
*In an uptrend (which we will define in a moment)
*Wait for price to hit the Upper Band
*Then wait for a pullback
*Then wait for the uptrend to reassert itself
Got that? OK, me neither exactly.  So let’s try to define things a little more clearly.
1. As long as the closing price remains above the 200-day moving average, we will call that an “uptrend”
2. Within an uptrend wait for the high of a trading day to reach or exceed the Upper Acceleration Band.
3. Following #2, wait for the 4-day RSI to drop to 32 or lower with the following caveats:
*If price touches the Lower Acceleration Band OR closes below the 200-day moving average
*Then the setup is invalidated
This is the “Setup”.  For sake of example I will add an entry trigger as follows:
4. Following a valid #3 Alert Signal, buy when price exceeds the previous day’s high
I am going to purposely NOT add an exit trigger – just so that no one decides to “try it out” without at least giving it some thought on their own.
So Figure 2 shows the “Alerts” and “Entry Triggers” for the chart in Figure 1.
2Figure 2 – Ticker TXN with Example “Entry Triggers” (Courtesy AIQ TradingExpert)
So Figure 3 shows the “Alerts” and “Entry Triggers” for ticker EBAY3
Figure 3 – Ticker EBAY with Example “Entry Triggers” (Courtesy AIQ TradingExpert)
So Figure 4 shows the “Alerts” and “Entry Triggers” for ticker CSCO
4
Figure 4 – Ticker CSCO with Example “Entry Triggers” (Courtesy AIQ TradingExpert)
So are these signals any good? Well, like a lot of trading methods, some look pretty good and others do not.  As I also mentioned earlier, a lot depends on the method or methods you use to exit each trade.
Summary
The reality is that there is a chance that the “idea” contained herein is just no darn good.
But also remember that there are other “trend filters” (besides the 200-day moving average), there are other “bands” (besides Acceleration Bands”), there are other oversold indicators (besides 4-day RSI) and there are other entry and exit triggers.
As such, this piece is essentially for people who are willing to do a little digging on their own and, a) become comfortable (or not) with the idea, and b) develop  some position sizing, stop-loss and profit-taking criteria.
Jay Kaeppel
Disclaimer:  The data presented herein were obtained from various third-party sources.  While I believe the data to be reliable, no representation is made as to, and no responsibility, warranty or liability is accepted for the accuracy or completeness of such information.  The information, opinions and ideas expressed herein are for informational and educational purposes only and do not constitute and should not be construed as investment advice, an advertisement or offering of investment advisory services, or an offer to sell or a solicitation to buy any security.
Acceleration Bands Code for AIQ Expert Design Studio EDS
a is ([high]-[low]).
b is ([high]+[low])/2.
c is (a / b).
d is (c*2).
e is (1+d).
f is (1-d).
g is ([high]*e).
h is ([low]*f).
AccelUB is Simpleavg(g, 20).
AccelLB is Simpleavg(h, 20).

Weekly and Daily MACD

The AIQ code based on Vitali Apirine’s article in December 2017 issue of Stocks and Commodities magazine, “Weekly & Daily MACD,” is provided below.
The moving average convergence/divergence oscillator (MACD), developed by Gerald Appel, is one of the more popular technical analysis indicators. The MACD is typically used on a single timeframe, but what if we looked at two timeframes on one chart?

Traders can look for relative daily MACD line crossovers, weekly and daily centerline crossovers, and divergences to generate trading signals. 
Figure 5 shows the daily & weekly MACD indicator on a chart of Apple Inc. (AAPL) during 2016 and 2017, when there was a change from a downtrend to an uptrend.
Sample Chart

FIGURE 5: AIQ. Here is an example of the daily & weekly MACD on a chart of AAPL.
The code and EDS file can be downloaded from http://aiqsystems.com/dailyweeklyMACD.EDS, or copied here:
!WEEKLY & DAILY MACD
!Author: Vitali Apirine, TASC Dec 2017
!Coded by: Richard Denning 10/13/17
!www.TradersEdgeSystems.com

!INPUTS:
S is 12.
L is 25.

EMA1 is expavg([Close],S).
EMA2 is expavg([Close],L).
EMA3 is expavg([Close],S*5).
EMA4 is expavg([Close],L*5).
MACD is EMA1 - EMA2.
MACDW is EMA3 - EMA4.
rdMACD is MACD + MACDW.
—Richard Denning
info@TradersEdgeSystems.com
for AIQ Systems

A Candlestick Strategy With Soldiers And Crows

ndle reversal patterns—a bullish one white soldier and a bearish one black crow—that requ

The Expert Design Studio code for Jerry D’Ambrosio and Barbara Star’s article, “A Candlestick Strategy With Soldiers And Crows,” in Stocks & Commodities October 2018 issue is shown below.”Among the more well-known candlestick reversal patterns are soldiers and crows. These occur in a three-candle pattern such as three white soldiers or three black crows. Recently, on the website Candlesticker.com, we learned of two other candle reversal patterns—a bullish one white soldier and a bearish one black crow—that require fewer candles. ”

!A CANDLESTICK STRATEGY WITH SOLDIERS AND CROWS
!Author: Jerry D'Ambrosio & Barbara Star, TASC Oct 2017
!Coded by: Richard Denning 8/05/2017
!www.TradersEdgeSystems.com

!CODING ABBREVIATIONS:
O is [open].
O1 is valresult(O,1).
C is [close].
C1 is valresult(C,1).
C2 is valresult(C,2).
H is [high].
L is [low].
V is [volume].

!INPUTS:
minPriceBull is 1.
minPriceBear is 10.
minVolume is 1000. !in hundreds
volAvgLen is 50.
dayCount is 5.
longExitBars is 7.
shortExitBars is 1.

okToBuy if simpleavg(C,50) > simpleavg(C,200) or CminPriceBull and simpleavg(V,volAvgLen)>minVolume.
BullWS if C1C1 and C>O1 and O= longExitBars.

okToSell if simpleavg(C,50) < simpleavg(C,200) or C>simpleavg(C,200)*1.1.
okToSellMkt if TickerRule("SPX",okToSell).
PVfilterBear if C>minPriceBear and simpleavg(V,volAvgLen).
BearBC if C1>C2 and C1>O1 
     and OO1 
     and countof(C1>C2,dayCount)=dayCount
     and PVfilterBear and okToSellMkt.
ExitShort if {position days} >= shortExitBars.
I ran several backtests using the NASDAQ 100 list of stocks over the period from 8/04/2000 to 8/04/2017. I varied the following inputs to find the optimum set of parameters for the candlestick patterns. For longs, the “dayCount” = 5 with an “longExitBars” = 7 produced the best results, which is shown in Figure 5. For shorts, the “dayCount” = 5 with a “shortExitBars” = 1 produced the best results, which is shown in Figure 6. Neither commission nor slippage were subtracted from the results.

Sample Chart

FIGURE 5: WINWAY. EDS summary report for longs only.

Sample Chart

FIGURE 6: WINWAY. EDS summary report for shorts only.
—Richard Denning
info@TradersEdgeSystems.com
for TradingExpert Pro

ire fewer candles. “

System Development Using Artificial Intelligence

The AIQ code based on Domenico D’Errico and Giovanni Trombetta’s article in August 2017 Stock & Commodities issue, “System Development Using Artificial Intelligence,” is shown here. You can also download the EDS file from here

Are humans or computers better at trading? This question has been around on many fronts since the era of punch cards, and as technology advances, you question whether machines have limits. It’s the same with trading, and here’s an algorithm that may shed some light on which performs better…

!ARTIFICAL INTELLIGENCE FOR SYSTEM DEVELOPMENT
!Authors: Domenico D'Errico & Giovanni Trombetta, TASC August 2017
!Coded by: Richard Denning, 6/08/2017
!www.TradersEdgeSystems.com

!INPUTS:
O is [open].
C is [close].
H is [high].
L is [low].
exitBars is 8.
exitBarsP is 6.
enterGap is -0.08.

!CODE:
AvgP is (O+C+H+L)/4.
MedP is (H+L)/2.
MedB is (O+C)/2.

AvgP1 is valresult(AvgP,1).
AvgP2 is valresult(AvgP,2).
AvgP3 is valresult(AvgP,3).

MedP1 is valresult(MedP,1).
MedP2 is valresult(MedP,2).
MedP3 is valresult(MedP,3).
MedP4 is valresult(MedP,4).

MedB1 is valresult(MedB,1).
MedB2 is valresult(MedB,2).
MedB3 is valresult(MedB,3).
MedB4 is valresult(MedB,4).

!ENTRY & EXIT RULESl
Gandalf if 
  (AvgP1exitBars-1)
 or ({position days}>=exitBars-1)
 or ({position days}>=exitBarsP-1 and (C-{position entry price}>0)).

EntryPr is min(val([low],1) + enterGap,[open]).

Buy if Gandalf and [low] <= EntryPr.

See Figure 10 for how to set up the pricing in a backtest.
Sample Chart

FIGURE 10: AIQ. This shows the EDS backtest settings for entry pricing.
—Richard Denning
info@TradersEdgeSystems.com
for AIQ Systems