Rahul Mohindar Oscillator also known as RMO is a popular indicator to detect the market direction. It is popular among Metastock traders to trade high volatile instruments. We have tried to design and backtest RMO Trading System in Amibroker. This system is based on a combination of moving averages to predict the price movements. RMO indicator is originally developed by Mr. Rahul Mohindar of based out of India. In addition to being a trader and trainer, Mr. Mohindar is a panelist on both CNBC and CNN India.
Please visit Trading Tuitions Academy to learn AFL coding and create your own Trading systems.
RMO Trading System – AFL Overview
Parameter | Value |
Preferred Time-frame |
Daily |
Indicators Used | Simple Moving Average, Exponential Moving Avrage |
Buy Condition |
|
Short Condition |
|
Sell Condition |
|
Cover Condition |
|
Stop Loss | 1% |
Targets | 5% |
Position Size | 50% of equity |
Initial Equity | 200000 |
Brokerage | 100 per order |
Margin | 10% |
RMO Trading System– AFL Code
//------------------------------------------------------ // // Formula Name: RMO Trading System // Author/Uploader: Trading Tuitions // E-mail: support@tradingtuitions.com // Website: www.tradingtuitions.com //------------------------------------------------------ _SECTION_BEGIN("RMO Trading System"); SetBarsRequired( sbrAll ); SetChartOptions(0,chartShowArrows|chartShowDates); _N(Title = StrFormat("{{NAME}} – {{INTERVAL}} {{DATE}} Open %g, Hi %g, Lo %g, Close %g (%.1f%%) {{VALUES}}", O, H, L, C, SelectedValue( ROC( C, 1 ) ) )); //Initial Parameters SetTradeDelays( 1,1,1, 1 ); SetOption( "InitialEquity", 200000); SetOption("FuturesMode" ,True); SetOption("MinShares",1); SetOption("CommissionMode",2); SetOption("CommissionAmount",100); SetOption("AccountMargin",10); SetOption("RefreshWhenCompleted",True); //SetPositionSize(150,spsShares); SetPositionSize(50,spsPercentOfEquity); SetOption( "AllowPositionShrinking", True ); Plot( Close, "Price", colorWhite, styleCandle ); SwingTrd1 = 100 * (Close - ((MA(C,2)+ MA(MA(C,2),2)+ MA(MA(MA(C,2),2),2) + MA(MA(MA(MA(C,2),2),2),2) + MA(MA(MA(MA(MA(C,2),2),2),2),2) + MA(MA(MA(MA(MA(MA(C,2),2),2),2),2),2) + MA(MA(MA(MA(MA(MA(MA(C,2),2),2),2),2),2),2)+ MA(MA(MA(MA(MA(MA(MA(MA(C,2),2),2),2),2),2),2),2)+ MA(MA(MA(MA(MA(MA(MA(MA(MA(C,2),2),2),2),2),2),2), 2),2)+ MA(MA(MA(MA(MA(MA(MA(MA(MA(MA(C,2),2),2),2),2),2), 2),2),2),2))/10))/(HHV(C,10)-LLV(C,10)); SwingTrd2=EMA(SwingTrd1,30); SwingTrd3=EMA(SwingTrd2,30); RMO= EMA(SwingTrd1,81); Buy=Cross(SwingTrd2,SwingTrd3); Short=Cross(SwingTrd3,SwingTrd2); Sell=Short; Cover=Buy; BuyPrice=Open; SellPrice=Open; ShortPrice=Open; CoverPrice=Open; Buy = ExRem(Buy,Sell); Sell = ExRem(Sell,Buy); Short=ExRem(Short,Cover); Cover=ExRem(Cover,Short); StopLoss=Param("SL",1,1,10,1); Target=Param("Target",5,5,40,5); ApplyStop(Type=0,Mode=1,Amount=StopLoss); ApplyStop(Type=1,Mode=1,Amount=Target); /* Plot Buy and Sell Signal Arrows */ PlotShapes(IIf(Buy, shapeSquare, shapeNone),colorGreen, 0, L, Offset=-40); PlotShapes(IIf(Buy, shapeSquare, shapeNone),colorLime, 0,L, Offset=-50); PlotShapes(IIf(Buy, shapeUpArrow, shapeNone),colorWhite, 0,L, Offset=-45); PlotShapes(IIf(Cover, shapeSquare, shapeNone),colorGreen, 0, L, Offset=-40); PlotShapes(IIf(Cover, shapeSquare, shapeNone),colorLime, 0,L, Offset=-50); PlotShapes(IIf(Cover, shapeUpArrow, shapeNone),colorWhite, 0,L, Offset=-45); PlotShapes(IIf(Sell, shapeSquare, shapeNone),colorRed, 0, H, Offset=40); PlotShapes(IIf(Sell, shapeSquare, shapeNone),colorOrange, 0,H, Offset=50); PlotShapes(IIf(Sell, shapeDownArrow, shapeNone),colorWhite, 0,H, Offset=-45); PlotShapes(IIf(Short, shapeSquare, shapeNone),colorRed, 0, H, Offset=40); PlotShapes(IIf(Short, shapeSquare, shapeNone),colorOrange, 0,H, Offset=50); PlotShapes(IIf(Short, shapeDownArrow, shapeNone),colorWhite, 0,H, Offset=-45); _SECTION_END();
AFL Screenshot
RMO Trading System- Backtest Report
RMO Trading system has a very good profitability in the last 16 years, but drawdown is also quite high. For an inexperienced trader, it would be hard to digest 11 consecutive losses and less than 30% success ratio.
Parameter | Value |
Nifty | |
Initial Capital | 200000 |
Final Capital | 36656201.64 |
Scrip Name | NSE Nifty |
Backtest Period | 30-May-2000 to 12-Jan-2017 |
Timeframe | Daily |
Net Profit % | 18228.10% % |
Annual Return % | 35.78% |
Number of Trades | 335 |
Winning Trade % | 29.25% |
Average holding Period | 5.32 periods |
Max consecutive losses | 11 |
Max system % drawdown | -70.78% |
Max Trade % drawdown | -39.33% |
Download the detailed backtest report here.
Equity Curve
The equity curve is very rough and the periods of drawdown is evident. However the overall profitability is good.
Profit Table
Additional Amibroker settings for backtesting
Goto Symbol–>Information, and specify the lot size and margin requirement. The below screenshot shows lot size of 75 and margin requirement of 10% for NSE Nifty:
Disclaimer:
All the AFL’s posted in this section are for learning purpose. Trading Tuitions does not necessarily own these AFL’s and we don’t have any intellectual property rights on them. We might copy useful AFL’s from public forums and post it in this section in a presentable format. The intent is not to copy anybody’s work but to share knowledge. If you find any misleading or non-reproducible content then please inform us at support@tradingtuitions.com
Not possible to trade with such a huge drawdown. On Index drawdown cannot be more than 10%. All your research is good but just not possible to take up the system for trading.
Agreed that it’s very difficult to trade, but technically not impossible. I have mentioned the same in the post too.
It is good that you are writing new AFL for various combinations.
Have you ever tried to make a AFL based on Elliott wave. This is the only method ,if correctly understood, one can always remains on the right side of the market.
Pl do educate to built a AFL on this subject.
Thanks.
Thanks you for the recommendation. We will definitely try to create an AFL for Elliott wave
Hi admin,
Great article, thanks for sharing.
Dear Admin,
Would like to know your view on RMO ATM software , Vantage Point Software & Advanced GET software. Kindly Reply.
Thank You.
There are below 3 signals that makes a buy or Sell signal for RMO
1. Both Swingtrade 2 and Swingtrade 3 should be above zero and cross over should happen
2. Average Volumes must be above during Cross Over or volume in previous days must be above average(50 SMA)
3. Buy triggers only when stock or index moves above the high of a cross over bar.
For shorts its Low and Volume still as discussed above and reverse cross over
Also Stop loss and Targets are dynamic in nature.
Have you tried any other combinations such as 2% SL and 5% Target because in your above example you mentioned Risk Reward as 1:5 and with that it is 30%.
with RR 2,2.5,3,3.5 i believe results vary significantly,only then we can derive average success rate.
By changing RR if you still get 11 continuous failed trades and max draw down of 70% also only 30% success none will be using RMO as its around 6 years old and used worldwide.
No system would give 1:5 Risk Reward with 17+ yrs Data…
dear sir
1 doubt is the first signal of the day continuation of the previous day else it is fresh signal for the calendar day since iam intraday trader and should i consider 1st signal for trading,thanks