Watch how to download trading robots for free
Find us on Facebook!
Join our fan page
Join our fan page
You liked the script? Try it in the MetaTrader 5 terminal
- Views:
- 2891
- Rating:
- Published:
- 2021.02.10 06:33
-
Need a robot or indicator based on this code? Order it on Freelance Go to Freelance
//+------------------------------------------------------------------+ //| Introsort.mq5 | //| 2019-2021, dimitri pecheritsa | //| mql5.com/en/users/dmipec | //|------------------------------------------------------------------| //| c| array sorting algorithm | //| introsort or introspective sort is a hybrid sorting algorithm | //|that provides both fast average performance and (asymptotically) | //|optimal worst-case performance. it begins with quicksort, it | //|switches to heapsort when the recursion depth exceeds a level | //|based on (the logarithm of) the number of elements being sorted | //|and it switches to insertion sort when the number of elements is | //|below some threshold. this combines the good parts of the three | //|algorithms, with practical performance comparable to quicksort on | //|typical data sets and worst-case o(n log n) runtime due to the | //|heap sort. since the three algorithms it uses are comparison | //|sorts, it is also a comparison sort. | //| introsort was invented by david musser in 1997, in which he also| //|introduced introselect, a hybrid selection algorithm based on | //|quickselect (a variant of quicksort), which falls back to median | //|of medians and thus provides worst-case linear complexity, which | //|is optimal. both algorithms were introduced with the purpose of | //|providing generic algorithms for the c++ standard library which | //|had both fast average performance and optimal worst-case | //|performance, thus allowing the performance requirements to be | //|tightened. introsort is in place and not stable | //| the most popular c++ stl algorithm sort() uses introsort. | //|------------------------------------------------------------------| //| scr| introsort example | //+------------------------------------------------------------------+ #include <Mqh\Algorithms\SortIntro\Introsort.mqh> #include <Mqh\Algorithms\SortIntro\Functions.mqh> void OnStart() { int a[] = {3, 1, 23, -9, 233, 23, -313, 32, -9}; ArraySort(a,new CIntroSort<int,int>,SORT_ORDER_ACCENDING); ArrayPrint(a); } //+------------------------------------------------------------------+ //| >>>| -313 -9 -9 1 3 23 23 32 233 | //+------------------------------------------------------------------+
![gnome sort - array sorting algorithm](https://c.mql5.com/i/code/library.png)
gnome sort is based on the technique used by the dutch garden gnome
![INDICATOR Breakout Strength Meter - MT5](https://c.mql5.com/i/code/indicator.png)
The breakout strength meter is a trading tool that is used to identify which currencies are the strongest to breakout, and which currencies are the weakest to breakout
![Currency Strenght Meter - MT5](https://c.mql5.com/i/code/script.png)
The currency strength meter is a trading tool that is used to identify trending and consolidating markets based on the percentage rate of change in price from one period to the next.
![The Cyber Cycle](https://c.mql5.com/i/code/indicator.png)
The Cyber Cycle: John Ehlers, "Cybernetic Analysis For Stocks And Futures", pg.34