Daily Range Projections Full Indicator For MT5
Table Of Contents:
- Daily Range Projections Full Indicator For MT5
- Installing the Daily Range Projections Full Indicator For MT5
- Parameters of the Daily Range Projections Full Indicator For MT5
- Buffers of the Daily Range Projections Full Indicator For MT5
- Main Parts Of The Code
The Daily Range Projections Full Indicator For MT5 analyze the daily price movement of the trading instrument and finds critical trading points. The support and resistance level are plot in the price chart based on the previous price movements of the markets. With the help of this indicator, you can also find the potential profit target and stop-loss levels of each trade. Try to learn the price action trading method since this tool can help you to find the critical trading zone where you can spot highly reliable price action signals. And when you execute the trade with the help of this tool, make sure you are reducing the risk to a great extent.
Installing the Daily Range Projections Full Indicator For MT5
After you downloaded the indicator via the form above you need to unzip the zip-file. Then you need to copy the file dailyrangeprojections_full.mq5 into the folder MQL5\Indicators of your MT5 installation. After that please restart MT5 and then you will be able to see the indicator in the list of indicators.
Parameters of the Daily Range Projections Full Indicator For MT5
The Daily Range Projections Full Indicator For MT5 has 3 parameters to configure.
input int Symbol_MAX = 119; // High price label for tomorrow input int Symbol_MID = 167; // Average price label for tomorrow input int Symbol_MIN = 119; // Low price label for tomorrow
Buffers of the Daily Range Projections Full Indicator For MT5
The Daily Range Projections Full Indicator For MT5 provides 3 buffers.
SetIndexBuffer(0,ExtMaxBuffer,INDICATOR_DATA); SetIndexBuffer(1,ExtMidBuffer,INDICATOR_DATA); SetIndexBuffer(2,ExtMinBuffer,INDICATOR_DATA);
Main Parts Of The Code
int OnCalculate(const int rates_total, // number of bars in history at the current tick const int prev_calculated,// number of bars calculated at previous call const datetime &time[], const double &open[], const double& high[], // price array of maximums of price for the indicator calculation const double& low[], // price array of minimums of price for the indicator calculation const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { //---- if(_Period gt =PERIOD_D1 || rates_total lt 1) return(RESET); //---- declarations of local variables int limit,bar; //---- calculation of the limit starting index for the bars recalculation loop if(prev_calculated gt rates_total || prev_calculated lt =0)// checking for the first start of the indicator calculation limit=rates_total-1; // starting index for calculation of all bars else limit=rates_total-prev_calculated; // starting index for calculation of new bars //---- indexing elements in arrays as timeseries ArraySetAsSeries(time,true); //---- main indicator calculation loop for(bar=limit; bar gt =0 && !IsStopped(); bar--) { //---- declarations of local variables double X=0.0; MqlRates rates[2]; // static array and reverse indexing of the elements (the current bar is the first one!) //---- copy newly appeared data in the rates array if(CopyRates(Symbol(),PERIOD_D1,time[bar],2,rates) lt =0) return(RESET); if(rates[1].close lt rates[1].open) X=(rates[0].high+rates[0].low+rates[0].close+rates[0].low )/2.0; if(rates[1].close gt rates[1].open) X=(rates[0].high+rates[0].low+rates[0].close+rates[0].high )/2.0; if(rates[1].close==rates[1].open) X=(rates[0].high+rates[0].low+rates[0].close+rates[0].close)/2.0; ExtMaxBuffer[bar] = NormalizeDouble(X-rates[0].low, _Digits); ExtMinBuffer[bar] = NormalizeDouble(X-rates[0].high,_Digits); ExtMidBuffer[bar] = NormalizeDouble((ExtMaxBuffer[bar]+ExtMinBuffer[bar])/2.0,_Digits); } //---- return(rates_total); } //+------------------------------------------------------------------+