Set and Forget supply and demand community launched
7th October 2013
Backtesting supply and demand is not enough, you need to forward test
16th October 2013

Metatrader 4 has many known limitations, the rectangle tool is one of them. It was not thought for supply and demand traders, so I came up with an idea and created and indicator that will modify the painted rectangles automatically the way I wanted, to suit the way supply and demand type of trading requires.

You can download Rectangle Reader Metatrader indicator from set and forget supply and demand forex trading room. The community has a more advanced rectangle reader indicator.

This indicator will help you to have cleaner charts as well as to being aware of where the D1 and WK supply and demand zones in control are when zooming in lower timeframes, you don’t want to buy into a D1/W1 supply zone, or buy into a D1 demand zone. That’s very very dangerous and lower odds. With this indicator you will always know about it, if your zones are correctly drawn. It will all depend on how good you are locating the supply and demand imbalances.


  1. Rectangles will only be visible on the timeframe where it’s been painted. The indicator will automatically tick the timeframe checkbox under the rectangle’s visualization tab
  2. The rectangles will be automatically extended to current candle + 5 candles to the right on every tick
  3. It will calculate the distance in pips between the distal line (highest price) and the proximal line (lowest price) of the rectangle
  4. It will display price labels automatically on both the highest and lowest price, so that you know where to set your entries and your stop loss
  5. It will allow you to automatically draw trendlines from left to right of the rectangle on H4, Daily, Weekly and Monthly timeframes. What’s the point of doing this? To assess how close or far you are from the higher timeframes (D1 and WK), how low or high you are in the supply and demand curve. Trendlines will be visible on all timeframes, so if you are on the H1 chart you will know how close to D1 and WK supply and demand you are by paying attention to the trendlines colours.
  6. It will not interfere with the automatic zones drawn by the Insanity Industries Supply and Demand indicator, it will not expand the rectangles created by it, so both your manual rectangles and the automatic ones can coexist. This is accomplished with the ExcluseName1 variable
  7. You will be able to choose how many zones above and below current price will have trendlines painted, you do want to have your charts as clean as possible and not crowded with lines all over the place preventing you from seeing the price action
  8. It will allow you to change the colour and style of each trendline for each of the timeframes, so you’ll know how close you are to D1 and WK by the trend line’s colour.


You can change all these variables on each of your symbols. Let me explain what each variable does.

Active = true;
It will turn on/off the indicator, if false it will not expand rectangle or execute any of its features
ExtendSize = 5;
This will expand the rectangle to current candle + 5 candles to the right. If you change it to 10 it will be 10 candles to the right
ExcludeName1 = “aII_SupDem”;
This setting is to filter out the rectangles names created by the automatic SD zones from Insanity Industries indicator. It will not interfere with the automatic zones by not expand the rectangles created by it, so both your manual rectangles and the automatic ones can coexist.
ExcludeName2 = “no”;
If you don’t want a rectangle to be automatically expanded, edit its properties and change its description to no, it will no longer be affected by the indicator, the rectangle will not be extended. Good if you want to draw other rectangles in other areas of the charts.
Labels.Active = true;
If true, it will show price levels at high and low price of the rectangle
Color.High = White;
Color.Low = White;
These 2 settings is the color of the labels, high and low
High.Price = true;
If false, it will not show the label for the high price
Low.Price = true;
If false, it will not show the label for the low price
Label.Size = 1;
This is the font size for the price labels, change it in increments of 1
Range.Active = true;
If true, it will show the rectangle’s width in pips
Range.Inside = true;
If false, it will draw the rectangle’s pips width outside of the rectangle, on the far right side
Range.Color = White;
This is the color of the width in pips
Range.Size =9;
This is the font size of the width in pips label

H4_trendlines = true;
It will allow the indicator to draw trendlines both at the upper and lower price of the rectangles painted on H4
H4_lines_number = 1;
This is the number of rectangles above and below current price that the indicator will use to draw the trendlines, if you change it to 2 it will draw trendlines 2 rectangles above and 2 rectangles below current price
H4_upper_color = Yellow;
This is the color of the upper trendline for H4
H4_lower_color = Lime;
This is the color of the lower trendline for H4
H4_style = 2;
This is the style for those trendlines, from 0 to 4. It’s the order you see in the line style window in Metatrader 4

The settings below are like the H4 explained above, but duplicated for both D1 and WK charts. Very important to know how close to the D1 and WK supply and demand curve you are.

D1_trendlines = true;
D1_lines_number = 2;
D1_upper_color = Yellow;
D1_lower_color = Lime;
D1_style = 0;

WK_trendlines = true;
WK_lines_number = 1;
WK_upper_color = Yellow;
WK_lower_color = Lime;
WK_style = 1;

MN_trendlines = true;
MN_lines_number = 1;
MN_upper_color = Yellow;
MN_lower_color = Lime;
MN_style = 1;
Manual_TL_On_Current_TF_Only = true;
If set to True, trendlines painted will only be visualized on the timeframe where it’s been drawn. If set to False then they will be painted on all timeframes. I have it true as default, because I use the trendlines as direction on the entry timeframe H4 and H1, or even D1. I don’t want them to be visible on the other timeframes, only on the ones where they relate to.
Manual_Text_On_Current_TF_Only = true;
The same feature can be applied to text objects painted with the A icon tool

NO_TL_COLOR: set to purple by default. The color set on this variable will not be taken into account as a strong Supply and Demand level, no TL (tredline) will be painted on distal/proximal lines and the pips calculation will not be applied to it either. This is very useful when you want to draw a Supply and Demand area you want to be aware of but you don’t to have the trendlines painted on or influence on your decisions (like a speedbump against the trend)

Now the Rectangle Reader indicator will detect if a Supply and Demand rectangle has been touched, if touched (non-fresh) the rectangle color will be automatically changed to the one you have specified for supply and demand colors retouch (see next bullet). I want to buy or sell only on fresh areas of supply and demand

Color.sup.retouch and Color.dem.rotouch: these will be the colors a non-fresh Supply and Demand rectangle will be changed to If the Supply and Demand zone is not the color specified under DEMAND_COLOR_1, DEMAND_COLOR_2, SUPPLY_COLOR_1 and SUPPLY_COLOR_2, the rectangle reader indicator will not change its color to the Color.sup.retouch and color.dem.retouch

Solid.retouch. If this is set to true, when a Supply and Demand zone is touched for the first time (non-fresh), the rectangle will be filled. If set to false the rectangle will be unfilled. You can change this setting at any moment, it will be instantly applied to ALL manual rectangles you have drawn, but not to those automatically painted by the Automatic Supply and Demand indicator by Insanities Industries

The indicator will also show how high or how low you are in the Daily, Weekly and Monthly curves by measuring proximal lines from manual supply and demand levels drawn with the rectangle indicator. It will not detect the automatic Supply and Demand levels, you will have to clone the automatic Supply and Demand rectangles (explained on one of my videos) and then the RR indicator will detect the proximal lines.

You have to have both supply and demand price levels painted, or the % shown will show 0%
Only rectangles drawn manually will be detected

show.curve.percent = true;
By default, the curve percentages will be displayed. If set to false, percentages will be hidden.

curve.display.topRHcorner = true;
When set to false, the percentages will be displayed at right bottom corner

curve.display.vertical = false;
When true overrides topRHcorner setting and display vertical from toprightcorner

curve.high = 71;
If higher than 71%, the % will be displayed in red, so you know you are quite high in the curve

curve.low = 30;
Same but if between 0 and 30%, the % will be displayed in blue. If between 30 and 71%, it will be displayed in the color set in curve.middle.color.
See curve colors below

curve.high.color = Red;
curve.middle.color = Lime;
curve.low.color = Aqua;
curve.default.color = White;

curve.y.position = 20;
This is how high/low the % information will be displayed vertically

These are the new variables:
show.curve.percent = true;
If false, it will not show percentages of the curve
curve.display.topRHcorner = true;
When false displays at right bottom corner
curve.display.vertical = true;
When true overrides topRHcorner setting and display vertical from top right corner
curve.display.color.levels = true;
When true will display colour levels otherwise only values = true;
If false it will not draw the color boxes for the MN zones
curve.display.wk.levels = true;
If false it will not draw the color boxes for the WK zones
curve.display.d1.levels = true; ?
If false it will not draw the color boxes for the D1 zones
Draw_MN_Middle = true;
If true it will draw the 50% of the MN curve
Draw_MN_Middle_Color = White;
Draw_MN_Middle_Style = 1;
These settings manage the color and style of the line drawn
Draw_WK_Middle = false; ?
If true it will draw the 50% of the WK curve
Draw_WK_Middle_Color = Purple;
Draw_WK_Middle_Style = 1;
Draw_D1_Middle = false; ?
If true it will draw the 50% of the D1 curve
Draw_D1_Middle_Color = Yellow;
Draw_D1_Middle_Style = 1;
Show_lots = true;
If true, it will display the lots calculation for all manual rectangles next to the pips calculation of each SD level
RiskPercentage = 1.0;
You can change the default 1% risk at any time and it will update the lots you can trade based on your account’s balance
Padding_pips = 2;
Wiggle_room_H1 = 8;
Wiggle_room_H4 = 10;
Wiggle_room_D1 = 25;
Padding and wiggle room is also taking into account to calculate your risk. You can change them to set up each different cross pair and exotic pair differently
How to make the rectangle reader work if markets are closed?
If markets are close the rectangle indicator will not work properly, it needs price ticks to update them. A trick is to open the indicators windows and close it, then it will update all indicators as well as the rectangle reader. Try it. Draw a rectangle, then CONTROL+I for indicators and close it.

The default settings for automatic trendlines is set to H4=1, D1=2 and WK=2. We want clean charts, so the more automatic trendlines we use the more crowed and unreadable charts will be. Decide what timeframe is your curve and then change the settings accordingly. I use D1 for my intraday and WK for my swing, but I always want to know how close or far I’m from the WK curve, so I have the trendlines painted on the WK zones as well.

NOTE: I will not be adding M30, H1 or M15 trendline zones, because I am not doing that kind of trading, sorry. This forum is about swing trading, so it’s useless to spend time adding features we’re not supposed to use

If your indicator is being removed by Metatrader shortly after you run your MT Terminal, remember you have to have latest MT build. It has happened to some users, the reason is that some old MT build versions have that bug, please update to the latest build, talk to your broker on how to do that.

Alfonso Moreno
Alfonso Moreno
Full time trader, expert technical analyst and founder of Set and Forget supply and demand online trading community. Traveler, photographer and adventurer.


  1. John says:

    please alfonso i want the free indicators and template

  2. VIN SEN CHIN says:

    Hi, i dont see any link for downloading the indicator. Can you help me?. thank you.

  3. Puru says:

    Hi Alfonso,
    Do you have automatic demand and supply zone indicator in tradingview?
    If yes how can i get the code.

Leave a Reply

Your e-mail address will not be published. Required fields are marked *


Disclaimer: Any Advice or information on this website is General Advice Only - It does not take into account your personal circumstances, please do not trade or invest based solely on this information. By viewing any material or using the information within this site you agree that this is general education material and you will not hold any person or entity responsible for loss or damages resulting from the content or general advice provided here by Set and Forget, its employees, or fellow members. Futures, options, and spot currency and stocks trading have large potential rewards, but also large potential risk. You must be aware of the risks and be willing to accept them in order to invest in the Forex and futures markets. Don't trade with money you can't afford to lose. This website is neither a solicitation nor an offer to Buy/Sell spot Forex, cfd's, stocks or other financial products. No representation is being made that any account will or is likely to achieve profits or losses similar to those discussed in any material on this website. The past performance of any trading system or methodology is not necessarily indicative of future results.

High Risk Warning: Forex, Futures, and Options trading has large potential rewards, but also large potential risks. The high degree of leverage can work against you as well as for you. You must be aware of the risks of investing in Forex, futures, and options and be willing to accept them in order to trade in these markets. Forex trading involves substantial risk of loss and is not suitable for all investors. Please do not trade with borrowed money or money you cannot afford to lose. Any opinions, news, research, analysis, prices, or other information contained on this website is provided as general market commentary and does not constitute investment advice. We will not accept liability for any loss or damage, including without limitation to, any loss of profit, which may arise directly or indirectly from the use of or reliance on such information. Please remember that the past performance of any trading system or methodology is not necessarily indicative of future results.