Repulsion Moving Average - Least Crosses MA

A Moving Average With Less Whipsaws Signals

The cross of the price with a moving average is one of the easiest strategy in technical analysis and could have worked if market price wasn't so noisy (In general periods of 1 to 20 produces the most whipsaws). So it is possible to create a moving average who can manage to escape those noisy periods and produce 0 whipsaws ?

This question was asked by one of my work colleagues and i responded : "well...almost 0".

The Motion Of A Moving Average

Moving Average estimate the Trend and will always have phase shift, they will still follow the price and cross it during high volatility or low volatility periods, and when a moving average cross the price during a low volatility period you can expect lot of crosses.

In order to fix this behaviour a simple calculation exist :

FixMa = LongPeriodMA + MediumPeriodMA - ShortPeriodMA

We can see things in that way, the medium term MA is high pass filtered (subtracted) with a short term MA and the result is summed to a long term MA. We give more reactivity to our long term MA and thus creating some kind of repulsion motion with the price. Of course this can sometimes make the filter kinda zero-lag to some price periods (when the long term MA is near the price).


In red a simple moving average of period 100 and in blue our repulsion moving average :

In the image the short term moving average period is 100, since the long term period of the moving average is equal to short term x 3 you could be interested to look at the comparison of our moving average with the actual long term moving average :

Less crosses, i think you can see it.

Something to notice is that its always a tradeoff between Signal Speed and Signal Numbers, a classic moving average create faster signals but also a high numbers of them, a classic trailing stop create less signals but slowest ones, our moving average is some kind of average between those indicators.

Improvement Methods - Choice of The Filter/More Terms

A bad behaviour of our filter can be fixed by using filters who tend to create less crosses with the price or by developing the formula of our filter by adding more terms as follow :

fixma = ma(Price,a) + ma(Price,b) + ma(Price,c) - ma(Price,d) - ma(Price,e)

where a > b > c > d > e. The number of subtractive terms is equal to the number of summing terms - 1.

Way To Use

This indicator can be used like any moving average with cross strategy. Can also be used as a trailing stop.
No tests have been made proving that this indicator provide support and resistance levels, such signals come from more centered indicators.

Hope you enjoy

For any questions/demands feel free to pm me, i would be happy to help you :)
Gỡ bỏ khỏi Script Ưa thích Thêm vào Script Ưa thích

Become a Patreon and get access to exclusive technical indicators!

You can also check out some of the indicators I made for luxalgo :

Bình luận

Very nice improvement, gave you thumb up, keep it up my friend =D
+1 Phản hồi
@ICEKI, Thanks! You’re awesome for always checking into my indicators :)
Phản hồi
ICEKI alexgrover
@alexgrover, you're very welcome, I should appreciated your generous shared your creations, this Repulsion Moving Average, I think have a good potential room to develop and enhance in future. I roughly set on the charts I think if use it properly it could provide some support and resistance levels as well too.
Phản hồi
Trang chủ Bộ lọc cổ phiếu Bộ lọc Forex Bộ lọc Tiền điện tử Lịch kinh tế Cách thức hoạt động Tính năng Biểu đồ Trả phí Giới thiệu bạn Quy tắc Áp dụng Trung tâm Trợ giúp Giải pháp cho Website & Nhà môi giới Widget Giải pháp biểu đồ Thư viện Biểu đồ Lightweight Blog & Tin tức Twitter
Hồ sơ Tùy chỉnh Hồ sơ Tài khoản và Thanh toán Giới thiệu bạn Xu Ticket Hỗ trợ của tôi Trung tâm Trợ giúp Các ý tưởng đã đăng Người theo dõi Đang theo dõi Tin nhắn riêng Trò chuyện Đăng xuất