• Overview
  • Reviews
  • Comments
  • What's new


The indicator is based on matching the history with selected pattern model and shows the most likely outcome.

Pi indicator includes Pattern line, Scanned_Past line, Matching_Pattern line, Future_Predicted line, adjustable Model Band, and some other controls.

This indicator is designed primarily for professional use and is very useful in the search for the probability of the results relating to the future.

Note: The results depend on model_band and past_bars. They are approximate, and therefore they must be compared with multiple timeframes.

You can run many instances for all timeframes at once. The indicator is relatively fast and has, like all our indicators, a built-in "slider history testing" technology and error control.

It is tested and works very well in our EA "PointerX".

Please watch “testing” in HD … https://youtu.be/z1AfjBWIuhQ

We recommend running more instances of the indicator on different timeframes simultaneously for better results (M15, H1, H4) and optimization criteria every two months.

For programmers

The known command to retrieve a line index value for MQL4:

double piCurr=iCustom(NULL,TF_,"Pi",BAND_,FB_,SMOOTH_,0,PB_,3,cnt);

NULL = current symbol

TF_ = enum_timeframes

"Pi" = path/name of the custom indicator compiled program

BAND_ = model band (int)

FB_ = future bars (int)

SMOOTH_ = line smoothness (int)

0 = last bar (int)

PB_ = past bars (int)

3 = line index (int)

cnt = shift (int)

Other buffers: 0=Pattern, 1=Scanned_Past, 2=Matching_Pattern

You can help with this code as an example:

// Function declaration - Define PI Indicator (Example)
void definePI(...)
buyPI_=false; sellPI_=false;
const double tpBUY=NormalizeDouble(Ask+tpBuyL_,_Digits);
const double tpSELL=NormalizeDouble(Bid-tpSellL_,_Digits);
const double slBUY=NormalizeDouble(Bid-slBuyL_,_Digits);
const double slSELL=NormalizeDouble(Ask+slSellL_,_Digits);
// [Here put some Error test code ...]
// then ...
if(err_!=0) return;
bool END_BUY=false;
bool END_SELL=false;
for(short cnt=0;cnt>=-FB_;cnt--)
double piCurr=EMPTY_VALUE;
if(piCurr==EMPTY_VALUE) {f_err_=true; buyPI_=false; sellPI_=false; Print(__FUNCTION__,"Pi=EMPTY_VALUE"); return;}
const double pi_bid=piCurr;
const double pi_ask=piCurr+spreadPnts_;
if(pi_bid<=slBUY) END_BUY=true;
if(pi_ask>=slSELL) END_SELL=true;
if(pi_bid>=tpBUY&&!END_BUY) {buyPI_=true; break;}
if(pi_ask<=tpSELL&&!END_SELL) {sellPI_=true; break;}

Additional information

The demo version is built to demonstrate the main features and usability of Pi.

If you like to use Pi unlimited or within an EA, you have to buy or rent this product.

Are you satisfied with our work? Share your experiences and leave a comment.

If you need help using our trading tools or you have an issue or question, please contact me: vasja_vrunc@t-2.net.

Best regards!


No reviews
Version 2.5 - 2017.02.09
1. Error correction: "Changing timeframes in Indicator Visualization Tab".
Version 2.4 - 2017.01.17
Program speed improvements ...