Draw vertical lines at time - MetaTrader 4 Forex Indicator ...

My home-made bar replay for MT4

I made a home-made bar replay for MT4 as an alternative to the tradingview bar replay. You can change timeframes and use objects easily. It just uses vertical lines to block the future candles. Then it adjusts the vertical lines when you change zoom or time frames to keep the "future" bars hidden.
I am not a professional coder so this is not as robust as something like Soft4fx or Forex Tester. But for me it gets the job done and is very convenient. Maybe you will find some benefit from it.

Here are the steps to use it:
1) copy the text from the code block
2) go to MT4 terminal and open Meta Editor (click icon or press F4)
3) go to File -> New -> Expert Advisor
4) put in a title and click Next, Next, Finish
5) Delete all text from new file and paste in text from code block
6) go back to MT4
7) Bring up Navigator (Ctrl+N if it's not already up)
8) go to expert advisors section and find what you titled it
9) open up a chart of the symbol you want to test
10) add the EA to this chart
11) specify colors and start time in inputs then press OK
12) use "S" key on your keyboard to advance 1 bar of current time frame
13) use tool bar buttons to change zoom and time frames, do objects, etc.
14) don't turn on auto scroll. if you do by accident, press "S" to return to simulation time.
15) click "buy" and "sell" buttons (white text, top center) to generate entry, TP and SL lines to track your trade
16) to cancel or close a trade, press "close order" then click the white entry line
17) drag and drop TP/SL lines to modify RR
18) click "End" to delete all objects and remove simulation from chart
19) to change simulation time, click "End", then add the simulator EA to your chart with a new start time
20) When you click "End", your own objects will be deleted too, so make sure you are done with them
21) keep track of your own trade results manually
22) use Tools-> History center to download new data if you need it. the simulator won't work on time frames if you don't have historical data going back that far, but it will work on time frames that you have the data for. If you have data but its not appearing, you might also need to increase max bars in chart in Tools->Options->Charts.
23) don't look at status bar if you are moused over hidden candles, or to avoid this you can hide the status bar.

Here is the code block.
//+------------------------------------------------------------------+ //| Bar Replay V2.mq4 | //| Copyright 2020, MetaQuotes Software Corp. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2020, MetaQuotes Software Corp." #property link "https://www.mql5.com" #property version "1.00" #property strict #define VK_A 0x41 #define VK_S 0x53 #define VK_X 0x58 #define VK_Z 0x5A #define VK_V 0x56 #define VK_C 0x43 #define VK_W 0x57 #define VK_E 0x45 double balance; string balance_as_string; int filehandle; int trade_ticket = 1; string objectname; string entry_line_name; string tp_line_name; string sl_line_name; string one_R_line_name; double distance; double entry_price; double tp_price; double sl_price; double one_R; double TP_distance; double gain_in_R; string direction; bool balance_file_exist; double new_balance; double sl_distance; string trade_number; double risk; double reward; string RR_string; int is_tp_or_sl_line=0; int click_to_cancel=0; input color foreground_color = clrWhite; input color background_color = clrBlack; input color bear_candle_color = clrRed; input color bull_candle_color = clrSpringGreen; input color current_price_line_color = clrGray; input string start_time = "2020.10.27 12:00"; input int vertical_margin = 100; //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { Comment(""); ChartNavigate(0,CHART_BEGIN,0); BlankChart(); ChartSetInteger(0,CHART_SHIFT,true); ChartSetInteger(0,CHART_FOREGROUND,false); ChartSetInteger(0,CHART_AUTOSCROLL,false); ChartSetInteger(0,CHART_SCALEFIX,false); ChartSetInteger(0,CHART_SHOW_OBJECT_DESCR,true); if (ObjectFind(0,"First OnInit")<0){ CreateStorageHLine("First OnInit",1);} if (ObjectFind(0,"Simulation Time")<0){ CreateTestVLine("Simulation Time",StringToTime(start_time));} string vlinename; for (int i=0; i<=1000000; i++){ vlinename="VLine"+IntegerToString(i); ObjectDelete(vlinename); } HideBars(SimulationBarTime(),0); //HideBar(SimulationBarTime()); UnBlankChart(); LabelCreate("New Buy Button","Buy",0,38,foreground_color); LabelCreate("New Sell Button","Sell",0,41,foreground_color); LabelCreate("Cancel Order","Close Order",0,44,foreground_color); LabelCreate("Risk To Reward","RR",0,52,foreground_color); LabelCreate("End","End",0,35,foreground_color); ObjectMove(0,"First OnInit",0,0,0); //--- create timer EventSetTimer(60); return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //--- destroy timer EventKillTimer(); } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { //--- } //+------------------------------------------------------------------+ //| ChartEvent function | //+------------------------------------------------------------------+ void OnChartEvent(const int id, const long &lparam, const double &dparam, const string &sparam) { if (id==CHARTEVENT_CHART_CHANGE){ int chartscale = ChartGetInteger(0,CHART_SCALE,0); int lastchartscale = ObjectGetDouble(0,"Last Chart Scale",OBJPROP_PRICE,0); if (chartscale!=lastchartscale){ int chartscale = ChartGetInteger(0,CHART_SCALE,0); ObjectMove(0,"Last Chart Scale",0,0,chartscale); OnInit(); }} if (id==CHARTEVENT_KEYDOWN){ if (lparam==VK_S){ IncreaseSimulationTime(); UnHideBar(SimulationPosition()); NavigateToSimulationPosition(); CreateHLine(0,"Current Price",Close[SimulationPosition()+1],current_price_line_color,1,0,true,false,false,"price"); SetChartMinMax(); }} if(id==CHARTEVENT_OBJECT_CLICK) { if(sparam=="New Sell Button") { distance = iATR(_Symbol,_Period,20,SimulationPosition()+1)/2; objectname = "Trade # "+IntegerToString(trade_ticket); CreateHLine(0,objectname,Close[SimulationPosition()+1],foreground_color,2,5,false,true,true,"Sell"); objectname = "TP for Trade # "+IntegerToString(trade_ticket); CreateHLine(0,objectname,Close[SimulationPosition()+1]-distance*2,clrAqua,2,5,false,true,true,"TP"); objectname = "SL for Trade # "+IntegerToString(trade_ticket); CreateHLine(0,objectname,Close[SimulationPosition()+1]+distance,clrRed,2,5,false,true,true,"SL"); trade_ticket+=1; } } if(id==CHARTEVENT_OBJECT_CLICK) { if(sparam=="New Buy Button") { distance = iATR(_Symbol,_Period,20,SimulationPosition()+1)/2; objectname = "Trade # "+IntegerToString(trade_ticket); CreateHLine(0,objectname,Close[SimulationPosition()+1],foreground_color,2,5,false,true,true,"Buy"); objectname = "TP for Trade # "+IntegerToString(trade_ticket); CreateHLine(0,objectname,Close[SimulationPosition()+1]+distance*2,clrAqua,2,5,false,true,true,"TP"); objectname = "SL for Trade # "+IntegerToString(trade_ticket); CreateHLine(0,objectname,Close[SimulationPosition()+1]-distance,clrRed,2,5,false,true,true,"SL"); trade_ticket+=1; } } if(id==CHARTEVENT_OBJECT_DRAG) { if(StringFind(sparam,"TP",0)==0) { is_tp_or_sl_line=1; } if(StringFind(sparam,"SL",0)==0) { is_tp_or_sl_line=1; } Comment(is_tp_or_sl_line); if(is_tp_or_sl_line==1) { trade_number = StringSubstr(sparam,7,9); entry_line_name = trade_number; tp_line_name = "TP for "+entry_line_name; sl_line_name = "SL for "+entry_line_name; entry_price = ObjectGetDouble(0,entry_line_name,OBJPROP_PRICE,0); tp_price = ObjectGetDouble(0,tp_line_name,OBJPROP_PRICE,0); sl_price = ObjectGetDouble(0,sl_line_name,OBJPROP_PRICE,0); sl_distance = MathAbs(entry_price-sl_price); TP_distance = MathAbs(entry_price-tp_price); reward = TP_distance/sl_distance; RR_string = "RR = 1 : "+DoubleToString(reward,2); ObjectSetString(0,"Risk To Reward",OBJPROP_TEXT,RR_string); is_tp_or_sl_line=0; } } if(id==CHARTEVENT_OBJECT_CLICK) { if(sparam=="Cancel Order") { click_to_cancel=1; Comment("please click the entry line of the order you wish to cancel."); } } if(id==CHARTEVENT_OBJECT_CLICK) { if(sparam!="Cancel Order") { if(click_to_cancel==1) { if(ObjectGetInteger(0,sparam,OBJPROP_TYPE,0)==OBJ_HLINE) { entry_line_name = sparam; tp_line_name = "TP for "+sparam; sl_line_name = "SL for "+sparam; ObjectDelete(0,entry_line_name); ObjectDelete(0,tp_line_name); ObjectDelete(0,sl_line_name); click_to_cancel=0; ObjectSetString(0,"Risk To Reward",OBJPROP_TEXT,"RR"); } } } } if (id==CHARTEVENT_OBJECT_CLICK){ if (sparam=="End"){ ObjectsDeleteAll(0,-1,-1); ExpertRemove(); }} } //+------------------------------------------------------------------+ void CreateStorageHLine(string name, double value){ ObjectDelete(name); ObjectCreate(0,name,OBJ_HLINE,0,0,value); ObjectSetInteger(0,name,OBJPROP_SELECTED,false); ObjectSetInteger(0,name,OBJPROP_SELECTABLE,false); ObjectSetInteger(0,name,OBJPROP_COLOR,clrNONE); ObjectSetInteger(0,name,OBJPROP_BACK,true); ObjectSetInteger(0,name,OBJPROP_ZORDER,0); } void CreateTestHLine(string name, double value){ ObjectDelete(name); ObjectCreate(0,name,OBJ_HLINE,0,0,value); ObjectSetInteger(0,name,OBJPROP_SELECTED,false); ObjectSetInteger(0,name,OBJPROP_SELECTABLE,false); ObjectSetInteger(0,name,OBJPROP_COLOR,clrWhite); ObjectSetInteger(0,name,OBJPROP_BACK,true); ObjectSetInteger(0,name,OBJPROP_ZORDER,0); } bool IsFirstOnInit(){ bool bbb=false; if (ObjectGetDouble(0,"First OnInit",OBJPROP_PRICE,0)==1){return true;} return bbb; } void CreateTestVLine(string name, datetime timevalue){ ObjectDelete(name); ObjectCreate(0,name,OBJ_VLINE,0,timevalue,0); ObjectSetInteger(0,name,OBJPROP_SELECTED,false); ObjectSetInteger(0,name,OBJPROP_SELECTABLE,false); ObjectSetInteger(0,name,OBJPROP_COLOR,clrNONE); ObjectSetInteger(0,name,OBJPROP_BACK,false); ObjectSetInteger(0,name,OBJPROP_ZORDER,3); } datetime SimulationTime(){ return ObjectGetInteger(0,"Simulation Time",OBJPROP_TIME,0); } int SimulationPosition(){ return iBarShift(_Symbol,_Period,SimulationTime(),false); } datetime SimulationBarTime(){ return Time[SimulationPosition()]; } void IncreaseSimulationTime(){ ObjectMove(0,"Simulation Time",0,Time[SimulationPosition()-1],0); } void NavigateToSimulationPosition(){ ChartNavigate(0,CHART_END,-1*SimulationPosition()+15); } void NotifyNotEnoughHistoricalData(){ BlankChart(); Comment("Sorry, but there is not enough historical data to load this time frame."+"\n"+ "Please load more historical data or use a higher time frame. Thank you :)");} void UnHideBar(int barindex){ ObjectDelete(0,"VLine"+IntegerToString(barindex+1)); } void BlankChart(){ ChartSetInteger(0,CHART_COLOR_FOREGROUND,clrNONE); ChartSetInteger(0,CHART_COLOR_CANDLE_BEAR,clrNONE); ChartSetInteger(0,CHART_COLOR_CANDLE_BULL,clrNONE); ChartSetInteger(0,CHART_COLOR_CHART_DOWN,clrNONE); ChartSetInteger(0,CHART_COLOR_CHART_UP,clrNONE); ChartSetInteger(0,CHART_COLOR_CHART_LINE,clrNONE); ChartSetInteger(0,CHART_COLOR_GRID,clrNONE); ChartSetInteger(0,CHART_COLOR_ASK,clrNONE); ChartSetInteger(0,CHART_COLOR_BID,clrNONE);} void UnBlankChart(){ ChartSetInteger(0,CHART_COLOR_FOREGROUND,foreground_color); ChartSetInteger(0,CHART_COLOR_CANDLE_BEAR,bear_candle_color); ChartSetInteger(0,CHART_COLOR_CANDLE_BULL,bull_candle_color); ChartSetInteger(0,CHART_COLOR_BACKGROUND,background_color); ChartSetInteger(0,CHART_COLOR_CHART_DOWN,foreground_color); ChartSetInteger(0,CHART_COLOR_CHART_UP,foreground_color); ChartSetInteger(0,CHART_COLOR_CHART_LINE,foreground_color); ChartSetInteger(0,CHART_COLOR_GRID,clrNONE); ChartSetInteger(0,CHART_COLOR_ASK,clrNONE); ChartSetInteger(0,CHART_COLOR_BID,clrNONE);} void HideBars(datetime starttime, int shift){ int startbarindex = iBarShift(_Symbol,_Period,starttime,false); ChartNavigate(0,CHART_BEGIN,0); if (Time[WindowFirstVisibleBar()]>SimulationTime()){NotifyNotEnoughHistoricalData();} if (Time[WindowFirstVisibleBar()]=0; i--){ vlinename="VLine"+IntegerToString(i); ObjectCreate(0,vlinename,OBJ_VLINE,0,Time[i],0); ObjectSetInteger(0,vlinename,OBJPROP_COLOR,background_color); ObjectSetInteger(0,vlinename,OBJPROP_BACK,false); ObjectSetInteger(0,vlinename,OBJPROP_WIDTH,vlinewidth); ObjectSetInteger(0,vlinename,OBJPROP_ZORDER,10); ObjectSetInteger(0,vlinename,OBJPROP_FILL,true); ObjectSetInteger(0,vlinename,OBJPROP_STYLE,STYLE_SOLID); ObjectSetInteger(0,vlinename,OBJPROP_SELECTED,false); ObjectSetInteger(0,vlinename,OBJPROP_SELECTABLE,false); } NavigateToSimulationPosition(); SetChartMinMax();} }//end of HideBars function void SetChartMinMax(){ int firstbar = WindowFirstVisibleBar(); int lastbar = SimulationPosition(); int lastbarwhenscrolled = WindowFirstVisibleBar()-WindowBarsPerChart(); if (lastbarwhenscrolled>lastbar){lastbar=lastbarwhenscrolled;} double highest = High[iHighest(_Symbol,_Period,MODE_HIGH,firstbar-lastbar,lastbar)]; double lowest = Low[iLowest(_Symbol,_Period,MODE_LOW,firstbar-lastbar,lastbar)]; ChartSetInteger(0,CHART_SCALEFIX,true); ChartSetDouble(0,CHART_FIXED_MAX,highest+vertical_margin*_Point); ChartSetDouble(0,CHART_FIXED_MIN,lowest-vertical_margin*_Point); } void LabelCreate(string labelname, string labeltext, int row, int column, color labelcolor){ int ylocation = row*18; int xlocation = column*10; ObjectCreate(0,labelname,OBJ_LABEL,0,0,0); ObjectSetString(0,labelname,OBJPROP_TEXT,labeltext); ObjectSetInteger(0,labelname,OBJPROP_COLOR,labelcolor); ObjectSetInteger(0,labelname,OBJPROP_FONTSIZE,10); ObjectSetInteger(0,labelname,OBJPROP_ZORDER,10); ObjectSetInteger(0,labelname,OBJPROP_BACK,false); ObjectSetInteger(0,labelname,OBJPROP_CORNER,CORNER_LEFT_UPPER); ObjectSetInteger(0,labelname,OBJPROP_ANCHOR,ANCHOR_LEFT_UPPER); ObjectSetInteger(0,labelname,OBJPROP_XDISTANCE,xlocation); ObjectSetInteger(0,labelname,OBJPROP_YDISTANCE,ylocation);} double GetHLinePrice(string name){ return ObjectGetDouble(0,name,OBJPROP_PRICE,0); } void CreateHLine(int chartid, string objectnamey, double objectprice, color linecolor, int width, int zorder, bool back, bool selected, bool selectable, string descriptionn) { ObjectDelete(chartid,objectnamey); ObjectCreate(chartid,objectnamey,OBJ_HLINE,0,0,objectprice); ObjectSetString(chartid,objectnamey,OBJPROP_TEXT,objectprice); ObjectSetInteger(chartid,objectnamey,OBJPROP_COLOR,linecolor); ObjectSetInteger(chartid,objectnamey,OBJPROP_WIDTH,width); ObjectSetInteger(chartid,objectnamey,OBJPROP_ZORDER,zorder); ObjectSetInteger(chartid,objectnamey,OBJPROP_BACK,back); ObjectSetInteger(chartid,objectnamey,OBJPROP_SELECTED,selected); ObjectSetInteger(chartid,objectnamey,OBJPROP_SELECTABLE,selectable); ObjectSetString(0,objectnamey,OBJPROP_TEXT,descriptionn); } //end of code 
submitted by Learning_2 to Forex [link] [comments]

So you wanna trade Forex? - tips and tricks inside

Let me just sum some stuff up for you newbies out there. Ive been trading for years, last couple of years more seriously and i turned my strategies into algorithms and i am currently up to 18 algorithms thats trading for me 24/7. Ive learned alot, listened to hundreds of podcasts and read tons of books + research papers and heres some tips and tricks for any newbie out there.

  1. Strategy - How to... When people say "you need a trading strategy!!" Its because trading is very hard and emotional. You need to stick to your rules at all times. Dont panic and move your stop loss or target unless your rules tell you to. Now how do you make these rules? Well this is the part that takes alot of time. If your rules are very simple (for example: "Buy if Last candles low was the lowest low of the past 10 candles." Lets make this a rule. You can backtest it manually by looking at a chart and going back in time and check every candle. or you can code it using super simple software like prorealtime, MT4 ++ Alot of software is basicly "click and drag" and press a button and it gives you backtest from 10-20-30 years ago in 5 seconds. This is the absolute easiest way to backtest rules and systems. If your trading "pure price action" with your drawn lines and shit, the only way to truly backtest that kind of trading is going in a random forex pair to a random point in time, could be 1 year ago, 1 month ago, 5 years ago.. and then you just trade! Move chart 1 candle at a time, draw your lines and do some "actual trading" and look at your results after moving forward in the chart. If you do not test your strategy your just going in blind, which could be disaster.. Maybe someone told u "this is the correct way to trade" or "this strategy is 90% sure to win every trade!!!" If you think you can do trading without a strategy, then your most likely going to look back at an empty account and wonder why you moved that stop loss or why you didnt take profit etc.. and then your gonna give up. People on youtube, forums, interwebz are not going to give you/sell you a working strategy thats gonna make you rich. If they had a working strategy, they would not give it away/sell it to you.
  2. Money management - How to.... Gonna keep this one short. Risk a small % of your capital on each trade. Dont risk 10%, dont risk 20%. You are going to see loosing trades, your probably gonna see 5-10 loss in a row!! If your trading a 1000$ account and your risking 100$ on each trade (10%) and you loose 5 in a row, your down -50% and probably you cant even trade cus of margin req. Game over.. Now how does one get super rich, super fast, from risking 1-3% of your account on each trade?? Well heres the shocking message: YOU CANT GET RICH FAST FROM TRADING UNLESS YOUR WILLING TO GO ALL IN! You can of course go all in on each trade and if you get em all right, you might get 1000%, then you go all in 1 more time and loose it all... The whole point of trading is NOT going bust. Not loosing everything, cus if you loose it all its game over and no more trading for you.
  3. Find your own trading style.... Everyone is different. You can have an average holding period of 1 month or you could be looking at a 1 min chart and average holding time = 10 minutes. For some, less volatility helps them sleep at night. For others, more volatility gives them a rush and some people crave this. There is no "correct" timeframes, or holding periods, or how much to profit or how much to loose. We are all individuals with different taste in risk. Some dont like risk, others wanna go all in to get rich over night. The smart approach is somewhere in the middle. If you dont risk anything, your not gonna get anything. If you risk everything, your most likely going to loose everything. When people are talking about trading style, this is kinda what that means.
  4. There are mainly 2 ways to trade: Divergence and Convergence. Or in other words: Mean reversion or trend following. Lets talk about them both: Trend following is trying to find a trend and stay with the trend until its over. Mean reversion is the belief that price is too far away from the average XX of price, and sooner or later, price will have to return to its average/mean (hence the name: MEAN reversion). Trend following systems usually see a lower winrate (30-40% winrate with no money management is not uncommon to see when backtesting trend following systems.. You can add good money management to get the winrate % higher. Why is the % winrate so low? Well a market, whatever that market is, tend to get real choppy and nasty right after a huge trend. So your gonna see alot of choppy fake signals that might kill 5-6 trades in a row, until the next huge trend starts which is going to cover all the losses from the small losses before the trend took off. Then you gotta hold that trade until trade is done. How do you define "when trend starts and stops"? Well thats back to point 1, find a strategy. Try defining rules for an entry and exit and see how it goes when you backtest it. For mean reversion the win % is usually high, like 70-90% winrate, but the average winning trade is alot smaller than the average loosing trade. this happens because you are basicly trying to catch a falling knife, or catch a booming rocket. Usually when trading mean reversion, waiting for price to actually reverse can very often leave you with being "too late", so you kinda have to find "the bottom" or "the top" before it actually has bottomed/ topped out and reversed. How can you do this you ask? Well your never going to hit every top or every bottom, but you can find ways to find "the bottom-ish" or "the top-ish", thens ell as soon as price reverts back to the mean. Sometimes your gonna wish you held on to the trade for longer, but again, back to point 1: Backtest your rules and figure that shit out.

Read these 4 points and try to follow them and you are at least 4 steps closer to being a profitable trader. Some might disagree with me on some points but i think for the majority, people are going to agree that these 4 points are pretty much universal. Most traders have done or are doing these things every day, in every trade.
Here is some GREAT material to read: Kevin Davey has won trading championship multiple times and he has written multiple great books, from beginner to advanced level. Recommend these books 100%, for example: Building winning algorithmic trading systems" will give you alot to work with when it comes to all 4 of the above points. Market wizards, Reminiscences of a stock operator are 2 books that are a great read but wont give you much "trading knowledge" that you can directly use for your trading. Books on "The turtles" are great reading. Then you have podcasts and youtube. I would stay away from youtube as much as possible when it comes to "Heres how to use the rsi!!!" or "this strategy will make you rich!!". Most youtube videoes are made by people who wanna sell you a course or a book. Most of this is just pure bullshit. Youtube can very harmfull and i would honestly advice about going there for "strategy adivce" and such. Podcasts tho are amazing, i highly recommend: Better systems trader, Chat with traders, Top traders unplugged, We study billionairs, to name a few :)
Also, on a less funny note.. Please realize that you are, and i am, real fucking stupid and lazy compared to the actual pro's out there. This is why you should not go "all in" on some blind stupid strategy youve heard about. This is why this is indeed VERY FUCKING HARD and most, if not everyone has busted an account or two before realizing just this. Your dumb.. your not going to be super rich within 1 year.. You can not start with 500$ account and make millions! (some might have been able to do this, but know that for every winner, theres 999 loosers behind him that failed... Might work fine first 5 trades, then 1 fuckup tho and ur gone..
And lastly: Try using a backtesting software. Its often FREE!!! (on a demo account) and often so simple a baby could use it. If your trading lines and such there exists web broweser "games" and softwares that lets you go "1 and 1 candle ahead" in random forex pairs and that lets you trade as if its "real" as it goes.
A big backtesting trap however is backtesting "losely" by just drawing lines and looking at chart going "oh i would have taken this trade FOR SURE!! I would have made so much money!!" however this is not actually backtesting, its cherry picking and its biased beyond the grave, and its going to hurt you. Try going 1 candle at a time doing "real and live" trades and see how it goes.

Bonus point!!
many people misunderstands what indicators like the RSI is telling you. Indeed something is "overbought" or "oversold" but only compared to the last average of xx amounts of bars/candles.
It doesn't tell you that RIGHT NOW is a great time to sell or buy. It only tells you that the math formula that is RSI, gives you a number between 1-100, and when its above 70 its telling you that momentum is up compared to the last average 14 candles. This is not a complete buy/sell signal. Its more like a filter if anything. This is true for MOST indicators. They INDICATE stuff. Dont use them as pure buy/sell signals.. At least backtest that shit first! Your probably gonna be shocked at the shitty results if you "buy wehn rsi is undeer 30 and sell when RSI is above 70".

Editedit: Huge post already, why not copy paste my comment with an example showing the difference in trend following vs mean reversion:
The thing about trend following is that we never know when a trade starts and when it ends. So what often happens is that you have to buy every breakout going up, but not every breakout is a new trend. Lets do an example. Check out the photo i included here: https://imageshost.eu/image/image.RcC


  1. We identify the big orange trend up.
  2. We see the big break down (marked with the vertical red line) this is telling us we are not going higher just yet. Our upwards trend is broken. However we might continue going up in a new trend, but when will that trend come?
  3. We can draw the blue trend very earyly using highs and lows, lines up and down. Then we begin to look for breakouts of the upper blue line. So every time price breaks upper blue line we have to buy (cus how else are we going to "catch the next trend going up?)
As you can see we get 5 false breakouts before the real breakout happens!
Now if you could tell fake breakouts from real breakouts, your gonna be rich hehe. For everyone else: Take every signal you can get, put a "tight" stop loss so in case its a fake signal you only loose a little bit. Then when breakout happens as you can clearly see in chart, your going to make back all the small losses.
So in this example we fail 5 times, but get 1 HUGE new trend going further up. This 1 huge trade, unless we fuck it up and take profits too early or shit like that, is going to win back all those small losses + more.
This is why trend following has a low winrate. You get 5 small loss and 1 big win.

Now lets flip this! Imagine if your trading Mean reversion on all the same red arrows! So every time price hits the blue line, we go short back to the bottom (or middle) again! You would have won 5 trades with small profits, but on that last one you would get stopped out so hard. Meaning 5 small wins, 1 big loss (as some have pointed out in comments, if you where trading mean reverting you would wanna buy the lows as well as short the tops - photo was suppose to show why trend following strategies have a lower % winrate.)

Final edit: sorry this looks like a wall of text on ur phones.
submitted by RipRepRop to Forex [link] [comments]

MT4 How to keep charts on same date & time - YouTube Adjusting the Vertical Scale in Metatrader 4 - YouTube How to draw support and resistance lines In MT4 DailyLines Vertical lines starting new Day with above name of the DAY Period Separators with option TIME RANGE SEPARATOR - MT4 Indicator - YouTube Round Numbers and Grid Lines in MT4 - Free Indicators ...

Forex Download. home; MT4 Indicators; home MT4 Indicators Vertical Time Lines. MT4 Indicators; Vertical Time Lines. By. admin - Nov 1, 2020. 0. 2934. Facebook. Twitter. Google+. Pinterest. WhatsApp. Indicator can draws up to six different vertical lines each at a designated time. Each vertical line can be historically repeated. Time format: hh: mm. The default historical days Input is 50 ... Attachments: [MT4] Time indicator using vertical line. Exit Attachments [MT4] Time indicator using vertical line Post # 1; Quote; First Post: Jul 20, 2010 4:08pm Jul 20, 2010 4:08pm moetzger Joined Sep 2009 Status: Member 120 Posts. hey everyone anyone has an indicator which plots a vertical line at a given time? for example, automatically draw the line every day at 11:05 (on M5). would ... LINE. A simple indicator to draw vertical lines at specified time in the settings. Forex MT4 Indicators – Download Instructions. Draw Vertical Lines at Time MT4 Indicator is a Metatrader 4 (MT4) indicator and the essence of the forex indicator is to transform the accumulated history data. Draw Vertical Lines at Time MT4 Indicator provides for an opportunity to detect various peculiarities ... A Vertical Time Line set at 09:30 on a H1 timeframe will read as 09:00 because 09:30 is within the 09:00 – 10:00 candle and the candle open/start time is 09:00. MT4 Indicators – Download Instructions . Vertical Time Lines Vertical Time Lines is a Metatrader 4 (MT4) indicator and the essence of the forex indicator is to transform the accumulated history data. Vertical Time Lines Vertical ... This article introduces the “Vertical Time Lines" index that can draw up to 6 lines within the time specified on MT4 (MetaTrader4). “Vertical Time Lines" is a indicator that draws straight line matched the time when the NY forex market is highly volatile, the market opening time or closing time. Easy-to-view timeframes with eyes. Draw vertical lines at time MT4 Indicator – Download Instructions. In order to transform accumulated history data, you need to install a MetaTrader 4. Draw vertical lines at time - it is a MetaTrader 4 indicator that allows you to detect several changes and dynamics in price that many traders can’t estimate or see without an indicator, which highlights its essence and usage. Accordingly ... Vertical line is a mt4 (MetaTrader 4) indicator and it can be used with any forex trading systems / strategies for additional confirmation of trading entries or exits. (downloadable file Vertical line.rar contains Vertical line.ex4 and Vertical line.mq4) Free Download Vertical line mt4 indicator

[index] [22017] [21766] [13031] [16286] [10641] [24909] [7175] [1567] [6547] [7124]

MT4 How to keep charts on same date & time - YouTube

How to draw support and resistance lines Identifying Support and Resistance Levels can give you good trading setup in Forex Market . -~-~~-~~~-~~-~- Please w... http://www.forexmql.ithttps://www.mql5.com/en/users/chsa73/seller My Broker: https://bit.ly/MyFXBroker Become a Funded Trader: https://bit.ly/FundedTrader The grid in MT4 is not fixed so it is impossible to make proper use ... Quick demonstration to show you how to adjust the vertical scale on a chart in MT4. For more MT4 tips, please visit http://www.tradertools-fx.com/forex-resou... ForexMT4Indicators.com is a compilation of free download of forex strategies, forex systems, forex mt4 indicators, forex mt5 indicators, technical analysis and fundamental analysis in forex trading. Check Out More FREE Forex Training Videos Here: http://www.compassfx.com/video