forked from rosh/MQL5Book
66 lines
3 KiB
MQL5
66 lines
3 KiB
MQL5
//+------------------------------------------------------------------+
| |||
//| UseWPR1.mq5 |
| |||
//| Copyright 2021, MetaQuotes Ltd. |
| |||
//| https://www.mql5.com |
| |||
//+------------------------------------------------------------------+
| |||
#property indicator_separate_window
| |||
#property indicator_buffers 0
| |||
#property indicator_plots 0
| |||
| |||
#include "..\..\Include\PRTF.mqh"
| |||
| |||
//+------------------------------------------------------------------+
| |||
//| Custom indicator initialization function |
| |||
//+------------------------------------------------------------------+
| |||
int OnInit()
| |||
{
| |||
// all handles are local variables since they are not used in this intro
| |||
| |||
// absolute path: since indicator examples for this book is stored at
| |||
// MQL5/Indicators/MQL5Book/p5, the complete pathname is as follows:
| |||
int handle1 = PRTF(iCustom(_Symbol, _Period, "/Indicators/MQL5Book/p5/IndWPR"));
| |||
| |||
// relative path: consists of the single name, searched in current folder
| |||
// the caller indicator and the callee indicator are in the same folder
| |||
int handle2 = PRTF(iCustom(_Symbol, _Period, "IndWPR"));
| |||
| |||
// relative path: consists of the book subfolders and the name,
| |||
// will find proper indicator in the context of MQL5/Indicators
| |||
int handle3 = PRTF(iCustom(_Symbol, _Period, "MQL5Book/p5/IndWPR"));
| |||
| |||
// wrong path: no such indicator in current folder (runtime error 4802)
| |||
int handle4 = PRTF(iCustom(_Symbol, _Period, "IndWPR NonExistent"));
| |||
| |||
// wrong path: backslashes are not escaped, every '\' should be '\\'
| |||
// 4 compiler warnings in a row: unrecognized character escape sequence
| |||
int handle5 = PRTF(iCustom(_Symbol, _Period, "\Indicators\MQL5Book\p5\IndWPR"));
| |||
| |||
// this is a twin of handle2, check how their values are the same
| |||
int handle6 = PRTF(iCustom(_Symbol, _Period, "IndWPR"));
| |||
| |||
return INIT_SUCCEEDED;
| |||
}
| |||
//+------------------------------------------------------------------+
| |||
/*
| |||
output:
| |||
| |||
iCustom(_Symbol,_Period,/Indicators/MQL5Book/p5/IndWPR)=10 / ok
| |||
iCustom(_Symbol,_Period,IndWPR)=11 / ok
| |||
iCustom(_Symbol,_Period,MQL5Book/p5/IndWPR)=12 / ok
| |||
cannot load custom indicator 'IndWPR NonExistent' [4802]
| |||
iCustom(_Symbol,_Period,IndWPR NonExistent)=-1 / INDICATOR_CANNOT_CREATE(4802)
| |||
iCustom(_Symbol,_Period,\Indicators\MQL5Book\p5\IndWPR)=13 / ok
| |||
iCustom(_Symbol,_Period,IndWPR)=11 / ok
| |||
*/
| |||
| |||
//+------------------------------------------------------------------+
| |||
//| Custom indicator iteration function |
| |||
//+------------------------------------------------------------------+
| |||
int OnCalculate(const int rates_total,
| |||
const int prev_calculated,
| |||
const int begin,
| |||
const double &data[])
| |||
{
| |||
return rates_total;
| |||
}
| |||
//+------------------------------------------------------------------+
|