- iAC
- iAD
- iADX
- iADXWilder
- iAlligator
- iAMA
- iAO
- iATR
- iBearsPower
- iBands
- iBullsPower
- iCCI
- iChaikin
- iCustom
- iDEMA
- iDeMarker
- iEnvelopes
- iForce
- iFractals
- iFrAMA
- iGator
- iIchimoku
- iBWMFI
- iMomentum
- iMFI
- iMA
- iOsMA
- iMACD
- iOBV
- iSAR
- iRSI
- iRVI
- iStdDev
- iStochastic
- iTEMA
- iTriX
- iWPR
- iVIDyA
- iVolumes
iCustom
Devuelve el manejador del indicador personalizado especificado.
int iCustom(
|
Parámetros
symbol
[in] Símbolo del instrumento financiero cuyos datos serán usados para calcular el indicador. NULL significa el símbolo actual.
period
[in] Valor del período puede ser uno de los valores de la enumeración ENUM_TIMEFRAMES, 0 significa el timeframe actual.
name
[in] Nombre del indicador personalizado. Si antes del nombre indicamos la barra oblicua inversa '\', el archivo EX5 del indicador se buscará con respecto a la carpeta raíz MQL5. De esta forma, al llamar iCustom(Symbol(), Period(), "\FirstIndicator"...), el indicador se cargará como MQL5\FirstIndicator.ex5. Si el archivo no se encuentra según esta ruta, aparecerá el error 4802 (ERR_INDICATOR_CANNOT_CREATE).
Si la ruta no comienza con '\', la búsqueda y la carga del indicador se realizarán en la siguiente secuencia:
- En primer lugar, el archivo EX5 del indicador se buscará en la misma carpeta donde se encuentra el archivo EX5 del programa que realiza la llamada. Por ejemplo, el asesor CrossMA.EX5 se encuentra en la carpeta MQL5\Experts\MyExperts y contiene la llamada iCustom(Symbol(), Period(), "SecondIndicator"...), entonces, la búsqueda del indicador se realizará en la ruta MQL5\Experts\MyExperts\SecondIndicator.ex5.
- Si el indicador no ha sido localizado en el mismo directorio, la búsqueda se realizará con respecto al directorio raíz de indicadores MQL5\Indicators. Es decir, se buscará el archivo MQL5\Indicators\SecondIndicator.ex5. Si el indicador no ha sido localizado en ninguna de las rutas, la función retornará INVALID_HANDLE y se mostrará el error 4802 (ERR_INDICATOR_CANNOT_CREATE).
Si la ruta al indicador se ha establecido en un subdirectorio, por ejemplo, como MyIndicators\ThirdIndicator, la búsqueda primero se efectuará en la carpeta del programa que ha realizado la llamada (el asesor se encuentra en la carpeta MQL5\Experts\MyExperts), en la ruta MQL5\Experts\MyExperts\MyIndicators\ThirdIndicator.ex5, y después, si no ha habido éxito, se buscará el archivo MQL5\Indicators\MyIndicators\ThirdIndicator.ex5. En este caso, además, deberemos indicar como separador en la ruta la barra oblicua inversa doble '\\', por ejemplo, iCustom(Symbol(), Period(), "MyIndicators\\ThirdIndicator"...)
...
[in] input-parámetros del indicador personalizado están separados por comas. El tipo y el orden de seguimiento de parámetros deben corresponder. Si los parámetros no están especificados, entonces se usarán los valores por defecto.
Valor devuelto
Devuelve el manejador del indicador técnico especificado, en caso del fallo devuelve INVALID_HANDLE.
Nota
Un indicador personalizado tiene que estar compilado (un archivo con la extensión EX5) y debe estar ubicado en el directorio MQL5/Indicators del terminal de cliente o en una de sus subcarpetas.
Los indicadores que requieren verificaciones se definen automáticamente desde la llamada a la función iCustom(), si el parámetro correspondiente es fijado por una cadena constante. Para los demás casos (uso de función IndicatorCreate() o uso de una cadena no constante en el parámetro que asigna el nombre del indicador) esta propiedad #property tester_indicator es necesaria:
#property tester_indicator "indicator_name.ex5" |
Si en el indicador se usa la forma de llamada, entonces al iniciar el indicador personalizado en la pestaña "Parameters" podemos especificar adicionalmente los datos a base de los cuales va a ser calculado. Si el parámetro "Apply to" no está elegido explícitamente, por defecto el cálculo se realiza a base de los valores "Close".
Cuando un indicador personalizado se llama desde el programa mql5, el parámetro Applied_Price o un manejador de otro indicador debe ser pasado el último después de todos los parámetros de entrada previstos por el indicador personalizado.
Véase también
Propiedades de programas, Acceso a las series temporales y a los datos de indicadores, IndicatorCreate(), IndicatorRelease()
Ejemplo:
#property indicator_separate_window
|