Good code! I tested it and it works find as it is. I'll see if I get some time to tinker with the algorithm to make it run a little faster.
Keep the good work.
Good code! I tested it and it works find as it is. I'll see if I get some time to tinker with the algorithm to make it run a little faster.
Keep the good work.
Thanx!
It's not perfect. In some backtesting, I noticed that in rare cases it can give you a support line that's ABOVE the resistance line. It mostly happens during volatile periods and fairly rare, but just thought that I'd point it out.
Thanx!
It's not perfect. In some backtesting, I noticed that in rare cases it can give you a support line that's ABOVE the resistance line. It mostly happens during volatile periods and fairly rare, but just thought that I'd point it out.
Noted. Thanx for pointing that out.
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
You agree to website policy and terms of use
Plus, I think you guys will be able to improve on it. This attempts to find prices that have exhibited resistance to a particular currency over the past X periods. I'm basically doing it by creating an array of all the prices and then scrolling back through the same array and finding prices within a total band of 4 pips. The price with the greatest number of "commons" is determined to be the resistance point. It's not the greatest, but I do consider it to be a clever piece of code
But of course, I'm sure someone here will be able to improve on it or we can improve it collectively.
//+------------------------------------------------------------------+ //| Attempts to identify points of resistance for a pair | //+------------------------------------------------------------------+ double ResistanceCheck(string symbol, int charttime, int timescope) { int barscroll; int allhighcount; int allhighscroll; int allhighscrollsub; int commoncount; int commonhighest; int highcommons[]; double allHighs[]; double result; double bandtop; double bandbottom; //limit the number of historical bars we will look at allhighcount=timescope; //Resize the arrays to this number ArrayResize(allHighs,allhighcount); ArrayResize(highcommons,allhighcount); //Populate the first array with the highs from the previous X bars defined by timescope for(barscroll=0;barscroll<allhighcount;barscroll++) { allHighs[barscroll]=iHigh(symbol,charttime,barscroll); } //Loop through all the high prices for(allhighscroll=0;allhighscroll<allhighcount;allhighscroll++) { commoncount=0; //Create a "band" of prices two pips ABOVE and two pips BELOW the determined price bandtop=allHighs[allhighscroll]+(2*Point); bandbottom=allHighs[allhighscroll]-(2*Point); //Scroll through the array again and find prices that are within the band for(allhighscrollsub=0;allhighscrollsub<allhighcount;allhighscrollsub++) { if((allHighs[allhighscrollsub]<=bandtop) && (allHighs[allhighscrollsub]>=bandbottom)) { //This variable tracks how many prices were within the band for a particular price commoncount++; } } //This array tracks all the "common" prices highcommons[allhighscroll]=commoncount; } //This basically finds the POSITION within the array that contained the most common high prices i.e. resistance commonhighest=ArrayMaximum(highcommons,WHOLE_ARRAY,0); //This actually pulls the price from the original array and returns in result=allHighs[commonhighest]; return(result); }