All posts by admin
Detecting Swings
The AIQ code based on Domenico D’Errico’s article in the May 2017 issue of Stoks Commodities, “Detecting Swings,” is provided below.
I tested the author’s four systems using the NASDAQ 100 list of stocks on weekly bars, as did the author, from 3/16/2005 through 3/14/2017. Figure 7 shows the comparative metrics of the four systems using the four-week exit. The results were quite different than the author’s, probably due to a different test portfolio and also a 10-year test period rather than the author’s 20-year period. In addition, my test results show longs only, whereas the author’s results are the average of both the longs and shorts.
The Bollinger Band (Buy2) system showed the worst results, whereas the author’s results showed the Bollinger Band system as the best. The pivot system (Buy1) showed the best results, whereas the author’s results showed the pivot system as the worst. I am not showing here the comparative test results for the Sell1 thru Sell4 rules, as all showed an average loss over this test period.
!DECTECTING SWINGS
!Author: Domenico D'Errico, TASC May 2017
!Coded by: Richard Denning, 3/15/17
!www.TradersEdgeSystems.com
!Set to WEEKLY in properties
Low is [low].
Low1 is valresult(Low,1).
Low2 is valresult(Low,2).
High is [high].
High1 is valresult(High,1).
High2 is valresult(High,2).
PivotLow if Low1 < Low2 and Low1 < Low.
PivotHigh if High1 > High2 and High1 > High.
Buy1 if PivotLow.
Sell1 if PivotHigh.
!Set parameter for bollinger bands to 12 with 2 sigma (weekly) in charts:
Buy2 if [close] > [Lower BB] and valrule([close] <= [Lower BB],1).
Sell2 if [close] < [Upper BB] and valrule([close] >= [Upper BB],1).
!Set parameter for Wilder RSI to 5 (weekly) in charts:
Buy3 if [RSI Wilder] > 40 and valrule([RSI Wilder] <= 40,1).
Sell3 if [RSI Wilder] < 60 and valrule([RSI Wilder] >= 60,1).
Buy4 if [RSI Wilder] < 40 And Low > Low1.
Sell4 if [RSI Wilder] > 60 And High < High1.
Exit if {position days} >= 4.
It’s Soon or Never for Bonds
Up2 if val([close],1) > val([close],2).
Up3 if val([close],2) > val([close],3).
Up4 if val([close],3) > val([close],4).
Up5 if val([close],4) > val([close],5).
Up6 if val([close],5) > val([close],6).
Up7 if val([close],6) > val([close],7).
Up8 if val([close],7) > val([close],8).
Up9 if val([close],8) > val([close],9).
Up10 if val([close],9) > val([close],10).
Up11 if val([close],10) > val([close],11).
Up12 if val([close],11) > val([close],12).
Up13 if val([close],12) > val([close],13).
Up14 if val([close],13) > val([close],14).
Up15 if val([close],14) > val([close],15).
Up16 if val([close],15) > val([close],16).
Up17 if val([close],16) > val([close],17).
Up18 if val([close],17) > val([close],18).
Up19 if val([close],18) > val([close],19).
Up20 if val([close],19) > val([close],20).












