Updated: April 17, 2020: Posted v4 of hanover --- extensible functions b600 (np).mqh in this post#1.
Updated: January 27, 2018: Posted v1 of my P4L Check_Price_Discounts.mq4 (Script) in this post#1.
Updated: July 11, 2017: Posted a link to my P4L ChangeTF-All charts.mq4 (Script)
Updated: May 6, 2017: Posted v3 of Hanover's Handy MQL4 utility functions in this post#1.
Updated: May 6, 2017: Posted a link to a b600 update of Hanover's Display Info All Pairs.mq4
Updated: May 6, 2017: Posted a link to a b600 update of Hanover's Daily LinesBoxes(1).mq4
A COLLECTION of modified, useful MQ4 utilities, indicators, and related tips.
A few other threads that I've started have some useful indicators that I made extensive modifications to, and those will remain in those threads.
Disclaimer: All such code (indicators, EA's, functions, etc.) here and elsewhere, are provided AS-IS, and for use at YOUR OWN RISK! No exceptions!
On occasion, I have some other code or indicators that I'm willing to share, but are best to post in this catch-all thread. I can update post #1 indefinitely with new code, or updates to existing versions. ALWAYS READ POST#1 (FULLY) and CHECK BACK HERE FOR UPDATES!
I don't expect that I will do much to support or make additional changes, unless I happen to find them personally useful and find the time to do so. (Rarely). People can always make suggestions regarding these indicators, or make the changes and post them to the thread. I might create links, or possibly, merge the changes and replace the attachments to this first post #1.
Updates to Hanover's Code:
Hanover has posted some great indicators and utilities over many years, however, for the most part, they are only compatible with MT4 b509, now several years old. The compiled .ex4 files are (still) mostly forward compatible to the latest version (b1065, 23 Mar 2017), but it is a hassle to make changes or updates in the old version with the old compiler. (For programmers only).
Hanover's Handy MQL4 utility functions
Most of his indicators make use of an extensive set of non-proprietary (np) functions which he has shared, but are for b509 only. I made a v2 update for b600+ in 2014, which "compiled", but still has some significant changes in behavior and was therefore not quite correct enough. I have a new v3 update! (May 2017). I found and fixed a simple bug but which had a profound impact on many other string functions. While still not fully tested, I did compile a few of his indicators with much better success.
NOTE: These functions are useful as they are. But to combine them with old source code by Hanover will almost certainly require a few additional changes to the main indicator source to be fully b600 compatible. It is also quite probable that there are still more bugs with this b600 utility code. The only way to uncover all of the changes since b509 is to actually use each function, and extensively test all behaviors, a task which I am unwilling to do! Nevertheless, the task is now much easier, and closer to a point of true b600 compatibility than before. In the "extensible functions" section, definitely read the "USAGE:" section for specific and necessary changes you must (or should) make to fix whatever main indicator code of his your are trying to compile. The list is incomplete. You keep compiling and fix all errors at a minimum. Some warnings you can ignore, but not always. Sometimes it will compile, but still won't work, and then it's harder. I have included a section (for programmers) for how to make simple changes in b509 code which you compile, and the output generates code for a b600 *script*, which will compare the b509 return values against the b600 values. Any differences are likely bugs.
2020-Apr-17: v4 released, of Hanover's b600+ utility functions (an #include file).
- Attached Filehanover --- extensible functions b600 (np).mqh 331 KB | 213 downloads | Uploaded Apr 17, 2020 5:18am
- Note: In v4, the 'function header' file was combined with the above 'extensible functions' file.
2017-May-06: v3 released, of Hanover's utility functions (#include files).
- Old v3 removed (851 downloads): hanover --- function header b600 (np).mqh
- Old v3 removed (834 downloads): hanover --- extensible functions b600 (np).mqh
- Attached Filehanover --- function header b509 (np).mqh 17 KB | 553 downloads
- Attached Filehanover --- extensible functions b509 (np).mqh 139 KB | 559 downloads
- Note, these pairs support both b600 and b509 versions, but they are simple variations of the same base code. (Search for "b600_b509"). These should function the same as the original, but it will be easier to maintain both if file differences are minimal.
- These are based on the b509 originals posted 2016-04-29 by hanover.
PLEASE refer to Hanover's thread for more details on his Utility functions.
- hanover --- function header (np).mqh
- hanover --- extensible functions (np).mqh
2017-May-06: My b600 variation of Hanover's Display Info All Pairs.mq4 that uses the b600 utility (include) files above.
2017-May-06: My b600 variation of Hanover's Daily LinesBoxes(1).mq4 that uses the b600 utility (include) files above.
2020-Apr-24: NOTE: See Hanover (actually b600 compatible) update here.
2017-July-11: My variation of someone else's TF script: P4L ChangeTF-All charts.mq4 (Script)
2018-Jan-27: My script (below), P4L Check_Price_Discounts.mq4 (Script) to measure broker "discounts", the difference between Order Bid/Ask prices vs. those Chart Bid/Ask prices that display on a chart (Bid/Ask lines). For some brokers, due to spread "discounts", the prices differ, as discussed here.