Watch how to download trading robots for free
Find us on Telegram!
Join our fan page
Interesting script?
So post a link to it -
let others appraise it
You liked the script? Try it in the MetaTrader 5 terminal
Libraries

Price_Compare - library for MetaTrader 5

Views:
2983
Rating:
(27)
Published:
2016.09.19 12:49
\MQL5\Scripts\ \MQL5\Include\
Need a robot or indicator based on this code? Order it on Freelance Go to Freelance

This small cross-platform library allows to compare the 'double' values of the "price" conveniently and quickly.

For example, before placing a SellLimit, it is sometimes useful to check if the opening price is below the current Bid price.

// if (NormalizeDouble(OpenPrice, Digits()) >= NormalizeDouble(Bid, Digits())) // this method was the most frequently used
if (CP(OpenPrice) >= Bid) // now it can be done like this
  OrderSend...;

Not only is this much clearer and more concise than the standard type check, but also the execution speed is several times higher! Such efficient usage of computational resources sometimes grants a noticeable boost in the tester/optimizer.

It is also possible to set the precision for comparing the 'double' values. For example

if ((CP(Lots, 0.01) >= MinLot) && ((CP(Lots, 0.01) <= MaxLot))) // compare with the precision up to the second decimal place
  OrderSend...;

All the comparison operators (==, !=, >=, <=, >, <) are handled in a similar fashion.

The library contains a faster method of the NormalizeDouble implementation. To improve the execution speed of the standard function, it is sufficient to add the following at the beginning

// Almost four times faster than the corresponding standard function (build 1395)
#define NormalizeDouble PRICE_COMPARE::MyNormalizeDouble

As an example, the attached script shows the results of comparison and normalization method for different price values.

Translated from Russian by MetaQuotes Ltd.
Original code: https://www.mql5.com/ru/code/16169

XFatlXSatlCloud XFatlXSatlCloud

Indicator based on smoothed FATL and SATL digital filters and signal trend cloud between them.

XFatlXSatlMACD XFatlXSatlMACD

The MACD histogram, based on the FATL and SATL digital filters with color indication of trends.

Elliott_Wave_Oscillator_Sign_Alert Elliott_Wave_Oscillator_Sign_Alert

Semaphore signal indicator based on the algorithm of the Elliott_Wave_Oscillator indicator, which features alerts, sending emails and push-notifications to mobile devices.

i4_DRF_v3 i4_DRF_v3

A simple trend indicator with calculation of rise and fall in High and Low prices.