Welcome to NexusFi: the best trading community on the planet, with over 150,000 members Sign Up Now for Free
Genuine reviews from real traders, not fake reviews from stealth vendors
Quality education from leading professional traders
We are a friendly, helpful, and positive community
We do not tolerate rude behavior, trolling, or vendors advertising in posts
We are here to help, just let us know what you need
You'll need to register in order to view the content of the threads and start contributing to our community. It's free for basic access, or support us by becoming an Elite Member -- see if you qualify for a discount below.
-- Big Mike, Site Administrator
(If you already have an account, login at the top of the page)
Among my goals is Profit Factor >= 1.5. Just by that measure, they all fail except QQQ. QQQ passed both Profit Factor and Adjusted Profit Factor (goal > 1.0).
QQQ failed Monte Carlo simulation. I expect at least 2.0 Return/Drawdown ratio. Even when lowering the starting equity to the minimum (~$3,000), it did not improve it enough to trade.
This idea might work with NQ futures, given the leverage futures provides, but that does not help me since I cannot trade futures right now. Maybe I could try a leveraged QQQ ETF.... hmmmm.
I'll post a link to the system post when I publish it tomorrow.
So I tried a leveraged QQQ ETF (Nasdaq 100), TQQQ, which is 3x leveraged (though 'leveraged' ETF's are not quite leveraged at 3:1 ratio....won't get into specifics). Anyhow, it did no better than QQQ by itself.
I also tried ES for the past two years and compared to SPY over the same period. Just about the same profit factor, though a higher loss on ES due to higher trading costs and greater leverage. The signals were about the same.
This system was a pain. However, since I have had time to sleep on it... at least for QQQ, is it a bad system idea? I checked and the system is in the market less than 2% of the time and it is profitable for at least this instrument, maybe others I did not test yet. Maybe I trade it if I have capital lying around.
I have started developing my next system, which is called Another Oddball System. It was created by Mark Brown in the mid-90's, but I could not get too much information other than the rules and instruments. It was published in the defunct Active Trader magazine.
The idea is to calculate Bollinger Bands based on a 10-period adaptive moving average (a/k/a Kaufman's Adaptive Moving Average). Here is what I am looking at (daily chart; instrument 3188.HK):
Entry long is above the top band; entry short is below. This is a stop-and-reverse (SAR) system that tries to capture trends and keep you in them for a very long time. I am adding my own twist to it, which is using a 2-period RSI to get a better entry. When the price closes outside of the bands, the instrument is often overbought or oversold, so I want for retracement prior to entry. My manual testing has shown this approach to be better a vast majority of the time. I did some analysis last year, posted in this journal, regarding the delayed entry on a PSAR system, which showed better results in a delayed entry, so this jives with what I am seeing.
I have not used Bollinger Bands in any of my algos, so this is new territory. I like the use of the KAMA rather than pure price, which is novel to me and interesting. I will be testing this on a basket of ETFs that will act as a proxy to the futures (I don't have all my futures data set up yet).
Going through my manual testing phase to determine feasibility, I tested this idea on a corn futures ETF (CORN):
No stops or risk management, just the entry and reversal signals
Oct 2010 through today (Mar 23)
I entered only when the 2-period RSI moved out of oversold/overbought (30/70)
Here is the equity curve, marked-to-market:
The RSI 'trick' for entry gave a better entry over 90% of the time. We are essentially waiting for the retracement. I think I read something from Perry Kaufman or other algo trader who indicated that waiting a day/bar or two for entry after a signal generally resulted in better returns.
If I used the SPY ETF to calculate alpha, the returns for this instrument and system idea do not beat a buy-and-hold of SPY over the same period:
SPY: 24.5% annual return
CORN: 11.9% annual return
Alpha = -12.6%
This is just one instrument and this idea is going to be tested over a basket/portfolio of instruments, one of which is SPY.
Just as a side note, I find the naming for some of these futures based ETF to be amusing (CORN, HOGS, COW, etc.).
I have been trying to standardize, codify, and simplify the system development process, and I wanted to share the latest thing I've come up with. I am going to build a standard template for all the system code I develop from this point forward (EasyLanguage = Strategy; MultiCharts = Signal....I call it 'System'). I have built similar templates, but never settled on a standard. Here is my attempt to capture all the components I want to capture:
System Standard Components
Things this helps me with:
Prevent recoding the same thing over and over again
Standardizing things that I use time and again
Set a parameter when I want to switch between a fixed number of contracts/shares (forex, futures) to a variable one based on risk capital (equities, ETFs)
Select direction when working with long or short only system ideas
Select start and end dates for trading periods, useful for backtesting and walk-forward
Stop loss and profit targets, for system ideas that use those
Reinvestment of profit (or reducing position size when running a net loss)
Inputs: values I set for the system Variables: stored values Processing: How the system uses the inputs and variables to manage system behavior
I know this is not a novel idea and I think I recall TradeStation allows you to create templates for EasyLanguage. The big thing for me is to not have to recode some basic, standard things I use time and again, although not with every system I build. I may create some functions to further simplify my code, such as a function to just calculate position size. Write once, use many.
It is a work in progress, but I'm pretty close. I am really just tired of having to rewrite code when I want to switch from forex testing to ETFs, for example.