Forum Replies Created
-
AuthorPosts
-
Nick RadgeKeymaster
Weekly volume is exactly that – the total volume traded during the week.
Entering on the weekly open however needs some moderate caution because you’ll potentially have an illiquid day.
Suggestions:
(1) Use the opening auction as the entry
(2) Ensure the stock has an average daily volume of say 300,000 for the last 50 days (weekly = 1,5m)Nick RadgeKeymasterWhite Paper
We document significant ‘‘time series momentum’’ in equity index, currency, commodity, and bond futures for each of the 58 liquid instruments we consider. We find persistence in returns for one to 12 months that partially reverses over longer horizons, consistent with sentiment theories of initial under-reaction and delayed over-reaction. A diversified portfolio of time series momentum strategies across all asset classes delivers substantial abnormal returns with little exposure to standard asset pricing factors and performs best during extreme markets.
Nick RadgeKeymasterPrice and Volume Filters
Code:_SECTION_BEGIN (“Optional Price & Volume Filters”);
//=====================================================
//Optional Price & Volume Filters
//=====================================================
PriceTog = ParamToggle(“Price Filter”,”On|Off”);
MinSP = Param(“Minimum Share Price – $”,0.20,0.00,1000,0.01);
MaxSP = Param(“Maximum Share Price – $”,100,0.00,1000,0.01);
MinMaxSP = C >= MinSP AND C <= MaxSP; PriceFilt = IIf(PriceTog,MinMaxSP,1); //--------------------------------------------------------------------------------- TOTog = ParamToggle("Turnover Filter","Off|On"); Turnover = C*V; MinTO = Param("Minimum Turnover - $",300000,0,10000000,1000); TOMA = Param("Turnover MA",5,1,200,1); AveTO = MA(Turnover,TOMA); TOFilter = AveTO > MinTO AND Turnover > MinTO;
TOFilt = IIf(TOTog,TOFilter,1);
//———————————————————————————
VolTog = ParamToggle(“Volume Filter”,”Off|On”);
MinVol = Param(“Minimum Volume”,300000,0,10000000,1000);
VolFilter = Volume > MinVol;
VolFilt = IIf(VolTog,VolFilter,1);
//———————————————————————————
AveVolTog = ParamToggle(“Average Volume Filter”,”Off|On”);
MinAveVol = Param(“Minimum Average Volume”,300000,0,10000000,1000);
AVPer = Param(“Volume EMA”,7,1,200,1);
AveVol = EMA(V,AVPer) > MinAveVol;
AveVolFilt = IIf(AveVolTog,AveVol,1);
//———————————————————————————
OptFilt = PriceFilt AND TOFilt AND VolFilt AND AveVolFilt;//====================================================
_SECTION_END();Nick RadgeKeymasterIndex Filter Code
Code:_SECTION_BEGIN (“Index Filter”);
//=================================================================================
//Index Filter
//=================================================================================
IndexTog = ParamToggle(“Index Filter:”,”Off|On”);
“”;
“Index Filter”;
IndexCode = ParamStr(“Index Symbol”,”$XAO.asx”);
Index = Foreign(IndexCode,”C”);
IndMA = Param(“Index MA”,50,1,200,1);IndFiltUp = Index > MA(Index,IndMA);
IndFiltL = IIf(IndexTog,IndFiltUp,1);//=================================================================================
_SECTION_END();Nick RadgeKeymasterHistorical Database Template
Code:_SECTION_BEGIN(“Historical Data Base Testing”);
//=================================================================================
//Historical Data Base Testing
//=================================================================================
ASXList = ParamList(“ASX Historical Watchlist:”,”1: Off|2: ASX 20|3: ASX 50|4: ASX 100|5: ASX 200|6: ASX 300|7: ASX All Ordinaries|8: ASX Small Ordinaries|9: ASX Emerging Companies|10: Excluding ASX 300″,0);if(ASXList == “1: Off”) HistDB = 1;
if(ASXList == “2: ASX 20”) HistDB = IsIndexConstituent(“$XTL”);
if(ASXList == “3: ASX 50”) HistDB = IsIndexConstituent(“$XFL”);
if(ASXList == “4: ASX 100”) HistDB = IsIndexConstituent(“$XTO”);
if(ASXList == “5: ASX 200”) HistDB = IsIndexConstituent(“$XJO”);
if(ASXList == “6: ASX 300”) HistDB = IsIndexConstituent(“$XKO”);
if(ASXList == “7: ASX All Ordinaries”) HistDB = IsIndexConstituent(“$XAO”);
if(ASXList == “8: ASX Small Ordinaries”) HistDB = IsIndexConstituent(“$XSO”);
if(ASXList == “9: ASX Emerging Companies”) HistDB = IsIndexConstituent(“$XEC”);
if(ASXList == “10: Excluding ASX 300”) HistDB = IsIndexConstituent(“$XKO”)==0;//———————————————————————————
USList = ParamList(“US Historical Watchlist:”,”1: Off|2: Russell 1000|3: Russell 2000|4: Russell 3000|5: NASDAQ 100|6: Dow Jones Industrial Average|7: S&P 500|8: S&P 100|9: S&P MidCap 400|10: S&P SmallCap 600|11: S&P 1500|12: Russell MicroCap|13: Russell MidCap”,0);if(USList == “1: Off”) USHistDB = 1;
if(USList == “2: Russell 1000”) USHistDB = IsIndexConstituent(“$RUI”);
if(USList == “3: Russell 2000”) USHistDB = IsIndexConstituent(“$RUT”);
if(USList == “4: Russell 3000”) USHistDB = IsIndexConstituent(“$RUA”);
if(USList == “5: NASDAQ 100”) USHistDB = IsIndexConstituent(“$NDX”);
if(USList == “6: Dow Jones Industrial Average”) USHistDB = IsIndexConstituent(“$DJI”);
if(USList == “7: S&P 500”) USHistDB = IsIndexConstituent(“$SPX”);
if(USList == “8: S&P 100”) USHistDB = IsIndexConstituent(“$OEX”);
if(USList == “9: S&P MidCap 400”) USHistDB = IsIndexConstituent(“$MID”);
if(USList == “10: S&P SmallCap 600”) USHistDB = IsIndexConstituent(“$SML”);
if(USList == “11: S&P 1500”) USHistDB = IsIndexConstituent(“$SP1500”);
if(USList == “12: Russell MicroCap”) USHistDB = IsIndexConstituent(“$RUMIC”);
if(USList == “13: Russell MidCap”) USHistDB = IsIndexConstituent(“$RMC”);//———————————————————————————
HDBFilter = HistDB AND USHistDB;//=================================================================================
_SECTION_END();Nick RadgeKeymasterA word of warning – ensure you thoroughly test, including visually, any of these 3rd party codes. I have come across some very poor examples with major flaws.
Nick RadgeKeymasterThanks Maurice. I’ll add this to the depository.
Nick RadgeKeymasterTHURSDAY
No US positions
2 open trades in ASX mean reversion – 1 to exit on todays open
5 new orders tomorrowRevisited enabling a stop loss on the mean reversion system. Researching MAE of trades. Looks like a 10% stop loss will inhibit the tail. More work today and over weekend.
Assess MC students first systems. Seeing some great coding!
Nick RadgeKeymasterSymbols > Markets > ASX Equities
So the choice is whether you trade a specific universe or the full market. If testing the full market ensure you’re only trading FPO’s and not the associated options etc that are also found in that list
Nick RadgeKeymasterThe issue is that the system is not robust – the variance of a large sample of data is not available. Therefore we really can’t know how stable the system really is. The more sample, the more idea we have of stability. The less stable, the less idea. So, you may have a system that ‘appear’ good on a small sample, but in actual fact that brief period is just a good run within a very poor system. You need a way to stop the rot.
Howard Bandy uses metrics, i.e. if tests show a maxDD of 10% and you hit 12%, the you stop. The equity curve stop does the same thing. Theory then states that should the system stabilize you can start trading it again.
Nick RadgeKeymasterI came across another site that uses single market systems – I’ll try and find it for you. That guy made the argument that there is nothing wrong with data mining patterns. As I say in my notes, it’s my personal opinion rather than a law that must be followed. The one thing I would suggest, which is also what Howard Bandy suggests, is using a system stop loss of some type, like an equity curve trail stop or some such.
Nick RadgeKeymasterKevin Davey is big into optimisation in single markets so tread carefully.
Try Ernie Chan: http://epchan.blogspot.com.au/search/label/Strategies
I also think he has a few books: http://www.amazon.com/Ernest-P.-Chan/e/B001JSEBVG
Connors and Alveraz have been done quite hard, especially their RSI(2) strategy. There have many versions around – I think I have 5 or so
Craig has done quite a bit of study on Adam Grimes stuff – have a chat with him.
Clenow stuff is good. I think I have about 4 versions of his rotational system. Lengthening his parameters will perform better (which is what he probably does)
Nick RadgeKeymasterWEDNESDAY
Still quiet on the trading front
No US positions in any portfolios
50% long in ASX trend following system – small caps holding up, although becoming more volatile
2 open positions in ASX mean reversion system and 5 new trades going today
ASX mean reversion system in 6% drawdown this yearNick RadgeKeymasterArticle – a very good read for systems developers
-
AuthorPosts