Watch how to download trading robots for free
Interesting script?
So post a link to it -
let others appraise it
You liked the script? Try it in the MetaTrader 5 terminal
Libraries

introsort - array sorting algorithm - library for MetaTrader 5

DMITRII PECHERITSA

Views:
513
Rating:
votes: 5
Published:
2021.02.10 06:33
\MQL5\Include\Mqh\Algorithms\SortIntro\ \MQL5\Include\Mqh\Algorithms\ \MQL5\Include\Mqh\Universal\
//+------------------------------------------------------------------+
//|                                                    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 gnome sort - array sorting algorithm

gnome sort is based on the technique used by the dutch garden gnome

INDICATOR Breakout Strength Meter - MT5 INDICATOR Breakout Strength Meter - MT5

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 Currency Strenght Meter - MT5

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 The Cyber Cycle

The Cyber Cycle: John Ehlers, "Cybernetic Analysis For Stocks And Futures", pg.34