Publications by Ilya Kipnis

Several Key PerformanceAnalytics Functions From R Now In Python (special thanks to Vijay Vaidyanathan)

21.06.2023

So, thanks to my former boss, and head of direct indexing at BNY Mellon, Vijay Vaidyanathan, and his Coursera course, along with the usual assistance from chatGPT (I officially see it as a pseudo programming language), I have some more software for the Python community now released to my github. As wordpress now makes it very difficult to paste for...

3517 sym Python (408 sym/1 pcs)

This function VITAL for portfolio backtesting is now in Python, written with the help of chatGPT4

03.05.2023

So, it’s been a little while. But after a couple of years of some grunt work analytics jobs *and* consulting for a $1B AUM fund, I’ve decided that I had a bit more in the tank to share as far as quant content creation–quantent creation (?)–goes. And a function I’ve searched for in Python for a long time now, but never finding it in a pro...

8899 sym Python (11474 sym/2 pcs)

Trend Vigor Part IV: Shorting and Walk Forward Test

16.06.2014

While Trend Vigor has potential on the long end (as seen in part III of this investigation here), as Andreas Clenow has stated in his article “Trend Following Does Not Work On Stocks”, the short side of trend following gets killed in equities. And, since by far and away most of the securities in this backtest were equity-based ETFs (most of t...

8289 sym R (27558 sym/8 pcs) 16 img

The Continuing Search For Robust Momentum Indicators: the Fractal Adaptive Moving Average

22.06.2014

Following from the last post and setting aside the not-working-as-advertised Trend Vigor indicator, we will turn our attention to the world of adaptive moving averages. In this case, I will be working with the FRAMA–the FRactal Adaptive Moving Average. The reason I am starting off with this one is that according to ETFHQ in this post, FRAMA is ...

5402 sym R (2785 sym/3 pcs) 8 img

FRAMA Part II: Replicating A Simple Strategy

27.06.2014

This post will begin the investigation into FRAMA strategies, with the aim of ultimately finding a FRAMA trading strategy with less market exposure, fewer whipsaw trades, and fewer counter-trend trades. This post will also introduce new analytics regarding trade duration. To begin the investigation into developing strategies based on the previous...

6239 sym R (30755 sym/8 pcs) 8 img

FRAMA Part III: Avoiding Countertrend Trading — A First Attempt

02.07.2014

This post will begin to experiment with long-term directional detection using relationships between two FRAMA indicators. By observing the relationship between two differently parametrized FRAMAs and the relationship by virtue of the ATR, it will be possible to avoid counter-trend trading on both sides. We will see this example later: As with TV...

8203 sym R (22059 sym/8 pcs) 10 img

FRAMA Part IV: Continuing the Long/Short Filter Search

09.07.2014

This post examines an n-day median filter for two desirable properties: robustness to outliers and an inherent trend-confirming lag. While this is an incomplete filter (or maybe even inferior), it offers some key insights into improving the trading system. The strategy will be thus: First and foremost, this will be a short-only strategy, due to ...

5049 sym R (16030 sym/2 pcs) 10 img

FRAMA Part V: Wrap-Up on Confirmatory Indicator/Test Sample

15.07.2014

So, it is possible to create a trading system that can correctly isolate severe and protracted downturns, without taking (too many) false signals. Here are the rules: 126 day FRAMA, FC=4, SC=300 (we’re still modifying the original ETFHQ strategy). A running median (somewhere between 150 days and 252 days–seemingly, all these configurations wo...

5759 sym R (1052 sym/2 pcs) 14 img

Intermission: A Data File For Futures Data (from Quandl)

22.07.2014

So between variations of different strategies, for those who have yet to come across it, my IKTrading package has a function called quandClean, which exists to get and clean daily futures data from quandl.com . The exact process can be found on the Revolution Analytics blog on this post. While some of their futures data is quoted in other curren...

2148 sym R (4718 sym/1 pcs) 4 img

Volatility Histeresis: A First Attempt

28.07.2014

So the last time that a FRAMA strategy was tried with price crossovers, the problem was that due to counter-trending failures, the filter that was added missed a lot of good trades, and wound up losing a lot of money during flat markets that passed the arbitrary filter. This trading system tries to rectify those issues by trading a rising FRAMA f...

4010 sym R (8984 sym/6 pcs) 10 img